Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp4570410ybb; Tue, 14 Apr 2020 09:49:47 -0700 (PDT) X-Google-Smtp-Source: APiQypLDyzXIHvzga3YEPdeLHrjCZnfo0yASN4OZDlaOETkch9BHxocKfJMq7dTukCU8MnVq7/vk X-Received: by 2002:a05:6402:64d:: with SMTP id u13mr20689903edx.254.1586882987124; Tue, 14 Apr 2020 09:49:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586882987; cv=none; d=google.com; s=arc-20160816; b=ZvzrAvNgOh8TyHF7HlvjdW1lG1DmVBvFCauxRZFTXeSjHAdJrikeIcIigjNdYqfpcG cIC3zon26FYK1RCptrapqufKNpsoVJWtHleRNueR9UUEoOexIAtM8zoD7hofaEC3KOp6 tooJMfSNVY68DuVf1L6vmdNMG4wxMXgTgBNLnpDaiH3ky1s+mxkPfIyqCo+hU5fDe+In cb2//gCiYZ8OqGKoN7loYPKu2BzDcr+v1uJVD4GSKSqzvTUGusijDa6TJB7vdhK/4+Vg m5KJ28R6Qw6P+2O2cX9FOGmGcjIXNdicsOW3Uf4CW4XD9YV4I49wyMXjGKnrsKC2yVqC Rv5w== 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 :in-reply-to:references:mime-version:dkim-signature; bh=spgEKsLHuoSv2vMq2/Lj/d/1/1xxZuCoTVcXDlhH9Ok=; b=rUpwCa/AI1s04D2LRuGsfCjIA8e3ADpmPNE+k4n0EILwQ1DC4LnJkt98sLftSkmm7W 23gsSk2ZUXwtoR4ucaOJtquBtweVfQGeMgYCY0dkODrz/9q0JcWsYEooC3ySmm8zOFT5 uaCfzA1x2HAd8FIYtmqOWvQeyOfYLQu/MegZtnIAYJLq7vmQQZwByzU8jnb+Uty/rXVe tbKBfQ+MNFl4R1dfqODtPIaT503rlGmdnNfe/D78fOM7nk1XvnHIztgJigL6GCGOwOKO wIDiZr1h6IOrP4YDUGJVgGYhM+DKHOZhF7Vkh4rTOi6iUi7sJAGmbesKDz2jQJiJs7Yh Gmag== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ffwll.ch header.s=google header.b=QCa+HQiq; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w13si8676197edt.382.2020.04.14.09.49.22; Tue, 14 Apr 2020 09:49:47 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@ffwll.ch header.s=google header.b=QCa+HQiq; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2440580AbgDNPil (ORCPT + 99 others); Tue, 14 Apr 2020 11:38:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48990 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S2440496AbgDNPhb (ORCPT ); Tue, 14 Apr 2020 11:37:31 -0400 Received: from mail-oi1-x241.google.com (mail-oi1-x241.google.com [IPv6:2607:f8b0:4864:20::241]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8EB78C061A0E for ; Tue, 14 Apr 2020 08:37:31 -0700 (PDT) Received: by mail-oi1-x241.google.com with SMTP id s202so7546226oih.3 for ; Tue, 14 Apr 2020 08:37:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=spgEKsLHuoSv2vMq2/Lj/d/1/1xxZuCoTVcXDlhH9Ok=; b=QCa+HQiqSjjGQWMb/RlUNGNvWzhKgNJFUp8IYc5gSGyoBrGoNluUOC/wFoexVZ7Fi+ +um4IaVWkfPhcQ8/g8hj7XRfww+n/f7r0rYzT2wXnDuXuIpqdfTFqTO9iq6N6T9a8GrQ GQ9eePSdjlTs3z7WBwR4w/0viLaAziacG3g8g= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=spgEKsLHuoSv2vMq2/Lj/d/1/1xxZuCoTVcXDlhH9Ok=; b=gDod6RmPH1+83D4TVjcyyrp/Mo/f6BTzfnBfUQ8YKUXtYTSkarfMYD+yoZ3DUoB2JP Jz33QPPk5OhDk7ZgSco3YFIw/ANVel79hwfSZhBfTl2orVt6xrjZIe8sF/aZ6gMo1pzN rCcpeor0rsW4DMAKpGMjLhQXSVrMu0RDu1WPpjNG+DgXHMLk3+dVvEpaDdS67rUc8pLk 282CNovroipmKDVtHwCzsTzmerZiDNtC8Ba6quMte7a2NHP2TAU4DL4xSO1Clti0JvTE vGVv/p8w9HPpALV7JgbVOYpuYAEESedtBEAA5RaiEz2H5yPwF3T4+DPCcXzRpLHia6S4 +v0w== X-Gm-Message-State: AGi0PubiBdI+/LQ7rr6widBT3N8iQyfZQNey6vjec4KNGtA8lNYSPaNY z8yg5eC/wd+V924r8GQg/6Us6hqO/3Ua8BPeV8YxNA== X-Received: by 2002:aca:2113:: with SMTP id 19mr10130356oiz.128.1586878650635; Tue, 14 Apr 2020 08:37:30 -0700 (PDT) MIME-Version: 1.0 References: <20200408202711.1198966-1-arnd@arndb.de> <20200408202711.1198966-5-arnd@arndb.de> In-Reply-To: From: Daniel Vetter Date: Tue, 14 Apr 2020 17:37:18 +0200 Message-ID: Subject: Re: [RFC 4/6] drm/bridge/sii8620: fix extcon dependency To: Arnd Bergmann , "Nikula, Jani" Cc: Andrzej Hajda , Linux-Renesas , Jernej Skrabec , Leon Romanovsky , Jonas Karlman , David Airlie , Networking , Masahiro Yamada , Nicolas Pitre , "linux-kernel@vger.kernel.org" , dri-devel , Neil Armstrong , Saeed Mahameed , Kieran Bingham , Laurent Pinchart , "David S. Miller" , linux-rdma 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 Tue, Apr 14, 2020 at 5:05 PM Arnd Bergmann wrote: > > On Fri, Apr 10, 2020 at 8:56 AM Andrzej Hajda wrote: > > > > > > On 08.04.2020 22:27, Arnd Bergmann wrote: > > > Using 'imply' does not work here, it still cause the same build > > > failure: > > > > > > arm-linux-gnueabi-ld: drivers/gpu/drm/bridge/sil-sii8620.o: in function `sii8620_remove': > > > sil-sii8620.c:(.text+0x1b8): undefined reference to `extcon_unregister_notifier' > > > arm-linux-gnueabi-ld: drivers/gpu/drm/bridge/sil-sii8620.o: in function `sii8620_probe': > > > sil-sii8620.c:(.text+0x27e8): undefined reference to `extcon_find_edev_by_node' > > > arm-linux-gnueabi-ld: sil-sii8620.c:(.text+0x2870): undefined reference to `extcon_register_notifier' > > > arm-linux-gnueabi-ld: drivers/gpu/drm/bridge/sil-sii8620.o: in function `sii8620_extcon_work': > > > sil-sii8620.c:(.text+0x2908): undefined reference to `extcon_get_state' > > > > > > I tried the usual 'depends on EXTCON || !EXTCON' logic, but that caused > > > a circular Kconfig dependency. Using IS_REACHABLE() is ugly but works. > > > > 'depends on EXTCON || !EXTCON' seems to be proper solution, maybe would be better to try to solve circular dependencies issue. > > I agree that would be nice, but I failed to come to a proper solution > here. FWIW, there > is one circular dependency that I managed to avoid by changing all > drivers that select FB_DDC > to depend on I2C rather than selecting it: > > drivers/i2c/Kconfig:8:error: recursive dependency detected! > drivers/i2c/Kconfig:8: symbol I2C is selected by FB_DDC > drivers/video/fbdev/Kconfig:63: symbol FB_DDC depends on FB > drivers/video/fbdev/Kconfig:12: symbol FB is selected by DRM_KMS_FB_HELPER > drivers/gpu/drm/Kconfig:80: symbol DRM_KMS_FB_HELPER depends on DRM_KMS_HELPER > drivers/gpu/drm/Kconfig:74: symbol DRM_KMS_HELPER is selected by DRM_SIL_SII8620 > drivers/gpu/drm/bridge/Kconfig:89: symbol DRM_SIL_SII8620 depends on EXTCON > drivers/extcon/Kconfig:2: symbol EXTCON is selected by CHARGER_MANAGER > drivers/power/supply/Kconfig:482: symbol CHARGER_MANAGER depends on POWER_SUPPLY > drivers/power/supply/Kconfig:2: symbol POWER_SUPPLY is selected by > HID_BATTERY_STRENGTH > drivers/hid/Kconfig:29: symbol HID_BATTERY_STRENGTH depends on HID > drivers/hid/Kconfig:8: symbol HID is selected by I2C_HID > drivers/hid/i2c-hid/Kconfig:5: symbol I2C_HID depends on I2C > > After that, Kconfig crashes with a segfault: > > drivers/video/fbdev/Kconfig:12:error: recursive dependency detected! > drivers/video/fbdev/Kconfig:12: symbol FB is selected by DRM_KMS_FB_HELPER > drivers/gpu/drm/Kconfig:80: symbol DRM_KMS_FB_HELPER depends on DRM_KMS_HELPER > drivers/gpu/drm/Kconfig:74: symbol DRM_KMS_HELPER is selected by DRM_SIL_SII8620 > drivers/gpu/drm/bridge/Kconfig:89: symbol DRM_SIL_SII8620 depends on EXTCON > drivers/extcon/Kconfig:2: symbol EXTCON is selected by CHARGER_MANAGER > drivers/power/supply/Kconfig:482: symbol CHARGER_MANAGER depends on POWER_SUPPLY > drivers/power/supply/Kconfig:2: symbol POWER_SUPPLY is selected by HID_ASUS > drivers/hid/Kconfig:150: symbol HID_ASUS depends on LEDS_CLASS > drivers/leds/Kconfig:17: symbol LEDS_CLASS depends on NEW_LEDS > drivers/leds/Kconfig:9: symbol NEW_LEDS is selected by SENSORS_APPLESMC > drivers/hwmon/Kconfig:327: symbol SENSORS_APPLESMC depends on HWMON > drivers/hwmon/Kconfig:6: symbol HWMON is selected by EEEPC_LAPTOP > drivers/platform/x86/Kconfig:260: symbol EEEPC_LAPTOP depends on ACPI_VIDEO > make[3]: *** [/git/arm-soc/scripts/kconfig/Makefile:71: randconfig] > Segmentation fault (core dumped) > > After changing EEEPC_LAPTOP and THINKPAD_ACPI to 'depends on HWMON' instead of > 'select HWMON', I get this one: > > drivers/video/fbdev/Kconfig:12:error: recursive dependency detected! > drivers/video/fbdev/Kconfig:12: symbol FB is selected by DRM_KMS_FB_HELPER > drivers/gpu/drm/Kconfig:80: symbol DRM_KMS_FB_HELPER depends on DRM_KMS_HELPER > drivers/gpu/drm/Kconfig:74: symbol DRM_KMS_HELPER is selected by DRM_SIL_SII8620 > drivers/gpu/drm/bridge/Kconfig:89: symbol DRM_SIL_SII8620 depends on EXTCON > drivers/extcon/Kconfig:2: symbol EXTCON is selected by CHARGER_MANAGER > drivers/power/supply/Kconfig:482: symbol CHARGER_MANAGER depends on POWER_SUPPLY > drivers/power/supply/Kconfig:2: symbol POWER_SUPPLY is selected by HID_ASUS > drivers/hid/Kconfig:150: symbol HID_ASUS depends on LEDS_CLASS > drivers/leds/Kconfig:17: symbol LEDS_CLASS depends on NEW_LEDS > drivers/leds/Kconfig:9: symbol NEW_LEDS is selected by BACKLIGHT_ADP8860 > drivers/video/backlight/Kconfig:316: symbol BACKLIGHT_ADP8860 depends > on BACKLIGHT_CLASS_DEVICE > drivers/video/backlight/Kconfig:143: symbol BACKLIGHT_CLASS_DEVICE is > selected by FB_BACKLIGHT > drivers/video/fbdev/Kconfig:187: symbol FB_BACKLIGHT depends on FB > > Changing all drivers that select 'FB_BACKLIGHT' or 'BACKLIGHT_CLASS_DEVICE' to > 'depends on BACKLIGHT_CLASS_DEVICE' gets it to build. > > The steps each seem reasonable, in particular since they mostly clean > up the legacy > fbdev drivers to what they should have done anyway, but it is quite > invasive in the end. > Any other ideas? Adding Jani, since iirc he looked at the entire backlight Kconfig story before. I think there's some nonsense going on where in some cases you don't get reasonable dummy functions where it just doesn't make sense. Or something like that. At least the entire select vs depends on backlight sounds eerily familiar. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch