Re: [PATCH v2] drm/display: Select DP helper for DRM_DP_AUX_CHARDEV and DRM_DP_CEC

From: Javier Martinez Canillas
Date: Thu Apr 28 2022 - 03:53:00 EST


On 4/28/22 09:45, Thomas Zimmermann wrote:

[snip]

>>> You cannot select DISPLAY_DP_HELPER without DISPLAY_HELPER.
>>>
>>
>> That was my original thought as well and what did in v1, but then I noticed
>> that doing that it would force DRM_DISPLAY_HELPER to be set as built-in and
>> not allow to be built as a module.
>
> It was a rhetorical only. I didn't mean to actually set DISPLAY_HELPER.
>

Ah, sorry for misunderstanding.

>>
>>> Can't you simply make it depend on DISPLAY_DP_HELPER. The menu entry
>>> will show up as soon as there's a driver that selcets DISPLAY_DP_HELPER.
>>>
>>
>> I could but then that means that once won't be able to select these two config
>> options unless some enable symbol selects DRM_DISPLAY_DP_HELPER.
>>
>> In my opinion, DRM_DP_AUX_CHARDEV and DRM_DP_CEC are different than all other
>> options that select DRM_DISPLAY_DP_HELPER, since those are drivers and want to
>> have both DRM_DISPLAY_DP_HELPER and DRM_DISPLAY_HELPER set.
>>
>> But DRM_DP_AUX_CHARDEV and DRM_DP_CEC are just included in drm_display_helper.o
>> if enabled, and depend on symbols that are present if CONFIG_DRM_DISPLAY_DP_HELPER
>> is enabled. So just need the latter, if DRM_DISPLAY_HELPER is not enabled then it
>> will just be a no-op.
>>
>> Having written that though I noticed that a "depends on DRM_DISPLAY_HELPER" makes
>> sense. If you agree I can add it and post a v3.
>
> Yes please. These options enable features of the DP code. If there's no
> driver with DP, it doesn't make sense to allow them.
>
> I know that there could be an odd situation where userspace might not
> have DP, but still wants the chardev file of aux bus. But that
> situation existed already when the code was located within KMS helpers.
>

Agreed.

>>
>> Now, pondering more about this issue, probably the most correct thing to do is for
>> the drivers that make use of the symbols exported by DRM_DP_{AUX_CHARDEV,CEC} to
>> select these. What do you think ?
>
> That's not considered good style. Select should not be used for anything
> that is user-configurable. [1]
>

Right. So giving even more thought to this, now I think that we should just include
drm_dp_aux_dev.o, drm_dp_cec.o (and probably drm_dp_aux_bus.o?) unconditionally to
drm_display_helper-$(CONFIG_DRM_DISPLAY_DP_HELPER).

After all, these are not big objects and drm_display_helper can now be built as module.

I don't see that much value to have separate user-configurable config options...

--
Best regards,

Javier Martinez Canillas
Linux Engineering
Red Hat