[PATCH] sata_sil24: implement sil24_init_port()
Implement sil24_init_port which performs port initialization via PORT_CS_INIT. To be used later by softreset and EH. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
37024e8ee0
commit
b5bc421c96
1 changed files with 16 additions and 0 deletions
|
@ -437,6 +437,22 @@ static void sil24_tf_read(struct ata_port *ap, struct ata_taskfile *tf)
|
|||
*tf = pp->tf;
|
||||
}
|
||||
|
||||
static int sil24_init_port(struct ata_port *ap)
|
||||
{
|
||||
void __iomem *port = (void __iomem *)ap->ioaddr.cmd_addr;
|
||||
u32 tmp;
|
||||
|
||||
writel(PORT_CS_INIT, port + PORT_CTRL_STAT);
|
||||
ata_wait_register(port + PORT_CTRL_STAT,
|
||||
PORT_CS_INIT, PORT_CS_INIT, 10, 100);
|
||||
tmp = ata_wait_register(port + PORT_CTRL_STAT,
|
||||
PORT_CS_RDY, 0, 10, 100);
|
||||
|
||||
if ((tmp & (PORT_CS_INIT | PORT_CS_RDY)) != PORT_CS_RDY)
|
||||
return -EIO;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int sil24_softreset(struct ata_port *ap, unsigned int *class)
|
||||
{
|
||||
void __iomem *port = (void __iomem *)ap->ioaddr.cmd_addr;
|
||||
|
|
Loading…
Reference in a new issue