[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20210618063821.1383357-1-art@khadas.com>
Date: Fri, 18 Jun 2021 14:38:21 +0800
From: Artem Lapkin <email2tema@...il.com>
To: narmstrong@...libre.com
Cc: yue.wang@...ogic.com, khilman@...libre.com,
lorenzo.pieralisi@....com, robh@...nel.org, kw@...ux.com,
jbrunet@...libre.com, christianshewitt@...il.com,
martin.blumenstingl@...glemail.com, linux-pci@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org,
linux-amlogic@...ts.infradead.org, linux-kernel@...r.kernel.org,
art@...das.com, nick@...das.com, gouwa@...das.com
Subject: [PATCH] PCI: dwc: meson add quirk
Device set same 256 bytes maximum read request size equal MAX_READ_REQ_SIZE
was find some issue with HDMI scrambled picture and nvme devices
at intensive writing...
[ 4.798971] nvme 0000:01:00.0: fix MRRS from 512 to 256
This quirk setup same MRRS if we try solve this problem with
pci=pcie_bus_perf kernel command line param
Signed-off-by: Artem Lapkin <art@...das.com>
---
drivers/pci/controller/dwc/pci-meson.c | 27 ++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/drivers/pci/controller/dwc/pci-meson.c b/drivers/pci/controller/dwc/pci-meson.c
index 686ded034f22..e2d40e5c2661 100644
--- a/drivers/pci/controller/dwc/pci-meson.c
+++ b/drivers/pci/controller/dwc/pci-meson.c
@@ -466,6 +466,33 @@ static int meson_pcie_probe(struct platform_device *pdev)
return ret;
}
+static void meson_pcie_quirk(struct pci_dev *dev)
+{
+ int mrrs;
+
+ /* no need quirk */
+ if (pcie_bus_config != PCIE_BUS_DEFAULT)
+ return;
+
+ /* no need for root bus */
+ if (pci_is_root_bus(dev->bus))
+ return;
+
+ mrrs = pcie_get_readrq(dev);
+
+ /*
+ * set same 256 bytes maximum read request size equal MAX_READ_REQ_SIZE
+ * was find some issue with HDMI scrambled picture and nvme devices
+ * at intensive writing...
+ */
+
+ if (mrrs != MAX_READ_REQ_SIZE) {
+ dev_info(&dev->dev, "fix MRRS from %d to %d\n", mrrs, MAX_READ_REQ_SIZE);
+ pcie_set_readrq(dev, MAX_READ_REQ_SIZE);
+ }
+}
+DECLARE_PCI_FIXUP_ENABLE(PCI_ANY_ID, PCI_ANY_ID, meson_pcie_quirk);
+
static const struct of_device_id meson_pcie_of_match[] = {
{
.compatible = "amlogic,axg-pcie",
--
2.25.1
Powered by blists - more mailing lists