All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] extcon: int3496: Set the id pin to direction-input if necessary
@ 2017-03-13  8:40 ` Hans de Goede
  2017-03-13 10:30   ` Chanwoo Choi
  2017-03-13 11:10   ` Andy Shevchenko
  0 siblings, 2 replies; 5+ messages in thread
From: Hans de Goede @ 2017-03-13  8:40 UTC (permalink / raw)
  To: MyungJoo Ham, Chanwoo Choi, Chen-Yu Tsai
  Cc: Hans de Goede, linux-kernel, Andy Shevchenko

With the new more strict ACPI gpio code the dsdt's IoRestriction
flags are honored on gpiod_get, but in some dsdt's it is wrong,
so explicitly call gpiod_direction_input on the id gpio if
necessary.

This fixes the following errors when the int3496 code is used
together with the new more strict ACPI gpio code:

[ 2382.484415] gpio gpiochip1: (INT33FF:01): gpiochip_lock_as_irq: tried to flag a GPIO set as output for IRQ
[ 2382.484425] gpio gpiochip1: (INT33FF:01): unable to lock HW IRQ 3 for IRQ
[ 2382.484429] genirq: Failed to request resources for INT3496:00 (irq 174) on irqchip chv-gpio
[ 2382.484518] intel-int3496 INT3496:00: can't request IRQ for USB ID GPIO: -22
[ 2382.500359] intel-int3496: probe of INT3496:00 failed with error -22

Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
Changes in v2:
-Warn about firmware bug when the dsdt's IoRestriction does not allow input
---
 drivers/extcon/extcon-intel-int3496.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/extcon/extcon-intel-int3496.c b/drivers/extcon/extcon-intel-int3496.c
index b8ac947..18801eb 100644
--- a/drivers/extcon/extcon-intel-int3496.c
+++ b/drivers/extcon/extcon-intel-int3496.c
@@ -113,6 +113,10 @@ static int int3496_probe(struct platform_device *pdev)
 		dev_err(dev, "can't request USB ID GPIO: %d\n", ret);
 		return ret;
 	}
+	if (gpiod_get_direction(data->gpio_usb_id) != GPIOF_DIR_IN) {
+		dev_warn(dev, "firmware bug USB ID GPIO not in input mode, fixing\n");
+		gpiod_direction_input(data->gpio_usb_id);
+	}
 
 	data->usb_id_irq = gpiod_to_irq(data->gpio_usb_id);
 	if (data->usb_id_irq < 0) {
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] extcon: int3496: Set the id pin to direction-input if necessary
  2017-03-13  8:40 ` [PATCH v2] extcon: int3496: Set the id pin to direction-input if necessary Hans de Goede
