From patchwork Sun Mar 17 04:42:52 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Vasut X-Patchwork-Id: 1912853 X-Patchwork-Delegate: marek.vasut@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=mailbox.org header.i=@mailbox.org header.a=rsa-sha256 header.s=mail20150812 header.b=B/gpQ2D6; dkim=pass (2048-bit key) header.d=mailbox.org header.i=@mailbox.org header.a=rsa-sha256 header.s=mail20150812 header.b=wwsbK9yE; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Ty54R51Blz23qh for ; Sun, 17 Mar 2024 15:44:39 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 3F80F87BF1; Sun, 17 Mar 2024 05:44:30 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=reject dis=none) header.from=mailbox.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; secure) header.d=mailbox.org header.i=@mailbox.org header.b="B/gpQ2D6"; dkim=pass (2048-bit key) header.d=mailbox.org header.i=@mailbox.org header.b="wwsbK9yE"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 2122087BEE; Sun, 17 Mar 2024 05:44:29 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mout-p-103.mailbox.org (mout-p-103.mailbox.org [80.241.56.161]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 7C47387B30 for ; Sun, 17 Mar 2024 05:44:26 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=reject dis=none) header.from=mailbox.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=marek.vasut+renesas@mailbox.org Received: from smtp2.mailbox.org (smtp2.mailbox.org [IPv6:2001:67c:2050:b231:465::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-103.mailbox.org (Postfix) with ESMTPS id 4Ty54B17mnz9sQv; Sun, 17 Mar 2024 05:44:26 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailbox.org; s=mail20150812; t=1710650666; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=Bs6PF1B/FVsNOJwJKfEk8azH9bqO/yfFrKOuljHVguQ=; b=B/gpQ2D6m5S7mJwXBW7DOzQu4CCVcwNVZd/rm4+ayVaLi6Ehez28HHIUdl4SlRW5rHng83 zCadUCn4FNqM6pNgfO3r5SxapJkmC0ToLiE8fXb1QerI1ElVcJw0/4IH+1N+opx+D9mLvO 2mNkPqjLwMYmWVkZSFJR5c+cyp+vnLNArIaNMGmaBddJwjo7KTifidCDbAUHwpE6+DEOlO MeYGFuRerH2YZaPAi81FiMzbIf7oD6xR9+4ffHC3zDG2Ga2kzrbVf9a3hUtwQOwX5CHOgu McD1YcLwjTX3JFifFBohYj25/Cscxh8DkKWZfIWxolJ8rLvYgLFfg6xZNgjyAA== From: Marek Vasut DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailbox.org; s=mail20150812; t=1710650664; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=Bs6PF1B/FVsNOJwJKfEk8azH9bqO/yfFrKOuljHVguQ=; b=wwsbK9yEeTbz+NOb3XGOWMYDHaFiKLt7WRrhVcmgsqni9wsP1e3Xf9kRdlHd1S1IH5rMIQ X+k36RDk1nE0UleMzfFMBR4NxYALe8zkWVeYAaSiq0RXLO/7wJ79Vq0k4l0MQscm6rGy7l bJkx9IhLdV7hJzgHrctSTTWJh8fVhFwqFyp7O1HD1Vn2P3MGpCS0X00YEL+iXYi8lD6Rl7 YfHE/UYxegzPLofldYx5xAa9yqeUXoCnxh9+sh60qA+ClGgxHEeEkChKs3Ib4ucbbgc162 PpaqHUIK4ZYI1LoYjt//k8WEdr5/VvIl1z5x7fyMX+9nqDdNMrjOKUbwXuoXvg== To: u-boot@lists.denx.de Cc: Marek Vasut , Angus Ainslie , Caleb Connolly , Eugen Hristev , Igor Prusov , Mattijs Korpershoek , Nishanth Menon , Patrice Chotard , Simon Glass , Stefan Bosch , Svyatoslav Ryhel , Tom Rini , kernel@puri.sm Subject: [PATCH 1/2] usb: udc: dwc3: Fold board dm_usb_gadget_handle_interrupts() into DWC3 gadget Date: Sun, 17 Mar 2024 05:42:52 +0100 Message-ID: <20240317044357.547037-1-marek.vasut+renesas@mailbox.org> MIME-Version: 1.0 X-MBO-RS-META: minnr3rohxt8gb6hmeg6ku5owop5bpjw X-MBO-RS-ID: d39af8218abece3d1c5 X-Rspamd-Queue-Id: 4Ty54B17mnz9sQv X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean The dm_usb_gadget_handle_interrupts() has no place in board code. Move this into DWC3 driver. The OMAP implementation is special, add new weak dwc3_uboot_interrupt_status() function to decide whether DWC3 interrupt handling should be called, and override it in OMAP DWC3 code, to repair the special OMAP interrupt handling code until OMAP gets switched over to DM UDC proper. Signed-off-by: Marek Vasut Reviewed-by: Caleb Connolly Reviewed-by: Mattijs Korpershoek Tested-by: Mattijs Korpershoek # vim3 Tested-by: Caleb Connolly # qcom sdm845 --- Cc: Angus Ainslie Cc: Caleb Connolly Cc: Eugen Hristev Cc: Igor Prusov Cc: Mattijs Korpershoek Cc: Nishanth Menon Cc: Patrice Chotard Cc: Simon Glass Cc: Stefan Bosch Cc: Svyatoslav Ryhel Cc: Tom Rini Cc: kernel@puri.sm --- board/purism/librem5/spl.c | 6 ------ board/samsung/common/exynos5-dt.c | 6 ------ board/st/stih410-b2260/board.c | 6 ------ board/ti/am43xx/board.c | 11 ----------- drivers/usb/dwc3/core.c | 25 +++++++++++++++++++++---- drivers/usb/dwc3/dwc3-omap.c | 4 ++-- include/dwc3-omap-uboot.h | 1 - include/dwc3-uboot.h | 1 + 8 files changed, 24 insertions(+), 36 deletions(-) diff --git a/board/purism/librem5/spl.c b/board/purism/librem5/spl.c index 581f0929662..9aadc553302 100644 --- a/board/purism/librem5/spl.c +++ b/board/purism/librem5/spl.c @@ -418,12 +418,6 @@ out: return rv; } -int dm_usb_gadget_handle_interrupts(struct udevice *dev) -{ - dwc3_uboot_handle_interrupt(dev); - return 0; -} - static void dwc3_nxp_usb_phy_init(struct dwc3_device *dwc3) { u32 RegData; diff --git a/board/samsung/common/exynos5-dt.c b/board/samsung/common/exynos5-dt.c index 95cf6d2acc2..b3e87c93751 100644 --- a/board/samsung/common/exynos5-dt.c +++ b/board/samsung/common/exynos5-dt.c @@ -122,12 +122,6 @@ static struct dwc3_device dwc3_device_data = { .index = 0, }; -int dm_usb_gadget_handle_interrupts(struct udevice *dev) -{ - dwc3_uboot_handle_interrupt(dev); - return 0; -} - int board_usb_init(int index, enum usb_init_type init) { struct exynos_usb3_phy *phy = (struct exynos_usb3_phy *) diff --git a/board/st/stih410-b2260/board.c b/board/st/stih410-b2260/board.c index e21cbc270e9..82817571ae3 100644 --- a/board/st/stih410-b2260/board.c +++ b/board/st/stih410-b2260/board.c @@ -50,12 +50,6 @@ static struct dwc3_device dwc3_device_data = { .index = 0, }; -int dm_usb_gadget_handle_interrupts(struct udevice *dev) -{ - dwc3_uboot_handle_interrupt(dev); - return 0; -} - int board_usb_init(int index, enum usb_init_type init) { int node; diff --git a/board/ti/am43xx/board.c b/board/ti/am43xx/board.c index ea0d0b92088..a4679a2e294 100644 --- a/board/ti/am43xx/board.c +++ b/board/ti/am43xx/board.c @@ -759,17 +759,6 @@ static struct ti_usb_phy_device usb_phy2_device = { .usb2_phy_power = (void *)USB2_PHY2_POWER, .index = 1, }; - -int dm_usb_gadget_handle_interrupts(struct udevice *dev) -{ - u32 status; - - status = dwc3_omap_uboot_interrupt_status(dev); - if (status) - dwc3_uboot_handle_interrupt(dev); - - return 0; -} #endif /* CONFIG_USB_DWC3 */ #if defined(CONFIG_USB_DWC3) || defined(CONFIG_USB_XHCI_OMAP) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index 4b4fcd8a22e..09737be9a9c 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -983,6 +983,11 @@ void dwc3_uboot_exit(int index) } } +MODULE_ALIAS("platform:dwc3"); +MODULE_AUTHOR("Felipe Balbi "); +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("DesignWare USB3 DRD Controller Driver"); + /** * dwc3_uboot_handle_interrupt - handle dwc3 core interrupt * @dev: device of this controller @@ -1004,10 +1009,22 @@ void dwc3_uboot_handle_interrupt(struct udevice *dev) } } -MODULE_ALIAS("platform:dwc3"); -MODULE_AUTHOR("Felipe Balbi "); -MODULE_LICENSE("GPL v2"); -MODULE_DESCRIPTION("DesignWare USB3 DRD Controller Driver"); +#if !CONFIG_IS_ENABLED(DM_USB_GADGET) +__weak int dwc3_uboot_interrupt_status(struct udevice *dev) +{ + return 1; +} + +int dm_usb_gadget_handle_interrupts(struct udevice *dev) +{ + if (!dwc3_uboot_interrupt_status(dev)) + return 0; + + dwc3_uboot_handle_interrupt(dev); + + return 0; +} +#endif #if CONFIG_IS_ENABLED(PHY) && CONFIG_IS_ENABLED(DM_USB) int dwc3_setup_phy(struct udevice *dev, struct phy_bulk *phys) diff --git a/drivers/usb/dwc3/dwc3-omap.c b/drivers/usb/dwc3/dwc3-omap.c index 4fadb4a3e20..53c4d4826b4 100644 --- a/drivers/usb/dwc3/dwc3-omap.c +++ b/drivers/usb/dwc3/dwc3-omap.c @@ -428,7 +428,7 @@ void dwc3_omap_uboot_exit(int index) } /** - * dwc3_omap_uboot_interrupt_status - check the status of interrupt + * dwc3_uboot_interrupt_status - check the status of interrupt * @dev: device of this controller * * Checks the status of interrupts and returns true if an interrupt @@ -436,7 +436,7 @@ void dwc3_omap_uboot_exit(int index) * * Generally called from board file. */ -int dwc3_omap_uboot_interrupt_status(struct udevice *dev) +int dwc3_uboot_interrupt_status(struct udevice *dev) { struct dwc3_omap *omap = NULL; diff --git a/include/dwc3-omap-uboot.h b/include/dwc3-omap-uboot.h index ed92bfc5a97..f220705ef7b 100644 --- a/include/dwc3-omap-uboot.h +++ b/include/dwc3-omap-uboot.h @@ -27,5 +27,4 @@ struct dwc3_omap_device { int dwc3_omap_uboot_init(struct dwc3_omap_device *dev); void dwc3_omap_uboot_exit(int index); -int dwc3_omap_uboot_interrupt_status(struct udevice *dev); #endif /* __DWC3_OMAP_UBOOT_H_ */ diff --git a/include/dwc3-uboot.h b/include/dwc3-uboot.h index 35cfbb93b29..5f13f5bcf40 100644 --- a/include/dwc3-uboot.h +++ b/include/dwc3-uboot.h @@ -44,6 +44,7 @@ struct dwc3_device { int dwc3_uboot_init(struct dwc3_device *dev); void dwc3_uboot_exit(int index); +int dwc3_uboot_interrupt_status(struct udevice *dev); void dwc3_uboot_handle_interrupt(struct udevice *dev); struct phy; From patchwork Sun Mar 17 04:42:53 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Vasut X-Patchwork-Id: 1912854 X-Patchwork-Delegate: marek.vasut@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=mailbox.org header.i=@mailbox.org header.a=rsa-sha256 header.s=mail20150812 header.b=XcoFXiXm; dkim=pass (2048-bit key) header.d=mailbox.org header.i=@mailbox.org header.a=rsa-sha256 header.s=mail20150812 header.b=jU4dA0Bs; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Ty54Z58Kxz23qh for ; Sun, 17 Mar 2024 15:44:46 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id A2F8F87B71; Sun, 17 Mar 2024 05:44:32 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=reject dis=none) header.from=mailbox.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; secure) header.d=mailbox.org header.i=@mailbox.org header.b="XcoFXiXm"; dkim=pass (2048-bit key) header.d=mailbox.org header.i=@mailbox.org header.b="jU4dA0Bs"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 7359887D09; Sun, 17 Mar 2024 05:44:31 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mout-p-201.mailbox.org (mout-p-201.mailbox.org [80.241.56.171]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 6EC2E87B30 for ; Sun, 17 Mar 2024 05:44:29 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=reject dis=none) header.from=mailbox.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=marek.vasut+renesas@mailbox.org Received: from smtp2.mailbox.org (smtp2.mailbox.org [10.196.197.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-201.mailbox.org (Postfix) with ESMTPS id 4Ty54F0smNz9sWS; Sun, 17 Mar 2024 05:44:29 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailbox.org; s=mail20150812; t=1710650669; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=rq4vRXvKLPE6i0i8x8OsN20yi14milVEaRngyYGfXBM=; b=XcoFXiXm0BZVVy+dZv0gMRvu3/h9oH2Z6HRXnD4W/Wcc/TD0CPFI8NWHcCe/ZJcmwgHo3s aqj9MbZ1A1o6XJ3r5x2Pfz85mjEjfNBZVIuXJKnLmL+22c9Sm3pI4+OCGqyrVWNWj/lwg6 U1Fu8q1liVZVMMR7bfkI1TAJRSQ5XnOEPediv5PviuE2GWnRy7av6oK+ve0lfROdHFxCtb +GSsR89qqIGoE8fVjX8aS80WsmKiG9ySFfktF9RL1ro8KTyUCGfK6/dy/4+v+gWMyx6ph3 bIVylfTpipcd/KWNhaO151VkF6zNB/h9is9CQXJ07V1ZbwlKB03vCWfiy8NTdQ== From: Marek Vasut DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailbox.org; s=mail20150812; t=1710650667; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=rq4vRXvKLPE6i0i8x8OsN20yi14milVEaRngyYGfXBM=; b=jU4dA0BshxMGoIAWUhb11ZYWkZ+wST8c078sG5WzU/2Dt+WTWOZ74FSFQwges8PJukRSJz udd2x2Pyjp7eyBvggIPDEhvu/YtF8HLueNfoI6C4bM75LcyOTOrgeLnN8adLKRMnRPow6g 8yn5uegkuWEBRWkJOVR3rxamEMBrCofwksChkajgH1xr384zJch3EL617oqrBasCC4AoPc 32fsaFm8t9/LKhbYoXK22m6Zfjrq6J6PJ9usQA+Gqz8owhTebqJEeCMakiDbnN014WPXcF +hH6fqSrRZmYDeClfrO7XY/XxPKgw2uSOMrqwvbLB8MW3EJmFLnwCk681JM1XA== To: u-boot@lists.denx.de Cc: Marek Vasut , Angus Ainslie , Caleb Connolly , Eugen Hristev , Igor Prusov , Mattijs Korpershoek , Nishanth Menon , Patrice Chotard , Simon Glass , Stefan Bosch , Svyatoslav Ryhel , Tom Rini , kernel@puri.sm Subject: [PATCH 2/2] usb: udc: dwc3: Fold dwc3_uboot_handle_interrupt into dm_usb_gadget_handle_interrupts Date: Sun, 17 Mar 2024 05:42:53 +0100 Message-ID: <20240317044357.547037-2-marek.vasut+renesas@mailbox.org> In-Reply-To: <20240317044357.547037-1-marek.vasut+renesas@mailbox.org> References: <20240317044357.547037-1-marek.vasut+renesas@mailbox.org> MIME-Version: 1.0 X-MBO-RS-META: 333chcoppd4o6wwx7gin8hod3hbmx7aj X-MBO-RS-ID: e9c5129c0132f9233a0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean The only call site of dwc3_uboot_handle_interrupt() is the dm_usb_gadget_handle_interrupts(), fold the former into the later. This makes dwc3_uboot_handle_interrupt() unavailable to be called from board code as well. Signed-off-by: Marek Vasut Reviewed-by: Mattijs Korpershoek Tested-by: Mattijs Korpershoek # vim3 --- Cc: Angus Ainslie Cc: Caleb Connolly Cc: Eugen Hristev Cc: Igor Prusov Cc: Mattijs Korpershoek Cc: Nishanth Menon Cc: Patrice Chotard Cc: Simon Glass Cc: Stefan Bosch Cc: Svyatoslav Ryhel Cc: Tom Rini Cc: kernel@puri.sm --- drivers/usb/dwc3/core.c | 27 +++++++++++---------------- include/dwc3-uboot.h | 1 - 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index 09737be9a9c..96e850b7170 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -988,18 +988,27 @@ MODULE_AUTHOR("Felipe Balbi "); MODULE_LICENSE("GPL v2"); MODULE_DESCRIPTION("DesignWare USB3 DRD Controller Driver"); +#if !CONFIG_IS_ENABLED(DM_USB_GADGET) +__weak int dwc3_uboot_interrupt_status(struct udevice *dev) +{ + return 1; +} + /** - * dwc3_uboot_handle_interrupt - handle dwc3 core interrupt + * dm_usb_gadget_handle_interrupts - handle dwc3 core interrupt * @dev: device of this controller * * Invokes dwc3 gadget interrupts. * * Generally called from board file. */ -void dwc3_uboot_handle_interrupt(struct udevice *dev) +int dm_usb_gadget_handle_interrupts(struct udevice *dev) { struct dwc3 *dwc = NULL; + if (!dwc3_uboot_interrupt_status(dev)) + return 0; + list_for_each_entry(dwc, &dwc3_list, list) { if (dwc->dev != dev) continue; @@ -1007,20 +1016,6 @@ void dwc3_uboot_handle_interrupt(struct udevice *dev) dwc3_gadget_uboot_handle_interrupt(dwc); break; } -} - -#if !CONFIG_IS_ENABLED(DM_USB_GADGET) -__weak int dwc3_uboot_interrupt_status(struct udevice *dev) -{ - return 1; -} - -int dm_usb_gadget_handle_interrupts(struct udevice *dev) -{ - if (!dwc3_uboot_interrupt_status(dev)) - return 0; - - dwc3_uboot_handle_interrupt(dev); return 0; } diff --git a/include/dwc3-uboot.h b/include/dwc3-uboot.h index 5f13f5bcf40..3689d60ae7f 100644 --- a/include/dwc3-uboot.h +++ b/include/dwc3-uboot.h @@ -45,7 +45,6 @@ struct dwc3_device { int dwc3_uboot_init(struct dwc3_device *dev); void dwc3_uboot_exit(int index); int dwc3_uboot_interrupt_status(struct udevice *dev); -void dwc3_uboot_handle_interrupt(struct udevice *dev); struct phy; #if CONFIG_IS_ENABLED(PHY) && CONFIG_IS_ENABLED(DM_USB)