[PATCH V4 0/2] Simplify MCQ resource mapping

Nitin Rawat posted 2 patches 4 weeks, 1 day ago
drivers/ufs/host/ufs-qcom.c | 174 +++++++++++++-----------------------
drivers/ufs/host/ufs-qcom.h |  26 +++++-
include/ufs/ufshcd.h        |  25 ------
3 files changed, 85 insertions(+), 140 deletions(-)
[PATCH V4 0/2] Simplify MCQ resource mapping
Posted by Nitin Rawat 4 weeks, 1 day ago
The patch series simplifies the UFS MCQ (Multi Circular Queue) resource
mapping in the Qualcomm UFS host controller driver by replacing the complex
multi-resource approach with a streamlined single-resource implementation.

The current MCQ implementation uses multiple separate resource mappings
(RES_UFS, RES_MCQ, RES_MCQ_SQD, RES_MCQ_VS) with dynamic resource
allocation, which increases code complexity and potential for resource
mapping errors. This approach also doesn't align with the device tree
binding specification that defines a single 'mcq' memory region.

Replace the multi-resource mapping with a single "mcq" resource that
encompasses the entire MCQ configuration space. The doorbell registers
(SQD, CQD, SQIS, CQIS) are accessed using predefined offsets relative
to the MCQ base address, providing clearer memory layout organization.

Tested on Qualcomm platforms SM8650 and SM8750 with UFS MCQ enabled.

Changes from v3:
1. Addressed Krzysztof comment to separate device tree and driver
   patch independently in different patch series. This series caters
   driver changes.
2. Addressed Manivannan's change to update commit text and remove
   redundant null check in mcq code.
3. Addressed Manivannan's to Update few offsets as fixed definition
   instead of enum.

Changes from v2:
1. Removed dt-bindings patch as existing binding supports required
   reg-names format.
2. Added patch to refactor MCQ register dump logic for new resource
   mapping.
3. Added patch to remove unused ufshcd_res_info structure from UFS core.
4. Changed reg-names from "ufs_mem" to "std" in device tree patches.
5. Reordered patches with driver changes first, then device tree changes.
6. Updated SM8750 MCQ region size from 0x2000 to 0x15000


Nitin Rawat (2):
  ufs: ufs-qcom: Streamline UFS MCQ resource mapping
  ufs: ufs-qcom: Refactor MCQ register dump logic

 drivers/ufs/host/ufs-qcom.c | 174 +++++++++++++-----------------------
 drivers/ufs/host/ufs-qcom.h |  26 +++++-
 include/ufs/ufshcd.h        |  25 ------
 3 files changed, 85 insertions(+), 140 deletions(-)

--
2.50.1
Re: [PATCH V4 0/2] Simplify MCQ resource mapping
Posted by Martin K. Petersen 3 weeks, 2 days ago
Nitin,

> The patch series simplifies the UFS MCQ (Multi Circular Queue)
> resource mapping in the Qualcomm UFS host controller driver by
> replacing the complex multi-resource approach with a streamlined
> single-resource implementation.

Applied to 6.18/scsi-staging, thanks!

-- 
Martin K. Petersen
Re: [PATCH V4 0/2] Simplify MCQ resource mapping
Posted by Manivannan Sadhasivam 3 weeks, 6 days ago
On Wed, Sep 03, 2025 at 01:18:13PM GMT, Nitin Rawat wrote:
> The patch series simplifies the UFS MCQ (Multi Circular Queue) resource
> mapping in the Qualcomm UFS host controller driver by replacing the complex
> multi-resource approach with a streamlined single-resource implementation.
> 
> The current MCQ implementation uses multiple separate resource mappings
> (RES_UFS, RES_MCQ, RES_MCQ_SQD, RES_MCQ_VS) with dynamic resource
> allocation, which increases code complexity and potential for resource
> mapping errors. This approach also doesn't align with the device tree
> binding specification that defines a single 'mcq' memory region.
> 
> Replace the multi-resource mapping with a single "mcq" resource that
> encompasses the entire MCQ configuration space. The doorbell registers
> (SQD, CQD, SQIS, CQIS) are accessed using predefined offsets relative
> to the MCQ base address, providing clearer memory layout organization.
> 
> Tested on Qualcomm platforms SM8650 and SM8750 with UFS MCQ enabled.
> 

Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>

- Mani

> Changes from v3:
> 1. Addressed Krzysztof comment to separate device tree and driver
>    patch independently in different patch series. This series caters
>    driver changes.
> 2. Addressed Manivannan's change to update commit text and remove
>    redundant null check in mcq code.
> 3. Addressed Manivannan's to Update few offsets as fixed definition
>    instead of enum.
> 
> Changes from v2:
> 1. Removed dt-bindings patch as existing binding supports required
>    reg-names format.
> 2. Added patch to refactor MCQ register dump logic for new resource
>    mapping.
> 3. Added patch to remove unused ufshcd_res_info structure from UFS core.
> 4. Changed reg-names from "ufs_mem" to "std" in device tree patches.
> 5. Reordered patches with driver changes first, then device tree changes.
> 6. Updated SM8750 MCQ region size from 0x2000 to 0x15000
> 
> 
> Nitin Rawat (2):
>   ufs: ufs-qcom: Streamline UFS MCQ resource mapping
>   ufs: ufs-qcom: Refactor MCQ register dump logic
> 
>  drivers/ufs/host/ufs-qcom.c | 174 +++++++++++++-----------------------
>  drivers/ufs/host/ufs-qcom.h |  26 +++++-
>  include/ufs/ufshcd.h        |  25 ------
>  3 files changed, 85 insertions(+), 140 deletions(-)
> 
> --
> 2.50.1
> 

-- 
மணிவண்ணன் சதாசிவம்