[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_FORCE_OFFLINE = (1 << 30),
|
||||
HCONTROL_LEGACY = (1 << 28),
|
||||
HCONTROL_PARITY_PROT_MOD = (1 << 14),
|
||||
HCONTROL_DPATH_PARITY = (1 << 12),
|
||||
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
|
||||
*/
|
||||
|
||||
/* 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 */
|
||||
temp = ioread32(hcr_base + HSTATUS);
|
||||
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 */
|
||||
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);
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue