* [PATCH 0/5] imx ahci DT updates + cubox-i eSATA support @ 2014-04-16 8:42 Russell King - ARM Linux [not found] ` <20140416084227.GD24070-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org> 2014-04-16 8:43 ` [PATCH RFC 5/5] ahci_imx: add disable for spread-spectrum Russell King 0 siblings, 2 replies; 9+ messages in thread From: Russell King - ARM Linux @ 2014-04-16 8:42 UTC (permalink / raw) To: linux-arm-kernel Cc: devicetree, Ian Campbell, Kumar Gala, linux-ide, Mark Rutland, Pawel Moll, Rob Herring, Sascha Hauer, Shawn Guo, Tejun Heo The following series adds several DT properties to the iMX ahci driver, which are necessary to configure the electrical characteristics of the SATA interface. The required electrical characteristics are board dependent, so the existing solution where the parameters are hard-coded for the first board(s) which came along is completely rediculous, and cause their own set of problems: we have to default to these parameters when no properties are given, and it means we have to use negative properties to turn stuff off rather than positive properties to enable features. Yes, I know that the required Documentation/devicetree file is missing, I couldn't find the existing file to update for this driver with the new properties. :) arch/arm/boot/dts/imx6q-cubox-i.dts | 4 + drivers/ata/ahci_imx.c | 188 ++++++++++++++++++++++++++++++++++-- 2 files changed, 184 insertions(+), 8 deletions(-) -- FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly improving, and getting towards what was expected from it. ^ permalink raw reply [flat|nested] 9+ messages in thread
[parent not found: <20140416084227.GD24070-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>]
* [PATCH RFC 4/5] ARM: cubox-i: add eSATA DT configuration [not found] ` <20140416084227.GD24070-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org> @ 2014-04-16 8:43 ` Russell King 0 siblings, 0 replies; 9+ messages in thread From: Russell King @ 2014-04-16 8:43 UTC (permalink / raw) To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r Cc: Shawn Guo, Sascha Hauer, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, devicetree-u79uwXL29TY76Z2rM5mHXA Signed-off-by: Russell King <rmk+kernel-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org> --- arch/arm/boot/dts/imx6q-cubox-i.dts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm/boot/dts/imx6q-cubox-i.dts b/arch/arm/boot/dts/imx6q-cubox-i.dts index bc5f31e3e892..941365d7ee65 100644 --- a/arch/arm/boot/dts/imx6q-cubox-i.dts +++ b/arch/arm/boot/dts/imx6q-cubox-i.dts @@ -13,4 +13,7 @@ &sata { status = "okay"; + fsl,transmit-level-mV = <1104>; + fsl,transmit-boost-mdB = <0>; + fsl,transmit-atten-16ths = <9>; }; -- 1.8.3.1 -- 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 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH RFC 5/5] ahci_imx: add disable for spread-spectrum 2014-04-16 8:42 [PATCH 0/5] imx ahci DT updates + cubox-i eSATA support Russell King - ARM Linux [not found] ` <20140416084227.GD24070-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org> @ 2014-04-16 8:43 ` Russell King 2014-04-16 22:46 ` Rob Herring 1 sibling, 1 reply; 9+ messages in thread From: Russell King @ 2014-04-16 8:43 UTC (permalink / raw) To: linux-arm-kernel Cc: Shawn Guo, Sascha Hauer, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Tejun Heo, devicetree, linux-ide Spread-spectrum doesn't work with Cubox-i hardware, so we have to disable this feature. Add a DT property so that platforms can indicate that this feature should not be enabled. Having it as a negative property keeps existing DT files working. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> --- arch/arm/boot/dts/imx6q-cubox-i.dts | 1 + drivers/ata/ahci_imx.c | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/imx6q-cubox-i.dts b/arch/arm/boot/dts/imx6q-cubox-i.dts index 941365d7ee65..9efd8b0c8011 100644 --- a/arch/arm/boot/dts/imx6q-cubox-i.dts +++ b/arch/arm/boot/dts/imx6q-cubox-i.dts @@ -16,4 +16,5 @@ fsl,transmit-level-mV = <1104>; fsl,transmit-boost-mdB = <0>; fsl,transmit-atten-16ths = <9>; + fsl,no-spread-spectrum; }; diff --git a/drivers/ata/ahci_imx.c b/drivers/ata/ahci_imx.c index 1251d719cc73..f3221b8bfafa 100644 --- a/drivers/ata/ahci_imx.c +++ b/drivers/ata/ahci_imx.c @@ -208,6 +208,7 @@ struct reg_property { const struct reg_value *values; size_t num_values; u32 def_value; + u32 set_value; }; static const struct reg_value gpr13_tx_level[] = { @@ -305,6 +306,10 @@ static const struct reg_property gpr13_props[] = { .values = gpr13_rx_eq, .num_values = ARRAY_SIZE(gpr13_rx_eq), .def_value = IMX6Q_GPR13_SATA_RX_EQ_VAL_3_0_DB, + }, { + .name = "fsl,no-spread-spectrum", + .def_value = IMX6Q_GPR13_SATA_MPLL_SS_EN, + .set_value = 0, }, }; @@ -318,6 +323,14 @@ static u32 imx_ahci_parse_props(struct device *dev, for (i = 0; i < num; i++, prop++) { u32 of_val; + if (prop->num_values == 0) { + if (of_property_read_bool(np, prop->name)) + reg_value |= prop->set_value; + else + reg_value |= prop->def_value; + continue; + } + if (of_property_read_u32(np, prop->name, &of_val)) { dev_info(dev, "%s not specified, using %08x\n", prop->name, prop->def_value); @@ -392,7 +405,6 @@ static int imx_ahci_probe(struct platform_device *pdev) IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA2M | IMX6Q_GPR13_SATA_RX_DPLL_MODE_2P_4F | IMX6Q_GPR13_SATA_SPD_MODE_3P0G | - IMX6Q_GPR13_SATA_MPLL_SS_EN | reg_value; } -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH RFC 5/5] ahci_imx: add disable for spread-spectrum 2014-04-16 8:43 ` [PATCH RFC 5/5] ahci_imx: add disable for spread-spectrum Russell King @ 2014-04-16 22:46 ` Rob Herring 2014-04-16 22:57 ` Russell King - ARM Linux 0 siblings, 1 reply; 9+ messages in thread From: Rob Herring @ 2014-04-16 22:46 UTC (permalink / raw) To: Russell King Cc: linux-arm-kernel@lists.infradead.org, Shawn Guo, Sascha Hauer, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Tejun Heo, devicetree@vger.kernel.org, linux-ide On Wed, Apr 16, 2014 at 3:43 AM, Russell King <rmk+kernel@arm.linux.org.uk> wrote: > Spread-spectrum doesn't work with Cubox-i hardware, so we have to > disable this feature. Add a DT property so that platforms can > indicate that this feature should not be enabled. This is for spread-spectrum tx or rx? Transmit SS is optional to support, but the receiver must support SS. Otherwise random drives won't work which makes for a good user experience. Is this really a board quirk rather than a Si issue? Rob > > Having it as a negative property keeps existing DT files working. > > Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> > --- > arch/arm/boot/dts/imx6q-cubox-i.dts | 1 + > drivers/ata/ahci_imx.c | 14 +++++++++++++- > 2 files changed, 14 insertions(+), 1 deletion(-) > > diff --git a/arch/arm/boot/dts/imx6q-cubox-i.dts b/arch/arm/boot/dts/imx6q-cubox-i.dts > index 941365d7ee65..9efd8b0c8011 100644 > --- a/arch/arm/boot/dts/imx6q-cubox-i.dts > +++ b/arch/arm/boot/dts/imx6q-cubox-i.dts > @@ -16,4 +16,5 @@ > fsl,transmit-level-mV = <1104>; > fsl,transmit-boost-mdB = <0>; > fsl,transmit-atten-16ths = <9>; > + fsl,no-spread-spectrum; > }; > diff --git a/drivers/ata/ahci_imx.c b/drivers/ata/ahci_imx.c > index 1251d719cc73..f3221b8bfafa 100644 > --- a/drivers/ata/ahci_imx.c > +++ b/drivers/ata/ahci_imx.c > @@ -208,6 +208,7 @@ struct reg_property { > const struct reg_value *values; > size_t num_values; > u32 def_value; > + u32 set_value; > }; > > static const struct reg_value gpr13_tx_level[] = { > @@ -305,6 +306,10 @@ static const struct reg_property gpr13_props[] = { > .values = gpr13_rx_eq, > .num_values = ARRAY_SIZE(gpr13_rx_eq), > .def_value = IMX6Q_GPR13_SATA_RX_EQ_VAL_3_0_DB, > + }, { > + .name = "fsl,no-spread-spectrum", > + .def_value = IMX6Q_GPR13_SATA_MPLL_SS_EN, > + .set_value = 0, > }, > }; > > @@ -318,6 +323,14 @@ static u32 imx_ahci_parse_props(struct device *dev, > for (i = 0; i < num; i++, prop++) { > u32 of_val; > > + if (prop->num_values == 0) { > + if (of_property_read_bool(np, prop->name)) > + reg_value |= prop->set_value; > + else > + reg_value |= prop->def_value; > + continue; > + } > + > if (of_property_read_u32(np, prop->name, &of_val)) { > dev_info(dev, "%s not specified, using %08x\n", > prop->name, prop->def_value); > @@ -392,7 +405,6 @@ static int imx_ahci_probe(struct platform_device *pdev) > IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA2M | > IMX6Q_GPR13_SATA_RX_DPLL_MODE_2P_4F | > IMX6Q_GPR13_SATA_SPD_MODE_3P0G | > - IMX6Q_GPR13_SATA_MPLL_SS_EN | > reg_value; > } > > -- > 1.8.3.1 > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH RFC 5/5] ahci_imx: add disable for spread-spectrum 2014-04-16 22:46 ` Rob Herring @ 2014-04-16 22:57 ` Russell King - ARM Linux 2014-04-16 23:02 ` Russell King - ARM Linux 0 siblings, 1 reply; 9+ messages in thread From: Russell King - ARM Linux @ 2014-04-16 22:57 UTC (permalink / raw) To: Rob Herring Cc: linux-arm-kernel@lists.infradead.org, Shawn Guo, Sascha Hauer, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Tejun Heo, devicetree@vger.kernel.org, linux-ide On Wed, Apr 16, 2014 at 05:46:47PM -0500, Rob Herring wrote: > On Wed, Apr 16, 2014 at 3:43 AM, Russell King > <rmk+kernel@arm.linux.org.uk> wrote: > > Spread-spectrum doesn't work with Cubox-i hardware, so we have to > > disable this feature. Add a DT property so that platforms can > > indicate that this feature should not be enabled. > > This is for spread-spectrum tx or rx? Transmit SS is optional to > support, but the receiver must support SS. Otherwise random drives > won't work which makes for a good user experience. Is this really a > board quirk rather than a Si issue? No idea. This bit controls clock generation, and one reason given to disable it is if the reference clock being supplied is already spread spectrum. I don't think that applies here. It doesn't say which clock(s) this is applied to - I would guess it's the transmit clock. All I know is that with SS enabled, the drive is not detected, and SolidRun's original port disables SS. Disabling SS allows the external drive to be detected. I have no capability to check the eye pattern, so I've no idea if there's a problem with the electrical setup which stops SS from working. All I know is with the parameters I give here (which are those which SolidRun's original port uses) and with SS disabled, it works. -- FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly improving, and getting towards what was expected from it. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH RFC 5/5] ahci_imx: add disable for spread-spectrum 2014-04-16 22:57 ` Russell King - ARM Linux @ 2014-04-16 23:02 ` Russell King - ARM Linux 2014-06-06 16:40 ` Russell King - ARM Linux 0 siblings, 1 reply; 9+ messages in thread From: Russell King - ARM Linux @ 2014-04-16 23:02 UTC (permalink / raw) To: Rob Herring Cc: Mark Rutland, devicetree@vger.kernel.org, Pawel Moll, Ian Campbell, linux-ide, Rob Herring, linux-arm-kernel@lists.infradead.org, Sascha Hauer, Kumar Gala, Tejun Heo, Shawn Guo On Wed, Apr 16, 2014 at 11:57:21PM +0100, Russell King - ARM Linux wrote: > On Wed, Apr 16, 2014 at 05:46:47PM -0500, Rob Herring wrote: > > On Wed, Apr 16, 2014 at 3:43 AM, Russell King > > <rmk+kernel@arm.linux.org.uk> wrote: > > > Spread-spectrum doesn't work with Cubox-i hardware, so we have to > > > disable this feature. Add a DT property so that platforms can > > > indicate that this feature should not be enabled. > > > > This is for spread-spectrum tx or rx? Transmit SS is optional to > > support, but the receiver must support SS. Otherwise random drives > > won't work which makes for a good user experience. Is this really a > > board quirk rather than a Si issue? > > No idea. This bit controls clock generation, and one reason given to > disable it is if the reference clock being supplied is already spread > spectrum. I don't think that applies here. It doesn't say which > clock(s) this is applied to - I would guess it's the transmit clock. > > All I know is that with SS enabled, the drive is not detected, and > SolidRun's original port disables SS. Disabling SS allows the external > drive to be detected. > > I have no capability to check the eye pattern, so I've no idea if > there's a problem with the electrical setup which stops SS from > working. All I know is with the parameters I give here (which are > those which SolidRun's original port uses) and with SS disabled, > it works. I'll correct that - it _is_ detected with SS enabled, but things go awry very quickly with errors, which then result in corrupted IDENTIFY responses, the link dropping back to 1.5Gbps, more errors and corruption and eventually the SATA layer gives up and declares the port dead. -- FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly improving, and getting towards what was expected from it. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH RFC 5/5] ahci_imx: add disable for spread-spectrum 2014-04-16 23:02 ` Russell King - ARM Linux @ 2014-06-06 16:40 ` Russell King - ARM Linux 2014-06-06 19:50 ` Rob Herring 0 siblings, 1 reply; 9+ messages in thread From: Russell King - ARM Linux @ 2014-06-06 16:40 UTC (permalink / raw) To: Rob Herring Cc: Mark Rutland, devicetree@vger.kernel.org, Pawel Moll, Ian Campbell, linux-ide, Rob Herring, Shawn Guo, Sascha Hauer, Kumar Gala, Tejun Heo, linux-arm-kernel@lists.infradead.org On Thu, Apr 17, 2014 at 12:02:26AM +0100, Russell King - ARM Linux wrote: > On Wed, Apr 16, 2014 at 11:57:21PM +0100, Russell King - ARM Linux wrote: > > On Wed, Apr 16, 2014 at 05:46:47PM -0500, Rob Herring wrote: > > > On Wed, Apr 16, 2014 at 3:43 AM, Russell King > > > <rmk+kernel@arm.linux.org.uk> wrote: > > > > Spread-spectrum doesn't work with Cubox-i hardware, so we have to > > > > disable this feature. Add a DT property so that platforms can > > > > indicate that this feature should not be enabled. > > > > > > This is for spread-spectrum tx or rx? Transmit SS is optional to > > > support, but the receiver must support SS. Otherwise random drives > > > won't work which makes for a good user experience. Is this really a > > > board quirk rather than a Si issue? > > > > No idea. This bit controls clock generation, and one reason given to > > disable it is if the reference clock being supplied is already spread > > spectrum. I don't think that applies here. It doesn't say which > > clock(s) this is applied to - I would guess it's the transmit clock. > > > > All I know is that with SS enabled, the drive is not detected, and > > SolidRun's original port disables SS. Disabling SS allows the external > > drive to be detected. > > > > I have no capability to check the eye pattern, so I've no idea if > > there's a problem with the electrical setup which stops SS from > > working. All I know is with the parameters I give here (which are > > those which SolidRun's original port uses) and with SS disabled, > > it works. > > I'll correct that - it _is_ detected with SS enabled, but things go > awry very quickly with errors, which then result in corrupted IDENTIFY > responses, the link dropping back to 1.5Gbps, more errors and corruption > and eventually the SATA layer gives up and declares the port dead. Rob, Can I take your lack of reply on this as meaning that you don't have any objections against these new DT properties for this driver - if so, can I have your ack for these properties please? -- FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly improving, and getting towards what was expected from it. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH RFC 5/5] ahci_imx: add disable for spread-spectrum 2014-06-06 16:40 ` Russell King - ARM Linux @ 2014-06-06 19:50 ` Rob Herring 2014-06-17 9:47 ` Russell King - ARM Linux 0 siblings, 1 reply; 9+ messages in thread From: Rob Herring @ 2014-06-06 19:50 UTC (permalink / raw) To: Russell King - ARM Linux Cc: Mark Rutland, devicetree@vger.kernel.org, Pawel Moll, Ian Campbell, linux-ide, Rob Herring, Shawn Guo, Sascha Hauer, Kumar Gala, Tejun Heo, linux-arm-kernel@lists.infradead.org On Fri, Jun 6, 2014 at 11:40 AM, Russell King - ARM Linux <linux@arm.linux.org.uk> wrote: > On Thu, Apr 17, 2014 at 12:02:26AM +0100, Russell King - ARM Linux wrote: >> On Wed, Apr 16, 2014 at 11:57:21PM +0100, Russell King - ARM Linux wrote: >> > On Wed, Apr 16, 2014 at 05:46:47PM -0500, Rob Herring wrote: >> > > On Wed, Apr 16, 2014 at 3:43 AM, Russell King >> > > <rmk+kernel@arm.linux.org.uk> wrote: >> > > > Spread-spectrum doesn't work with Cubox-i hardware, so we have to >> > > > disable this feature. Add a DT property so that platforms can >> > > > indicate that this feature should not be enabled. >> > > >> > > This is for spread-spectrum tx or rx? Transmit SS is optional to >> > > support, but the receiver must support SS. Otherwise random drives >> > > won't work which makes for a good user experience. Is this really a >> > > board quirk rather than a Si issue? >> > >> > No idea. This bit controls clock generation, and one reason given to >> > disable it is if the reference clock being supplied is already spread >> > spectrum. I don't think that applies here. It doesn't say which >> > clock(s) this is applied to - I would guess it's the transmit clock. >> > >> > All I know is that with SS enabled, the drive is not detected, and >> > SolidRun's original port disables SS. Disabling SS allows the external >> > drive to be detected. >> > >> > I have no capability to check the eye pattern, so I've no idea if >> > there's a problem with the electrical setup which stops SS from >> > working. All I know is with the parameters I give here (which are >> > those which SolidRun's original port uses) and with SS disabled, >> > it works. >> >> I'll correct that - it _is_ detected with SS enabled, but things go >> awry very quickly with errors, which then result in corrupted IDENTIFY >> responses, the link dropping back to 1.5Gbps, more errors and corruption >> and eventually the SATA layer gives up and declares the port dead. > > Rob, > > Can I take your lack of reply on this as meaning that you don't have > any objections against these new DT properties for this driver - if > so, can I have your ack for these properties please? Yes, they are okay. I'll ack the documentation once that is done. Rob ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH RFC 5/5] ahci_imx: add disable for spread-spectrum 2014-06-06 19:50 ` Rob Herring @ 2014-06-17 9:47 ` Russell King - ARM Linux 0 siblings, 0 replies; 9+ messages in thread From: Russell King - ARM Linux @ 2014-06-17 9:47 UTC (permalink / raw) To: Rob Herring Cc: Mark Rutland, devicetree@vger.kernel.org, Pawel Moll, Ian Campbell, linux-ide, Rob Herring, Shawn Guo, Sascha Hauer, Kumar Gala, Tejun Heo, linux-arm-kernel@lists.infradead.org On Fri, Jun 06, 2014 at 02:50:38PM -0500, Rob Herring wrote: > Yes, they are okay. I'll ack the documentation once that is done. When someone documents the existing implmentation, then I'll add to it - I've not really looked into what the differences are between the compatible strings, so that's something I can't document. -- FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly improving, and getting towards what was expected from it. ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2014-06-17 9:47 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-04-16 8:42 [PATCH 0/5] imx ahci DT updates + cubox-i eSATA support Russell King - ARM Linux [not found] ` <20140416084227.GD24070-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org> 2014-04-16 8:43 ` [PATCH RFC 4/5] ARM: cubox-i: add eSATA DT configuration Russell King 2014-04-16 8:43 ` [PATCH RFC 5/5] ahci_imx: add disable for spread-spectrum Russell King 2014-04-16 22:46 ` Rob Herring 2014-04-16 22:57 ` Russell King - ARM Linux 2014-04-16 23:02 ` Russell King - ARM Linux 2014-06-06 16:40 ` Russell King - ARM Linux 2014-06-06 19:50 ` Rob Herring 2014-06-17 9:47 ` Russell King - ARM Linux
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).