... | ... | ||
---|---|---|---|
13 | .init() callback to do the work. The ECAM layer can therefore be used | 13 | .init() callback to do the work. The ECAM layer can therefore be used |
14 | as a library instead of a convoluted driver. | 14 | as a library instead of a convoluted driver. |
15 | 15 | ||
16 | The rest is a mix of bug fixes, cleanups, and required abstraction. | 16 | The rest is a mix of bug fixes, cleanups, and required abstraction. |
17 | 17 | ||
18 | This has been tested on T6020 (M2-Pro mini) and T8102 (M1 mini). | 18 | This has been tested on T6020 (M2-Pro mini) and T8103 (M1 mini). |
19 | |||
20 | * From v2[2]: | ||
21 | |||
22 | - Fixed the DT binding with new constraints specific to t6020 | ||
23 | |||
24 | - Moved the "for_each_available_node()" fix to the head of the series | ||
25 | |||
26 | - Collected, RBs, TBs, ABs (thanks!) | ||
19 | 27 | ||
20 | * From v1[1]: | 28 | * From v1[1]: |
21 | 29 | ||
22 | - Described the PHY registers in the DT binding | 30 | - Described the PHY registers in the DT binding |
23 | 31 | ||
... | ... | ||
40 | - Re-split some of the patches to follow a more logical progression | 48 | - Re-split some of the patches to follow a more logical progression |
41 | 49 | ||
42 | - General cleanup to fit my own taste | 50 | - General cleanup to fit my own taste |
43 | 51 | ||
44 | [1] https://lore.kernel.org/r/20250211-pcie-t6-v1-0-b60e6d2501bb@rosenzweig.io | 52 | [1] https://lore.kernel.org/r/20250211-pcie-t6-v1-0-b60e6d2501bb@rosenzweig.io |
53 | [2] https://lore.kernel.org/r/20250325102610.2073863-1-maz@kernel.org | ||
45 | 54 | ||
46 | Alyssa Rosenzweig (1): | 55 | Alyssa Rosenzweig (1): |
47 | dt-bindings: pci: apple,pcie: Add t6020 compatible string | 56 | dt-bindings: pci: apple,pcie: Add t6020 compatible string |
48 | 57 | ||
49 | Hector Martin (6): | 58 | Hector Martin (6): |
... | ... | ||
65 | PCI: apple: Move over to standalone probing | 74 | PCI: apple: Move over to standalone probing |
66 | PCI: apple: Dynamically allocate RID-to_SID bitmap | 75 | PCI: apple: Dynamically allocate RID-to_SID bitmap |
67 | PCI: apple: Move away from INTMSK{SET,CLR} for INTx and private | 76 | PCI: apple: Move away from INTMSK{SET,CLR} for INTx and private |
68 | interrupts | 77 | interrupts |
69 | 78 | ||
70 | .../devicetree/bindings/pci/apple,pcie.yaml | 11 +- | 79 | .../devicetree/bindings/pci/apple,pcie.yaml | 33 ++- |
71 | drivers/pci/controller/pci-host-common.c | 24 +- | 80 | drivers/pci/controller/pci-host-common.c | 24 +- |
72 | drivers/pci/controller/pcie-apple.c | 241 +++++++++++++----- | 81 | drivers/pci/controller/pcie-apple.c | 241 +++++++++++++----- |
73 | drivers/pci/ecam.c | 2 + | 82 | drivers/pci/ecam.c | 2 + |
74 | include/linux/pci-ecam.h | 2 + | 83 | include/linux/pci-ecam.h | 2 + |
75 | 5 files changed, 204 insertions(+), 76 deletions(-) | 84 | 5 files changed, 220 insertions(+), 82 deletions(-) |
76 | 85 | ||
77 | -- | 86 | -- |
78 | 2.39.2 | 87 | 2.39.2 | diff view generated by jsdifflib |
1 | From: Janne Grunau <j@jannau.net> | 1 | From: Janne Grunau <j@jannau.net> |
---|---|---|---|
2 | 2 | ||
3 | Iterating over disabled ports results in of_irq_parse_raw() parsing | 3 | Iterating over disabled ports results in of_irq_parse_raw() parsing |
4 | the wrong "interrupt-map" entries, as it takes the status of the node | 4 | the wrong "interrupt-map" entries, as it takes the status of the node |
5 | into account. | 5 | into account. |
6 | 6 | ||
7 | This became apparent after disabling unused PCIe ports in the Apple | ||
8 | Silicon device trees instead of deleting them. | ||
9 | |||
7 | Switching from for_each_child_of_node() to for_each_available_child_of_node() | 10 | Switching from for_each_child_of_node() to for_each_available_child_of_node() |
8 | solves this issue. | 11 | solves this issue. |
9 | |||
10 | This became apparent after disabling unused PCIe ports in the Apple | ||
11 | Silicon device trees instead of deleting them. | ||
12 | 12 | ||
13 | Link: https://lore.kernel.org/asahi/20230214-apple_dts_pcie_disable_unused-v1-0-5ea0d3ddcde3@jannau.net/ | 13 | Link: https://lore.kernel.org/asahi/20230214-apple_dts_pcie_disable_unused-v1-0-5ea0d3ddcde3@jannau.net/ |
14 | Link: https://lore.kernel.org/asahi/1ea2107a-bb86-8c22-0bbc-82c453ab08ce@linaro.org/ | 14 | Link: https://lore.kernel.org/asahi/1ea2107a-bb86-8c22-0bbc-82c453ab08ce@linaro.org/ |
15 | Fixes: 1e33888fbe44 ("PCI: apple: Add initial hardware bring-up") | 15 | Fixes: 1e33888fbe44 ("PCI: apple: Add initial hardware bring-up") |
16 | Fixes: a0189fdfb73d ("arm64: dts: apple: t8103: Disable unused PCIe ports") | ||
16 | Cc: stable@vger.kernel.org | 17 | Cc: stable@vger.kernel.org |
18 | Reviewed-by: Rob Herring (Arm) <robh@kernel.org> | ||
19 | Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> | ||
20 | Tested-by: Janne Grunau <j@jannau.net> | ||
17 | Signed-off-by: Janne Grunau <j@jannau.net> | 21 | Signed-off-by: Janne Grunau <j@jannau.net> |
18 | Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> | 22 | Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> |
19 | Signed-off-by: Marc Zyngier <maz@kernel.org> | 23 | Signed-off-by: Marc Zyngier <maz@kernel.org> |
20 | --- | 24 | --- |
21 | drivers/pci/controller/pcie-apple.c | 2 +- | 25 | drivers/pci/controller/pcie-apple.c | 2 +- |
... | ... | ||
24 | diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c | 28 | diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c |
25 | index XXXXXXX..XXXXXXX 100644 | 29 | index XXXXXXX..XXXXXXX 100644 |
26 | --- a/drivers/pci/controller/pcie-apple.c | 30 | --- a/drivers/pci/controller/pcie-apple.c |
27 | +++ b/drivers/pci/controller/pcie-apple.c | 31 | +++ b/drivers/pci/controller/pcie-apple.c |
28 | @@ -XXX,XX +XXX,XX @@ static int apple_pcie_init(struct pci_config_window *cfg) | 32 | @@ -XXX,XX +XXX,XX @@ static int apple_pcie_init(struct pci_config_window *cfg) |
29 | struct device_node *of_port; | 33 | if (ret) |
30 | int ret; | 34 | return ret; |
31 | 35 | ||
32 | - for_each_child_of_node(dev->of_node, of_port) { | 36 | - for_each_child_of_node(dev->of_node, of_port) { |
33 | + for_each_available_child_of_node(dev->of_node, of_port) { | 37 | + for_each_available_child_of_node(dev->of_node, of_port) { |
34 | ret = apple_pcie_setup_port(pcie, of_port); | 38 | ret = apple_pcie_setup_port(pcie, of_port); |
35 | if (ret) { | 39 | if (ret) { |
36 | dev_err(dev, "Port %pOF setup fail: %d\n", of_port, ret); | 40 | dev_err(pcie->dev, "Port %pOF setup fail: %d\n", of_port, ret); |
37 | -- | 41 | -- |
38 | 2.39.2 | 42 | 2.39.2 | diff view generated by jsdifflib |
1 | From: Alyssa Rosenzweig <alyssa@rosenzweig.io> | 1 | From: Alyssa Rosenzweig <alyssa@rosenzweig.io> |
---|---|---|---|
2 | 2 | ||
3 | t6020 adds some register ranges compared to t8103, so requires | 3 | t6020 adds some register ranges compared to t8103, so requires |
4 | a new compatible as well as the new PHY registers themselves. | 4 | a new compatible as well as the new PHY registers. |
5 | 5 | ||
6 | Thanks to Mark and Rob for their helpful suggestions in updating | ||
7 | the binding. | ||
8 | |||
9 | Suggested-by: Mark Kettenis <mark.kettenis@xs4all.nl> | ||
10 | Suggested-by: Rob Herring <robh@kernel.org> | ||
11 | Reviewed-by: Rob Herring (Arm) <robh@kernel.org> | ||
12 | Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> | ||
13 | Tested-by: Janne Grunau <j@jannau.net> | ||
6 | Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> | 14 | Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> |
7 | [maz: added PHY registers] | 15 | [maz: added PHY registers, constraints] |
8 | Signed-off-by: Marc Zyngier <maz@kernel.org> | 16 | Signed-off-by: Marc Zyngier <maz@kernel.org> |
9 | --- | 17 | --- |
10 | Documentation/devicetree/bindings/pci/apple,pcie.yaml | 11 ++++++++++- | 18 | .../devicetree/bindings/pci/apple,pcie.yaml | 33 +++++++++++++++---- |
11 | 1 file changed, 10 insertions(+), 1 deletion(-) | 19 | 1 file changed, 26 insertions(+), 7 deletions(-) |
12 | 20 | ||
13 | diff --git a/Documentation/devicetree/bindings/pci/apple,pcie.yaml b/Documentation/devicetree/bindings/pci/apple,pcie.yaml | 21 | diff --git a/Documentation/devicetree/bindings/pci/apple,pcie.yaml b/Documentation/devicetree/bindings/pci/apple,pcie.yaml |
14 | index XXXXXXX..XXXXXXX 100644 | 22 | index XXXXXXX..XXXXXXX 100644 |
15 | --- a/Documentation/devicetree/bindings/pci/apple,pcie.yaml | 23 | --- a/Documentation/devicetree/bindings/pci/apple,pcie.yaml |
16 | +++ b/Documentation/devicetree/bindings/pci/apple,pcie.yaml | 24 | +++ b/Documentation/devicetree/bindings/pci/apple,pcie.yaml |
... | ... | ||
23 | + register range per port register range. | 31 | + register range per port register range. |
24 | + | 32 | + |
25 | All root ports share a single ECAM space, but separate GPIOs are | 33 | All root ports share a single ECAM space, but separate GPIOs are |
26 | used to take the PCI devices on those ports out of reset. Therefore | 34 | used to take the PCI devices on those ports out of reset. Therefore |
27 | the standard "reset-gpios" and "max-link-speed" properties appear on | 35 | the standard "reset-gpios" and "max-link-speed" properties appear on |
28 | @@ -XXX,XX +XXX,XX @@ properties: | 36 | @@ -XXX,XX +XXX,XX @@ description: | |
29 | - apple,t8103-pcie | 37 | |
30 | - apple,t8112-pcie | 38 | properties: |
31 | - apple,t6000-pcie | 39 | compatible: |
32 | + - apple,t6020-pcie | 40 | - items: |
33 | - const: apple,pcie | 41 | - - enum: |
42 | - - apple,t8103-pcie | ||
43 | - - apple,t8112-pcie | ||
44 | - - apple,t6000-pcie | ||
45 | - - const: apple,pcie | ||
46 | + oneOf: | ||
47 | + - items: | ||
48 | + - enum: | ||
49 | + - apple,t8103-pcie | ||
50 | + - apple,t8112-pcie | ||
51 | + - apple,t6000-pcie | ||
52 | + - const: apple,pcie | ||
53 | + - const: apple,t6020-pcie | ||
34 | 54 | ||
35 | reg: | 55 | reg: |
36 | minItems: 3 | 56 | minItems: 3 |
37 | - maxItems: 6 | 57 | - maxItems: 6 |
38 | + maxItems: 10 | 58 | + maxItems: 10 |
... | ... | ||
48 | + - const: phy2 | 68 | + - const: phy2 |
49 | + - const: phy3 | 69 | + - const: phy3 |
50 | 70 | ||
51 | ranges: | 71 | ranges: |
52 | minItems: 2 | 72 | minItems: 2 |
73 | @@ -XXX,XX +XXX,XX @@ allOf: | ||
74 | maxItems: 5 | ||
75 | interrupts: | ||
76 | maxItems: 3 | ||
77 | + - if: | ||
78 | + properties: | ||
79 | + compatible: | ||
80 | + contains: | ||
81 | + const: apple,t6020-pcie | ||
82 | + then: | ||
83 | + properties: | ||
84 | + reg-names: | ||
85 | + minItems: 10 | ||
86 | |||
87 | examples: | ||
88 | - | | ||
53 | -- | 89 | -- |
54 | 2.39.2 | 90 | 2.39.2 | diff view generated by jsdifflib |
... | ... | ||
---|---|---|---|
16 | This can then be called from the probe routine, and a lot of the | 16 | This can then be called from the probe routine, and a lot of the |
17 | code that isn't relevant to PCI setup moved away from the .init() | 17 | code that isn't relevant to PCI setup moved away from the .init() |
18 | callback. This also removes the dependency on the device match | 18 | callback. This also removes the dependency on the device match |
19 | data, which is an oddity. | 19 | data, which is an oddity. |
20 | 20 | ||
21 | Reviewed-by: Rob Herring (Arm) <robh@kernel.org> | ||
22 | Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> | ||
23 | Tested-by: Janne Grunau <j@jannau.net> | ||
21 | Signed-off-by: Marc Zyngier <maz@kernel.org> | 24 | Signed-off-by: Marc Zyngier <maz@kernel.org> |
22 | --- | 25 | --- |
23 | drivers/pci/controller/pci-host-common.c | 24 ++++++++++++++++-------- | 26 | drivers/pci/controller/pci-host-common.c | 24 ++++++++++++++++-------- |
24 | include/linux/pci-ecam.h | 2 ++ | 27 | include/linux/pci-ecam.h | 2 ++ |
25 | 2 files changed, 18 insertions(+), 8 deletions(-) | 28 | 2 files changed, 18 insertions(+), 8 deletions(-) |
... | ... | diff view generated by jsdifflib |
... | ... | ||
---|---|---|---|
6 | particular callback to have access to probe data. | 6 | particular callback to have access to probe data. |
7 | 7 | ||
8 | This should have no impact on existing code which ignores the | 8 | This should have no impact on existing code which ignores the |
9 | current value of cfg->priv. | 9 | current value of cfg->priv. |
10 | 10 | ||
11 | Reviewed-by: Rob Herring (Arm) <robh@kernel.org> | ||
12 | Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> | ||
13 | Tested-by: Janne Grunau <j@jannau.net> | ||
11 | Signed-off-by: Marc Zyngier <maz@kernel.org> | 14 | Signed-off-by: Marc Zyngier <maz@kernel.org> |
12 | --- | 15 | --- |
13 | drivers/pci/ecam.c | 2 ++ | 16 | drivers/pci/ecam.c | 2 ++ |
14 | 1 file changed, 2 insertions(+) | 17 | 1 file changed, 2 insertions(+) |
15 | 18 | ||
... | ... | diff view generated by jsdifflib |
... | ... | ||
---|---|---|---|
7 | probe routine, which will eventually call into the host-common | 7 | probe routine, which will eventually call into the host-common |
8 | code | 8 | code |
9 | 9 | ||
10 | The result is a far more logical setup process. | 10 | The result is a far more logical setup process. |
11 | 11 | ||
12 | Reviewed-by: Rob Herring (Arm) <robh@kernel.org> | ||
13 | Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> | ||
14 | Tested-by: Janne Grunau <j@jannau.net> | ||
12 | Signed-off-by: Marc Zyngier <maz@kernel.org> | 15 | Signed-off-by: Marc Zyngier <maz@kernel.org> |
13 | --- | 16 | --- |
14 | drivers/pci/controller/pcie-apple.c | 54 ++++++++++++++++------------- | 17 | drivers/pci/controller/pcie-apple.c | 54 ++++++++++++++++------------- |
15 | 1 file changed, 30 insertions(+), 24 deletions(-) | 18 | 1 file changed, 30 insertions(+), 24 deletions(-) |
16 | 19 | ||
... | ... | ||
46 | - | 49 | - |
47 | - ret = apple_msi_init(pcie); | 50 | - ret = apple_msi_init(pcie); |
48 | - if (ret) | 51 | - if (ret) |
49 | - return ret; | 52 | - return ret; |
50 | - | 53 | - |
51 | for_each_child_of_node(dev->of_node, of_port) { | 54 | for_each_available_child_of_node(dev->of_node, of_port) { |
52 | ret = apple_pcie_setup_port(pcie, of_port); | 55 | ret = apple_pcie_setup_port(pcie, of_port); |
53 | if (ret) { | 56 | if (ret) { |
54 | - dev_err(pcie->dev, "Port %pOF setup fail: %d\n", of_port, ret); | 57 | - dev_err(pcie->dev, "Port %pOF setup fail: %d\n", of_port, ret); |
55 | + dev_err(dev, "Port %pOF setup fail: %d\n", of_port, ret); | 58 | + dev_err(dev, "Port %pOF setup fail: %d\n", of_port, ret); |
56 | of_node_put(of_port); | 59 | of_node_put(of_port); |
... | ... | diff view generated by jsdifflib |
1 | As we move towards supporting SoCs with varying RID-to-SID mapping | 1 | As we move towards supporting SoCs with varying RID-to-SID mapping |
---|---|---|---|
2 | capabilities, turn the static SID tracking bitmap into a dynamically | 2 | capabilities, turn the static SID tracking bitmap into a dynamically |
3 | allocated one. The current allocation size is still the same, but | 3 | allocated one. The current allocation size is still the same, but |
4 | that's about to change. | 4 | that's about to change. |
5 | 5 | ||
6 | Reviewed-by: Rob Herring (Arm) <robh@kernel.org> | ||
7 | Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> | ||
8 | Tested-by: Janne Grunau <j@jannau.net> | ||
6 | Signed-off-by: Marc Zyngier <maz@kernel.org> | 9 | Signed-off-by: Marc Zyngier <maz@kernel.org> |
7 | --- | 10 | --- |
8 | drivers/pci/controller/pcie-apple.c | 6 +++++- | 11 | drivers/pci/controller/pcie-apple.c | 6 +++++- |
9 | 1 file changed, 5 insertions(+), 1 deletion(-) | 12 | 1 file changed, 5 insertions(+), 1 deletion(-) |
10 | 13 | ||
... | ... | diff view generated by jsdifflib |
1 | T602x seems to have dropped the rather useful SET/CLR accessors | 1 | T602x seems to have dropped the rather useful SET/CLR accessors |
---|---|---|---|
2 | to the masking register. | 2 | to the masking register. |
3 | 3 | ||
4 | Instead, let's use the mask register directly, and wrap it with | 4 | Instead, let's use the mask register directly, and wrap it with |
5 | a brand new spinlock. No, this isn't moving in the right direction. | 5 | a brand new spinlock. No, this isn't moving in the right direction. |
6 | 6 | ||
7 | Reviewed-by: Rob Herring (Arm) <robh@kernel.org> | ||
8 | Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> | ||
9 | Tested-by: Janne Grunau <j@jannau.net> | ||
7 | Signed-off-by: Marc Zyngier <maz@kernel.org> | 10 | Signed-off-by: Marc Zyngier <maz@kernel.org> |
8 | --- | 11 | --- |
9 | drivers/pci/controller/pcie-apple.c | 11 ++++++++--- | 12 | drivers/pci/controller/pcie-apple.c | 11 ++++++++--- |
10 | 1 file changed, 8 insertions(+), 3 deletions(-) | 13 | 1 file changed, 8 insertions(+), 3 deletions(-) |
11 | 14 | ||
... | ... | diff view generated by jsdifflib |
1 | From: Hector Martin <marcan@marcan.st> | 1 | From: Hector Martin <marcan@marcan.st> |
---|---|---|---|
2 | 2 | ||
3 | In the success path, we hang onto a reference to the node, so make sure | 3 | In the success path, we hang onto a reference to the node, so make sure |
4 | to grab one. The caller iterator puts our borrowed reference when we | 4 | to grab one. The caller iterator puts our borrowed reference when we |
5 | return. | 5 | return. |
6 | 6 | ||
7 | Reviewed-by: Rob Herring (Arm) <robh@kernel.org> | ||
8 | Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> | ||
9 | Tested-by: Janne Grunau <j@jannau.net> | ||
7 | Signed-off-by: Hector Martin <marcan@marcan.st> | 10 | Signed-off-by: Hector Martin <marcan@marcan.st> |
8 | Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> | 11 | Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> |
9 | Signed-off-by: Marc Zyngier <maz@kernel.org> | 12 | Signed-off-by: Marc Zyngier <maz@kernel.org> |
10 | --- | 13 | --- |
11 | drivers/pci/controller/pcie-apple.c | 3 +++ | 14 | drivers/pci/controller/pcie-apple.c | 3 +++ |
... | ... | diff view generated by jsdifflib |
... | ... | ||
---|---|---|---|
8 | 8 | ||
9 | Note that we open code devm_platform_ioremap_resource_byname() to avoid | 9 | Note that we open code devm_platform_ioremap_resource_byname() to avoid |
10 | error messages on older platforms with missing resources in the pcie | 10 | error messages on older platforms with missing resources in the pcie |
11 | node. ("pcie-apple 590000000.pcie: invalid resource (null)" on probe) | 11 | node. ("pcie-apple 590000000.pcie: invalid resource (null)" on probe) |
12 | 12 | ||
13 | Reviewed-by: Rob Herring (Arm) <robh@kernel.org> | ||
14 | Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> | ||
15 | Tested-by: Janne Grunau <j@jannau.net> | ||
13 | Co-developed-by: Janne Grunau <j@jannau.net> | 16 | Co-developed-by: Janne Grunau <j@jannau.net> |
14 | Signed-off-by: Janne Grunau <j@jannau.net> | 17 | Signed-off-by: Janne Grunau <j@jannau.net> |
15 | Signed-off-by: Hector Martin <marcan@marcan.st> | 18 | Signed-off-by: Hector Martin <marcan@marcan.st> |
16 | Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> | 19 | Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> |
17 | Signed-off-by: Marc Zyngier <maz@kernel.org> | 20 | Signed-off-by: Marc Zyngier <maz@kernel.org> |
... | ... | diff view generated by jsdifflib |
... | ... | ||
---|---|---|---|
3 | This is checking a core refclk in per-port setup which doesn't make a | 3 | This is checking a core refclk in per-port setup which doesn't make a |
4 | lot of sense, and the bootloader needs to have gone through this anyway. | 4 | lot of sense, and the bootloader needs to have gone through this anyway. |
5 | 5 | ||
6 | It doesn't work on T602x, so just drop it across the board. | 6 | It doesn't work on T602x, so just drop it across the board. |
7 | 7 | ||
8 | Reviewed-by: Rob Herring (Arm) <robh@kernel.org> | ||
9 | Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> | ||
10 | Tested-by: Janne Grunau <j@jannau.net> | ||
8 | Signed-off-by: Hector Martin <marcan@marcan.st> | 11 | Signed-off-by: Hector Martin <marcan@marcan.st> |
9 | Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> | 12 | Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> |
10 | Signed-off-by: Marc Zyngier <maz@kernel.org> | 13 | Signed-off-by: Marc Zyngier <maz@kernel.org> |
11 | --- | 14 | --- |
12 | drivers/pci/controller/pcie-apple.c | 6 ------ | 15 | drivers/pci/controller/pcie-apple.c | 6 ------ |
... | ... | diff view generated by jsdifflib |
1 | From: Hector Martin <marcan@marcan.st> | 1 | From: Hector Martin <marcan@marcan.st> |
---|---|---|---|
2 | 2 | ||
3 | We're allowed to sleep here, so tell the GPIO core by using | 3 | We're allowed to sleep here, so tell the GPIO core by using |
4 | gpiod_set_value_cansleep instead of gpiod_set_value. | 4 | gpiod_set_value_cansleep instead of gpiod_set_value. |
5 | 5 | ||
6 | Fixes: 1e33888fbe44 ("PCI: apple: Add initial hardware bring-up") | 6 | Fixes: 1e33888fbe44 ("PCI: apple: Add initial hardware bring-up") |
7 | Reviewed-by: Rob Herring (Arm) <robh@kernel.org> | ||
8 | Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> | ||
9 | Tested-by: Janne Grunau <j@jannau.net> | ||
7 | Signed-off-by: Hector Martin <marcan@marcan.st> | 10 | Signed-off-by: Hector Martin <marcan@marcan.st> |
8 | Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> | 11 | Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> |
9 | Signed-off-by: Marc Zyngier <maz@kernel.org> | 12 | Signed-off-by: Marc Zyngier <maz@kernel.org> |
10 | --- | 13 | --- |
11 | drivers/pci/controller/pcie-apple.c | 4 ++-- | 14 | drivers/pci/controller/pcie-apple.c | 4 ++-- |
... | ... | diff view generated by jsdifflib |
... | ... | ||
---|---|---|---|
5 | 5 | ||
6 | In order to embrace this diversity of implementations, move the | 6 | In order to embrace this diversity of implementations, move the |
7 | currently hardcoded offsets into a hw_info structure. Future SoCs | 7 | currently hardcoded offsets into a hw_info structure. Future SoCs |
8 | will provide their own structure describing the applicable offsets. | 8 | will provide their own structure describing the applicable offsets. |
9 | 9 | ||
10 | Reviewed-by: Rob Herring (Arm) <robh@kernel.org> | ||
11 | Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> | ||
12 | Tested-by: Janne Grunau <j@jannau.net> | ||
10 | Signed-off-by: Hector Martin <marcan@marcan.st> | 13 | Signed-off-by: Hector Martin <marcan@marcan.st> |
11 | Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> | 14 | Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> |
12 | [maz: split from original patch to only address T8103] | 15 | [maz: split from original patch to only address T8103] |
13 | Signed-off-by: Marc Zyngier <maz@kernel.org> | 16 | Signed-off-by: Marc Zyngier <maz@kernel.org> |
14 | --- | 17 | --- |
... | ... | diff view generated by jsdifflib |
1 | From: Hector Martin <marcan@marcan.st> | 1 | From: Hector Martin <marcan@marcan.st> |
---|---|---|---|
2 | 2 | ||
3 | This version of the hardware moved around a bunch of registers, so we | 3 | This version of the hardware moved around a bunch of registers, so we |
4 | avoid the old compatible for these and introduce register offset | 4 | avoid the old compatible for these and introduce register offset |
5 | structures to handle the differences. | 5 | structures to handle the differences. |
6 | 6 | ||
7 | Reviewed-by: Rob Herring (Arm) <robh@kernel.org> | ||
8 | Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> | ||
9 | Tested-by: Janne Grunau <j@jannau.net> | ||
7 | Signed-off-by: Hector Martin <marcan@marcan.st> | 10 | Signed-off-by: Hector Martin <marcan@marcan.st> |
8 | Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> | 11 | Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> |
9 | Signed-off-by: Marc Zyngier <maz@kernel.org> | 12 | Signed-off-by: Marc Zyngier <maz@kernel.org> |
10 | --- | 13 | --- |
11 | drivers/pci/controller/pcie-apple.c | 21 +++++++++++++++++++++ | 14 | drivers/pci/controller/pcie-apple.c | 21 +++++++++++++++++++++ |
... | ... | diff view generated by jsdifflib |