@ 2017-03-13 10:30   ` Chanwoo Choi
  2017-03-13 10:51     ` Hans de Goede
  2017-03-13 11:10   ` Andy Shevchenko
  1 sibling, 1 reply; 5+ messages in thread
From: Chanwoo Choi @ 2017-03-13 10:30 UTC (permalink / raw)
  To: Hans de Goede, MyungJoo Ham, Chen-Yu Tsai; +Cc: linux-kernel, Andy Shevchenko

Hi,

On 2017년 03월 13일 17:40, Hans de Goede wrote:
> With the new more strict ACPI gpio code the dsdt's IoRestriction
> flags are honored on gpiod_get, but in some dsdt's it is wrong,
> so explicitly call gpiod_direction_input on the id gpio if
> necessary.
> 
> This fixes the following errors when the int3496 code is used
> together with the new more strict ACPI gpio code:
> 
> [ 2382.484415] gpio gpiochip1: (INT33FF:01): gpiochip_lock_as_irq: tried to flag a GPIO set as output for IRQ
> [ 2382.484425] gpio gpiochip1: (INT33FF:01): unable to lock HW IRQ 3 for IRQ
> [ 2382.484429] genirq: Failed to request resources for INT3496:00 (irq 174) on irqchip chv-gpio
> [ 2382.484518] intel-int3496 INT3496:00: can't request IRQ for USB ID GPIO: -22
> [ 2382.500359] intel-int3496: probe of INT3496:00 failed with error -22
> 
> Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
> Changes in v2:
> -Warn about firmware bug when the dsdt's IoRestriction does not allow input
> ---
>  drivers/extcon/extcon-intel-int3496.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/extcon/extcon-intel-int3496.c b/drivers/extcon/extcon-intel-int3496.c
> index b8ac947..18801eb 100644
> --- a/drivers/extcon/extcon-intel-int3496.c
> +++ b/drivers/extcon/extcon-intel-int3496.c
> @@ -113,6 +113,10 @@ static int int3496_probe(struct platform_device *pdev)
>  		dev_err(dev, "can't request USB ID GPIO: %d\n", ret);
>  		return ret;
>  	}

Need to add one blank line at here.

> +	if (gpiod_get_direction(data->gpio_usb_id) != GPIOF_DIR_IN) {
> +		dev_warn(dev, "firmware bug USB ID GPIO not in input mode, fixing\n");

The length of warning comment is over 80 char.
We need to reduce the length of comment.

I modify the comment as following: If you ok, I'll apply it. 
	"ID pin isn't in input mode due to firmware bug"

Or if you make new comment under 80 char, please send v3 patch.

> +		gpiod_direction_input(data->gpio_usb_id);
> +	}
>  
>  	data->usb_id_irq = gpiod_to_irq(data->gpio_usb_id);
>  	if (data->usb_id_irq < 0) {
> 

-- 
Best Regards,
Chanwoo Choi
Samsung Electronics

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] extcon: int3496: Set the id pin to direction-input if necessary
  2017-03-13 10:30   ` Chanwoo Choi
@ 2017-03-13 10:51     ` Hans de Goede
  2017-03-13 11:03       ` Chanwoo Choi
  0 siblings, 1 reply; 5+ messages in thread
From: Hans de Goede @ 2017-03-13 10:51 UTC (permalink / raw)
  To: Chanwoo Choi, MyungJoo Ham, Chen-Yu Tsai; +Cc: linux-kernel, Andy Shevchenko

Hi,

On 13-03-17 11:30, Chanwoo Choi wrote:
> Hi,
>
> On 2017년 03월 13일 17:40, Hans de Goede wrote:
>> With the new more strict ACPI gpio code the dsdt's IoRestriction
>> flags are honored on gpiod_get, but in some dsdt's it is wrong,
>> so explicitly call gpiod_direction_input on the id gpio if
>> necessary.
>>
>> This fixes the following errors when the int3496 code is used
>> together with the new more strict ACPI gpio code:
>>
>> [ 2382.484415] gpio gpiochip1: (INT33FF:01): gpiochip_lock_as_irq: tried to flag a GPIO set as output for IRQ
>> [ 2382.484425] gpio gpiochip1: (INT33FF:01): unable to lock HW IRQ 3 for IRQ
>> [ 2382.484429] genirq: Failed to request resources for INT3496:00 (irq 174) on irqchip chv-gpio
>> [ 2382.484518] intel-int3496 INT3496:00: can't request IRQ for USB ID GPIO: -22
>> [ 2382.500359] intel-int3496: probe of INT3496:00 failed with error -22
>>
>> Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>> ---
>> Changes in v2:
>> -Warn about firmware bug when the dsdt's IoRestriction does not allow input
>> ---
>>  drivers/extcon/extcon-intel-int3496.c | 4 ++++
>>  1 file changed, 4 insertions(+)
>>
>> diff --git a/drivers/extcon/extcon-intel-int3496.c b/drivers/extcon/extcon-intel-int3496.c
>> index b8ac947..18801eb 100644
>> --- a/drivers/extcon/extcon-intel-int3496.c
>> +++ b/drivers/extcon/extcon-intel-int3496.c
>> @@ -113,6 +113,10 @@ static int int3496_probe(struct platform_device *pdev)
>>  		dev_err(dev, "can't request USB ID GPIO: %d\n", ret);
>>  		return ret;
>>  	}
>
> Need to add one blank line at here.

