From nobody Tue Oct 06 07:51:24 2026 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 4hzT3J6pPqz6cWSq for ; Tue, 06 Oct 2026 07:51:24 +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 "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hzT3J5Ntkz4GsF for ; Tue, 06 Oct 2026 07:51:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791273084; 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=J4BDkjnKAl2NGZRaFH3DbWGpvj0PlF1UZZLi7jviMbI=; b=e9wBTBerDNJWglFx0JbI6F5v9d1gMGXfAjr7ATEaYE6VAIC77uyGQHPR6Ka1apUD6dgyCp Xxs/b5BqOLs18RB2nzF8bkihlC16vHF8Zg2f114bysWgAqCKm9lggg36lIx9iyQ3kIdkbe lVRRCgVGMQI/3yTdB+JqsaMoq1hr8tp7Wc0LHOn9ORChJZv9UyYCcvtH5mc4fYDnmLyliO qmYoFHy5l1yYWa2pvRQqxUrB1NERg6skjh2sIl3V9jm0myM1PW9fVBb+F8OZGaT/X3g5yX zDfFad78OBBCVOwRFrCa6tVH6R5PNI7PDZ/yyq+cAKsN1AUL7IC2jpwc1grxmA== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1791273084; b=RjilWttArAjkHmUGiMWIdETlRFqxkjb6+HLiNMoy4qKjZc4qv8+ZWynfYbxlo4UbZAizSx sDDB/hvYmND3dfyXH2LKPxXuVlxItFLiPlyvH1/r8Q2DgAqb1ON4ssTjUWl3yO57lX+Bgk eepELdOIT1rMlG3MimSW7ZNPD2Mm8WmtC1iR1GHR9EpU2Mab5HjMLFwT1/6vV5uzDpBS4V QXgsFAJva06d/eNZTT5ON9LC2MO09mAxkf1g1m6sx1faI2R4yqOmoQG2f6xzkZ5gLIIYqh nKVFmOotSNy/FzTpkKMZ5AywcMYwL17uahUvx0z0kudOTQGJ+FO6pnm6+Khw4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791273084; 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=J4BDkjnKAl2NGZRaFH3DbWGpvj0PlF1UZZLi7jviMbI=; b=ul8B4uim3484S+qUzMV32MNZSM1b30A1lgboptF78s2VsHUJufjCXw70qI37QXsQuQVrhk 9yLIUHO1W3oSYd533pq/sQrVHmt3pmPecCnhE/AsPK8Qqjzd9xWi5rVs5ZYghDFW/nbZ/C 9c/8bulD0DB4OTG2+D9iqLfs+qDelYsD8Lp9bDNcFts0eoxCOZiNYaBcJvCE3bORKP639W kA8TFA4FQYKdXH+ejzOlUQBlrve8ApeyCI1huwOlBGzOKdBcsphEFSO65b8OCEr4pkJ+K6 Ft4N42tqIY0cpRjpQPtYvmfsR/YF3ZZI+sxIgZRUxCcaHcvsOrbeHeDxA9akeA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hzT3J40Vpzx09 for ; Tue, 06 Oct 2026 07:51:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 18f17 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 06 Oct 2026 07:51:24 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jaeyoon Choi Subject: git: 5dd01a6f1518 - stable/15 - ufshci: consolidate the device query submit/poll pattern 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 List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jaeyoon X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 5dd01a6f1518d9bc615880ec04d732fca00489bb Auto-Submitted: auto-generated Date: Tue, 06 Oct 2026 07:51:24 +0000 Message-Id: <6ac4a87c.18f17.5ab57d96@gitrepo.freebsd.org> The branch stable/15 has been updated by jaeyoon: URL: https://cgit.FreeBSD.org/src/commit/?id=5dd01a6f1518d9bc615880ec04d732fca00489bb commit 5dd01a6f1518d9bc615880ec04d732fca00489bb Author: Jaeyoon Choi AuthorDate: 2026-08-18 04:52:54 +0000 Commit: Jaeyoon Choi CommitDate: 2026-10-06 06:28:03 +0000 ufshci: consolidate the device query submit/poll pattern The six query helpers duplicated the same submit, error check, poll, and status check sequence. Move it into ufshci_dev_send_query() so future changes to the query flow are made in one place. This also unifies the failure log message format. Reviewed by: imp (mentor) Sponsored by: Samsung Electronics Differential Revision: https://reviews.freebsd.org/D58818 (cherry picked from commit e1aa173f812010675005e2917d7b2b44ee4a226e) --- sys/dev/ufshci/ufshci_dev.c | 98 +++++++++++++-------------------------------- 1 file changed, 28 insertions(+), 70 deletions(-) diff --git a/sys/dev/ufshci/ufshci_dev.c b/sys/dev/ufshci/ufshci_dev.c index 18546d7120c0..063b65aaf579 100644 --- a/sys/dev/ufshci/ufshci_dev.c +++ b/sys/dev/ufshci/ufshci_dev.c @@ -12,6 +12,28 @@ #include "ufshci_private.h" #include "ufshci_reg.h" +static int +ufshci_dev_send_query(struct ufshci_controller *ctrlr, + struct ufshci_query_param param, + struct ufshci_completion_poll_status *status, const char *fail_msg) +{ + int error; + + status->done = 0; + error = ufshci_ctrlr_cmd_send_query_request(ctrlr, + ufshci_completion_poll_cb, status, param); + if (error) + return (error); + + ufshci_completion_poll(status); + if (status->error) { + ufshci_printf(ctrlr, "%s failed!\n", fail_msg); + return (ENXIO); + } + + return (0); +} + static int ufshci_dev_read_descriptor(struct ufshci_controller *ctrlr, enum ufshci_descriptor_type desc_type, uint8_t index, uint8_t selector, @@ -29,19 +51,10 @@ ufshci_dev_read_descriptor(struct ufshci_controller *ctrlr, param.value = 0; param.desc_size = desc_size; - status.done = 0; - error = ufshci_ctrlr_cmd_send_query_request(ctrlr, - ufshci_completion_poll_cb, &status, param); + error = ufshci_dev_send_query(ctrlr, param, &status, __func__); if (error) return (error); - ufshci_completion_poll(&status); - if (status.error) { - ufshci_printf(ctrlr, - "Failed to send Read Descriptor query request!\n"); - return (ENXIO); - } - memcpy(desc, status.cpl.response_upiu.query_response_upiu.command_data, desc_size); @@ -88,18 +101,10 @@ ufshci_dev_read_flag(struct ufshci_controller *ctrlr, param.value = 0; param.desc_size = 0; - status.done = 0; - error = ufshci_ctrlr_cmd_send_query_request(ctrlr, - ufshci_completion_poll_cb, &status, param); + error = ufshci_dev_send_query(ctrlr, param, &status, __func__); if (error) return (error); - ufshci_completion_poll(&status); - if (status.error) { - ufshci_printf(ctrlr, "ufshci_dev_read_flag failed!\n"); - return (ENXIO); - } - *flag = status.cpl.response_upiu.query_response_upiu.flag_value; return (0); @@ -111,7 +116,6 @@ ufshci_dev_set_flag(struct ufshci_controller *ctrlr, { struct ufshci_completion_poll_status status; struct ufshci_query_param param; - int error; param.function = UFSHCI_QUERY_FUNC_STANDARD_WRITE_REQUEST; param.opcode = UFSHCI_QUERY_OPCODE_SET_FLAG; @@ -121,19 +125,7 @@ ufshci_dev_set_flag(struct ufshci_controller *ctrlr, param.value = 0; param.desc_size = 0; - status.done = 0; - error = ufshci_ctrlr_cmd_send_query_request(ctrlr, - ufshci_completion_poll_cb, &status, param); - if (error) - return (error); - - ufshci_completion_poll(&status); - if (status.error) { - ufshci_printf(ctrlr, "ufshci_dev_set_flag failed!\n"); - return (ENXIO); - } - - return (0); + return (ufshci_dev_send_query(ctrlr, param, &status, __func__)); } static int @@ -142,7 +134,6 @@ ufshci_dev_clear_flag(struct ufshci_controller *ctrlr, { struct ufshci_completion_poll_status status; struct ufshci_query_param param; - int error; param.function = UFSHCI_QUERY_FUNC_STANDARD_WRITE_REQUEST; param.opcode = UFSHCI_QUERY_OPCODE_CLEAR_FLAG; @@ -152,19 +143,7 @@ ufshci_dev_clear_flag(struct ufshci_controller *ctrlr, param.value = 0; param.desc_size = 0; - status.done = 0; - error = ufshci_ctrlr_cmd_send_query_request(ctrlr, - ufshci_completion_poll_cb, &status, param); - if (error) - return (error); - - ufshci_completion_poll(&status); - if (status.error) { - ufshci_printf(ctrlr, "ufshci_dev_clear_flag failed!\n"); - return (ENXIO); - } - - return (0); + return (ufshci_dev_send_query(ctrlr, param, &status, __func__)); } static int @@ -184,18 +163,10 @@ ufshci_dev_read_attribute(struct ufshci_controller *ctrlr, param.value = 0; param.desc_size = 0; - status.done = 0; - error = ufshci_ctrlr_cmd_send_query_request(ctrlr, - ufshci_completion_poll_cb, &status, param); + error = ufshci_dev_send_query(ctrlr, param, &status, __func__); if (error) return (error); - ufshci_completion_poll(&status); - if (status.error) { - ufshci_printf(ctrlr, "ufshci_dev_read_attribute failed!\n"); - return (ENXIO); - } - *value = be64toh(status.cpl.response_upiu.query_response_upiu.value_64); return (0); @@ -208,7 +179,6 @@ ufshci_dev_write_attribute(struct ufshci_controller *ctrlr, { struct ufshci_completion_poll_status status; struct ufshci_query_param param; - int error; param.function = UFSHCI_QUERY_FUNC_STANDARD_WRITE_REQUEST; param.opcode = UFSHCI_QUERY_OPCODE_WRITE_ATTRIBUTE; @@ -218,19 +188,7 @@ ufshci_dev_write_attribute(struct ufshci_controller *ctrlr, param.value = value; param.desc_size = 0; - status.done = 0; - error = ufshci_ctrlr_cmd_send_query_request(ctrlr, - ufshci_completion_poll_cb, &status, param); - if (error) - return (error); - - ufshci_completion_poll(&status); - if (status.error) { - ufshci_printf(ctrlr, "ufshci_dev_write_attribute failed!\n"); - return (ENXIO); - } - - return (0); + return (ufshci_dev_send_query(ctrlr, param, &status, __func__)); } int