UFS: PATCH [2/4]

Raz raziebe at gmail.com
Sun May 31 12:04:33 CEST 2026


>From 3ccb178242d15b2a8ac4122c7238eb1ddc51adf2 Mon Sep 17 00:00:00 2001
From: Raz Ben Yehuda <raz.benyehuda at mobileye.com>
Date: Thu, 28 May 2026 15:08:14 +0300
Subject: [PATCH 2/4] ufs: Expose selected UFS functions

Remove the static qualifier from selected functions to allow
future reuse.

Signed-off-by: Raz Ben Yehuda <raz.benyehuda at mobileye.com>
---
 drivers/ufs/ufs-uclass.c | 18 +++++++++---------
 drivers/ufs/ufs.h        | 16 ++++++++++++++++
 2 files changed, 25 insertions(+), 9 deletions(-)

diff --git a/drivers/ufs/ufs-uclass.c b/drivers/ufs/ufs-uclass.c
index 6a51f337e47..78f6064ddea 100644
--- a/drivers/ufs/ufs-uclass.c
+++ b/drivers/ufs/ufs-uclass.c
@@ -757,7 +757,7 @@ static inline u8 ufshcd_get_upmcrs(struct ufs_hba *hba)
  *
  * Flush cache in aligned address..address+size range.
  */
-static void ufshcd_cache_flush(void *addr, unsigned long size)
+void ufshcd_cache_flush(void *addr, unsigned long size)
 {
  uintptr_t start_addr = (uintptr_t)addr & ~(ARCH_DMA_MINALIGN - 1);
  uintptr_t end_addr = ALIGN((uintptr_t)addr + size, ARCH_DMA_MINALIGN);
@@ -1089,8 +1089,8 @@ static inline void ufshcd_init_query(struct ufs_hba *hba,
 /**
  * ufshcd_query_flag() - API function for sending flag query requests
  */
-static int ufshcd_query_flag(struct ufs_hba *hba, enum query_opcode opcode,
-      enum flag_idn idn, bool *flag_res)
+int ufshcd_query_flag(struct ufs_hba *hba, enum query_opcode opcode,
+       enum flag_idn idn, bool *flag_res)
 {
  struct ufs_query_req *request = NULL;
  struct ufs_query_res *response = NULL;
@@ -1320,9 +1320,9 @@ out:
 /**
  * ufshcd_query_descriptor_retry - API function for sending descriptor requests
  */
-static int ufshcd_query_descriptor_retry(struct ufs_hba *hba, enum
query_opcode opcode,
- enum desc_idn idn, u8 index, u8 selector,
- u8 *desc_buf, int *buf_len)
+int  ufshcd_query_descriptor_retry(struct ufs_hba *hba, enum
query_opcode opcode,
+    enum desc_idn idn, u8 index, u8 selector,
+    u8 *desc_buf, int *buf_len)
 {
  int err;
  int retries;
@@ -1457,9 +1457,9 @@ static int ufshcd_map_desc_id_to_length(struct
ufs_hba *hba, enum desc_idn desc_
  * ufshcd_read_desc_param - read the specified descriptor parameter
  *
  */
-static int ufshcd_read_desc_param(struct ufs_hba *hba, enum desc_idn desc_id,
-   int desc_index, u8 param_offset,
-   u8 *param_read_buf, u8 param_size)
+int ufshcd_read_desc_param(struct ufs_hba *hba, enum desc_idn desc_id,
+    int desc_index, u8 param_offset,
+    u8 *param_read_buf, u8 param_size)
 {
  int ret;
  u8 *desc_buf;
diff --git a/drivers/ufs/ufs.h b/drivers/ufs/ufs.h
index 0f6c93fbce7..75b7ff83155 100644
--- a/drivers/ufs/ufs.h
+++ b/drivers/ufs/ufs.h
@@ -218,6 +218,9 @@ enum flag_idn {
  QUERY_FLAG_IDN_BUSY_RTC = 0x09,
  QUERY_FLAG_IDN_RESERVED3 = 0x0A,
  QUERY_FLAG_IDN_PERMANENTLY_DISABLE_FW_UPDATE = 0x0B,
+ QUERY_FLAG_IDN_F_WRITE_BOOSTER_EN               = 0x0E,
+ QUERY_FLAG_IDN_F_WB_BUF_FLUSH_EN                = 0x0F,
+ QUERY_FLAG_IDN_F_WB_BUF_FLUSH_HIBERN8           = 0x10
 };

 /* Attribute idn for Query requests */
@@ -809,4 +812,17 @@ static inline void ufshcd_rmwl(struct ufs_hba
*hba, u32 mask, u32 val, u32 reg)

 int ufshcd_probe(struct udevice *dev, struct ufs_hba_ops *hba_ops);

+int ufshcd_read_desc_param(struct ufs_hba *hba, enum desc_idn desc_id,
+    int desc_index, u8 param_offset, u8 *param_read_buf,
+    u8 param_size);
+
+void ufshcd_cache_flush(void *addr, unsigned long size);
+
+int ufshcd_query_flag(struct ufs_hba *hba, enum query_opcode opcode,
+       enum flag_idn idn, bool *flag_res);
+
+int ufshcd_query_descriptor_retry(struct ufs_hba *hba, enum
query_opcode opcode,
+   enum desc_idn idn, u8 index, u8 selector,
+   u8 *desc_buf, int *buf_len);
+
 #endif
-- 
2.43.0
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-ufs-Expose-selected-UFS-functions.patch
Type: text/x-patch
Size: 3790 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20260531/89748a62/attachment.bin>


More information about the U-Boot mailing list