video: ARM CLCD: fix Vexpress regression

Message ID 1476945992-5164-1-git-send-email-linus.walleij@linaro.org
State New
Headers show

Commit Message

Linus Walleij Oct. 20, 2016, 6:46 a.m.
The CLCD does not come up on Versatile Express as it does not
(currently) have a syscon node for controlling the block apart
from the CLCD itself. Make sure the .init() function can bail
out without an error making it probe again.

Reported-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

---
 drivers/video/fbdev/amba-clcd-versatile.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

-- 
2.7.4

--
To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Amit Pundir Oct. 22, 2016, 3:44 a.m. | #1
On 20 October 2016 at 14:46, Linus Walleij <linus.walleij@linaro.org> wrote:
> The CLCD does not come up on Versatile Express as it does not

> (currently) have a syscon node for controlling the block apart

> from the CLCD itself. Make sure the .init() function can bail

> out without an error making it probe again.

>

> Reported-by: Amit Pundir <amit.pundir@linaro.org>

> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

> ---

>  drivers/video/fbdev/amba-clcd-versatile.c | 3 ++-

>  1 file changed, 2 insertions(+), 1 deletion(-)

>

> diff --git a/drivers/video/fbdev/amba-clcd-versatile.c b/drivers/video/fbdev/amba-clcd-versatile.c

> index 19ad8645d93c..d909b7dda14d 100644

> --- a/drivers/video/fbdev/amba-clcd-versatile.c

> +++ b/drivers/video/fbdev/amba-clcd-versatile.c

> @@ -527,7 +527,8 @@ int versatile_clcd_init_panel(struct clcd_fb *fb,

>                                              &clcd_id);

>         if (!np) {

>                 dev_err(dev, "no Versatile syscon node\n");

> -               return -ENODEV;

> +               /* Vexpress does not have this */

> +               return 0;

>         }

>         versatile_clcd_type = (enum versatile_clcd)clcd_id->data;


Thanks. Works on my Qemu + Android setup.

Tested-by: Amit Pundir <amit.pundir@linaro.org>


>

> --

> 2.7.4

>

--
To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Nicolae Rosia Oct. 28, 2016, 4:19 p.m. | #2
Thanks, works for me on qemu.

Tested-by: Nicolae Rosia <nicolae_rosia@mentor.com>

--
To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Linus Walleij Oct. 29, 2016, 8:23 a.m. | #3
On Thu, Oct 20, 2016 at 8:46 AM, Linus Walleij <linus.walleij@linaro.org> wrote:

> The CLCD does not come up on Versatile Express as it does not

> (currently) have a syscon node for controlling the block apart

> from the CLCD itself. Make sure the .init() function can bail

> out without an error making it probe again.

>

> Reported-by: Amit Pundir <amit.pundir@linaro.org>

> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>


Tomi can you please pick this up?

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tomi Valkeinen Nov. 2, 2016, 8:24 a.m. | #4
On 20/10/16 09:46, Linus Walleij wrote:
> The CLCD does not come up on Versatile Express as it does not

> (currently) have a syscon node for controlling the block apart

> from the CLCD itself. Make sure the .init() function can bail

> out without an error making it probe again.

> 

> Reported-by: Amit Pundir <amit.pundir@linaro.org>

> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

> ---

>  drivers/video/fbdev/amba-clcd-versatile.c | 3 ++-

>  1 file changed, 2 insertions(+), 1 deletion(-)

> 

> diff --git a/drivers/video/fbdev/amba-clcd-versatile.c b/drivers/video/fbdev/amba-clcd-versatile.c

> index 19ad8645d93c..d909b7dda14d 100644

> --- a/drivers/video/fbdev/amba-clcd-versatile.c

> +++ b/drivers/video/fbdev/amba-clcd-versatile.c

> @@ -527,7 +527,8 @@ int versatile_clcd_init_panel(struct clcd_fb *fb,

>  					     &clcd_id);

>  	if (!np) {

>  		dev_err(dev, "no Versatile syscon node\n");

> -		return -ENODEV;

> +		/* Vexpress does not have this */

> +		return 0;

>  	}

