[libata] sata_fsl: fix the controller operating mode
Configure the FSL SATA controller to the preferred, enterprise mode. Signed-off-by: Yutaka Ando <r46913@freescale.com> Signed-off-by: Jerry Huang <Chang-Ming.Huang@freescale.com> CC: Jeff Garzik <jgarzik@pobox.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
This commit is contained in:
parent
966f1212e1
commit
93272b132a
@ -140,6 +140,7 @@ enum {
|
|||||||
*/
|
*/
|
||||||
HCONTROL_ONLINE_PHY_RST = (1 << 31),
|
HCONTROL_ONLINE_PHY_RST = (1 << 31),
|
||||||
HCONTROL_FORCE_OFFLINE = (1 << 30),
|
HCONTROL_FORCE_OFFLINE = (1 << 30),
|
||||||
|
HCONTROL_LEGACY = (1 << 28),
|
||||||
HCONTROL_PARITY_PROT_MOD = (1 << 14),
|
HCONTROL_PARITY_PROT_MOD = (1 << 14),
|
||||||
HCONTROL_DPATH_PARITY = (1 << 12),
|
HCONTROL_DPATH_PARITY = (1 << 12),
|
||||||
HCONTROL_SNOOP_ENABLE = (1 << 10),
|
HCONTROL_SNOOP_ENABLE = (1 << 10),
|
||||||
@ -1223,6 +1224,10 @@ static int sata_fsl_init_controller(struct ata_host *host)
|
|||||||
* part of the port_start() callback
|
* part of the port_start() callback
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* sata controller to operate in enterprise mode */
|
||||||
|
temp = ioread32(hcr_base + HCONTROL);
|
||||||
|
iowrite32(temp & ~HCONTROL_LEGACY, hcr_base + HCONTROL);
|
||||||
|
|
||||||
/* ack. any pending IRQs for this controller/port */
|
/* ack. any pending IRQs for this controller/port */
|
||||||
temp = ioread32(hcr_base + HSTATUS);
|
temp = ioread32(hcr_base + HSTATUS);
|
||||||
if (temp & 0x3F)
|
if (temp & 0x3F)
|
||||||
@ -1421,6 +1426,12 @@ static int sata_fsl_resume(struct platform_device *op)
|
|||||||
/* Recovery the CHBA register in host controller cmd register set */
|
/* Recovery the CHBA register in host controller cmd register set */
|
||||||
iowrite32(pp->cmdslot_paddr & 0xffffffff, hcr_base + CHBA);
|
iowrite32(pp->cmdslot_paddr & 0xffffffff, hcr_base + CHBA);
|
||||||
|
|
||||||
|
iowrite32((ioread32(hcr_base + HCONTROL)
|
||||||
|
| HCONTROL_ONLINE_PHY_RST
|
||||||
|
| HCONTROL_SNOOP_ENABLE
|
||||||
|
| HCONTROL_PMP_ATTACHED),
|
||||||
|
hcr_base + HCONTROL);
|
||||||
|
|
||||||
ata_host_resume(host);
|
ata_host_resume(host);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user