linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: troy.kisky@boundarydevices.com (Troy Kisky)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V2 5/7] ARM: dts: imx6qdl-sabrelite: use GPIO_6 for FEC interrupt.
Date: Fri, 20 Dec 2013 12:02:13 -0700	[thread overview]
Message-ID: <52B49435.7080702@boundarydevices.com> (raw)
In-Reply-To: <1387565233-16144-6-git-send-email-troy.kisky@boundarydevices.com>

On 12/20/2013 11:47 AM, Troy Kisky wrote:
> This works around a hardware bug.
> >From "Chip Errata for the i.MX 6Dual/6Quad"
>
> ERR006687 ENET: Only the ENET wake-up interrupt request can wake the
> system from Wait mode.
>
> The ENET block generates many interrupts. Only one of these interrupt lines
> is connected to the General Power Controller (GPC) block, but a logical OR
> of all of the ENET interrupts is connected to the General Interrupt Controller
> (GIC). When the system enters Wait mode, a normal RX Done or TX Done does not
> wake up the system because the GPC cannot see this interrupt. This impacts
> performance of the ENET block because its interrupts are serviced only when
> the chip exits Wait mode due to an interrupt from some other wake-up source.
>
> Before this patch, ping times of a Sabre Lite board are quite
> random:
> ping 192.168.0.13 -i.5 -c5
> PING 192.168.0.13 (192.168.0.13) 56(84) bytes of data.
> 64 bytes from 192.168.0.13: icmp_req=1 ttl=64 time=15.7 ms
> 64 bytes from 192.168.0.13: icmp_req=2 ttl=64 time=14.4 ms
> 64 bytes from 192.168.0.13: icmp_req=3 ttl=64 time=13.4 ms
> 64 bytes from 192.168.0.13: icmp_req=4 ttl=64 time=12.4 ms
> 64 bytes from 192.168.0.13: icmp_req=5 ttl=64 time=11.4 ms
>
> --- 192.168.0.13 ping statistics ---
> 5 packets transmitted, 5 received, 0% packet loss, time 2004ms
> rtt min/avg/max/mdev = 11.431/13.501/15.746/1.508 ms
> ____________________________________________________
> After this patch:
>
> ping 192.168.0.13 -i.5 -c5
> PING 192.168.0.13 (192.168.0.13) 56(84) bytes of data.
> 64 bytes from 192.168.0.13: icmp_req=1 ttl=64 time=0.120 ms
> 64 bytes from 192.168.0.13: icmp_req=2 ttl=64 time=0.175 ms
> 64 bytes from 192.168.0.13: icmp_req=3 ttl=64 time=0.169 ms
> 64 bytes from 192.168.0.13: icmp_req=4 ttl=64 time=0.168 ms
> 64 bytes from 192.168.0.13: icmp_req=5 ttl=64 time=0.172 ms
>
> --- 192.168.0.13 ping statistics ---
> 5 packets transmitted, 5 received, 0% packet loss, time 1999ms
> rtt min/avg/max/mdev = 0.120/0.160/0.175/0.026 ms
> ____________________________________________________
>
> Also, apply same change to imx6qdl-nitrogen6x.
>
> This change may not be appropriate for all boards.
> Sabre Lite uses GPIO6 as a power down output for a ov5642
> camera. As this expansion board does not yet work with mainline,
> this is not yet a conflict. It would be nice to have an alternative
> fix for boards where this is a problem.
>
> For example Sabre SD uses GPIO6 for I2C3_SDA. It also
> has long ping times currently. But cannot use this fix
> without giving up a touchscreen.
>
> Its ping times are also random.
>
> ping 192.168.0.19 -i.5 -c5
> PING 192.168.0.19 (192.168.0.19) 56(84) bytes of data.
> 64 bytes from 192.168.0.19: icmp_req=1 ttl=64 time=16.0 ms
> 64 bytes from 192.168.0.19: icmp_req=2 ttl=64 time=15.4 ms
> 64 bytes from 192.168.0.19: icmp_req=3 ttl=64 time=14.4 ms
> 64 bytes from 192.168.0.19: icmp_req=4 ttl=64 time=13.4 ms
> 64 bytes from 192.168.0.19: icmp_req=5 ttl=64 time=12.4 ms
>
> --- 192.168.0.19 ping statistics ---
> 5 packets transmitted, 5 received, 0% packet loss, time 2003ms
> rtt min/avg/max/mdev = 12.451/14.369/16.057/1.316 ms
>
> Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
> CC: ra5478 at freescale.com

