aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/815-sata-0001-ahci-qoriq-enable-acpi-support-in-qoriq-ahci-driver.patch
diff options
context:
space:
mode:
authorYangbo Lu <yangbo.lu@nxp.com>2020-04-10 10:47:05 +0800
committerPetr Štetiar <ynezz@true.cz>2020-05-07 12:53:06 +0200
commitcddd4591404fb4c53dc0b3c0b15b942cdbed4356 (patch)
tree392c1179de46b0f804e3789edca19069b64e6b44 /target/linux/layerscape/patches-5.4/815-sata-0001-ahci-qoriq-enable-acpi-support-in-qoriq-ahci-driver.patch
parentd1d2c0b5579ea4f69a42246c9318539d61ba1999 (diff)
downloadupstream-cddd4591404fb4c53dc0b3c0b15b942cdbed4356.tar.gz
upstream-cddd4591404fb4c53dc0b3c0b15b942cdbed4356.tar.bz2
upstream-cddd4591404fb4c53dc0b3c0b15b942cdbed4356.zip
layerscape: add patches-5.4
Add patches for linux-5.4. The patches are from NXP LSDK-20.04 release which was tagged LSDK-20.04-V5.4. https://source.codeaurora.org/external/qoriq/qoriq-components/linux/ For boards LS1021A-IOT, and Traverse-LS1043 which are not involved in LSDK, port the dts patches from 4.14. The patches are sorted into the following categories: 301-arch-xxxx 302-dts-xxxx 303-core-xxxx 701-net-xxxx 801-audio-xxxx 802-can-xxxx 803-clock-xxxx 804-crypto-xxxx 805-display-xxxx 806-dma-xxxx 807-gpio-xxxx 808-i2c-xxxx 809-jailhouse-xxxx 810-keys-xxxx 811-kvm-xxxx 812-pcie-xxxx 813-pm-xxxx 814-qe-xxxx 815-sata-xxxx 816-sdhc-xxxx 817-spi-xxxx 818-thermal-xxxx 819-uart-xxxx 820-usb-xxxx 821-vfio-xxxx Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
Diffstat (limited to 'target/linux/layerscape/patches-5.4/815-sata-0001-ahci-qoriq-enable-acpi-support-in-qoriq-ahci-driver.patch')
-rw-r--r--target/linux/layerscape/patches-5.4/815-sata-0001-ahci-qoriq-enable-acpi-support-in-qoriq-ahci-driver.patch83
1 files changed, 83 insertions, 0 deletions
diff --git a/target/linux/layerscape/patches-5.4/815-sata-0001-ahci-qoriq-enable-acpi-support-in-qoriq-ahci-driver.patch b/target/linux/layerscape/patches-5.4/815-sata-0001-ahci-qoriq-enable-acpi-support-in-qoriq-ahci-driver.patch
new file mode 100644
index 0000000000..74d75d0077
--- /dev/null
+++ b/target/linux/layerscape/patches-5.4/815-sata-0001-ahci-qoriq-enable-acpi-support-in-qoriq-ahci-driver.patch
@@ -0,0 +1,83 @@
+From 8f0baa717e7854b795567678415bc7173d66bc13 Mon Sep 17 00:00:00 2001
+From: Peng Ma <peng.ma@nxp.com>
+Date: Wed, 15 May 2019 05:45:35 +0000
+Subject: [PATCH] ahci: qoriq: enable acpi support in qoriq ahci driver
+
+This patch enables ACPI support in qoriq ahci driver.
+
+Signed-off-by: Udit Kumar <udit.kumar@nxp.com>
+Signed-off-by: Peng Ma <peng.ma@nxp.com>
+---
+ drivers/ata/ahci_qoriq.c | 20 +++++++++++++++++---
+ 1 file changed, 17 insertions(+), 3 deletions(-)
+
+--- a/drivers/ata/ahci_qoriq.c
++++ b/drivers/ata/ahci_qoriq.c
+@@ -6,6 +6,7 @@
+ * Tang Yuantian <Yuantian.Tang@freescale.com>
+ */
+
++#include <linux/acpi.h>
+ #include <linux/kernel.h>
+ #include <linux/module.h>
+ #include <linux/pm.h>
+@@ -80,6 +81,12 @@ static const struct of_device_id ahci_qo
+ };
+ MODULE_DEVICE_TABLE(of, ahci_qoriq_of_match);
+
++static const struct acpi_device_id ahci_qoriq_acpi_match[] = {
++ {"NXP0004", .driver_data = (kernel_ulong_t)AHCI_LX2160A},
++ { }
++};
++MODULE_DEVICE_TABLE(acpi, ahci_qoriq_acpi_match);
++
+ static int ahci_qoriq_hardreset(struct ata_link *link, unsigned int *class,
+ unsigned long deadline)
+ {
+@@ -255,6 +262,7 @@ static int ahci_qoriq_phy_init(struct ah
+ static int ahci_qoriq_probe(struct platform_device *pdev)
+ {
+ struct device_node *np = pdev->dev.of_node;
++ const struct acpi_device_id *acpi_id;
+ struct device *dev = &pdev->dev;
+ struct ahci_host_priv *hpriv;
+ struct ahci_qoriq_priv *qoriq_priv;
+@@ -267,14 +275,18 @@ static int ahci_qoriq_probe(struct platf
+ return PTR_ERR(hpriv);
+
+ of_id = of_match_node(ahci_qoriq_of_match, np);
+- if (!of_id)
++ acpi_id = acpi_match_device(ahci_qoriq_acpi_match, &pdev->dev);
++ if (!(of_id || acpi_id))
+ return -ENODEV;
+
+ qoriq_priv = devm_kzalloc(dev, sizeof(*qoriq_priv), GFP_KERNEL);
+ if (!qoriq_priv)
+ return -ENOMEM;
+
+- qoriq_priv->type = (enum ahci_qoriq_type)of_id->data;
++ if (of_id)
++ qoriq_priv->type = (enum ahci_qoriq_type)of_id->data;
++ else
++ qoriq_priv->type = (enum ahci_qoriq_type)acpi_id->driver_data;
+
+ if (unlikely(!ecc_initialized)) {
+ res = platform_get_resource_byname(pdev,
+@@ -288,7 +300,8 @@ static int ahci_qoriq_probe(struct platf
+ }
+ }
+
+- qoriq_priv->is_dmacoherent = of_dma_is_coherent(np);
++ if (device_get_dma_attr(&pdev->dev) == DEV_DMA_COHERENT)
++ qoriq_priv->is_dmacoherent = true;
+
+ rc = ahci_platform_enable_resources(hpriv);
+ if (rc)
+@@ -354,6 +367,7 @@ static struct platform_driver ahci_qoriq
+ .driver = {
+ .name = DRV_NAME,
+ .of_match_table = ahci_qoriq_of_match,
++ .acpi_match_table = ahci_qoriq_acpi_match,
+ .pm = &ahci_qoriq_pm_ops,
+ },
+ };