mbox series

[v2,0/2] ufs: pci: Add support UFSHCI 4.0 MCQ

Message ID 20240531212244.1593535-1-minwoo.im@samsung.com (mailing list archive)
Headers show
Series ufs: pci: Add support UFSHCI 4.0 MCQ | expand

Message

Minwoo Im May 31, 2024, 9:22 p.m. UTC
This patchset introduces add support for MCQ introduced in UFSHCI 4.0.  The
first patch adds a simple helper to get the address of MCQ queue config
registers.  The second one enables MCQ feature by adding mandatory vops
callback functions required at MCQ initialization phase.  The last one is to
prevent a case where number of MCQ is given 1 since driver allocates poll_queues
first rather than I/O queues to handle device commands.  Instead of causing
exception handlers due to no I/O queue, failfast during the initialization time.

---
v2:
  - https://lore.kernel.org/linux-scsi/20240531103821.1583934-1-minwoo.im@samsung.com/T/#t
  - Not separate the newly introduced function from the actuall caller in the
    other patch by squash the second patch to the first one (Bart).
  - Rename ufs_redhat_* in ufshcd-pci.c to ufs_qemu_* to represent that it's
    for QEMU UFS PCI device (Bart).

Minwoo Im (2):
  ufs: pci: Add support MCQ for QEMU-based UFS
  ufs: mcq: Prevent no I/O queue case for MCQ

 drivers/ufs/core/ufs-mcq.c    | 23 +++++++++++++++++
 drivers/ufs/host/ufshcd-pci.c | 48 ++++++++++++++++++++++++++++++++++-
 include/ufs/ufshcd.h          |  1 +
 3 files changed, 71 insertions(+), 1 deletion(-)

Comments

Minwoo Im June 4, 2024, 9:25 p.m. UTC | #1
On 24-06-01 06:22:42, Minwoo Im wrote:
> This patchset introduces add support for MCQ introduced in UFSHCI 4.0.  The
> first patch adds a simple helper to get the address of MCQ queue config
> registers.  The second one enables MCQ feature by adding mandatory vops
> callback functions required at MCQ initialization phase.  The last one is to
> prevent a case where number of MCQ is given 1 since driver allocates poll_queues
> first rather than I/O queues to handle device commands.  Instead of causing
> exception handlers due to no I/O queue, failfast during the initialization time.
> 
> ---
> v2:
>   - https://lore.kernel.org/linux-scsi/20240531103821.1583934-1-minwoo.im@samsung.com/T/#t

Now the MCQ feature of hw/ufs has been pulled to QEMU [1]. You can test this
patchset with [1].

[1] https://github.com/qemu/qemu/commit/5c079578d2e46df626d13eeb629c7d761a5c4e44

>   - Not separate the newly introduced function from the actuall caller in the
>     other patch by squash the second patch to the first one (Bart).
>   - Rename ufs_redhat_* in ufshcd-pci.c to ufs_qemu_* to represent that it's
>     for QEMU UFS PCI device (Bart).
> 
> Minwoo Im (2):
>   ufs: pci: Add support MCQ for QEMU-based UFS
>   ufs: mcq: Prevent no I/O queue case for MCQ
> 
>  drivers/ufs/core/ufs-mcq.c    | 23 +++++++++++++++++
>  drivers/ufs/host/ufshcd-pci.c | 48 ++++++++++++++++++++++++++++++++++-
>  include/ufs/ufshcd.h          |  1 +
>  3 files changed, 71 insertions(+), 1 deletion(-)
> 
> -- 
> 2.34.1
>
Bart Van Assche June 4, 2024, 10:17 p.m. UTC | #2
On 5/31/24 15:22, Minwoo Im wrote:
> This patchset introduces add support for MCQ introduced in UFSHCI 4.0.  The
> first patch adds a simple helper to get the address of MCQ queue config
> registers.  The second one enables MCQ feature by adding mandatory vops
> callback functions required at MCQ initialization phase.  The last one is to
> prevent a case where number of MCQ is given 1 since driver allocates poll_queues
> first rather than I/O queues to handle device commands.  Instead of causing
> exception handlers due to no I/O queue, failfast during the initialization time.

For both patches, feel free to add:

Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Martin K. Petersen June 5, 2024, 2:17 a.m. UTC | #3
Minwoo,

> This patchset introduces add support for MCQ introduced in UFSHCI 4.0.
> The first patch adds a simple helper to get the address of MCQ queue
> config registers. The second one enables MCQ feature by adding
> mandatory vops callback functions required at MCQ initialization
> phase. The last one is to prevent a case where number of MCQ is given
> 1 since driver allocates poll_queues first rather than I/O queues to
> handle device commands. Instead of causing exception handlers due to
> no I/O queue, failfast during the initialization time.

Applied to 6.11/scsi-staging, thanks!

Martin
Martin K. Petersen June 12, 2024, 1:59 a.m. UTC | #4
On Sat, 01 Jun 2024 06:22:42 +0900, Minwoo Im wrote:

> This patchset introduces add support for MCQ introduced in UFSHCI 4.0.  The
> first patch adds a simple helper to get the address of MCQ queue config
> registers.  The second one enables MCQ feature by adding mandatory vops
> callback functions required at MCQ initialization phase.  The last one is to
> prevent a case where number of MCQ is given 1 since driver allocates poll_queues
> first rather than I/O queues to handle device commands.  Instead of causing
> exception handlers due to no I/O queue, failfast during the initialization time.
> 
> [...]

Applied to 6.11/scsi-queue, thanks!

[1/2] ufs: pci: Add support MCQ for QEMU-based UFS
      https://git.kernel.org/mkp/scsi/c/175d1825ca4d
[2/2] ufs: mcq: Prevent no I/O queue case for MCQ
      https://git.kernel.org/mkp/scsi/c/a420a8ed0a92