Message ID | 20190415081300.24831-2-ronald@innovation.ch (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Add Apple SPI keyboard and trackpad driver | expand |
On 15.04.2019 10:12, Ronald Tschalär wrote: > commit d6abe6df706c (drm/bridge: sil_sii8620: do not have a dependency > of RC_CORE) changed the driver to select both RC_CORE and INPUT. > However, this causes problems with other drivers, in particular an input > driver that depends on MFD_INTEL_LPSS_PCI (to be added in a separate > commit): > > drivers/clk/Kconfig:9:error: recursive dependency detected! > drivers/clk/Kconfig:9: symbol COMMON_CLK is selected by MFD_INTEL_LPSS > drivers/mfd/Kconfig:566: symbol MFD_INTEL_LPSS is selected by MFD_INTEL_LPSS_PCI > drivers/mfd/Kconfig:580: symbol MFD_INTEL_LPSS_PCI is implied by KEYBOARD_APPLESPI > drivers/input/keyboard/Kconfig:73: symbol KEYBOARD_APPLESPI depends on INPUT > drivers/input/Kconfig:8: symbol INPUT is selected by DRM_SIL_SII8620 > drivers/gpu/drm/bridge/Kconfig:83: symbol DRM_SIL_SII8620 depends on DRM_BRIDGE > drivers/gpu/drm/bridge/Kconfig:1: symbol DRM_BRIDGE is selected by DRM_PL111 > drivers/gpu/drm/pl111/Kconfig:1: symbol DRM_PL111 depends on COMMON_CLK > > According to the docs and general consensus, select should only be used > for non user-visible symbols, but both RC_CORE and INPUT are > user-visible. Furthermore almost all other references to INPUT > throughout the kernel config are depends, not selects. For this reason > the first part of this change reverts commit d6abe6df706c. > > In order to address the original reason for commit d6abe6df706c, namely > that not all boards use the remote controller functionality and hence > should not need have to deal with RC_CORE, the second part of this > change now makes the remote control support in the driver optional and > contingent on RC_CORE being defined. And with this the hard dependency > on INPUT also goes away as that is only needed if RC_CORE is defined > (which in turn already depends on INPUT). > > CC: Inki Dae <inki.dae@samsung.com> > CC: Andrzej Hajda <a.hajda@samsung.com> > CC: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > CC: Dmitry Torokhov <dmitry.torokhov@gmail.com> > Signed-off-by: Ronald Tschalär <ronald@innovation.ch> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com> If there are no objections I will take it to drm-misc tomorrow. -- Regards Andrzej
Hi Andrzej, On Mon, Apr 15, 2019 at 10:58:09AM +0200, Andrzej Hajda wrote: > On 15.04.2019 10:12, Ronald Tschalär wrote: > > commit d6abe6df706c (drm/bridge: sil_sii8620: do not have a dependency > > of RC_CORE) changed the driver to select both RC_CORE and INPUT. > > However, this causes problems with other drivers, in particular an input > > driver that depends on MFD_INTEL_LPSS_PCI (to be added in a separate > > commit): > > > > drivers/clk/Kconfig:9:error: recursive dependency detected! > > drivers/clk/Kconfig:9: symbol COMMON_CLK is selected by MFD_INTEL_LPSS > > drivers/mfd/Kconfig:566: symbol MFD_INTEL_LPSS is selected by MFD_INTEL_LPSS_PCI > > drivers/mfd/Kconfig:580: symbol MFD_INTEL_LPSS_PCI is implied by KEYBOARD_APPLESPI > > drivers/input/keyboard/Kconfig:73: symbol KEYBOARD_APPLESPI depends on INPUT > > drivers/input/Kconfig:8: symbol INPUT is selected by DRM_SIL_SII8620 > > drivers/gpu/drm/bridge/Kconfig:83: symbol DRM_SIL_SII8620 depends on DRM_BRIDGE > > drivers/gpu/drm/bridge/Kconfig:1: symbol DRM_BRIDGE is selected by DRM_PL111 > > drivers/gpu/drm/pl111/Kconfig:1: symbol DRM_PL111 depends on COMMON_CLK > > > > According to the docs and general consensus, select should only be used > > for non user-visible symbols, but both RC_CORE and INPUT are > > user-visible. Furthermore almost all other references to INPUT > > throughout the kernel config are depends, not selects. For this reason > > the first part of this change reverts commit d6abe6df706c. > > > > In order to address the original reason for commit d6abe6df706c, namely > > that not all boards use the remote controller functionality and hence > > should not need have to deal with RC_CORE, the second part of this > > change now makes the remote control support in the driver optional and > > contingent on RC_CORE being defined. And with this the hard dependency > > on INPUT also goes away as that is only needed if RC_CORE is defined > > (which in turn already depends on INPUT). > > > > CC: Inki Dae <inki.dae@samsung.com> > > CC: Andrzej Hajda <a.hajda@samsung.com> > > CC: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > CC: Dmitry Torokhov <dmitry.torokhov@gmail.com> > > Signed-off-by: Ronald Tschalär <ronald@innovation.ch> > > > Reviewed-by: Andrzej Hajda <a.hajda@samsung.com> Thanks for your reviews! > If there are no objections I will take it to drm-misc tomorrow. This brings us back to the discussion started in response to the first version of my patch (see https://lore.kernel.org/lkml/20190124082423.23139-1-ronald@innovation.ch/T/#m24f45fecd987a787a9554c8088f463fd10de2b00). To recap: the problem is that the applespi patch depends on this patch here, as make-config will break as described above otherwise. So if this patch is submitted through drm-misc, then it's unclear to me how to ensure that the two patches make it upstream in proper order, unless the applespi patch is also upstreamed through drm-misc, or the Kconfig for applespi is (temporarily) modified to not trigger the config error and another patch is later submitted to fix the Kconfig again (which seems somewhat ugly to me). Assuming that consensus is to merge both patches through one tree, then it would seem that because this patch here is relatively small that maybe it could be merged through the input tree along with the applespi patch? Cheers, Ronald
On 16.04.2019 01:24, Life is hard, and then you die wrote: > Hi Andrzej, > > On Mon, Apr 15, 2019 at 10:58:09AM +0200, Andrzej Hajda wrote: >> On 15.04.2019 10:12, Ronald Tschalär wrote: >>> commit d6abe6df706c (drm/bridge: sil_sii8620: do not have a dependency >>> of RC_CORE) changed the driver to select both RC_CORE and INPUT. >>> However, this causes problems with other drivers, in particular an input >>> driver that depends on MFD_INTEL_LPSS_PCI (to be added in a separate >>> commit): >>> >>> drivers/clk/Kconfig:9:error: recursive dependency detected! >>> drivers/clk/Kconfig:9: symbol COMMON_CLK is selected by MFD_INTEL_LPSS >>> drivers/mfd/Kconfig:566: symbol MFD_INTEL_LPSS is selected by MFD_INTEL_LPSS_PCI >>> drivers/mfd/Kconfig:580: symbol MFD_INTEL_LPSS_PCI is implied by KEYBOARD_APPLESPI >>> drivers/input/keyboard/Kconfig:73: symbol KEYBOARD_APPLESPI depends on INPUT >>> drivers/input/Kconfig:8: symbol INPUT is selected by DRM_SIL_SII8620 >>> drivers/gpu/drm/bridge/Kconfig:83: symbol DRM_SIL_SII8620 depends on DRM_BRIDGE >>> drivers/gpu/drm/bridge/Kconfig:1: symbol DRM_BRIDGE is selected by DRM_PL111 >>> drivers/gpu/drm/pl111/Kconfig:1: symbol DRM_PL111 depends on COMMON_CLK >>> >>> According to the docs and general consensus, select should only be used >>> for non user-visible symbols, but both RC_CORE and INPUT are >>> user-visible. Furthermore almost all other references to INPUT >>> throughout the kernel config are depends, not selects. For this reason >>> the first part of this change reverts commit d6abe6df706c. >>> >>> In order to address the original reason for commit d6abe6df706c, namely >>> that not all boards use the remote controller functionality and hence >>> should not need have to deal with RC_CORE, the second part of this >>> change now makes the remote control support in the driver optional and >>> contingent on RC_CORE being defined. And with this the hard dependency >>> on INPUT also goes away as that is only needed if RC_CORE is defined >>> (which in turn already depends on INPUT). >>> >>> CC: Inki Dae <inki.dae@samsung.com> >>> CC: Andrzej Hajda <a.hajda@samsung.com> >>> CC: Laurent Pinchart <laurent.pinchart@ideasonboard.com> >>> CC: Dmitry Torokhov <dmitry.torokhov@gmail.com> >>> Signed-off-by: Ronald Tschalär <ronald@innovation.ch> >> >> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com> > Thanks for your reviews! > >> If there are no objections I will take it to drm-misc tomorrow. > This brings us back to the discussion started in response to the first > version of my patch (see > https://lore.kernel.org/lkml/20190124082423.23139-1-ronald@innovation.ch/T/#m24f45fecd987a787a9554c8088f463fd10de2b00). > To recap: the problem is that the applespi patch depends on this patch > here, as make-config will break as described above otherwise. So if > this patch is submitted through drm-misc, then it's unclear to me how > to ensure that the two patches make it upstream in proper order, > unless the applespi patch is also upstreamed through drm-misc, or the > Kconfig for applespi is (temporarily) modified to not trigger the > config error and another patch is later submitted to fix the Kconfig > again (which seems somewhat ugly to me). Assuming that consensus is to > merge both patches through one tree, then it would seem that because > this patch here is relatively small that maybe it could be merged > through the input tree along with the applespi patch? Oh, I have forgot. Please take it then via input tree. Regards Andrzej > > > Cheers, > > Ronald > > >
Hi Andrzej, On Tue, Apr 16, 2019 at 07:56:31AM +0200, Andrzej Hajda wrote: > On 16.04.2019 01:24, Life is hard, and then you die wrote: > > Hi Andrzej, > > > > On Mon, Apr 15, 2019 at 10:58:09AM +0200, Andrzej Hajda wrote: > >> On 15.04.2019 10:12, Ronald Tschalär wrote: > >>> commit d6abe6df706c (drm/bridge: sil_sii8620: do not have a dependency > >>> of RC_CORE) changed the driver to select both RC_CORE and INPUT. > >>> However, this causes problems with other drivers, in particular an input > >>> driver that depends on MFD_INTEL_LPSS_PCI (to be added in a separate > >>> commit): > >>> > >>> drivers/clk/Kconfig:9:error: recursive dependency detected! > >>> drivers/clk/Kconfig:9: symbol COMMON_CLK is selected by MFD_INTEL_LPSS > >>> drivers/mfd/Kconfig:566: symbol MFD_INTEL_LPSS is selected by MFD_INTEL_LPSS_PCI > >>> drivers/mfd/Kconfig:580: symbol MFD_INTEL_LPSS_PCI is implied by KEYBOARD_APPLESPI > >>> drivers/input/keyboard/Kconfig:73: symbol KEYBOARD_APPLESPI depends on INPUT > >>> drivers/input/Kconfig:8: symbol INPUT is selected by DRM_SIL_SII8620 > >>> drivers/gpu/drm/bridge/Kconfig:83: symbol DRM_SIL_SII8620 depends on DRM_BRIDGE > >>> drivers/gpu/drm/bridge/Kconfig:1: symbol DRM_BRIDGE is selected by DRM_PL111 > >>> drivers/gpu/drm/pl111/Kconfig:1: symbol DRM_PL111 depends on COMMON_CLK > >>> > >>> According to the docs and general consensus, select should only be used > >>> for non user-visible symbols, but both RC_CORE and INPUT are > >>> user-visible. Furthermore almost all other references to INPUT > >>> throughout the kernel config are depends, not selects. For this reason > >>> the first part of this change reverts commit d6abe6df706c. > >>> > >>> In order to address the original reason for commit d6abe6df706c, namely > >>> that not all boards use the remote controller functionality and hence > >>> should not need have to deal with RC_CORE, the second part of this > >>> change now makes the remote control support in the driver optional and > >>> contingent on RC_CORE being defined. And with this the hard dependency > >>> on INPUT also goes away as that is only needed if RC_CORE is defined > >>> (which in turn already depends on INPUT). > >>> > >>> CC: Inki Dae <inki.dae@samsung.com> > >>> CC: Andrzej Hajda <a.hajda@samsung.com> > >>> CC: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > >>> CC: Dmitry Torokhov <dmitry.torokhov@gmail.com> > >>> Signed-off-by: Ronald Tschalär <ronald@innovation.ch> > >> > >> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com> > > Thanks for your reviews! > > > >> If there are no objections I will take it to drm-misc tomorrow. > > This brings us back to the discussion started in response to the first > > version of my patch (see > > https://lore.kernel.org/lkml/20190124082423.23139-1-ronald@innovation.ch/T/#m24f45fecd987a787a9554c8088f463fd10de2b00). > > To recap: the problem is that the applespi patch depends on this patch > > here, as make-config will break as described above otherwise. So if > > this patch is submitted through drm-misc, then it's unclear to me how > > to ensure that the two patches make it upstream in proper order, > > unless the applespi patch is also upstreamed through drm-misc, or the > > Kconfig for applespi is (temporarily) modified to not trigger the > > config error and another patch is later submitted to fix the Kconfig > > again (which seems somewhat ugly to me). Assuming that consensus is to > > merge both patches through one tree, then it would seem that because > > this patch here is relatively small that maybe it could be merged > > through the input tree along with the applespi patch? > > > Oh, I have forgot. Please take it then via input tree. Thank you! Cheers, Ronald
diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig index 2fee47b0d50b..9cf07105b73a 100644 --- a/drivers/gpu/drm/bridge/Kconfig +++ b/drivers/gpu/drm/bridge/Kconfig @@ -85,8 +85,7 @@ config DRM_SIL_SII8620 depends on OF select DRM_KMS_HELPER imply EXTCON - select INPUT - select RC_CORE + imply RC_CORE help Silicon Image SII8620 HDMI/MHL bridge chip driver. diff --git a/drivers/gpu/drm/bridge/sil-sii8620.c b/drivers/gpu/drm/bridge/sil-sii8620.c index a6e8f4591e63..cff3131aae6c 100644 --- a/drivers/gpu/drm/bridge/sil-sii8620.c +++ b/drivers/gpu/drm/bridge/sil-sii8620.c @@ -1763,10 +1763,8 @@ static bool sii8620_rcp_consume(struct sii8620 *ctx, u8 scancode) scancode &= MHL_RCP_KEY_ID_MASK; - if (!ctx->rc_dev) { - dev_dbg(ctx->dev, "RCP input device not initialized\n"); + if (!IS_ENABLED(CONFIG_RC_CORE) || !ctx->rc_dev) return false; - } if (pressed) rc_keydown(ctx->rc_dev, RC_PROTO_CEC, scancode, 0); @@ -2103,6 +2101,9 @@ static void sii8620_init_rcp_input_dev(struct sii8620 *ctx) struct rc_dev *rc_dev; int ret; + if (!IS_ENABLED(CONFIG_RC_CORE)) + return; + rc_dev = rc_allocate_device(RC_DRIVER_SCANCODE); if (!rc_dev) { dev_err(ctx->dev, "Failed to allocate RC device\n"); @@ -2217,6 +2218,9 @@ static void sii8620_detach(struct drm_bridge *bridge) { struct sii8620 *ctx = bridge_to_sii8620(bridge); + if (!IS_ENABLED(CONFIG_RC_CORE)) + return; + rc_unregister_device(ctx->rc_dev); }
commit d6abe6df706c (drm/bridge: sil_sii8620: do not have a dependency of RC_CORE) changed the driver to select both RC_CORE and INPUT. However, this causes problems with other drivers, in particular an input driver that depends on MFD_INTEL_LPSS_PCI (to be added in a separate commit): drivers/clk/Kconfig:9:error: recursive dependency detected! drivers/clk/Kconfig:9: symbol COMMON_CLK is selected by MFD_INTEL_LPSS drivers/mfd/Kconfig:566: symbol MFD_INTEL_LPSS is selected by MFD_INTEL_LPSS_PCI drivers/mfd/Kconfig:580: symbol MFD_INTEL_LPSS_PCI is implied by KEYBOARD_APPLESPI drivers/input/keyboard/Kconfig:73: symbol KEYBOARD_APPLESPI depends on INPUT drivers/input/Kconfig:8: symbol INPUT is selected by DRM_SIL_SII8620 drivers/gpu/drm/bridge/Kconfig:83: symbol DRM_SIL_SII8620 depends on DRM_BRIDGE drivers/gpu/drm/bridge/Kconfig:1: symbol DRM_BRIDGE is selected by DRM_PL111 drivers/gpu/drm/pl111/Kconfig:1: symbol DRM_PL111 depends on COMMON_CLK According to the docs and general consensus, select should only be used for non user-visible symbols, but both RC_CORE and INPUT are user-visible. Furthermore almost all other references to INPUT throughout the kernel config are depends, not selects. For this reason the first part of this change reverts commit d6abe6df706c. In order to address the original reason for commit d6abe6df706c, namely that not all boards use the remote controller functionality and hence should not need have to deal with RC_CORE, the second part of this change now makes the remote control support in the driver optional and contingent on RC_CORE being defined. And with this the hard dependency on INPUT also goes away as that is only needed if RC_CORE is defined (which in turn already depends on INPUT). CC: Inki Dae <inki.dae@samsung.com> CC: Andrzej Hajda <a.hajda@samsung.com> CC: Laurent Pinchart <laurent.pinchart@ideasonboard.com> CC: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Ronald Tschalär <ronald@innovation.ch> --- drivers/gpu/drm/bridge/Kconfig | 3 +-- drivers/gpu/drm/bridge/sil-sii8620.c | 10 +++++++--- 2 files changed, 8 insertions(+), 5 deletions(-)