aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnurag Kumar Vulisha <anurag.kumar.vulisha@xilinx.com>2017-08-21 07:17:22 -0400
committerTejun Heo <tj@kernel.org>2017-10-23 10:09:27 -0400
commit6e037fb7708653035adbcd739ac295b9744e06cf (patch)
tree1daf968bfd88c91ba6274cfcfed0a03533aa1d5d
parent3bc867de85b5bfb2c1ba04b509783b92360af07d (diff)
ata: ceva: Correct the AXI bus configuration for SATA ports
Previously PAXIC register was programmed before configuring PCFG register. PCFG should be programmed with the address of the port for which PAXIC should be configured for. This was not happening before, so only one port PAXIC was written correctly and the other port was having wrong value. This patch moves the PXAIC register write after configuring PCFG, doing so will correct the axi bus settings for sata port0 & port1. Signed-off-by: Anurag Kumar Vulisha <anuragku@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: Tejun Heo <tj@kernel.org>
-rw-r--r--drivers/ata/ahci_ceva.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/ata/ahci_ceva.c b/drivers/ata/ahci_ceva.c
index ec9cfb52c6f6..113c1f617da9 100644
--- a/drivers/ata/ahci_ceva.c
+++ b/drivers/ata/ahci_ceva.c
@@ -134,14 +134,6 @@ static void ahci_ceva_setup(struct ahci_host_priv *hpriv)
134 u32 tmp; 134 u32 tmp;
135 int i; 135 int i;
136 136
137 /*
138 * AXI Data bus width to 64
139 * Set Mem Addr Read, Write ID for data transfers
140 * Transfer limit to 72 DWord
141 */
142 tmp = PAXIC_ADBW_BW64 | PAXIC_MAWIDD | PAXIC_MARIDD | PAXIC_OTL;
143 writel(tmp, mmio + AHCI_VEND_PAXIC);
144
145 /* Set AHCI Enable */ 137 /* Set AHCI Enable */
146 tmp = readl(mmio + HOST_CTL); 138 tmp = readl(mmio + HOST_CTL);
147 tmp |= HOST_AHCI_EN; 139 tmp |= HOST_AHCI_EN;
@@ -152,6 +144,14 @@ static void ahci_ceva_setup(struct ahci_host_priv *hpriv)
152 tmp = PCFG_TPSS_VAL | PCFG_TPRS_VAL | (PCFG_PAD_VAL + i); 144 tmp = PCFG_TPSS_VAL | PCFG_TPRS_VAL | (PCFG_PAD_VAL + i);
153 writel(tmp, mmio + AHCI_VEND_PCFG); 145 writel(tmp, mmio + AHCI_VEND_PCFG);
154 146
147 /*
148 * AXI Data bus width to 64
149 * Set Mem Addr Read, Write ID for data transfers
150 * Transfer limit to 72 DWord
151 */
152 tmp = PAXIC_ADBW_BW64 | PAXIC_MAWIDD | PAXIC_MARIDD | PAXIC_OTL;
153 writel(tmp, mmio + AHCI_VEND_PAXIC);
154
155 /* Set AXI cache control register if CCi is enabled */ 155 /* Set AXI cache control register if CCi is enabled */
156 if (cevapriv->is_cci_enabled) { 156 if (cevapriv->is_cci_enabled) {
157 tmp = readl(mmio + AHCI_VEND_AXICC); 157 tmp = readl(mmio + AHCI_VEND_AXICC);