diff mbox series

drm/tegra: return with probe defer if GPIO subsystem is not ready

Message ID 20180726133606.14587-1-stefan@agner.ch
State Deferred
Headers show
Series drm/tegra: return with probe defer if GPIO subsystem is not ready | expand

Commit Message

Stefan Agner July 26, 2018, 1:36 p.m. UTC
If the GPIO subsystem is not ready make sure to return -EPROBE_DEFER
instead of silently continuing without HPD.

Reported-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Signed-off-by: Stefan Agner <stefan@agner.ch>
---
 drivers/gpu/drm/tegra/output.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Stefan Agner Sept. 6, 2018, 11:31 p.m. UTC | #1
On 26.07.2018 06:36, Stefan Agner wrote:
> If the GPIO subsystem is not ready make sure to return -EPROBE_DEFER
> instead of silently continuing without HPD.
> 
> Reported-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Signed-off-by: Stefan Agner <stefan@agner.ch>

I think this did not get merged yet, any chance to get it in?

--
Stefan

> ---
>  drivers/gpu/drm/tegra/output.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/tegra/output.c b/drivers/gpu/drm/tegra/output.c
> index ffe34bd0bb9d..4bcefe455afd 100644
> --- a/drivers/gpu/drm/tegra/output.c
> +++ b/drivers/gpu/drm/tegra/output.c
> @@ -133,7 +133,9 @@ int tegra_output_probe(struct tegra_output *output)
>  	output->hpd_gpio = of_get_named_gpio_flags(output->of_node,
>  						   "nvidia,hpd-gpio", 0,
>  						   &output->hpd_gpio_flags);
> -	if (gpio_is_valid(output->hpd_gpio)) {
> +	if (output->hpd_gpio == -EPROBE_DEFER) {
> +		return -EPROBE_DEFER;
> +	} else if (gpio_is_valid(output->hpd_gpio)) {
>  		unsigned long flags;
>  
>  		err = gpio_request_one(output->hpd_gpio, GPIOF_DIR_IN,
Stefan Agner July 26, 2019, 2:23 p.m. UTC | #2
Hi Thierry, Hi Dave,

On 2018-09-07 01:31, Stefan Agner wrote:
> On 26.07.2018 06:36, Stefan Agner wrote:
>> If the GPIO subsystem is not ready make sure to return -EPROBE_DEFER
>> instead of silently continuing without HPD.
>>
>> Reported-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>> Signed-off-by: Stefan Agner <stefan@agner.ch>
> 
> I think this did not get merged yet, any chance to get it in?

Any chance to get this in in the next merge window?

--
Stefan

> 
> --
> Stefan
> 
>> ---
>>  drivers/gpu/drm/tegra/output.c | 4 +++-
>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/tegra/output.c b/drivers/gpu/drm/tegra/output.c
>> index ffe34bd0bb9d..4bcefe455afd 100644
>> --- a/drivers/gpu/drm/tegra/output.c
>> +++ b/drivers/gpu/drm/tegra/output.c
>> @@ -133,7 +133,9 @@ int tegra_output_probe(struct tegra_output *output)
>>  	output->hpd_gpio = of_get_named_gpio_flags(output->of_node,
>>  						   "nvidia,hpd-gpio", 0,
>>  						   &output->hpd_gpio_flags);
>> -	if (gpio_is_valid(output->hpd_gpio)) {
>> +	if (output->hpd_gpio == -EPROBE_DEFER) {
>> +		return -EPROBE_DEFER;
>> +	} else if (gpio_is_valid(output->hpd_gpio)) {
>>  		unsigned long flags;
>>
>>  		err = gpio_request_one(output->hpd_gpio, GPIOF_DIR_IN,
Dmitry Osipenko July 26, 2019, 2:46 p.m. UTC | #3
26.07.2019 17:23, Stefan Agner пишет:
> Hi Thierry, Hi Dave,
> 
> On 2018-09-07 01:31, Stefan Agner wrote:
>> On 26.07.2018 06:36, Stefan Agner wrote:
>>> If the GPIO subsystem is not ready make sure to return -EPROBE_DEFER
>>> instead of silently continuing without HPD.
>>>
>>> Reported-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>>> Signed-off-by: Stefan Agner <stefan@agner.ch>
>>
>> I think this did not get merged yet, any chance to get it in?
> 
> Any chance to get this in in the next merge window?

The patch isn't relevant anymore (since v5.3) because the code was
changed and now propagates the proper error code in a case of error,
please see [1].

[1]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.3-rc1&id=bbad640709fd43ff77b8838c409c977c0b28430c
Stefan Agner July 26, 2019, 2:57 p.m. UTC | #4
On 2019-07-26 16:46, Dmitry Osipenko wrote:
> 26.07.2019 17:23, Stefan Agner пишет:
>> Hi Thierry, Hi Dave,
>>
>> On 2018-09-07 01:31, Stefan Agner wrote:
>>> On 26.07.2018 06:36, Stefan Agner wrote:
>>>> If the GPIO subsystem is not ready make sure to return -EPROBE_DEFER
>>>> instead of silently continuing without HPD.
>>>>
>>>> Reported-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>>>> Signed-off-by: Stefan Agner <stefan@agner.ch>
>>>
>>> I think this did not get merged yet, any chance to get it in?
>>
>> Any chance to get this in in the next merge window?
> 
> The patch isn't relevant anymore (since v5.3) because the code was
> changed and now propagates the proper error code in a case of error,
> please see [1].
> 
> [1]
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.3-rc1&id=bbad640709fd43ff77b8838c409c977c0b28430c

Oh I see, I accidentally checked in Linux 5.2. Sorry for the noise and
thanks for the link!

--
Stefan
Dmitry Osipenko July 26, 2019, 3 p.m. UTC | #5
26.07.2019 17:57, Stefan Agner пишет:
> On 2019-07-26 16:46, Dmitry Osipenko wrote:
>> 26.07.2019 17:23, Stefan Agner пишет:
>>> Hi Thierry, Hi Dave,
>>>
>>> On 2018-09-07 01:31, Stefan Agner wrote:
>>>> On 26.07.2018 06:36, Stefan Agner wrote:
>>>>> If the GPIO subsystem is not ready make sure to return -EPROBE_DEFER
>>>>> instead of silently continuing without HPD.
>>>>>
>>>>> Reported-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>>>>> Signed-off-by: Stefan Agner <stefan@agner.ch>
>>>>
>>>> I think this did not get merged yet, any chance to get it in?
>>>
>>> Any chance to get this in in the next merge window?
>>
>> The patch isn't relevant anymore (since v5.3) because the code was
>> changed and now propagates the proper error code in a case of error,
>> please see [1].
>>
>> [1]
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.3-rc1&id=bbad640709fd43ff77b8838c409c977c0b28430c
> 
> Oh I see, I accidentally checked in Linux 5.2. Sorry for the noise and
> thanks for the link!

No problems, you're welcome.
diff mbox series

Patch

diff --git a/drivers/gpu/drm/tegra/output.c b/drivers/gpu/drm/tegra/output.c
index ffe34bd0bb9d..4bcefe455afd 100644
--- a/drivers/gpu/drm/tegra/output.c
+++ b/drivers/gpu/drm/tegra/output.c
@@ -133,7 +133,9 @@  int tegra_output_probe(struct tegra_output *output)
 	output->hpd_gpio = of_get_named_gpio_flags(output->of_node,
 						   "nvidia,hpd-gpio", 0,
 						   &output->hpd_gpio_flags);
-	if (gpio_is_valid(output->hpd_gpio)) {
+	if (output->hpd_gpio == -EPROBE_DEFER) {
+		return -EPROBE_DEFER;
+	} else if (gpio_is_valid(output->hpd_gpio)) {
 		unsigned long flags;
 
 		err = gpio_request_one(output->hpd_gpio, GPIOF_DIR_IN,