diff mbox series

[v7,1/2] drm/bridge: sil_sii8620: make remote control optional.

Message ID 20190419081926.13567-2-ronald@innovation.ch (mailing list archive)
State New, archived
Headers show
Series Add Apple SPI keyboard and trackpad driver | expand

Commit Message

Life is hard, and then you die April 19, 2019, 8:19 a.m. UTC
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>
---
 drivers/gpu/drm/bridge/Kconfig       |  3 +--
 drivers/gpu/drm/bridge/sil-sii8620.c | 10 +++++++---
 2 files changed, 8 insertions(+), 5 deletions(-)

Comments

Andrzej Hajda July 2, 2019, 1:50 p.m. UTC | #1
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
Life is hard, and then you die July 3, 2019, 6:39 a.m. UTC | #2
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
Dmitry Torokhov July 15, 2019, 6:04 p.m. UTC | #3
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.
Dmitry Torokhov July 15, 2019, 8 p.m. UTC | #4
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 mbox series

Patch

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);
 }