From: Michal Vokáč <hidden> Date: 2018-09-27 09:27:39
The reset signal can be produced by GPIO expander that can sleep.
In that case the probe function fails. Allow using GPIO expanders for
the reset signal by using the non-atomic gpiod_set_value_cansleep()
function.
Signed-off-by: Michal Vokáč <redacted>
Reviewed-by: Fabio Estevam <redacted>
---
v2 changes: add R-by from Fabio
drivers/video/fbdev/ssd1307fb.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
From: Michal Vokáč <hidden> Date: 2018-09-27 09:27:44
The SSD130x OLED display reset signal is active low. Now the reset
sequence is implemented in such a way that users are forced to
define reset-gpios as GPIO_ACTIVE_HIGH in DT to make the reset work.
Do not hard code the active-low sequence into the driver but instead
allow the user to specify the gpio as GPIO_ACTIVE_LOW to reflect
the real world.
Signed-off-by: Michal Vokáč <redacted>
---
v2 changes: Split the DT changes into separate patch.
drivers/video/fbdev/ssd1307fb.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
From: Michal Vokáč <hidden> Date: 2018-09-27 09:27:47
The reset signal of the SSD1306 OLED display is actually active-low.
Adapt the DT to reflect the real world.
Signed-off-by: Michal Vokáč <redacted>
---
v2 changes: New patch in the series
arch/arm/boot/dts/imx28-cfa10036.dts | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
The reset signal can be produced by GPIO expander that can sleep.
In that case the probe function fails. Allow using GPIO expanders for
the reset signal by using the non-atomic gpiod_set_value_cansleep()
function.
Signed-off-by: Michal Vokáč <redacted>
Reviewed-by: Fabio Estevam <redacted>
Patch queued for 4.20, thanks.
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
The SSD130x OLED display reset signal is active low. Now the reset
sequence is implemented in such a way that users are forced to
define reset-gpios as GPIO_ACTIVE_HIGH in DT to make the reset work.
Do not hard code the active-low sequence into the driver but instead
allow the user to specify the gpio as GPIO_ACTIVE_LOW to reflect
the real world.
Signed-off-by: Michal Vokáč <redacted>
Patch queued for 4.20, thanks.
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
On Mon, Oct 08, 2018 at 11:45:36AM +0000, Vokáč Michal wrote:
On 27.9.2018 11:24, Michal Vokáč wrote:
quoted
The reset signal of the SSD1306 OLED display is actually active-low.
Adapt the DT to reflect the real world.
Signed-off-by: Michal Vokáč <redacted>
---
v2 changes: New patch in the series
Bartlomiej just queued the first two patches for v4.20.
Will somebody take this one? Otherwise this SoM will end up with
broken OLED display reset.
Well, it means the change breaks the ABI between kernel and device tree,
e.g. the new kernel will not work with existing/installed DTBs.
Shawn
On Mon, Oct 08, 2018 at 11:45:36AM +0000, Vokáč Michal wrote:
quoted
On 27.9.2018 11:24, Michal Vokáč wrote:
quoted
The reset signal of the SSD1306 OLED display is actually active-low.
Adapt the DT to reflect the real world.
Signed-off-by: Michal Vokáč <redacted>
---
v2 changes: New patch in the series
Bartlomiej just queued the first two patches for v4.20.
Will somebody take this one? Otherwise this SoM will end up with
broken OLED display reset.
Well, it means the change breaks the ABI between kernel and device tree,
e.g. the new kernel will not work with existing/installed DTBs.
Should I revert this sdd10307fb patch then?
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
Hi Michal,
On Tue, Oct 9, 2018 at 5:30 AM Vokáč Michal [off-list ref] wrote:
Sorry for the inconvenience :( Lesson learned..
So in other words (no offense): broken drivers need to stay broken because
users may already get used to the broken behavior?
In order to keep the old dtb's working you could introduce a new
property (like reset-gpio-active-low, for example).
Then the driver behavior can be made untouched for the old dtb's and
only new dtb's with this new property would have the correct GPIO
reset behavior.
Hi Michal,
On Tue, Oct 9, 2018 at 5:30 AM Vokáč Michal [off-list ref] wrote:
quoted
Sorry for the inconvenience :( Lesson learned..
So in other words (no offense): broken drivers need to stay broken because
users may already get used to the broken behavior?
In order to keep the old dtb's working you could introduce a new
property (like reset-gpio-active-low, for example).
Then the driver behavior can be made untouched for the old dtb's and
only new dtb's with this new property would have the correct GPIO
reset behavior.
Thank you very much Fabio!
I saw these xxx-active-low/high properties in many device tree
sources wondering why the heck people use them when they could
use GPIO_ACTIVE_LOW/HIGH. And this is the explanation.
And I feel like an idiot once again: git grep -l "reset-active-low"
first hit is:
Documentation/devicetree/bindings/display/ssd1307fb.txt
Oooops.
The weird thing is that usage of reset-active-low is documented
in the example but it is not implemented.
So the patch no.2 should be reverted and patch no.3 not applied at all.
OK, I've applied the patch below to fbdev-for-next tree.
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
From 64f83a816b27c7b5e026a74ecb5c61dbabfae997 Mon Sep 17 00:00:00 2001
From: Bartlomiej Zolnierkiewicz <redacted>
Date: Tue, 9 Oct 2018 15:18:42 +0200
Subject: [PATCH] Revert "video: ssd1307fb: Do not hard code active-low reset
sequence"
This reverts commit 9827f26374fb85e1811f2adbcc25c8a3992dbe7f.
On 10/09/2018 02:20 AM, Shawn Guo wrote:
Well, it means the change breaks the ABI between kernel and device tree,
e.g. the new kernel will not work with existing/installed DTBs.
Revert the change until DTB compatibility issue is resolved.
Signed-off-by: Bartlomiej Zolnierkiewicz <redacted>
---
drivers/video/fbdev/ssd1307fb.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)