From: Brian Norris <briannorris-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
To: Jeffy Chen <jeffy.chen-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org,
shawn.lin-TNX95d0MmH7DzftRWevZcw@public.gmane.org,
dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org,
Matthias Kaehlcke <mka-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Heiko Stuebner <heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org>,
Klaus Goger
<klaus.goger-SN7IsUiht6C/RdPyistoZJqQE7yCjDx5@public.gmane.org>,
linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
Will Deacon <will.deacon-5wv7dgnIgG8@public.gmane.org>,
Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
Caesar Wang <wxt-TNX95d0MmH7DzftRWevZcw@public.gmane.org>,
Catalin Marinas <catalin.marinas-5wv7dgnIgG8@public.gmane.org>,
linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH v7 3/3] arm64: dts: rockchip: Handle pcie wake in pcie driver for Gru
Date: Mon, 23 Oct 2017 18:27:46 -0700 [thread overview]
Message-ID: <20171024012744.GA103893@google.com> (raw)
In-Reply-To: <20171019111007.25234-4-jeffy.chen-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
+ linux-pm
On Thu, Oct 19, 2017 at 07:10:07PM +0800, Jeffy Chen wrote:
> Currently we are handling pcie wake irq in mrvl wifi driver.
> Move it to rockchip pcie driver for Gru boards.
It might be worth documenting one of the reasons for this patch, which
I'll comment on below:
> Signed-off-by: Jeffy Chen <jeffy.chen-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
> ---
>
> Changes in v7: None
> Changes in v6: None
> Changes in v5:
> Use "wakeup" instead of "wake"
>
> Changes in v3: None
> Changes in v2: None
>
> arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi | 15 +++++++++------
> 1 file changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi
> index 470105d651c2..04499714f541 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi
> @@ -708,7 +708,15 @@ ap_i2c_audio: &i2c8 {
>
> ep-gpios = <&gpio2 27 GPIO_ACTIVE_HIGH>;
> pinctrl-names = "default";
> - pinctrl-0 = <&pcie_clkreqn_cpm>, <&wifi_perst_l>;
> + pinctrl-0 = <&pcie_clkreqn_cpm>, <&wlan_host_wake_l>, <&wifi_perst_l>;
> +
> + interrupts-extended = <&gic GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH 0>,
> + <&gic GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH 0>,
> + <&gic GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH 0>,
> + <&gpio0 8 IRQ_TYPE_LEVEL_LOW>;
> + interrupt-names = "sys", "legacy", "client", "wakeup";
> + /delete-property/ interrupts;
> +
> vpcie3v3-supply = <&pp3300_wifi_bt>;
> vpcie1v8-supply = <&wlan_pd_n>; /* HACK: see &wlan_pd_n */
> vpcie0v9-supply = <&pp900_pcie>;
> @@ -723,11 +731,6 @@ ap_i2c_audio: &i2c8 {
> compatible = "pci1b4b,2b42";
> reg = <0x83010000 0x0 0x00000000 0x0 0x00100000
> 0x83010000 0x0 0x00100000 0x0 0x00100000>;
> - interrupt-parent = <&gpio0>;
> - interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
One of the problems here is that this is a definition for a WAKE#
interrupt, not for a legacy INTx interrupt. So this creates a conflict
when both of these happen:
(a) the PCI bus sets up this interrupt for use as INTx support (as a
shared interrupt), instead of using the actual PCI controller
interrupt and
(b) the mwifiex driver requests this interrupt as a non-shared wake
interrupt, and fails to get it (and so fails to probe).
IOW, non-MSI interrupts are broken today on these devices. Jeffy's patch
fixes that.
If we want to support something like the existing binding, we should
clarify/update
Documentation/devicetree/bindings/net/wireless/marvell-8xxx.txt.
Personally, I would just declare that binding invalid for the PCI
version. (It might still be valid for SDIO.)
Also, if for some reason we *do* want WAKE# handling to be supported on
a per-device basis (part of the discussion on patch 1), we should look
at extending the existing PCI interrupt bindings in a way that doesn't
break legacy interrupts.
Brian
> - pinctrl-names = "default";
> - pinctrl-0 = <&wlan_host_wake_l>;
> - wakeup-source;
> };
> };
> };
> --
> 2.11.0
>
>
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: briannorris@chromium.org (Brian Norris)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v7 3/3] arm64: dts: rockchip: Handle pcie wake in pcie driver for Gru
Date: Mon, 23 Oct 2017 18:27:46 -0700 [thread overview]
Message-ID: <20171024012744.GA103893@google.com> (raw)
In-Reply-To: <20171019111007.25234-4-jeffy.chen@rock-chips.com>
+ linux-pm
On Thu, Oct 19, 2017 at 07:10:07PM +0800, Jeffy Chen wrote:
> Currently we are handling pcie wake irq in mrvl wifi driver.
> Move it to rockchip pcie driver for Gru boards.
It might be worth documenting one of the reasons for this patch, which
I'll comment on below:
> Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
> ---
>
> Changes in v7: None
> Changes in v6: None
> Changes in v5:
> Use "wakeup" instead of "wake"
>
> Changes in v3: None
> Changes in v2: None
>
> arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi | 15 +++++++++------
> 1 file changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi
> index 470105d651c2..04499714f541 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi
> @@ -708,7 +708,15 @@ ap_i2c_audio: &i2c8 {
>
> ep-gpios = <&gpio2 27 GPIO_ACTIVE_HIGH>;
> pinctrl-names = "default";
> - pinctrl-0 = <&pcie_clkreqn_cpm>, <&wifi_perst_l>;
> + pinctrl-0 = <&pcie_clkreqn_cpm>, <&wlan_host_wake_l>, <&wifi_perst_l>;
> +
> + interrupts-extended = <&gic GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH 0>,
> + <&gic GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH 0>,
> + <&gic GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH 0>,
> + <&gpio0 8 IRQ_TYPE_LEVEL_LOW>;
> + interrupt-names = "sys", "legacy", "client", "wakeup";
> + /delete-property/ interrupts;
> +
> vpcie3v3-supply = <&pp3300_wifi_bt>;
> vpcie1v8-supply = <&wlan_pd_n>; /* HACK: see &wlan_pd_n */
> vpcie0v9-supply = <&pp900_pcie>;
> @@ -723,11 +731,6 @@ ap_i2c_audio: &i2c8 {
> compatible = "pci1b4b,2b42";
> reg = <0x83010000 0x0 0x00000000 0x0 0x00100000
> 0x83010000 0x0 0x00100000 0x0 0x00100000>;
> - interrupt-parent = <&gpio0>;
> - interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
One of the problems here is that this is a definition for a WAKE#
interrupt, not for a legacy INTx interrupt. So this creates a conflict
when both of these happen:
(a) the PCI bus sets up this interrupt for use as INTx support (as a
shared interrupt), instead of using the actual PCI controller
interrupt and
(b) the mwifiex driver requests this interrupt as a non-shared wake
interrupt, and fails to get it (and so fails to probe).
IOW, non-MSI interrupts are broken today on these devices. Jeffy's patch
fixes that.
If we want to support something like the existing binding, we should
clarify/update
Documentation/devicetree/bindings/net/wireless/marvell-8xxx.txt.
Personally, I would just declare that binding invalid for the PCI
version. (It might still be valid for SDIO.)
Also, if for some reason we *do* want WAKE# handling to be supported on
a per-device basis (part of the discussion on patch 1), we should look
at extending the existing PCI interrupt bindings in a way that doesn't
break legacy interrupts.
Brian
> - pinctrl-names = "default";
> - pinctrl-0 = <&wlan_host_wake_l>;
> - wakeup-source;
> };
> };
> };
> --
> 2.11.0
>
>
WARNING: multiple messages have this Message-ID (diff)
From: Brian Norris <briannorris@chromium.org>
To: Jeffy Chen <jeffy.chen@rock-chips.com>
Cc: linux-kernel@vger.kernel.org, bhelgaas@google.com,
shawn.lin@rock-chips.com, dianders@chromium.org,
Matthias Kaehlcke <mka@chromium.org>,
devicetree@vger.kernel.org, Heiko Stuebner <heiko@sntech.de>,
Klaus Goger <klaus.goger@theobroma-systems.com>,
linux-rockchip@lists.infradead.org,
Rob Herring <robh+dt@kernel.org>,
linux-arm-kernel@lists.infradead.org,
Will Deacon <will.deacon@arm.com>,
Mark Rutland <mark.rutland@arm.com>,
Caesar Wang <wxt@rock-chips.com>,
Catalin Marinas <catalin.marinas@arm.com>,
linux-pm@vger.kernel.org
Subject: Re: [PATCH v7 3/3] arm64: dts: rockchip: Handle pcie wake in pcie driver for Gru
Date: Mon, 23 Oct 2017 18:27:46 -0700 [thread overview]
Message-ID: <20171024012744.GA103893@google.com> (raw)
In-Reply-To: <20171019111007.25234-4-jeffy.chen@rock-chips.com>
+ linux-pm
On Thu, Oct 19, 2017 at 07:10:07PM +0800, Jeffy Chen wrote:
> Currently we are handling pcie wake irq in mrvl wifi driver.
> Move it to rockchip pcie driver for Gru boards.
It might be worth documenting one of the reasons for this patch, which
I'll comment on below:
> Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
> ---
>
> Changes in v7: None
> Changes in v6: None
> Changes in v5:
> Use "wakeup" instead of "wake"
>
> Changes in v3: None
> Changes in v2: None
>
> arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi | 15 +++++++++------
> 1 file changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi
> index 470105d651c2..04499714f541 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi
> @@ -708,7 +708,15 @@ ap_i2c_audio: &i2c8 {
>
> ep-gpios = <&gpio2 27 GPIO_ACTIVE_HIGH>;
> pinctrl-names = "default";
> - pinctrl-0 = <&pcie_clkreqn_cpm>, <&wifi_perst_l>;
> + pinctrl-0 = <&pcie_clkreqn_cpm>, <&wlan_host_wake_l>, <&wifi_perst_l>;
> +
> + interrupts-extended = <&gic GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH 0>,
> + <&gic GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH 0>,
> + <&gic GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH 0>,
> + <&gpio0 8 IRQ_TYPE_LEVEL_LOW>;
> + interrupt-names = "sys", "legacy", "client", "wakeup";
> + /delete-property/ interrupts;
> +
> vpcie3v3-supply = <&pp3300_wifi_bt>;
> vpcie1v8-supply = <&wlan_pd_n>; /* HACK: see &wlan_pd_n */
> vpcie0v9-supply = <&pp900_pcie>;
> @@ -723,11 +731,6 @@ ap_i2c_audio: &i2c8 {
> compatible = "pci1b4b,2b42";
> reg = <0x83010000 0x0 0x00000000 0x0 0x00100000
> 0x83010000 0x0 0x00100000 0x0 0x00100000>;
> - interrupt-parent = <&gpio0>;
> - interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
One of the problems here is that this is a definition for a WAKE#
interrupt, not for a legacy INTx interrupt. So this creates a conflict
when both of these happen:
(a) the PCI bus sets up this interrupt for use as INTx support (as a
shared interrupt), instead of using the actual PCI controller
interrupt and
(b) the mwifiex driver requests this interrupt as a non-shared wake
interrupt, and fails to get it (and so fails to probe).
IOW, non-MSI interrupts are broken today on these devices. Jeffy's patch
fixes that.
If we want to support something like the existing binding, we should
clarify/update
Documentation/devicetree/bindings/net/wireless/marvell-8xxx.txt.
Personally, I would just declare that binding invalid for the PCI
version. (It might still be valid for SDIO.)
Also, if for some reason we *do* want WAKE# handling to be supported on
a per-device basis (part of the discussion on patch 1), we should look
at extending the existing PCI interrupt bindings in a way that doesn't
break legacy interrupts.
Brian
> - pinctrl-names = "default";
> - pinctrl-0 = <&wlan_host_wake_l>;
> - wakeup-source;
> };
> };
> };
> --
> 2.11.0
>
>
next prev parent reply other threads:[~2017-10-24 1:27 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-19 11:10 [PATCH v7 0/3] PCI: rockchip: Move PCIE_WAKE handling into pci core Jeffy Chen
2017-10-19 11:10 ` Jeffy Chen
2017-10-19 11:10 ` Jeffy Chen
2017-10-19 11:10 ` [PATCH v7 1/3] PCI: Add support for wake irq Jeffy Chen
2017-10-23 23:02 ` Brian Norris
2017-10-23 23:02 ` Brian Norris
2017-10-24 4:06 ` jeffy
2017-10-24 13:13 ` jeffy
2017-10-24 20:10 ` Bjorn Helgaas
2017-10-26 8:42 ` Rafael J. Wysocki
2017-10-19 11:10 ` [PATCH v7 2/3] dt-bindings: PCI: Add definition of pcie " Jeffy Chen
[not found] ` <20171019111007.25234-1-jeffy.chen-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2017-10-19 11:10 ` [PATCH v7 3/3] arm64: dts: rockchip: Handle pcie wake in pcie driver for Gru Jeffy Chen
2017-10-19 11:10 ` Jeffy Chen
2017-10-19 11:10 ` Jeffy Chen
[not found] ` <20171019111007.25234-4-jeffy.chen-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2017-10-24 1:27 ` Brian Norris [this message]
2017-10-24 1:27 ` Brian Norris
2017-10-24 1:27 ` Brian Norris
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171024012744.GA103893@google.com \
--to=briannorris-f7+t8e8rja9g9huczpvpmw@public.gmane.org \
--cc=bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=catalin.marinas-5wv7dgnIgG8@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
--cc=heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org \
--cc=jeffy.chen-TNX95d0MmH7DzftRWevZcw@public.gmane.org \
--cc=klaus.goger-SN7IsUiht6C/RdPyistoZJqQE7yCjDx5@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
--cc=mka-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=shawn.lin-TNX95d0MmH7DzftRWevZcw@public.gmane.org \
--cc=will.deacon-5wv7dgnIgG8@public.gmane.org \
--cc=wxt-TNX95d0MmH7DzftRWevZcw@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.