On 02/04/2019 14.21, Laurent Pinchart wrote:
> Hi Peter,
> 
> Thank you for the patch.
> 
> On Mon, Apr 01, 2019 at 03:33:42PM +0300, Peter Ujfalusi wrote:
>> In case either the HPD gpio is not specified or when the HPD gpio can not
>> be used as interrupt we should tell the core that the HPD needs to be
>> polled for detecting hotplug.
>>
>> Signed-off-by: Peter Ujfalusi <peter.ujfal...@ti.com>
>> ---
>>  drivers/gpu/drm/bridge/ti-tfp410.c | 14 +++++++++++---
>>  1 file changed, 11 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c 
>> b/drivers/gpu/drm/bridge/ti-tfp410.c
>> index 285be4a0f4bd..6fc831eb3804 100644
>> --- a/drivers/gpu/drm/bridge/ti-tfp410.c
>> +++ b/drivers/gpu/drm/bridge/ti-tfp410.c
>> @@ -31,6 +31,7 @@ struct tfp410 {
>>  
>>      struct i2c_adapter      *ddc;
>>      struct gpio_desc        *hpd;
>> +    int                     hpd_irq;
>>      struct delayed_work     hpd_work;
>>      struct gpio_desc        *powerdown;
>>  
>> @@ -124,8 +125,10 @@ static int tfp410_attach(struct drm_bridge *bridge)
>>              return -ENODEV;
>>      }
>>  
>> -    if (dvi->hpd)
>> +    if (dvi->hpd_irq >= 0)
> 
> Do you need a new hpd_irq field ? Can't you just test dvi->hpd as done
> today, simply adding the else clause to this if ?

We can have hpd GPIO, but the GPIO might not be usable for interrupt.

> 
>>              dvi->connector.polled = DRM_CONNECTOR_POLL_HPD;
>> +    else
>> +            dvi->connector.polled = DRM_CONNECTOR_POLL_CONNECT | 
>> DRM_CONNECTOR_POLL_DISCONNECT;
>>  
>>      drm_connector_helper_add(&dvi->connector,
>>                               &tfp410_con_helper_funcs);
>> @@ -324,10 +327,15 @@ static int tfp410_init(struct device *dev, bool i2c)
>>              return PTR_ERR(dvi->powerdown);
>>      }
>>  
>> -    if (dvi->hpd) {
>> +    if (dvi->hpd)
>> +            dvi->hpd_irq = gpiod_to_irq(dvi->hpd);
>> +    else
>> +            dvi->hpd_irq = -ENXIO;
>> +
>> +    if (dvi->hpd_irq >= 0) {
>>              INIT_DELAYED_WORK(&dvi->hpd_work, tfp410_hpd_work_func);
>>  
>> -            ret = devm_request_threaded_irq(dev, gpiod_to_irq(dvi->hpd),
>> +            ret = devm_request_threaded_irq(dev, dvi->hpd_irq,
>>                      NULL, tfp410_hpd_irq_thread, IRQF_TRIGGER_RISING |
>>                      IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
>>                      "hdmi-hpd", dvi);
> 

- Péter

Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to