I grouped it together with the earlier error check since it is still
checking the returned gpiodesc is valid, but if you prefer to add a line
that is fine by me.

>
>> +	if (gpiod_get_direction(data->gpio_usb_id) != GPIOF_DIR_IN) {
>> +		dev_warn(dev, "firmware bug USB ID GPIO not in input mode, fixing\n");
>
> The length of warning comment is over 80 char.

Which is allowed, try running checkpatch.pl on the patch. log messages may
cross the 80 char limit, to avoid splitting them over multiple lines which
would make grepping for them hard.

> We need to reduce the length of comment.

Nope, not needed, as said this is allowed.

> I modify the comment as following: If you ok, I'll apply it.
> 	"ID pin isn't in input mode due to firmware bug"

I prefer my original text which better describes what is happening
and as said before, the text going over the 80 char limit is allowed.

Regards,

Hans



>
> Or if you make new comment under 80 char, please send v3 patch.
>
>> +		gpiod_direction_input(data->gpio_usb_id);
>> +	}
>>
>>  	data->usb_id_irq = gpiod_to_irq(data->gpio_usb_id);
>>  	if (data->usb_id_irq < 0) {
>>
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] extcon: int3496: Set the id pin to direction-input if necessary
  2017-03-13 10:51     ` Hans de Goede
@ 2017-03-13 11:03       ` Chanwoo Choi
  0 siblings, 0 replies; 5+ messages in thread
From: Chanwoo Choi @ 2017-03-13 11:03 UTC (permalink / raw)
  To: Hans de Goede, MyungJoo Ham, Chen-Yu Tsai; +Cc: linux-kernel, Andy Shevchenko

On 2017년 03월 13일 19:51, Hans de Goede wrote:
> Hi,
> 
> On 13-03-17 11:30, Chanwoo Choi wrote:
>> Hi,
>>
>> On 2017년 03월 13일 17:40, Hans de Goede wrote:
>>> With the new more strict ACPI gpio code the dsdt's IoRestriction
>>> flags are honored on gpiod_get, but in some dsdt's it is wrong,
>>> so explicitly call gpiod_direction_input on the id gpio if
>>> necessary.
>>>
>>> This fixes the following errors when the int3496 code is used
>>> together with the new more strict ACPI gpio code:
>>>
>>> [ 2382.484415] gpio gpiochip1: (INT33FF:01): gpiochip_lock_as_irq: tried to flag a GPIO set as output for IRQ
>>> [ 2382.484425] gpio gpiochip1: (INT33FF:01): unable to lock HW IRQ 3 for IRQ
>>> [ 2382.484429] genirq: Failed to request resources for INT3496:00 (irq 174) on irqchip chv-gpio
>>> [ 2382.484518] intel-int3496 INT3496:00: can't request IRQ for USB ID GPIO: -22
>>> [ 2382.500359] intel-int3496: probe of INT3496:00 failed with error -22
>>>
>>> Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
>>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>>> ---
>>> Changes in v2:
>>> -Warn about firmware bug when the dsdt's IoRestriction does not allow input
>>> ---
>>>  drivers/extcon/extcon-intel-int3496.c | 4 ++++
>>>  1 file changed, 4 insertions(+)
>>>
>>> diff --git a/drivers/extcon/extcon-intel-int3496.c b/drivers/extcon/extcon-intel-int3496.c
>>> index b8ac947..18801eb 100644
>>> --- a/drivers/extcon/extcon-intel-int3496.c
>>> +++ b/drivers/extcon/extcon-intel-int3496.c
>>> @@ -113,6 +113,10 @@ static int int3496_probe(struct platform_device *pdev)
>>>          dev_err(dev, "can't request USB ID GPIO: %d\n", ret);
>>>          return ret;
>>>      }
>>
>> Need to add one blank line at here.
> 
> I grouped it together with the earlier error check since it is still
> checking the returned gpiodesc is valid, but if you prefer to add a line
> that is fine by me.