Sorry, I forgot to change this to

CC: Ranjani Vaidyanathan<ra5478@freescale.com>


> ---
>   arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi | 3 +++
>   arch/arm/boot/dts/imx6qdl-sabrelite.dtsi  | 3 +++
>   2 files changed, 6 insertions(+)
>
> diff --git a/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi b/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
> index 34145d1..e83ffc7 100644
> --- a/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
> +++ b/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
> @@ -165,6 +165,8 @@
>   	txd1-skew-ps = <0>;
>   	txd2-skew-ps = <0>;
>   	txd3-skew-ps = <0>;
> +	interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
> +			      <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
>   	status = "okay";
>   };
>   
> @@ -211,6 +213,7 @@
>   				MX6QDL_ENET_PINGRP_RGMII_MD(0x1b0b0, 0x100b0)
>   				/* Phy reset */
>   				MX6QDL_PAD_ENET_RXD0__GPIO1_IO27	0x000b0
> +				MX6QDL_PAD_GPIO_6__ENET_IRQ		0x000b1
>   			>;
>   		};
>   
> diff --git a/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi b/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
> index 4d156f5..24c2c1b 100644
> --- a/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
> +++ b/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
> @@ -164,6 +164,8 @@
>   	txd1-skew-ps = <0>;
>   	txd2-skew-ps = <0>;
>   	txd3-skew-ps = <0>;
> +	interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
> +			      <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
>   	status = "okay";
>   };
>   
> @@ -210,6 +212,7 @@
>   				MX6QDL_ENET_PINGRP_RGMII_MD(0x1b0b0, 0x100b0)
>   				/* Phy reset */
>   				MX6QDL_PAD_EIM_D23__GPIO3_IO23		0x000b0
> +				MX6QDL_PAD_GPIO_6__ENET_IRQ		0x000b1
>   			>;
>   		};
>   

  reply	other threads:[~2013-12-20 19:02 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-20 18:47 [PATCH V2 0/7] Fix imx6 fec interrupts Troy Kisky
2013-12-20 18:47 ` [PATCH V2 1/7] ARM: dts: imx: pinfunc: add MX6QDL_PAD_GPIO_6__ENET_IRQ Troy Kisky
2013-12-20 18:47 ` [PATCH V2 2/7] ARM: dts: imx6qdl: add pingroups for enet with GPIO6 interrupt Troy Kisky
2013-12-20 18:47 ` [PATCH V2 3/7] ARM: dts: imx6qdl-sabrelite: use MX6QDL_ENET_PINGRP_RGMII_MD Troy Kisky
2013-12-20 18:47 ` [PATCH V2 4/7] ARM: dts: imx6qdl: use interrupts-extended for fec Troy Kisky
2013-12-20 18:47 ` [PATCH V2 5/7] ARM: dts: imx6qdl-sabrelite: use GPIO_6 for FEC interrupt Troy Kisky
2013-12-20 19:02   ` Troy Kisky [this message]
2013-12-23  7:28     ` Shawn Guo
2013-12-20 18:47 ` [PATCH V2 6/7] ARM: dts: imx6qdl-sabreauto: " Troy Kisky
2013-12-20 18:47 ` [PATCH V2 7/7] ARM: dts: imx6q-arm2: " Troy Kisky

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=52B49435.7080702@boundarydevices.com \
    --to=troy.kisky@boundarydevices.com \
    --cc=linux-arm-kernel@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).