From nobody Mon Jun 9 15:45:54 2025 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 4bGGVC4XsQz5y4T5; Mon, 09 Jun 2025 15:45:55 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bGGVC0rhBz45Tp; Mon, 09 Jun 2025 15:45:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1749483955; 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=mY5XckQGdxKzl1SkymbUlXLJQWieYG0uHFQjJ2MFIv4=; b=rNSiX0AvQMoH8i9+RaxuyrHZwq9zz8Xyord//mKWbXC9Y05AQT4A0SBwxKqQcD31X7Mybt TwyNgxKKHWgR7PX2IKlYzezl9EROzv8SKBi3XB2g151ngZM42KihvyhfW4NHqTIeO3SmjS AhclsS4LWzjJzfRyV2WwMXpCMN+IjvyDIbGMNsh8IDFdTk0RslP/Y3HR635LzR/QwCHRQV qdkFFFj8Zi71+BK/W0llIh9X2f3E81DKvjc2a/r9GgOLbTiIhS1wBTxr8I8N4ZpDtfE8rf diqM/f9wxUfk7VwtUZdavBkAsHHrahB2BnAOost3or069HMZDi4Z3k8/3gvbCA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1749483955; 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=mY5XckQGdxKzl1SkymbUlXLJQWieYG0uHFQjJ2MFIv4=; b=X7D+IX6wtH9mVcBsxxNd8VrOAhnDxDXMt2g9Z6jz8e0gtrz0thrpwqjORkq//1XIr79TNp +EbaFMorWIScXW2SkBHRF63eit9/AEdVUoZ2nh9B2JQH27RcwflTVNJa6oOR4klkdiEP6H Jh2s3SrCuoRBSRvwuNgUGY2mIr0efpOOFbd2I5OD7MvTwEKI5v+MrI5t8/djUz7R2x76kX uuBroptuwYhTR+Q8woAVjaAgq2vp+RQdtfSYljY5KVmBg+BJ8V+YoWHqnk4vuJ/jgABA66 Uvl1wtk8mDXY6J+a5KeByI7I/GhD9yMknrO6+HNKdRTO/Y7ASr0tpSJVvhdoxA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1749483955; a=rsa-sha256; cv=none; b=GPESveisnQgCXd2+ZaEam3WHh7xOM1owulT8OKlX+VxUw8CEp97b2OXjcRgdGYjYxJHmzs 5pMeraBiEViuzfqC7xzMWv6BMf/vIC+sk+KL77vRniuI0lclq+psidNeXiYG1zOJ+4cnmi OLJfUR8pEcuuq0lqdT+FhbGqCy4TXosTL1AGwlLnBgkeFYYoB/Cv8aP/qcWy7BDhNHa7jD 4v8m/Hlv8//xSnzbi2jbvLyS1Y6gbFdhNaqdUBZiU+cWMTAVUtKOY99xYgZOIx/3P91InX snowCeE9Ax48oIOARKDiCNYshkR1X3QyiOrpiBFoCSN0FM2rR7jpZPzXyezDxw== 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 4bGGVC0CSRz11nk; Mon, 09 Jun 2025 15:45:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 559FjsjV088350; Mon, 9 Jun 2025 15:45:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 559FjsZf088347; Mon, 9 Jun 2025 15:45:54 GMT (envelope-from git) Date: Mon, 9 Jun 2025 15:45:54 GMT Message-Id: <202506091545.559FjsZf088347@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Andrew Turner Subject: git: ed57f6e6fd3c - main - Revert "scmi: Add helper to manipulate scmi_msg descriptors" 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: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ed57f6e6fd3cab539c2aefb0c29d162b6923ce45 Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=ed57f6e6fd3cab539c2aefb0c29d162b6923ce45 commit ed57f6e6fd3cab539c2aefb0c29d162b6923ce45 Author: Andrew Turner AuthorDate: 2025-06-09 13:21:42 +0000 Commit: Andrew Turner CommitDate: 2025-06-04 01:32:39 +0000 Revert "scmi: Add helper to manipulate scmi_msg descriptors" Revert to reapply series as some patches were incorrect versions This reverts commit e887179d4bc032e79d0334371d613c5841989a41. --- sys/dev/firmware/arm/scmi.c | 77 ++++++++++----------------------------------- sys/dev/firmware/arm/scmi.h | 2 -- 2 files changed, 16 insertions(+), 63 deletions(-) diff --git a/sys/dev/firmware/arm/scmi.c b/sys/dev/firmware/arm/scmi.c index 8104f4e10429..cf5a678370fd 100644 --- a/sys/dev/firmware/arm/scmi.c +++ b/sys/dev/firmware/arm/scmi.c @@ -132,10 +132,9 @@ static int scmi_transport_init(struct scmi_softc *, phandle_t); static void scmi_transport_cleanup(struct scmi_softc *); static struct scmi_reqs_pool *scmi_reqs_pool_allocate(const int, const int); static void scmi_reqs_pool_free(struct scmi_reqs_pool *); -static struct scmi_req *scmi_req_alloc(struct scmi_softc *, enum scmi_chan); -static struct scmi_req *scmi_req_initialized_alloc(device_t, int, int); +static struct scmi_req *scmi_req_alloc(struct scmi_softc *, enum scmi_chan); static void scmi_req_free_unlocked(struct scmi_softc *, - enum scmi_chan, struct scmi_req *); + enum scmi_chan, struct scmi_req *); static void scmi_req_get(struct scmi_softc *, struct scmi_req *); static void scmi_req_put(struct scmi_softc *, struct scmi_req *); static int scmi_token_pick(struct scmi_softc *); @@ -320,32 +319,6 @@ scmi_transport_cleanup(struct scmi_softc *sc) free(sc->trs, M_DEVBUF); } -static struct scmi_req * -scmi_req_initialized_alloc(device_t dev, int tx_payld_sz, int rx_payld_sz) -{ - struct scmi_softc *sc; - struct scmi_req *req; - - sc = device_get_softc(dev); - - if (tx_payld_sz > SCMI_MAX_MSG_PAYLD_SIZE(sc) || - rx_payld_sz > SCMI_MAX_MSG_REPLY_SIZE(sc)) { - device_printf(dev, "Unsupported payload size. Drop.\n"); - return (NULL); - } - - /* Pick one from free list */ - req = scmi_req_alloc(sc, SCMI_CHAN_A2P); - if (req == NULL) - return (NULL); - - req->msg.tx_len = sizeof(req->msg.hdr) + tx_payld_sz; - req->msg.rx_len = rx_payld_sz ? - rx_payld_sz + 2 * sizeof(uint32_t) : SCMI_MAX_MSG_SIZE(sc); - - return (req); -} - static struct scmi_req * scmi_req_alloc(struct scmi_softc *sc, enum scmi_chan ch_idx) { @@ -401,10 +374,6 @@ scmi_req_put(struct scmi_softc *sc, struct scmi_req *req) { mtx_lock_spin(&req->mtx); if (!refcount_release_if_not_last(&req->cnt)) { - req->protocol_id = 0; - req->message_id = 0; - req->token = 0; - req->header = 0; bzero(&req->msg, sizeof(req->msg) + SCMI_MAX_MSG_PAYLD_SIZE(sc)); scmi_req_free_unlocked(sc, SCMI_CHAN_A2P, req); } @@ -635,15 +604,27 @@ void * scmi_buf_get(device_t dev, uint8_t protocol_id, uint8_t message_id, int tx_payld_sz, int rx_payld_sz) { + struct scmi_softc *sc; struct scmi_req *req; - /* Pick a pre-built req */ - req = scmi_req_initialized_alloc(dev, tx_payld_sz, rx_payld_sz); + sc = device_get_softc(dev); + + if (tx_payld_sz > SCMI_MAX_MSG_PAYLD_SIZE(sc) || + rx_payld_sz > SCMI_MAX_MSG_REPLY_SIZE(sc)) { + device_printf(dev, "Unsupported payload size. Drop.\n"); + return (NULL); + } + + /* Pick one from free list */ + req = scmi_req_alloc(sc, SCMI_CHAN_A2P); if (req == NULL) return (NULL); req->protocol_id = protocol_id & SCMI_HDR_PROTOCOL_ID_BF; req->message_id = message_id & SCMI_HDR_MESSAGE_ID_BF; + req->msg.tx_len = sizeof(req->msg.hdr) + tx_payld_sz; + req->msg.rx_len = rx_payld_sz ? + rx_payld_sz + 2 * sizeof(uint32_t) : SCMI_MAX_MSG_SIZE(sc); return (&req->msg.payld[0]); } @@ -660,32 +641,6 @@ scmi_buf_put(device_t dev, void *buf) scmi_req_put(sc, req); } -struct scmi_msg * -scmi_msg_get(device_t dev, int tx_payld_sz, int rx_payld_sz) -{ - struct scmi_req *req; - - /* Pick a pre-built req */ - req = scmi_req_initialized_alloc(dev, tx_payld_sz, rx_payld_sz); - if (req == NULL) - return (NULL); - - return (&req->msg); -} - -void -scmi_msg_put(device_t dev, struct scmi_msg *msg) -{ - struct scmi_softc *sc; - struct scmi_req *req; - - sc = device_get_softc(dev); - - req = msg_to_req(msg); - - scmi_req_put(sc, req); -} - int scmi_request(device_t dev, void *in, void **out) { diff --git a/sys/dev/firmware/arm/scmi.h b/sys/dev/firmware/arm/scmi.h index f6aa072caeca..135b49c3b05b 100644 --- a/sys/dev/firmware/arm/scmi.h +++ b/sys/dev/firmware/arm/scmi.h @@ -80,8 +80,6 @@ struct scmi_msg { void *scmi_buf_get(device_t dev, uint8_t protocol_id, uint8_t message_id, int tx_payd_sz, int rx_payld_sz); void scmi_buf_put(device_t dev, void *buf); -struct scmi_msg *scmi_msg_get(device_t dev, int tx_payld_sz, int rx_payld_sz); -void scmi_msg_put(device_t dev, struct scmi_msg *msg); int scmi_request(device_t dev, void *in, void **); void scmi_rx_irq_callback(device_t dev, void *chan, uint32_t hdr, uint32_t rx_len);