>  	versatile_clcd_type = (enum versatile_clcd)clcd_id->data;

>  

> 


Thanks, queued for 4.9 fixes.

 Tomi
Tomi Valkeinen Nov. 2, 2016, 8:34 a.m. | #5
On 20/10/16 09:46, Linus Walleij wrote:
> The CLCD does not come up on Versatile Express as it does not

> (currently) have a syscon node for controlling the block apart

> from the CLCD itself. Make sure the .init() function can bail

> out without an error making it probe again.

> 

> Reported-by: Amit Pundir <amit.pundir@linaro.org>

> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

> ---

>  drivers/video/fbdev/amba-clcd-versatile.c | 3 ++-

>  1 file changed, 2 insertions(+), 1 deletion(-)

> 

> diff --git a/drivers/video/fbdev/amba-clcd-versatile.c b/drivers/video/fbdev/amba-clcd-versatile.c

> index 19ad8645d93c..d909b7dda14d 100644

> --- a/drivers/video/fbdev/amba-clcd-versatile.c

> +++ b/drivers/video/fbdev/amba-clcd-versatile.c

> @@ -527,7 +527,8 @@ int versatile_clcd_init_panel(struct clcd_fb *fb,

>  					     &clcd_id);

>  	if (!np) {

>  		dev_err(dev, "no Versatile syscon node\n");

> -		return -ENODEV;

> +		/* Vexpress does not have this */

> +		return 0;

>  	}

>  	versatile_clcd_type = (enum versatile_clcd)clcd_id->data;


Actually, the above doesn't look correct. If this is not an error, then
the driver shouldn't print an error.

Shall I just remove the print?

 Tomi
Linus Walleij Nov. 3, 2016, 9:25 a.m. | #6
On Wed, Nov 2, 2016 at 9:34 AM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
> On 20/10/16 09:46, Linus Walleij wrote:

>> The CLCD does not come up on Versatile Express as it does not

>> (currently) have a syscon node for controlling the block apart

>> from the CLCD itself. Make sure the .init() function can bail

>> out without an error making it probe again.

>>

>> Reported-by: Amit Pundir <amit.pundir@linaro.org>

>> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

>> ---

>>  drivers/video/fbdev/amba-clcd-versatile.c | 3 ++-

>>  1 file changed, 2 insertions(+), 1 deletion(-)

>>

>> diff --git a/drivers/video/fbdev/amba-clcd-versatile.c b/drivers/video/fbdev/amba-clcd-versatile.c

>> index 19ad8645d93c..d909b7dda14d 100644

>> --- a/drivers/video/fbdev/amba-clcd-versatile.c

>> +++ b/drivers/video/fbdev/amba-clcd-versatile.c

>> @@ -527,7 +527,8 @@ int versatile_clcd_init_panel(struct clcd_fb *fb,

>>                                            &clcd_id);

>>       if (!np) {

>>               dev_err(dev, "no Versatile syscon node\n");

>> -             return -ENODEV;

>> +             /* Vexpress does not have this */

>> +             return 0;

>>       }

>>       versatile_clcd_type = (enum versatile_clcd)clcd_id->data;

>

> Actually, the above doesn't look correct. If this is not an error, then

> the driver shouldn't print an error.

>

> Shall I just remove the print?


You're right, sorry for not thinking deeper :(

Just cut the print.

Thanks!

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch hide | download patch | download mbox

diff --git a/drivers/video/fbdev/amba-clcd-versatile.c b/drivers/video/fbdev/amba-clcd-versatile.c
index 19ad8645d93c..d909b7dda14d 100644
--- a/drivers/video/fbdev/amba-clcd-versatile.c
+++ b/drivers/video/fbdev/amba-clcd-versatile.c
@@ -527,7 +527,8 @@  int versatile_clcd_init_panel(struct clcd_fb *fb,
 					     &clcd_id);
 	if (!np) {
 		dev_err(dev, "no Versatile syscon node\n");
-		return -ENODEV;
+		/* Vexpress does not have this */
+		return 0;
 	}
 	versatile_clcd_type = (enum versatile_clcd)clcd_id->data;