| From ralf@linux-mips.org Fri May 8 16:25:15 2015 |
| From: Ralf Baechle <ralf@linux-mips.org> |
| Date: Wed, 7 Jan 2015 16:58:26 +0530 |
| Subject: MIPS: Netlogic: Fix for SATA PHY init |
| To: stable@vger.kernel.org |
| Message-ID: <de078db9540ed3c7a17ba4053d7cf1a196b56194.1431087908.git.ralf@linux-mips.org> |
| |
| |
| From: Ganesan Ramalingam <ganesanr@broadcom.com> |
| |
| Commit 872cd4c2c617bb3a203ebe18115fd0c697112b87 upstream. |
| |
| Update to the SATA PHY initialization. This is needed for SATA detection |
| to succeed in all configurations. |
| |
| Signed-off-by: Ganesan Ramalingam <ganesanr@broadcom.com> |
| Signed-off-by: Jayachandran C <jchandra@broadcom.com> |
| Cc: linux-mips@linux-mips.org |
| Patchwork: https://patchwork.linux-mips.org/patch/8886/ |
| Signed-off-by: Ralf Baechle <ralf@linux-mips.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/mips/netlogic/xlp/ahci-init-xlp2.c | 13 +++++++++++++ |
| 1 file changed, 13 insertions(+) |
| |
| --- a/arch/mips/netlogic/xlp/ahci-init-xlp2.c |
| +++ b/arch/mips/netlogic/xlp/ahci-init-xlp2.c |
| @@ -203,6 +203,7 @@ static u8 read_phy_reg(u64 regbase, u32 |
| static void config_sata_phy(u64 regbase) |
| { |
| u32 port, i, reg; |
| + u8 val; |
| |
| for (port = 0; port < 2; port++) { |
| for (i = 0, reg = RXCDRCALFOSC0; reg <= CALDUTY; reg++, i++) |
| @@ -210,6 +211,18 @@ static void config_sata_phy(u64 regbase) |
| |
| for (i = 0, reg = RXDPIF; reg <= PPMDRIFTMAX_HI; reg++, i++) |
| write_phy_reg(regbase, reg, port, sata_phy_config2[i]); |
| + |
| + /* Fix for PHY link up failures at lower temperatures */ |
| + write_phy_reg(regbase, 0x800F, port, 0x1f); |
| + |
| + val = read_phy_reg(regbase, 0x0029, port); |
| + write_phy_reg(regbase, 0x0029, port, val | (0x7 << 1)); |
| + |
| + val = read_phy_reg(regbase, 0x0056, port); |
| + write_phy_reg(regbase, 0x0056, port, val & ~(1 << 3)); |
| + |
| + val = read_phy_reg(regbase, 0x0018, port); |
| + write_phy_reg(regbase, 0x0018, port, val & ~(0x7 << 0)); |
| } |
| } |
| |