+++ /dev/null
-From ea593e028a9cc523557b4084a61d87ae69e2f270 Mon Sep 17 00:00:00 2001
-From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
-Date: Fri, 16 Aug 2024 11:55:11 +0530
-Subject: scsi: ufs: qcom: Add UFSHCD_QUIRK_BROKEN_LSDBS_CAP for SM8550 SoC
-
-From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
-
-commit ea593e028a9cc523557b4084a61d87ae69e2f270 upstream.
-
-SM8550 SoC has the UFSHCI 4.0 compliant UFS controller and only supports
-legacy single doorbell mode without MCQ. But due to a hardware bug, it
-reports 1 in the 'Legacy Queue & Single Doorbell Support (LSDBS)' field of
-the Controller Capabilities register. This field is supposed to read as 0
-if legacy single doorbell mode is supported and 1 otherwise.
-
-Starting with commit 0c60eb0cc320 ("scsi: ufs: core: Check LSDBS cap when
-!mcq"), ufshcd driver is now relying on the LSDBS field to decide when to
-use the legacy doorbell mode if MCQ is not supported. And this ends up
-breaking UFS on SM8550:
-
-ufshcd-qcom 1d84000.ufs: ufshcd_init: failed to initialize (legacy doorbell mode not supported)
-ufshcd-qcom 1d84000.ufs: error -EINVAL: Initialization failed with error -22
-
-So use the UFSHCD_QUIRK_BROKEN_LSDBS_CAP quirk for SM8550 SoC so that the
-ufshcd driver could use legacy doorbell mode correctly.
-
-Fixes: 0c60eb0cc320 ("scsi: ufs: core: Check LSDBS cap when !mcq")
-Tested-by: Amit Pundir <amit.pundir@linaro.org>
-Reviewed-by: Bart Van Assche <bvanassche@acm.org>
-Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
-Link: https://lore.kernel.org/r/20240816-ufs-bug-fix-v3-2-e6fe0e18e2a3@linaro.org
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/ufs/host/ufs-qcom.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
---- a/drivers/ufs/host/ufs-qcom.c
-+++ b/drivers/ufs/host/ufs-qcom.c
-@@ -857,6 +857,9 @@ static void ufs_qcom_advertise_quirks(st
-
- if (host->hw_ver.major > 0x3)
- hba->quirks |= UFSHCD_QUIRK_REINIT_AFTER_MAX_GEAR_SWITCH;
-+
-+ if (of_device_is_compatible(hba->dev->of_node, "qcom,sm8550-ufshc"))
-+ hba->quirks |= UFSHCD_QUIRK_BROKEN_LSDBS_CAP;
- }
-
- static void ufs_qcom_set_phy_gear(struct ufs_qcom_host *host)
-@@ -1845,7 +1848,8 @@ static void ufs_qcom_remove(struct platf
- }
-
- static const struct of_device_id ufs_qcom_of_match[] __maybe_unused = {
-- { .compatible = "qcom,ufshc"},
-+ { .compatible = "qcom,ufshc" },
-+ { .compatible = "qcom,sm8550-ufshc" },
- {},
- };
- MODULE_DEVICE_TABLE(of, ufs_qcom_of_match);
mm-fix-filemap_invalidate_inode-to-use-invalidate_inode_pages2_range.patch
drm-amdgpu-remove-redundant-semicolons-in-ras_event_log.patch
i2c-use-is_reachable-for-substituting-empty-acpi-functions.patch
-scsi-ufs-qcom-add-ufshcd_quirk_broken_lsdbs_cap-for-sm8550-soc.patch
+++ /dev/null
-From ea593e028a9cc523557b4084a61d87ae69e2f270 Mon Sep 17 00:00:00 2001
-From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
-Date: Fri, 16 Aug 2024 11:55:11 +0530
-Subject: scsi: ufs: qcom: Add UFSHCD_QUIRK_BROKEN_LSDBS_CAP for SM8550 SoC
-
-From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
-
-commit ea593e028a9cc523557b4084a61d87ae69e2f270 upstream.
-
-SM8550 SoC has the UFSHCI 4.0 compliant UFS controller and only supports
-legacy single doorbell mode without MCQ. But due to a hardware bug, it
-reports 1 in the 'Legacy Queue & Single Doorbell Support (LSDBS)' field of
-the Controller Capabilities register. This field is supposed to read as 0
-if legacy single doorbell mode is supported and 1 otherwise.
-
-Starting with commit 0c60eb0cc320 ("scsi: ufs: core: Check LSDBS cap when
-!mcq"), ufshcd driver is now relying on the LSDBS field to decide when to
-use the legacy doorbell mode if MCQ is not supported. And this ends up
-breaking UFS on SM8550:
-
-ufshcd-qcom 1d84000.ufs: ufshcd_init: failed to initialize (legacy doorbell mode not supported)
-ufshcd-qcom 1d84000.ufs: error -EINVAL: Initialization failed with error -22
-
-So use the UFSHCD_QUIRK_BROKEN_LSDBS_CAP quirk for SM8550 SoC so that the
-ufshcd driver could use legacy doorbell mode correctly.
-
-Fixes: 0c60eb0cc320 ("scsi: ufs: core: Check LSDBS cap when !mcq")
-Tested-by: Amit Pundir <amit.pundir@linaro.org>
-Reviewed-by: Bart Van Assche <bvanassche@acm.org>
-Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
-Link: https://lore.kernel.org/r/20240816-ufs-bug-fix-v3-2-e6fe0e18e2a3@linaro.org
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/ufs/host/ufs-qcom.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
---- a/drivers/ufs/host/ufs-qcom.c
-+++ b/drivers/ufs/host/ufs-qcom.c
-@@ -1038,6 +1038,9 @@ static void ufs_qcom_advertise_quirks(st
-
- if (host->hw_ver.major > 0x3)
- hba->quirks |= UFSHCD_QUIRK_REINIT_AFTER_MAX_GEAR_SWITCH;
-+
-+ if (of_device_is_compatible(hba->dev->of_node, "qcom,sm8550-ufshc"))
-+ hba->quirks |= UFSHCD_QUIRK_BROKEN_LSDBS_CAP;
- }
-
- static void ufs_qcom_set_caps(struct ufs_hba *hba)
-@@ -1931,7 +1934,8 @@ static int ufs_qcom_remove(struct platfo
- }
-
- static const struct of_device_id ufs_qcom_of_match[] __maybe_unused = {
-- { .compatible = "qcom,ufshc"},
-+ { .compatible = "qcom,ufshc" },
-+ { .compatible = "qcom,sm8550-ufshc" },
- {},
- };
- MODULE_DEVICE_TABLE(of, ufs_qcom_of_match);
media-uvcvideo-enforce-alignment-of-frame-and-interv.patch
virtio_net-fix-napi_skb_cache_put-warning.patch
i2c-use-is_reachable-for-substituting-empty-acpi-functions.patch
-scsi-ufs-qcom-add-ufshcd_quirk_broken_lsdbs_cap-for-sm8550-soc.patch