From nobody Thu Aug 11 14:53:14 2022 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4M3VDB673Lz4Y7MJ; Thu, 11 Aug 2022 14:53:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (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 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4M3VDB5YKjz3T63; Thu, 11 Aug 2022 14:53:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1660229594; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+cwn5IHXjD4tw5btmTToi1nDMBjHhj6ehiKsJaGiFJc=; b=X1DkV7g0dJ45qazJ6JQiwDH1B+SFdzAdT9tpigxHZDnvOhnBQ2vKvP6Jkv5JNQ1bbPywu5 gZXg7/XCf4W226SgX5J5PERWLoBY2btqJvzeWoRG2j8gp7RXdbSIqKdED+L8KQHfWhKBQ9 YSzikWuLMl7HYnmKyxp4kSmB2OwtMjmpWcEKwjx5CWZcHnaawl2iG8NkpXI7R7gLQLYrGg eocfSXOwKHCEGl7l6hEY5oRvR43flMdYvtkPwcxAyorTQIuIooJAaISWCBXNR762PIHiUm gNM3GG3rUdrvbUyquNHlPoj7cJQFsW672PrJTVGzHeGtcMNm1pb4i9FyOYsPbw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4M3VDB4f2Kzw98; Thu, 11 Aug 2022 14:53:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 27BErEio032425; Thu, 11 Aug 2022 14:53:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 27BErE2R032424; Thu, 11 Aug 2022 14:53:14 GMT (envelope-from git) Date: Thu, 11 Aug 2022 14:53:14 GMT Message-Id: <202208111453.27BErE2R032424@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mitchell Horne Subject: git: fd23372bd562 - stable/12 - if_dwc: Add dwc_stop_dma and use it in dwc_stop_locked List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/stable/12 X-Git-Reftype: branch X-Git-Commit: fd23372bd562f381682658c02d5b3952162e29c8 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1660229594; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+cwn5IHXjD4tw5btmTToi1nDMBjHhj6ehiKsJaGiFJc=; b=tW+YTT6P8B0icvzNkEtXscKzzRsspUY91JAUYHGnVTTgwxgsyfXnRzuSDNeKdH+IOyAfHQ P0N5hZQDUJjabEOHgMYLtAunjYkG0tRXEsm6GKwijYrtnjnE7GO61i+LIu+GAggfrksJ7D HYCuYmjOCAT3fv2UZqEJ7jVmMT/9/1fQvo0OQiaMinuxqw7yS7gUKswwaRrJb6b3Ea9YYR HHk0vD4z84/yM4WGAFhwEDafxCx62bVgtms0E1BM4tTRQFeGtDPbywQ/8moqnkmiGCmNk+ jvZxrx6Ovsr7hNXo7UOBy1T7XV9o88nsQFoNcclfRrCwZB98VLNsHMIDG40EwQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1660229594; a=rsa-sha256; cv=none; b=FiRywoX+wNjzC8QyxjP017Woqjk+WtWd9MW2OJERPyEB/pZ08iVX3TitTXW2MSV2kbGNOS usXDCMRxDyoKwczA8N7SiHgbUgXHzAhUtL1HZR/rRMjxAhMYN/HgU/mJVUy6JxOk5zAq7C yUcsUueuCzuMkRm0eBhk6uFRgMHhWMiFM1XyB/TdjrCUiK206dDVe2CYmDKvl5dXVGGXL0 TnOLMOR5AUkaXhA6afYq9HNd8DpGJEdol/ytpS7YTblIjfDLgku7RWZEUTkWbMcjGGHpPL 2LFlCQB64Ficng2ahhvTysCYthU8cmldVOxnOG2MfmOFreBrW7N2UtZoeXAsmg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=fd23372bd562f381682658c02d5b3952162e29c8 commit fd23372bd562f381682658c02d5b3952162e29c8 Author: Emmanuel Vadot AuthorDate: 2020-11-20 11:29:00 +0000 Commit: Mitchell Horne CommitDate: 2022-08-11 14:52:02 +0000 if_dwc: Add dwc_stop_dma and use it in dwc_stop_locked No functional changes intended (cherry picked from commit afd0c3c26801cd038203da1df61be9728e3369a4) --- sys/dev/dwc/if_dwc.c | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/sys/dev/dwc/if_dwc.c b/sys/dev/dwc/if_dwc.c index aa8fbc9a12b3..d4bc4caffa32 100644 --- a/sys/dev/dwc/if_dwc.c +++ b/sys/dev/dwc/if_dwc.c @@ -214,6 +214,7 @@ static void dwc_setup_rxfilter(struct dwc_softc *sc); static void dwc_setup_core(struct dwc_softc *sc); static void dwc_enable_mac(struct dwc_softc *sc, bool enable); static void dwc_init_dma(struct dwc_softc *sc); +static void dwc_stop_dma(struct dwc_softc *sc); static inline uint32_t next_rxidx(struct dwc_softc *sc, uint32_t curidx) @@ -359,7 +360,6 @@ static void dwc_stop_locked(struct dwc_softc *sc) { struct ifnet *ifp; - uint32_t reg; DWC_ASSERT_LOCKED(sc); @@ -370,22 +370,8 @@ dwc_stop_locked(struct dwc_softc *sc) callout_stop(&sc->dwc_callout); - /* Stop DMA TX */ - reg = READ4(sc, OPERATION_MODE); - reg &= ~(MODE_ST); - WRITE4(sc, OPERATION_MODE, reg); - - /* Flush TX */ - reg = READ4(sc, OPERATION_MODE); - reg |= (MODE_FTF); - WRITE4(sc, OPERATION_MODE, reg); - + dwc_stop_dma(sc); dwc_enable_mac(sc, false); - - /* Stop DMA RX */ - reg = READ4(sc, OPERATION_MODE); - reg &= ~(MODE_SR); - WRITE4(sc, OPERATION_MODE, reg); } static void dwc_clear_stats(struct dwc_softc *sc) @@ -819,6 +805,29 @@ dwc_init_dma(struct dwc_softc *sc) WRITE4(sc, OPERATION_MODE, reg); } +static void +dwc_stop_dma(struct dwc_softc *sc) +{ + uint32_t reg; + + DWC_ASSERT_LOCKED(sc); + + /* Stop DMA TX */ + reg = READ4(sc, OPERATION_MODE); + reg &= ~(MODE_ST); + WRITE4(sc, OPERATION_MODE, reg); + + /* Flush TX */ + reg = READ4(sc, OPERATION_MODE); + reg |= (MODE_FTF); + WRITE4(sc, OPERATION_MODE, reg); + + /* Stop DMA RX */ + reg = READ4(sc, OPERATION_MODE); + reg &= ~(MODE_SR); + WRITE4(sc, OPERATION_MODE, reg); +} + static int dwc_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) {