Message ID | 20190419081926.13567-2-ronald@innovation.ch (mailing list archive) |
---|---|
State | Accepted |
Commit | 5023cf32210dada31fb713aa071fa0281a4a7d5c |
Headers | show |
Series | Add Apple SPI keyboard and trackpad driver | expand |
On 19.04.2019 10:19, 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> Apparently this patch was not queued to kernel yet. If there are no objections I will queue it via drm-misc-next tree tomorrow. Regards Andrzej
On Tue, Jul 02, 2019 at 03:50:49PM +0200, Andrzej Hajda wrote: > On 19.04.2019 10:19, 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> > > > Apparently this patch was not queued to kernel yet. If there are no > objections I will queue it via drm-misc-next tree tomorrow. If this patch set won't be queued for 5.3 then I guess that would be a good idea. But may I ask what is preventing this patch set from being queued for upstream, so I can try and fix whatever the issue is? Cheers, Ronald
Hi, On Tue, Jul 02, 2019 at 11:39:56PM -0700, Life is hard, and then you die wrote: > > On Tue, Jul 02, 2019 at 03:50:49PM +0200, Andrzej Hajda wrote: > > On 19.04.2019 10:19, 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> > > > > > > Apparently this patch was not queued to kernel yet. If there are no > > objections I will queue it via drm-misc-next tree tomorrow. > > If this patch set won't be queued for 5.3 then I guess that would be a > good idea. > > But may I ask what is preventing this patch set from being queued for > upstream, so I can try and fix whatever the issue is? As I mentioned in my pull request to Linux I will be picking up the Apple keyboard driver for this merge window even though it was not in next (my fault). I created and immutable branch for this change if you'd like to pull it in so we do not duplicate commit and risk the conflicts (but I believe git should resolve it either way). https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git id/5.2-sil_sii8620-rc-optional Thanks.
On Mon, Jul 15, 2019 at 11:04 AM Dmitry Torokhov <dmitry.torokhov@gmail.com> wrote: > > Hi, > > On Tue, Jul 02, 2019 at 11:39:56PM -0700, Life is hard, and then you die wrote: > > > > On Tue, Jul 02, 2019 at 03:50:49PM +0200, Andrzej Hajda wrote: > > > On 19.04.2019 10:19, 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> > > > > > > > > > Apparently this patch was not queued to kernel yet. If there are no > > > objections I will queue it via drm-misc-next tree tomorrow. > > > > If this patch set won't be queued for 5.3 then I guess that would be a > > good idea. > > > > But may I ask what is preventing this patch set from being queued for > > upstream, so I can try and fix whatever the issue is? > > As I mentioned in my pull request to Linux I will be picking up the > Apple keyboard driver for this merge window even though it was not in > next (my fault). > > I created and immutable branch for this change if you'd like to pull it > in so we do not duplicate commit and risk the conflicts (but I believe > git should resolve it either way). > > https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git id/5.2-sil_sii8620-rc-optional Sorry, that should have read: https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git ib/5.2-sil_sii8620-rc-optional Thanks.
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); }