Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp2252270imm; Mon, 28 May 2018 04:49:16 -0700 (PDT) X-Google-Smtp-Source: AB8JxZp3szSZT9Qv3XVv3422nLkwJ8nTn2oGyioTnVGJTErk+4+vVyzZsROnxlZOIx9fW1dR1kgO X-Received: by 2002:a62:20c7:: with SMTP id m68-v6mr13009477pfj.110.1527508156422; Mon, 28 May 2018 04:49:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527508156; cv=none; d=google.com; s=arc-20160816; b=Xeb6CFC6ASVxlwXz7PPFgaxctc8hwOn62Ssulz1skZzJHBpbx4XZe2Ia/Jnk2p418B N6sGZTsX5nIIc9k7wVpzbmSxjncrnlZfPdyow3Qvhp7voMvAFZuYpj+PjWTByIJfKxZA eWJmt0EwrFzH26mJ9cjscjooDyYuoyZpAkLnu+aF1Pqci3hHZet7An9UD1Pr2Cd906IH qnjhiXnfYHMcXnRqk29iboNv8R1o4L/1xBlKHu47TyNCbP6glrirSusVmj/TljOZqXVf ppE036FzT147F4m4SqDBdsEU9cVeXAf2GSbq4NBQlifemDLGvIXZHq7ZMPFRW8zOHSup D7gg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=UjsM86Cho/yF7Evah+fLfqUsZEFBSI5nNaNcz/VIhfo=; b=fSQDCR0INcgJ7BmTixRFzLohnLNbkqOgp08j2/v0SSo84rSDsdYtliQvUqMRLCaI4A MX9TYHzl7wATIzZUtu8j3pT6AYgIRRJ3fYIMHzXbJN169WiRb4/DBespvM2B09fxAn4f N0PjVVR9rAVRl2pKqwpAMgN/BkKOzMm55VauJOSjuRseprT/JbkaaeygxmPfrbc79g0f CEKEJyclOZnGBbGArdr2W0xXOgvIGDxtaZFMBBSLn1rLRuTJf5aDpzbS/JX/pupFFeUx 5b7MWuIBrcR3uoGjm2Lnf63asVRtWdpuYXqCRb1RkhpwT2oM9lrE/IIi+D+/gwLaKGNK 8fWA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=TlzQE8oK; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u123-v6si313500pfc.178.2018.05.28.04.49.01; Mon, 28 May 2018 04:49:16 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=TlzQE8oK; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1424072AbeE1LsY (ORCPT + 99 others); Mon, 28 May 2018 07:48:24 -0400 Received: from mail-qk0-f195.google.com ([209.85.220.195]:46151 "EHLO mail-qk0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1423874AbeE1LK3 (ORCPT ); Mon, 28 May 2018 07:10:29 -0400 Received: by mail-qk0-f195.google.com with SMTP id k86-v6so8842983qkh.13 for ; Mon, 28 May 2018 04:10:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=UjsM86Cho/yF7Evah+fLfqUsZEFBSI5nNaNcz/VIhfo=; b=TlzQE8oKlw8KrkrS8eQOrj++ZO4bqy5NyY2oM09M7gYZ6sag/oAAvJRtzrQoeEj/kt zg3MGXykUri/TKp1+aa/YByAMad6g4ZBO2jJ2TKn6ZkiAPh0HVsRraxPoXfxUNBbOQR+ 12EhdJqZJaVVw4Zt+y1tgnlLB+CdbAY+9q+1u/475QOkGRRJayiUbVaNesSwtMOP1cXW Y6I+FtuGYlxNPgJUzoAASpl4t+Jqo8GEoWEw7HBlxIw5UxlEjkOpi5W96Kpo3db2JYYM memU/k/Jrb2q4eQKBLnYxTrBIaoEr7dczd0eB4puRKQMj8+lL2Q5Ax+TQOMROXzgxkRG SEoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=UjsM86Cho/yF7Evah+fLfqUsZEFBSI5nNaNcz/VIhfo=; b=jJk4aiov479NoDpIofoMs+HvVLv5DsJ0aI1W8AzoJjn9QsT6xYY9/zU9zjsm6qV8w3 1njvepvl03+OmzKB14vlXiCugjdq9P5qJO6O/ANp3+Mg8XyCNSwfqcC/NbU8ZN369T2t EBiq1d0dzMQiCNB5ztyD5D8G6lhxhUTmPQls8LL2rHB+FRG02TvjBE4qS7yxZH4D36Fu JCs6Z+jxQzyj7Z5V2ScccnU42qP7TzGSN3m3RH6oHu3BG41S3pp2bttVud4r603sTNp8 DFJtkDerS5A2+t0Dfcovf3f/bXJ0LdoPW/PUDQ1SHgouWzUQulBKiZPQT/7hefAczWvM t+HQ== X-Gm-Message-State: ALKqPwetzsW66eVArNSgsZj6EA+rHX5uBYK3zU3njBHE4B9t19lU28l/ FM5Qp2EQqAYxBBt2321JFpi77JerKrQHkxPIDbcda0Bp X-Received: by 2002:a37:5e46:: with SMTP id s67-v6mr1616191qkb.202.1527505827955; Mon, 28 May 2018 04:10:27 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a0c:b903:0:0:0:0:0 with HTTP; Mon, 28 May 2018 04:10:27 -0700 (PDT) In-Reply-To: References: <20180525155030.3667352-1-arnd@arndb.de> <20180525155030.3667352-7-arnd@arndb.de> <2050411.pJQe2GrhOB@avalon> From: Arnd Bergmann Date: Mon, 28 May 2018 13:10:27 +0200 X-Google-Sender-Auth: zmv9P9ha215w2nLQFmUq-1miatw Message-ID: Subject: Re: [PATCH 7/8] drm/bridge: fix dependency for lvds-encoder To: Daniel Vetter Cc: Laurent Pinchart , Boris Brezillon , David Airlie , dri-devel , Linux Kernel Mailing List , Maciej Purski , Jacopo Mondi Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, May 28, 2018 at 10:06 AM, Daniel Vetter wrote: > On Mon, May 28, 2018 at 10:02 AM, Laurent Pinchart > wrote: >> Hi Arnd, >> >> Thank you for the patch. >> >> On Friday, 25 May 2018 18:50:14 EEST Arnd Bergmann wrote: >>> The DRM panel bridge code is built into the kms helpers module, so we >>> get a link error when trying to use it from a built-in driver while the >>> kms helper is a loadable module: >>> >>> drivers/gpu/drm/bridge/lvds-encoder.o: In function `lvds_encoder_probe': >>> lvds-encoder.c:(.text+0x124): undefined reference to >>> `devm_drm_panel_bridge_add' >>> >>> This adds a the same dependency in the lvds-encoder that we use for all >>> the other users of the panel bridge. I did not bisect the problem, but >>> from inspection it seems to date back to the patch that separated out >>> the panel bridge from lvds encoder. >>> >>> Fixes: 13dfc0540a57 ("drm/bridge: Refactor out the panel wrapper from the >>> lvds-encoder bridge.") Signed-off-by: Arnd Bergmann >>> --- >>> drivers/gpu/drm/bridge/Kconfig | 1 + >>> 1 file changed, 1 insertion(+) >>> >>> diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig >>> index 6caa47834194..cf47bfa7a050 100644 >>> --- a/drivers/gpu/drm/bridge/Kconfig >>> +++ b/drivers/gpu/drm/bridge/Kconfig >>> @@ -46,6 +46,7 @@ config DRM_DUMB_VGA_DAC >>> config DRM_LVDS_ENCODER >>> tristate "Transparent parallel to LVDS encoder support" >>> depends on OF >>> + select DRM_KMS_HELPER >>> select DRM_PANEL_BRIDGE >>> help >>> Support for transparent parallel to LVDS encoders that don't require >> >> Wouldn't it be better to apply the following ? >> >> config DRM_PANEL_BRIDGE >> def_bool y >> depends on DRM_BRIDGE >> - depends on DRM_KMS_HELPER >> + select DRM_KMS_HELPER >> select DRM_PANEL >> help >> DRM bridge wrapper of DRM panels >> >> Otherwise you'll potentially have to patch every user of DRM_PANEL_BRIDGE as >> done in this patch. > > Select isn't recursive, so this won't work unfortunately :-/ The problem is a bit different: select *is* recursive, which is part of the reason we normally try to avoid it (it gets hard to disable certain symbols or turn them into modules when there are lots of things selecting them). However, DRM_PANEL_BRIDGE is a silent 'bool' symbol that is always enabled when DRM_BRIDGE is enabled. Making it 'select DRM_KMS_HELPER' would lead to DRM_KMS_HELPER always being built-in even if all other DRM drivers are configured as loadable modules! Note these Makefile line in drivers/gpu/drm: drm_kms_helper-$(CONFIG_DRM_PANEL_BRIDGE) += bridge/panel.o obj-$(CONFIG_DRM_KMS_HELPER) += drm_kms_helper.o The intention is definitely that drm_kms_helper can be a loadable module, (it cannot be built-in when CONFIG_DRM=m) and the panel bridge is simply a component that gets linked into it, as of commit 123387d5efa6 ("drm/bridge: Build the panel wrapper in drm_kms_helper"). Arnd