From nobody Mon Jun 9 15:45:53 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 4bGGVB4cmJz5y4T4; Mon, 09 Jun 2025 15:45:54 +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 4bGGV9705Nz45RG; Mon, 09 Jun 2025 15:45:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1749483954; 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=LvblhsRz11pR1vr97oZUT+E8WFbtPF52qvtknkr95lw=; b=XDfrFBLb+5n9+2+o0NH8FWEuB7S/UEwjvvMYsFVYFrGl+CRWQhl9l1mX2Oy6qXX0ZpshHY PTftfsQQHrjc+au7gJ/DcXtYaIo1lfSk6x0I5CykrTbWDBxmhO5eGL0Si+4DQG+euDTA+U WwFvOwlA0dLtJEK53rewYC0vrvHfsizoNqDr+Q3QkBqCgaNByBQIr+McmMbH79FdI88Deq 8y6/35v9tIoZNEZJBCXvosK17i2Aqt4CmnFdLZs9uyuRMIZ4mB6BgfxZFkFuiGhFA/6BV6 TRnnaUUnBZxYurIlYejkkksTv24ClUZYhXH1EUUBcsV+CfTV7t5u2pz369jMGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1749483954; 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=LvblhsRz11pR1vr97oZUT+E8WFbtPF52qvtknkr95lw=; b=ksRy9XNuTSg5CED1lVaLlP3+5IufFFVhFpvEOvhgy9KYnsORoX5Ju8y6HLikizLMj2H9De 8qGdlRBC5VD+iv2wZAsGff/+UlkU/MagKwJpi3zyOIz7DmInUQ3u6EU9OPWLgnCJZSzH8O 2hSy/XMvtVt2vj7XcvLSAvTHlG318lCDDGynT6omDYbnHI/gSKpsRyTwU8hiMkIjvcktiv QErM7+8jocEEnKf7u9Q9brDNcHWfKXb/ar5gvYdmgsSNnZ0JNlfd4vtEdMpnW4dJNjeb/s cjJIwQJmYpSrpMF80LwwDFFv1OgdurN6cUXyC6f8I4lYBMjLjUHHG4l4XyaoAA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1749483954; a=rsa-sha256; cv=none; b=IGKXba8oqRvLQsScECLBd1Uv2+ZDMU3a3q4PfBqybxwBlCpvP1oIjR4RCTLwX1JHlvSV3B hB+O2lhWYs4fVAvh6Oo7uTicXgj+7NKqwtXVcDeVGrEujz0rqcqgQIU0dEuhMEzt/2yoKL 8Kym+qqVQOWQ6QlNRzW0oiS7RSVf65Z1/prBXeXHXYqbe1bbPZo8nw2uBrbinln3RJYqkA iqONVFOQD2cxV6BtrWhqfgbr4omSjpywlpvbNAW64h8gTt1gshOvEEHo/NDOhcUakeiNhg 1msdTA9LV2v250nXiuW2g5xI4xNGRHU2cLwckxviVJQhquMBEimHaT174tJYUw== 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 4bGGV96Yzbz128n; Mon, 09 Jun 2025 15:45:53 +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 559FjrcH088315; Mon, 9 Jun 2025 15:45:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 559FjrNS088312; Mon, 9 Jun 2025 15:45:53 GMT (envelope-from git) Date: Mon, 9 Jun 2025 15:45:53 GMT Message-Id: <202506091545.559FjrNS088312@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: b0be4172f557 - main - Revert "scmi: Add scmi_token_reserve helper" 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: b0be4172f55752bd5d868ac8fe3a5abf36fe91e7 Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=b0be4172f55752bd5d868ac8fe3a5abf36fe91e7 commit b0be4172f55752bd5d868ac8fe3a5abf36fe91e7 Author: Andrew Turner AuthorDate: 2025-06-09 13:21:40 +0000 Commit: Andrew Turner CommitDate: 2025-06-04 01:32:39 +0000 Revert "scmi: Add scmi_token_reserve helper" Revert to reapply series as some patches were incorrect versions This reverts commit c508841dfc5923ef81ed8ea61da364fb20616bbf. --- sys/dev/firmware/arm/scmi.c | 48 +++++++++------------------------------------ 1 file changed, 9 insertions(+), 39 deletions(-) diff --git a/sys/dev/firmware/arm/scmi.c b/sys/dev/firmware/arm/scmi.c index c24768a5668a..8104f4e10429 100644 --- a/sys/dev/firmware/arm/scmi.c +++ b/sys/dev/firmware/arm/scmi.c @@ -93,7 +93,6 @@ struct scmi_req { bool timed_out; bool use_polling; bool done; - bool is_raw; struct mtx mtx; LIST_ENTRY(scmi_req) next; int protocol_id; @@ -140,7 +139,6 @@ static void scmi_req_free_unlocked(struct scmi_softc *, 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 *); -static int scmi_token_reserve(struct scmi_softc *, uint16_t); static void scmi_token_release_unlocked(struct scmi_softc *, int); static int scmi_req_track_inflight(struct scmi_softc *, struct scmi_req *); @@ -378,7 +376,6 @@ scmi_req_free_unlocked(struct scmi_softc *sc, enum scmi_chan ch_idx, mtx_lock_spin(&rp->mtx); req->timed_out = false; req->done = false; - req->is_raw = false; refcount_init(&req->cnt, 0); LIST_INSERT_HEAD(&rp->head, req, next); mtx_unlock_spin(&rp->mtx); @@ -427,6 +424,7 @@ scmi_token_pick(struct scmi_softc *sc) */ next_msg_id = sc->trs->next_id++ & SCMI_HDR_TOKEN_BF; token = BIT_FFS_AT(SCMI_MAX_TOKEN, &sc->trs->avail_tokens, next_msg_id); + /* TODO Account for wrap-arounds and holes */ if (token != 0) BIT_CLR(SCMI_MAX_TOKEN, token - 1, &sc->trs->avail_tokens); mtx_unlock_spin(&sc->trs->mtx); @@ -442,28 +440,6 @@ scmi_token_pick(struct scmi_softc *sc) return ((int)(token - 1)); } -static int -scmi_token_reserve(struct scmi_softc *sc, uint16_t candidate) -{ - int token = -EBUSY, retries = 3; - - do { - mtx_lock_spin(&sc->trs->mtx); - if (BIT_ISSET(SCMI_MAX_TOKEN, candidate, &sc->trs->avail_tokens)) { - BIT_CLR(SCMI_MAX_TOKEN, candidate, &sc->trs->avail_tokens); - token = candidate; - sc->trs->next_id++; - } - mtx_unlock_spin(&sc->trs->mtx); - if (token == candidate || retries-- == 0) - break; - - pause("scmi_tk_reserve", hz); - } while (1); - - return (token); -} - static void scmi_token_release_unlocked(struct scmi_softc *sc, int token) { @@ -474,23 +450,19 @@ scmi_token_release_unlocked(struct scmi_softc *sc, int token) static int scmi_finalize_req(struct scmi_softc *sc, struct scmi_req *req) { - if (!req->is_raw) - req->token = scmi_token_pick(sc); - else - req->token = scmi_token_reserve(sc, SCMI_MSG_TOKEN(req->msg.hdr)); + uint32_t header = 0; + req->token = scmi_token_pick(sc); if (req->token < 0) return (EBUSY); - if (!req->is_raw) { - req->msg.hdr = req->message_id; - req->msg.hdr |= SCMI_MSG_TYPE_CMD << SCMI_HDR_MESSAGE_TYPE_S; - req->msg.hdr |= req->protocol_id << SCMI_HDR_PROTOCOL_ID_S; - req->msg.hdr |= req->token << SCMI_HDR_TOKEN_S; - } + header = req->message_id; + header |= SCMI_MSG_TYPE_CMD << SCMI_HDR_MESSAGE_TYPE_S; + header |= req->protocol_id << SCMI_HDR_PROTOCOL_ID_S; + header |= req->token << SCMI_HDR_TOKEN_S; - /* Save requested header */ - req->header = req->msg.hdr; + req->header = htole32(header); + req->msg.hdr = htole32(header); return (0); } @@ -698,8 +670,6 @@ scmi_msg_get(device_t dev, int tx_payld_sz, int rx_payld_sz) if (req == NULL) return (NULL); - req->is_raw = true; - return (&req->msg); }