diff mbox

video: ARM CLCD: fix Vexpress regression

Message ID 1476945992-5164-1-git-send-email-linus.walleij@linaro.org (mailing list archive)
State New, archived
Headers show

Commit Message

Linus Walleij Oct. 20, 2016, 6:46 a.m. UTC
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(-)

Comments

Amit Pundir Oct. 22, 2016, 3:44 a.m. UTC | #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. UTC | #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. UTC | #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. UTC | #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. UTC | #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. UTC | #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
diff mbox

Patch

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;