arm64: qcom: add patch for ACPI UFS storage
This commit is contained in:
parent
639ea3fb7e
commit
0d2c8ee000
83
arm64-ufs-qcom-Add-support-for-platforms-booting-ACPI.patch
Normal file
83
arm64-ufs-qcom-Add-support-for-platforms-booting-ACPI.patch
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
From 9ceb22fbffbad710db2c91ed32e4e73503f13301 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Peter Robinson <pbrobinson@gmail.com>
|
||||||
|
Date: Tue, 25 Jun 2019 19:12:10 +0100
|
||||||
|
Subject: [PATCH] scsi: ufs-qcom: Add support for platforms booting ACPI
|
||||||
|
|
||||||
|
New Qualcomm AArch64 based laptops are now available which use UFS
|
||||||
|
as their primary data storage medium. These devices are supplied
|
||||||
|
with ACPI support out of the box. This patch ensures the Qualcomm
|
||||||
|
UFS driver will be bound when the "QCOM24A5" H/W device is
|
||||||
|
advertised as present.
|
||||||
|
|
||||||
|
Signed-off-by: Lee Jones <lee.jones@linaro.org>
|
||||||
|
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
|
||||||
|
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
|
||||||
|
---
|
||||||
|
drivers/scsi/ufs/ufs-qcom.c | 23 ++++++++++++++++++++---
|
||||||
|
1 file changed, 20 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c
|
||||||
|
index b4d1b5c22987..ee4b1da1e223 100644
|
||||||
|
--- a/drivers/scsi/ufs/ufs-qcom.c
|
||||||
|
+++ b/drivers/scsi/ufs/ufs-qcom.c
|
||||||
|
@@ -3,6 +3,7 @@
|
||||||
|
* Copyright (c) 2013-2016, Linux Foundation. All rights reserved.
|
||||||
|
*/
|
||||||
|
|
||||||
|
+#include <linux/acpi.h>
|
||||||
|
#include <linux/time.h>
|
||||||
|
#include <linux/of.h>
|
||||||
|
#include <linux/platform_device.h>
|
||||||
|
@@ -161,6 +162,9 @@ static int ufs_qcom_init_lane_clks(struct ufs_qcom_host *host)
|
||||||
|
int err = 0;
|
||||||
|
struct device *dev = host->hba->dev;
|
||||||
|
|
||||||
|
+ if (has_acpi_companion(dev))
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
err = ufs_qcom_host_clk_get(dev, "rx_lane0_sync_clk",
|
||||||
|
&host->rx_l0_sync_clk, false);
|
||||||
|
if (err)
|
||||||
|
@@ -1127,9 +1131,13 @@ static int ufs_qcom_init(struct ufs_hba *hba)
|
||||||
|
__func__, err);
|
||||||
|
goto out_variant_clear;
|
||||||
|
} else if (IS_ERR(host->generic_phy)) {
|
||||||
|
- err = PTR_ERR(host->generic_phy);
|
||||||
|
- dev_err(dev, "%s: PHY get failed %d\n", __func__, err);
|
||||||
|
- goto out_variant_clear;
|
||||||
|
+ if (has_acpi_companion(dev)) {
|
||||||
|
+ host->generic_phy = NULL;
|
||||||
|
+ } else {
|
||||||
|
+ err = PTR_ERR(host->generic_phy);
|
||||||
|
+ dev_err(dev, "%s: PHY get failed %d\n", __func__, err);
|
||||||
|
+ goto out_variant_clear;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
err = ufs_qcom_bus_register(host);
|
||||||
|
@@ -1599,6 +1607,14 @@ static const struct of_device_id ufs_qcom_of_match[] = {
|
||||||
|
};
|
||||||
|
MODULE_DEVICE_TABLE(of, ufs_qcom_of_match);
|
||||||
|
|
||||||
|
+#ifdef CONFIG_ACPI
|
||||||
|
+static const struct acpi_device_id ufs_qcom_acpi_match[] = {
|
||||||
|
+ { "QCOM24A5" },
|
||||||
|
+ { },
|
||||||
|
+};
|
||||||
|
+MODULE_DEVICE_TABLE(acpi, ufs_qcom_acpi_match);
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
static const struct dev_pm_ops ufs_qcom_pm_ops = {
|
||||||
|
.suspend = ufshcd_pltfrm_suspend,
|
||||||
|
.resume = ufshcd_pltfrm_resume,
|
||||||
|
@@ -1615,6 +1631,7 @@ static struct platform_driver ufs_qcom_pltform = {
|
||||||
|
.name = "ufshcd-qcom",
|
||||||
|
.pm = &ufs_qcom_pm_ops,
|
||||||
|
.of_match_table = of_match_ptr(ufs_qcom_of_match),
|
||||||
|
+ .acpi_match_table = ACPI_PTR(ufs_qcom_acpi_match),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
module_platform_driver(ufs_qcom_pltform);
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
@ -568,7 +568,7 @@ Patch350: arm64-qcom-pinctrl-support-for-ACPI.patch
|
|||||||
Patch351: arm64-acpi-ignore-5.1-fadts-reported-as-5.0.patch
|
Patch351: arm64-acpi-ignore-5.1-fadts-reported-as-5.0.patch
|
||||||
Patch352: arm64-acpi-make-ac-and-battery-drivers-available-on-non-x86.patch
|
Patch352: arm64-acpi-make-ac-and-battery-drivers-available-on-non-x86.patch
|
||||||
Patch353: arm64-qcom-DWC3-USB-Add-support-for-ACPI-based-AArch64-Laptops.patch
|
Patch353: arm64-qcom-DWC3-USB-Add-support-for-ACPI-based-AArch64-Laptops.patch
|
||||||
|
Patch354: arm64-ufs-qcom-Add-support-for-platforms-booting-ACPI.patch
|
||||||
|
|
||||||
# 400 - IBM (ppc/s390x) patches
|
# 400 - IBM (ppc/s390x) patches
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user