From: Scott Main Date: Fri, 4 Dec 2020 20:09:22 +0000 (-0800) Subject: Add timout loop after exporting the PWM pin. X-Git-Tag: 5.8.1^2 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/bdd86c7e4ff0b579f69965f9ff0e5b6bfc973f95?hp=--cc Add timout loop after exporting the PWM pin. This gives udev time to respond to the device event. Without this, the subsequent attempts to modify pin properties will fail when depending on udev rules to apply new user permissions. This code is essentially copied from python-periphery, as was most of this file (both MIT licenced). Although it appears sergeev added this loop recently, compared to when this code was originally cloned. --- bdd86c7e4ff0b579f69965f9ff0e5b6bfc973f95 diff --git a/src/adafruit_blinka/microcontroller/generic_linux/sysfs_pwmout.py b/src/adafruit_blinka/microcontroller/generic_linux/sysfs_pwmout.py index 2d58621..f751b71 100644 --- a/src/adafruit_blinka/microcontroller/generic_linux/sysfs_pwmout.py +++ b/src/adafruit_blinka/microcontroller/generic_linux/sysfs_pwmout.py @@ -132,7 +132,7 @@ class PWMOut: if e.errno != EACCES or ( e.errno == EACCES and i == PWMOut.PWM_STAT_RETRIES - 1 ): - raise PWMError(e.errno, "Opening PWM period: " + e.strerror) + raise PWMError(e.errno, "Opening PWM period: " + e.strerror) from e sleep(PWMOut.PWM_STAT_DELAY) # self._set_enabled(False) # This line causes a write error when trying to enable