On Thu, Aug 16, 2018 at 02:54:14PM -0400, Sean Paul wrote:
From: Sean Paul seanpaul@chromium.org
DRM_MIPI_DSI is included via both "select" and "depends on", this is trouble waiting to happen since this will result in different behavior depending on which is used.
This patch resolves the problem by:
- Converting all inclusion to "select" since DRM_MIPI_DSI is not a menu item.
- Remove "depends on DRM" since "select"ing DRM_MIPI_DSI won't include DRM anyways, so this is misleading.
The reason behind the decision to have both select and depends on for this was, if I recall correctly, so that a driver would select the symbol if it implemented (i.e. "provided") a DSI controller and panel drivers (or bridge drivers for that matter) would depend on the symbol to specify that they want to "consume" a DSI controller. That way the DSI panels and bridges can't be selected unless there is a driver that provides a DSI controller. If there's no driver that provides a DSI controller, there's no use in enabling any panels that need one.
Granted, in retrospect this seems somewhat over-engineered, but the reason why it works is because thy symbol is not user-visible. That's one of the, I think even documented, use-cases where it is safe to use both select and depends.
That said, I'm fine with simplifying this, but if we do, I would prefer going all the way and just removing the symbol entirely. It's not like it is a lot of extra infrastructure, at least compared to the rest of the helpers that we already pull in. There are also quite a few drivers that support DSI now, so I think there's more justification for unconditional inclusion than there used to be.
Thierry