From 955268e13f8f9422e7e89ee6350ec793dddd1e94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= Date: Tue, 1 Nov 2022 09:44:59 +0100 Subject: nixos: try to fix Turris Omnia PCIe on Linux 6.0 Unfortunatelly this seems to not work. --- .../0023-PCI-aardvark-Add-clock-support.patch | 93 ---------------------- 1 file changed, 93 deletions(-) delete mode 100644 nixos/modules/kernel-patches/0023-PCI-aardvark-Add-clock-support.patch (limited to 'nixos/modules/kernel-patches/0023-PCI-aardvark-Add-clock-support.patch') diff --git a/nixos/modules/kernel-patches/0023-PCI-aardvark-Add-clock-support.patch b/nixos/modules/kernel-patches/0023-PCI-aardvark-Add-clock-support.patch deleted file mode 100644 index 779d803..0000000 --- a/nixos/modules/kernel-patches/0023-PCI-aardvark-Add-clock-support.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 0d829d8007898c85cecdb750ca6892cadbab21e5 Mon Sep 17 00:00:00 2001 -From: Miquel Raynal -Date: Wed, 31 Aug 2022 15:59:39 +0200 -Subject: [PATCH 23/96] PCI: aardvark: Add clock support -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The IP relies on a gated clock. When we will add S2RAM support, this -clock will need to be resumed before any PCIe registers are -accessed. Add support for this clock. - -Signed-off-by: Miquel Raynal -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún ---- - drivers/pci/controller/pci-aardvark.c | 32 +++++++++++++++++++++++++++ - 1 file changed, 32 insertions(+) - -diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c -index 656e4ea95e2e..84c1f3165472 100644 ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -9,6 +9,7 @@ - */ - - #include -+#include - #include - #include - #include -@@ -298,6 +299,7 @@ struct advk_pcie { - struct timer_list link_irq_timer; - struct pci_bridge_emul bridge; - struct gpio_desc *reset_gpio; -+ struct clk *clk; - struct phy *phy; - }; - -@@ -1826,6 +1828,29 @@ static int advk_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) - return of_irq_parse_and_map_pci(dev, slot, pin); - } - -+static int advk_pcie_setup_clk(struct advk_pcie *pcie) -+{ -+ struct device *dev = &pcie->pdev->dev; -+ int ret; -+ -+ pcie->clk = devm_clk_get(dev, NULL); -+ if (IS_ERR(pcie->clk) && (PTR_ERR(pcie->clk) == -EPROBE_DEFER)) -+ return PTR_ERR(pcie->clk); -+ -+ /* Old bindings miss the clock handle */ -+ if (IS_ERR(pcie->clk)) { -+ dev_warn(dev, "Clock unavailable (%ld)\n", PTR_ERR(pcie->clk)); -+ pcie->clk = NULL; -+ return 0; -+ } -+ -+ ret = clk_prepare_enable(pcie->clk); -+ if (ret) -+ dev_err(dev, "Clock initialization failed (%d)\n", ret); -+ -+ return ret; -+} -+ - static void advk_pcie_disable_phy(struct advk_pcie *pcie) - { - phy_power_off(pcie->phy); -@@ -2017,6 +2042,10 @@ static int advk_pcie_probe(struct platform_device *pdev) - slot_power_limit / 1000, - (slot_power_limit / 100) % 10); - -+ ret = advk_pcie_setup_clk(pcie); -+ if (ret) -+ return ret; -+ - ret = advk_pcie_setup_phy(pcie); - if (ret) - return ret; -@@ -2139,6 +2168,9 @@ static int advk_pcie_remove(struct platform_device *pdev) - /* Disable phy */ - advk_pcie_disable_phy(pcie); - -+ /* Disable clock */ -+ clk_disable_unprepare(pcie->clk); -+ - return 0; - } - --- -2.37.2 - -- cgit v1.2.3