question about drivers/gpu/drm/gma500/oaktrail_lvds.c

Julia Lawall julia.lawall at lip6.fr
Sun Jul 8 22:16:19 PDT 2012


On Mon, 9 Jul 2012, Patrik Jakobsson wrote:

> On Sun, Jul 8, 2012 at 10:16 PM, Alan Cox <alan at lxorguk.ukuu.org.uk> wrote:
>> On Sun, 8 Jul 2012 10:39:43 +0200 (CEST)
>> Julia Lawall <julia.lawall at lip6.fr> wrote:
>>
>>> In the function oaktrail_lvds_mode_set, I don't think that the following
>>> code makes any sense:
>>>
>>>          /* Find the connector we're trying to set up */
>>>          list_for_each_entry(connector, &mode_config->connector_list, head) {
>>>                  if (!connector->encoder || connector->encoder->crtc != crtc)
>>>                          continue;
>>>          }
>>>
>>>          if (!connector) {
>>>                  DRM_ERROR("Couldn't find connector when setting mode");
>>>                  return;
>>>          }
>>>
>>>          drm_connector_property_get_value(
>>>                  connector,
>>>                  dev->mode_config.scaling_mode_property,
>>>                  &v);
>>>
>>> The initial loop is a no-op, because it always continues.  The test
>>> !connector can never be true, because at the end of a list_for_each_entry
>>> connector points to the list head, and calling
>>> drm_connector_property_get_value on the list head probably does not make
>>> sense.
>>
>> We test !connector->encoder rather than !connector ?
>
> It seems we should break on :
> if (connector->encoder && connector->encoder == encoder)
>
> Then do a check after list iteration:
> if (!connector || connector->encoder != encoder)
>    DRM_ERROR("Couldn't find connector when setting mode");

Possible.  The !connector is still not needed, but the overall logic seems 
better.

julia


More information about the dri-devel mailing list