If you want to group them, you should add it as following:

   } else if (gpiod_get_direction(data->gpio_usb_id) != GPIOF_DIR_IN) {

> 
>>
>>> +    if (gpiod_get_direction(data->gpio_usb_id) != GPIOF_DIR_IN) {
>>> +        dev_warn(dev, "firmware bug USB ID GPIO not in input mode, fixing\n");
>>
>> The length of warning comment is over 80 char.
> 
> Which is allowed, try running checkpatch.pl on the patch. log messages may
> cross the 80 char limit, to avoid splitting them over multiple lines which
> would make grepping for them hard.
> 
>> We need to reduce the length of comment.
> 
> Nope, not needed, as said this is allowed.
> 
>> I modify the comment as following: If you ok, I'll apply it.
>>     "ID pin isn't in input mode due to firmware bug"
> 
> I prefer my original text which better describes what is happening
> and as said before, the text going over the 80 char limit is allowed.

Right. The over the 80 char is possible. But, I prefer to write
the comment under the 80 char. But if you want to use more detailed
comment, I think that you can make your sentence more formal.

[snip]

-- 
Best Regards,
Chanwoo Choi
Samsung Electronics

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] extcon: int3496: Set the id pin to direction-input if necessary
  2017-03-13  8:40 ` [PATCH v2] extcon: int3496: Set the id pin to direction-input if necessary Hans de Goede
  2017-03-13 10:30   ` Chanwoo Choi
@ 2017-03-13 11:10   ` Andy Shevchenko
  1 sibling, 0 replies; 5+ messages in thread
From: Andy Shevchenko @ 2017-03-13 11:10 UTC (permalink / raw)
  To: Hans de Goede
  Cc: MyungJoo Ham, Chanwoo Choi, Chen-Yu Tsai, linux-kernel, Andy Shevchenko

On Mon, Mar 13, 2017 at 10:40 AM, Hans de Goede <hdegoede@redhat.com> wrote:
> With the new more strict ACPI gpio code the dsdt's IoRestriction
> flags are honored on gpiod_get, but in some dsdt's it is wrong,
> so explicitly call gpiod_direction_input on the id gpio if
> necessary.
>
> This fixes the following errors when the int3496 code is used
> together with the new more strict ACPI gpio code:
>
> [ 2382.484415] gpio gpiochip1: (INT33FF:01): gpiochip_lock_as_irq: tried to flag a GPIO set as output for IRQ
> [ 2382.484425] gpio gpiochip1: (INT33FF:01): unable to lock HW IRQ 3 for IRQ
> [ 2382.484429] genirq: Failed to request resources for INT3496:00 (irq 174) on irqchip chv-gpio
> [ 2382.484518] intel-int3496 INT3496:00: can't request IRQ for USB ID GPIO: -22
> [ 2382.500359] intel-int3496: probe of INT3496:00 failed with error -22

> +               dev_warn(dev, "firmware bug USB ID GPIO not in input mode, fixing\n");

Please, use FW_BUG macro.

-- 
With Best Regards,
Andy Shevchenko

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-03-13 11:10 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CGME20170313084009epcas2p2c9790c6378225f66cc8cacbb82f2ba41@epcas2p2.samsung.com>
2017-03-13  8:40 ` [PATCH v2] extcon: int3496: Set the id pin to direction-input if necessary Hans de Goede
2017-03-13 10:30   ` Chanwoo Choi
2017-03-13 10:51     ` Hans de Goede
2017-03-13 11:03       ` Chanwoo Choi
2017-03-13 11:10   ` Andy Shevchenko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.