On Tue 19 Jun 04:13 PDT 2018, Kiran Gunda wrote:
quoted hunk ↗ jump to hunk
Handle the short circuit interrupt and check if the short circuit
interrupt is valid. Re-enable the module to check if it goes
away. Disable the module altogether if the short circuit event
persists.
Signed-off-by: Kiran Gunda <redacted>
---
drivers/video/backlight/qcom-wled.c | 130 +++++++++++++++++++++++++++++++++++-
1 file changed, 127 insertions(+), 3 deletions(-)
diff --git a/drivers/video/backlight/qcom-wled.c b/drivers/video/backlight/qcom-wled.c
[..]
quoted hunk ↗ jump to hunk
struct wled {
const char *name;
struct device *dev;
struct regmap *regmap;
+ struct mutex lock; /* Lock to avoid race from ISR */
+ ktime_t last_short_event;
u16 ctrl_addr;
u16 sink_addr;
u32 brightness;
u32 max_brightness;
+ u32 short_count;
const int *version;
+ bool disabled_by_short;
+ bool has_short_detect;
The use of feature flags, instead of checking the version, like this is
good!
struct wled_config cfg;
int (*wled_set_brightness)(struct wled *wled, u16 brightness);
Reviewed-by: Bjorn Andersson <redacted>
Regards,
Bjorn