From c804d8a06712eccb00362bee28bb63f2e0877608 Mon Sep 17 00:00:00 2001 From: Alexey Sheplyakov Date: Tue, 21 Jun 2022 20:28:28 +0400 Subject: [PATCH 604/631] dw-pcie: refuse to load on Baikal-M with recent firmware Firmware from SDK-M 5.4 is incompatible with dw-pcie driver. Yet the DTB (passed to kernel by the firmware) claims otherwise. Hence refuse to load if device node is compatilbe with `baikal,bm1000-pcie` (earlier versions of Baikal-M firmware used a different compatible string). Signed-off-by: Alexey Sheplyakov X-feature-Baikal-M X-DONTUPSTREAM --- drivers/pci/controller/dwc/pcie-designware-plat.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/pci/controller/dwc/pcie-designware-plat.c b/drivers/pci/controller/dwc/pcie-designware-plat.c index b625841e98aa..96d01ebd1613 100644 --- a/drivers/pci/controller/dwc/pcie-designware-plat.c +++ b/drivers/pci/controller/dwc/pcie-designware-plat.c @@ -112,6 +112,11 @@ static int dw_plat_pcie_probe(struct platform_device *pdev) const struct dw_plat_pcie_of_data *data; enum dw_pcie_device_mode mode; + if (of_device_is_compatible(dev->of_node, "baikal,bm1000-pcie")) { + dev_err(dev, "refusing to load on Baikal-M with SDK-M 5.{4,5}\n"); + return -ENODEV; + } + data = of_device_get_match_data(dev); if (!data) return -EINVAL; -- 2.40.1