From nobody Mon Jun 9 15:45:51 2025 X-Original-To: dev-commits-src-main@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 4bGGV80v3mz5y4Yg; Mon, 09 Jun 2025 15:45:52 +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 4bGGV762DKz45G6; Mon, 09 Jun 2025 15:45:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1749483951; 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=0hjcAOnligDgeWj0ZH3ekxxMnDcVxTuEqu46NH9rxsM=; b=PPQKVf8rE/2Y2RVXrVNBQ2IjbjZesBcneP34+mCPUEwm/vuMkLQPH0URgitwEb97N2O/q5 PByOL3leD2REZsD33YhciqFX/rf2ZUcGdKO0YeeWUrDnuCia8XsvW7aZ1/iGKwcV8QY9wW j4Gxp5MVTBKKlfP/V3e3YmJNKEYj8XRBwUbX1Mmlmb02FOlY/10pOdmWbm07WminHh2C7t wc6UoJvElOAcLsJ2OFxeLS1ztIwUgA2mcQ48h+gD9WJ+ucmrm+bgJp7eHgW6MLzUFUHGE1 DgVd/AdyNTjMSVCAuXF0/dFd5LRHF8j+ZuVt+0kTZ6w91BGQBFZdvIL/uxDePA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1749483951; 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=0hjcAOnligDgeWj0ZH3ekxxMnDcVxTuEqu46NH9rxsM=; b=eruvx4khCL0xodoTauTdvFbtab0yR2jfUQqVsDUQkByyU9doRRKZIlhVeCkCXaIfTcTQ33 sL8f+4S9vq7wxys1CKL2uFJV+2PGcAuSUr8UCIq8U6uh3fwAn6cofVxrTaBZq+ibBx+JmR QJy4FWvvl3xJMrpg2lJdfvkb2N5w06Q+TxbY9cJ4iaDxW14BxVXv/3uxpk9dNVSbE69/Or cZx5Bh6r2fjHiAjex1BTQoqO6wYSykP/PIh9pr9CRnN+YPfeFsiadcOIGk38ik4SV59P4E uWgaKrV03m3vGjQqsdog5X99qjnxHTf/4O+5VWBqxpT2d4wW8kCCHWdB+ZXBmw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1749483951; a=rsa-sha256; cv=none; b=BJsxRF9A6AarOF8B6o01kvUBU5eAIrRjp25zQa2KCUdIf6rGMqqX3OoSOMb35mxB6JAggC OeBuyFkZDHmoWXwCt5ufjLH9GOBVjdh+4rK8d4UazpmzMQf45ZCWa19defwmbQEegeDUc3 WOCarYdfM8ErbxbLquTcYtPYfAJJhpPlyHsAMZSBf0qigOSndKwXn5JwH2I2c+RhoSHbr3 /4qtDEniQkhgr9UoFaOwa1XyZ4XBwU8XWknzjG1oKI5CCHlJreGbzraIE9ZWJmYAKgHDJN yaqBk+05rJLsAMNHCJyToSsSlR4n89gP68LozPEYI6GFM7eA7Wh1sal4/J9ogA== 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 4bGGV756Hzz11yK; Mon, 09 Jun 2025 15:45:51 +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 559FjpS8088240; Mon, 9 Jun 2025 15:45:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 559FjpBe088237; Mon, 9 Jun 2025 15:45:51 GMT (envelope-from git) Date: Mon, 9 Jun 2025 15:45:51 GMT Message-Id: <202506091545.559FjpBe088237@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: 35fee38c77f1 - main - Revert "scmi: Add optional asynchronous handling of replies" List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: 35fee38c77f1bb1a30a2c62b8eca923463dbed7e Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=35fee38c77f1bb1a30a2c62b8eca923463dbed7e commit 35fee38c77f1bb1a30a2c62b8eca923463dbed7e Author: Andrew Turner AuthorDate: 2025-06-09 13:21:35 +0000 Commit: Andrew Turner CommitDate: 2025-06-04 01:32:39 +0000 Revert "scmi: Add optional asynchronous handling of replies" Revert to reapply series as some patches were incorrect versions This reverts commit b802926b7b145d7cfe2465ac4e19f062a9eb6e6d. --- sys/dev/firmware/arm/scmi.c | 46 +++++---------------------------------------- sys/dev/firmware/arm/scmi.h | 1 - 2 files changed, 5 insertions(+), 42 deletions(-) diff --git a/sys/dev/firmware/arm/scmi.c b/sys/dev/firmware/arm/scmi.c index 0b165e413674..950bbf94eeb6 100644 --- a/sys/dev/firmware/arm/scmi.c +++ b/sys/dev/firmware/arm/scmi.c @@ -43,7 +43,6 @@ #include #include #include -#include #include #include @@ -95,8 +94,6 @@ struct scmi_req { bool use_polling; bool done; bool is_raw; - device_t dev; - struct task tsk; struct mtx mtx; LIST_ENTRY(scmi_req) next; int protocol_id; @@ -106,7 +103,6 @@ struct scmi_req { struct scmi_msg msg; }; -#define tsk_to_req(t) __containerof((t), struct scmi_req, tsk) #define buf_to_msg(b) __containerof((b), struct scmi_msg, payld) #define msg_to_req(m) __containerof((m), struct scmi_req, msg) #define buf_to_req(b) msg_to_req(buf_to_msg(b)) @@ -135,9 +131,7 @@ struct scmi_transport { static void scmi_transport_configure(struct scmi_transport_desc *, phandle_t); static int scmi_transport_init(struct scmi_softc *, phandle_t); static void scmi_transport_cleanup(struct scmi_softc *); -static void scmi_req_async_waiter(void *, int); -static struct scmi_reqs_pool *scmi_reqs_pool_allocate(device_t, const int, - const int); +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); @@ -223,7 +217,7 @@ DRIVER_MODULE(scmi, simplebus, scmi_driver, 0, 0); MODULE_VERSION(scmi, 1); static struct scmi_reqs_pool * -scmi_reqs_pool_allocate(device_t dev, const int max_msg, const int max_payld_sz) +scmi_reqs_pool_allocate(const int max_msg, const int max_payld_sz) { struct scmi_reqs_pool *rp; struct scmi_req *req; @@ -235,10 +229,6 @@ scmi_reqs_pool_allocate(device_t dev, const int max_msg, const int max_payld_sz) req = malloc(sizeof(*req) + max_payld_sz, M_DEVBUF, M_ZERO | M_WAITOK); - req->dev = dev; - req->tsk.ta_context = &req->tsk; - req->tsk.ta_func = scmi_req_async_waiter; - mtx_init(&req->mtx, "req", "SCMI", MTX_SPIN); LIST_INSERT_HEAD(&rp->head, req, next); } @@ -290,14 +280,14 @@ scmi_transport_init(struct scmi_softc *sc, phandle_t node) trs->inflight_ht = hashinit(td->max_msg, M_DEVBUF, &trs->inflight_mask); trs->chans[SCMI_CHAN_A2P] = - scmi_reqs_pool_allocate(sc->dev, td->max_msg, td->max_payld_sz); + scmi_reqs_pool_allocate(td->max_msg, td->max_payld_sz); if (trs->chans[SCMI_CHAN_A2P] == NULL) { free(trs, M_DEVBUF); return (ENOMEM); } trs->chans[SCMI_CHAN_P2A] = - scmi_reqs_pool_allocate(sc->dev, td->max_msg, td->max_payld_sz); + scmi_reqs_pool_allocate(td->max_msg, td->max_payld_sz); if (trs->chans[SCMI_CHAN_P2A] == NULL) { scmi_reqs_pool_free(trs->chans[SCMI_CHAN_A2P]); free(trs, M_DEVBUF); @@ -658,8 +648,7 @@ scmi_wait_for_response(struct scmi_softc *sc, struct scmi_req *req, void **out) SCMI_COLLECT_REPLY(sc->dev, &req->msg); if (req->msg.payld[0] != 0) ret = req->msg.payld[0]; - if (out != NULL) - *out = &req->msg.payld[SCMI_MSG_HDR_SIZE]; + *out = &req->msg.payld[SCMI_MSG_HDR_SIZE]; } else { device_printf(sc->dev, "Request for token 0x%X timed-out.\n", req->token); @@ -714,20 +703,6 @@ scmi_msg_get(device_t dev, int tx_payld_sz, int rx_payld_sz) return (&req->msg); } -static void -scmi_req_async_waiter(void *context, int pending) -{ - struct task *ta = context; - struct scmi_softc *sc; - struct scmi_req *req; - - req = tsk_to_req(ta); - sc = device_get_softc(req->dev); - scmi_wait_for_response(sc, req, NULL); - - scmi_msg_put(req->dev, &req->msg); -} - void scmi_msg_put(device_t dev, struct scmi_msg *msg) { @@ -788,14 +763,3 @@ scmi_request(device_t dev, void *in, void **out) return (scmi_wait_for_response(sc, req, out)); } - -int -scmi_msg_async_enqueue(struct scmi_msg *msg) -{ - struct scmi_req *req; - - req = msg_to_req(msg); - - return taskqueue_enqueue_flags(taskqueue_thread, &req->tsk, - TASKQUEUE_FAIL_IF_PENDING | TASKQUEUE_FAIL_IF_CANCELING); -} diff --git a/sys/dev/firmware/arm/scmi.h b/sys/dev/firmware/arm/scmi.h index 990759237964..f5b4173272bb 100644 --- a/sys/dev/firmware/arm/scmi.h +++ b/sys/dev/firmware/arm/scmi.h @@ -84,7 +84,6 @@ 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 **); int scmi_request_tx(device_t dev, void *in); -int scmi_msg_async_enqueue(struct scmi_msg *msg); void scmi_rx_irq_callback(device_t dev, void *chan, uint32_t hdr, uint32_t rx_len); DECLARE_CLASS(scmi_driver);