From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A23DA1A2C0B for ; Wed, 4 Mar 2026 08:36:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772613373; cv=none; b=ayDnHjy+X2WsPgemsusu9MUeK5l1kF7FvVjXCnEAy2k6EPtqBvwUF245NrQWpyUpixcry0G4XQkpptpxk5sZUn2aCrf9g2W7X5Um00UaWPhjuEvJ+h6qUNIosCJ1NvmdZrdxo2R249WpC1skFslpuAinV+0heto/E2QL3HVzgAE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772613373; c=relaxed/simple; bh=HsjwuVHR4yhJMH1Hk9YuB2P0EXMs5wXNt0iCcKMFb8E=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=SCaWr/AyNxS72mfRtgKLZxGmp90FuYLNDyOpEkUY/eIvnbpsFe8qGm9G7XX5pbVPS/I0jwNir+3o9YRiXScIrO82NyqmS+xJNT8Wgr2ufSNrfvzxbvtPSoY6uRwx5NO/3rgLpBmrRKA1lRjp6h9zTqP8Adf6EuMEjAjc9VmhNKU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LYqr9+0R; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LYqr9+0R" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D2402C19425; Wed, 4 Mar 2026 08:36:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1772613373; bh=HsjwuVHR4yhJMH1Hk9YuB2P0EXMs5wXNt0iCcKMFb8E=; h=From:To:Cc:Subject:Date:From; b=LYqr9+0R6shCqmJrpcCWnOPa3IecT1Oi+U5mMlIBcwqkNXGkEfeAqDJQ30Woq5lJF kvWcrRgaxOKNpHTEN3pHWvEqpIHT4EqHNiEKXHRTIuivkOwIF+Q4CuJVlwhs0OhELI 1k/JbCEGSw73Lesa2mK+5Ep+NSiFR/Q/oPaPrP5lfFsfy+irSGwG/aDwnhJoUSrn3e qaCjHEcOdtV4YHZghQZFzNmwBF39AQoavKrR+ZHqsxSoxxVUHz368tXwRS8TtRSpp7 hNdHvI8z07ZicDKnzQXfmvqLUHtwYvsFkBbfJDJ+AI62PkycdDBJkko5gnQJisk0g9 cRXsa8aooZIbw== From: Arnd Bergmann To: Andrzej Hajda , Neil Armstrong , Robert Foss , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Dmitry Baryshkov , Heikki Krogerus , Xin Ji Cc: Arnd Bergmann , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Ayushi Makhija , Douglas Anderson , Luca Ceresoli , Loic Poulain , Chen-Yu Tsai , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH] drm: bridge: anx7625: enforce CONFIG_USB_ROLE_SWITCH dependency Date: Wed, 4 Mar 2026 09:35:52 +0100 Message-Id: <20260304083604.724519-1-arnd@kernel.org> X-Mailer: git-send-email 2.39.5 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Arnd Bergmann When CONFIG_TYPEC is enabled, but USB_ROLE_SWITCH=m, the anx7625 driver fails to link as built-in: aarch64-linux-ld: drivers/gpu/drm/bridge/analogix/anx7625.o: in function `anx7625_i2c_remove': anx7625.c:(.text+0x6ec): undefined reference to `usb_role_switch_put' aarch64-linux-ld: drivers/gpu/drm/bridge/analogix/anx7625.o: in function `anx7625_typec_set_status': anx7625.c:(.text+0x3080): undefined reference to `usb_role_switch_set_role' aarch64-linux-ld: drivers/gpu/drm/bridge/analogix/anx7625.o: in function `anx7625_i2c_probe': anx7625.c:(.text+0x5368): undefined reference to `fwnode_usb_role_switch_get' The problem is that both dependencies are optional in the sense of allowing the anx7625 driver to call the exported interfaces to be used from a loadable module, but cannot work for built-in drivers. It would be possible to handle all nine combinations of the CONFIG_TYPEC and CONFIG_USB_ROLE_SWITCH tristate options, but that does add a lot of complexity that seems unnecessary when in reality any user of this driver would have both enabled anyway. Turn both dependencies into hard 'depends on' here to only allow configurations where it's possible to actually use them, and remove the misguided IS_REACHABLE() check that did nothing here. Fixes: f81455b2d332 ("drm: bridge: anx7625: implement minimal Type-C support") Signed-off-by: Arnd Bergmann --- drivers/gpu/drm/bridge/analogix/Kconfig | 3 ++- drivers/gpu/drm/bridge/analogix/anx7625.c | 17 ----------------- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/drivers/gpu/drm/bridge/analogix/Kconfig b/drivers/gpu/drm/bridge/analogix/Kconfig index f3448b0631fe..03dc7ffe824a 100644 --- a/drivers/gpu/drm/bridge/analogix/Kconfig +++ b/drivers/gpu/drm/bridge/analogix/Kconfig @@ -34,7 +34,8 @@ config DRM_ANALOGIX_ANX7625 tristate "Analogix Anx7625 MIPI to DP interface support" depends on DRM depends on OF - depends on TYPEC || !TYPEC + depends on TYPEC + depends on USB_ROLE_SWITCH select DRM_DISPLAY_DP_HELPER select DRM_DISPLAY_HDCP_HELPER select DRM_DISPLAY_HELPER diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c index c43519097a45..ec4b24481987 100644 --- a/drivers/gpu/drm/bridge/analogix/anx7625.c +++ b/drivers/gpu/drm/bridge/analogix/anx7625.c @@ -1483,7 +1483,6 @@ static void anx7625_start_dp_work(struct anx7625_data *ctx) DRM_DEV_DEBUG_DRIVER(dev, "Secure OCM version=%02x\n", ret); } -#if IS_REACHABLE(CONFIG_TYPEC) static u8 anx7625_checksum(u8 *buf, u8 len) { u8 ret = 0; @@ -1635,22 +1634,6 @@ static void anx7625_typec_unregister(struct anx7625_data *ctx) usb_role_switch_put(ctx->role_sw); typec_unregister_port(ctx->typec_port); } -#else -static void anx7625_typec_set_status(struct anx7625_data *ctx, - unsigned int intr_status, - unsigned int intr_vector) -{ -} - -static int anx7625_typec_register(struct anx7625_data *ctx) -{ - return 0; -} - -static void anx7625_typec_unregister(struct anx7625_data *ctx) -{ -} -#endif static int anx7625_read_hpd_status_p0(struct anx7625_data *ctx) { -- 2.39.5