Merge head 'upstream-20050628-1' of rsync://rsync.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev
This commit is contained in:
@@ -304,26 +304,19 @@ static int ahci_port_start(struct ata_port *ap)
|
||||
struct device *dev = ap->host_set->dev;
|
||||
struct ahci_host_priv *hpriv = ap->host_set->private_data;
|
||||
struct ahci_port_priv *pp;
|
||||
int rc;
|
||||
void *mem, *mmio = ap->host_set->mmio_base;
|
||||
void *port_mmio = ahci_port_base(mmio, ap->port_no);
|
||||
dma_addr_t mem_dma;
|
||||
|
||||
rc = ata_port_start(ap);
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
pp = kmalloc(sizeof(*pp), GFP_KERNEL);
|
||||
if (!pp) {
|
||||
rc = -ENOMEM;
|
||||
goto err_out;
|
||||
}
|
||||
if (!pp)
|
||||
return -ENOMEM;
|
||||
memset(pp, 0, sizeof(*pp));
|
||||
|
||||
mem = dma_alloc_coherent(dev, AHCI_PORT_PRIV_DMA_SZ, &mem_dma, GFP_KERNEL);
|
||||
if (!mem) {
|
||||
rc = -ENOMEM;
|
||||
goto err_out_kfree;
|
||||
kfree(pp);
|
||||
return -ENOMEM;
|
||||
}
|
||||
memset(mem, 0, AHCI_PORT_PRIV_DMA_SZ);
|
||||
|
||||
@@ -373,12 +366,6 @@ static int ahci_port_start(struct ata_port *ap)
|
||||
readl(port_mmio + PORT_CMD); /* flush */
|
||||
|
||||
return 0;
|
||||
|
||||
err_out_kfree:
|
||||
kfree(pp);
|
||||
err_out:
|
||||
ata_port_stop(ap);
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
@@ -404,7 +391,6 @@ static void ahci_port_stop(struct ata_port *ap)
|
||||
dma_free_coherent(dev, AHCI_PORT_PRIV_DMA_SZ,
|
||||
pp->cmd_slot, pp->cmd_slot_dma);
|
||||
kfree(pp);
|
||||
ata_port_stop(ap);
|
||||
}
|
||||
|
||||
static u32 ahci_scr_read (struct ata_port *ap, unsigned int sc_reg_in)
|
||||
|
@@ -1408,7 +1408,9 @@ void __sata_phy_reset(struct ata_port *ap)
|
||||
if (ap->flags & ATA_FLAG_SATA_RESET) {
|
||||
/* issue phy wake/reset */
|
||||
scr_write_flush(ap, SCR_CONTROL, 0x301);
|
||||
udelay(400); /* FIXME: a guess */
|
||||
/* Couldn't find anything in SATA I/II specs, but
|
||||
* AHCI-1.1 10.4.2 says at least 1 ms. */
|
||||
mdelay(1);
|
||||
}
|
||||
scr_write_flush(ap, SCR_CONTROL, 0x300); /* phy wake/clear reset */
|
||||
|
||||
@@ -1920,6 +1922,7 @@ static const char * ata_dma_blacklist [] = {
|
||||
"HITACHI CDR-8335",
|
||||
"HITACHI CDR-8435",
|
||||
"Toshiba CD-ROM XM-6202B",
|
||||
"TOSHIBA CD-ROM XM-1702BC",
|
||||
"CD-532E-A",
|
||||
"E-IDE CD-ROM CR-840",
|
||||
"CD-ROM Drive/F5A",
|
||||
@@ -1927,7 +1930,6 @@ static const char * ata_dma_blacklist [] = {
|
||||
"SAMSUNG CD-ROM SC-148C",
|
||||
"SAMSUNG CD-ROM SC",
|
||||
"SanDisk SDP3B-64",
|
||||
"SAMSUNG CD-ROM SN-124",
|
||||
"ATAPI CD-ROM DRIVE 40X MAXIMUM",
|
||||
"_NEC DV5800A",
|
||||
};
|
||||
|
Reference in New Issue
Block a user