Re: [PATCH]"drm: change DRM_MIPI_DSI module type from "bool" to "tristate".

From: Jani Nikula
Date: Wed Oct 12 2016 - 10:28:58 EST

On Wed, 12 Oct 2016, Emil Velikov <emil.l.velikov@xxxxxxxxx> wrote:
> On 11 October 2016 at 10:33, Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx> wrote:
>> On Tue, 11 Oct 2016, "Sun, Jing A" <jing.a.sun@xxxxxxxxx> wrote:
>>> It's needed that DRM Driver module could be removed and reloaded after
>>> kernel booting on the projects that I have been working on, and I hope
>>> such module type change could be accepted. Looks like Iwai has similar
>>> change request as well. Would you please review it and let us know if
>>> any concerns?
>> Looking at the Kconfig, selecting CONFIG_DRM_MIPI_DSI is against the
>> recommendations of Documentation/kbuild/kconfig-language.txt:
>> select should be used with care. select will force
>> a symbol to a value without visiting the dependencies.
>> By abusing select you are able to select a symbol FOO even
>> if FOO depends on BAR that is not set.
>> In general use select only for non-visible symbols
>> (no prompts anywhere) and for symbols with no dependencies.
>> That will limit the usefulness but on the other hand avoid
>> the illegal configurations all over.
>> Indeed, you may end up with CONFIG_DRM_MIPI_DSI=y and CONFIG_DRM=m,
>> which violates DRM_MIPI_DSI dependency on CONFIG_DRM. This is broken and
>> should be fixed. The suggested patch does *not* fix this issue.
> Jani, git log suggests you as the unfortunate author of the select
> DRM_MIPI_DSI/select DRM_PANEL hunks in i915 ;-)


As much as my present self would like to scold my past self for all his
mistakes, I have to remind myself that it is the mistakes that have
given me invaluable experience that my past self didn't have. I can only
hope my future self will have time to fix even a fraction of the

Anyway, as Andrzej pointed out, all configs that select DRM_MIPI_DSI
also depend on DRM, so this problem can't currently occur. Once dsi bus
un-registration gets addressed, we can turn DRM_MIPI_DSI into a tristate
config (i.e. a loadable module).


Jani Nikula, Intel Open Source Technology Center