diff options
author | Alan Cox <alan@linux.intel.com> | 2009-06-02 12:34:31 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-02 09:49:46 -0700 |
commit | d3ae33efb8e2f277f9007eb060c9d0b91ab38ae1 (patch) | |
tree | 1664f7e899a558d39a66b9b958332776a9f875ec /drivers/ata/pata_netcell.c | |
parent | ca55bd7e2905d344bf697f7c2cc347cb42999e7a (diff) |
pata_netcell: LBA48 force identify bits correct
This matches Bartlomiej's patch for ide_pci_generic:
c339dfdd65b52bfd947ab29d1210314a2f6d622d
In the libata case netcell has its own mini driver. I suspect this fix is
actually only needed for some firmware revs but it does no harm either way.
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/ata/pata_netcell.c')
-rw-r--r-- | drivers/ata/pata_netcell.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/ata/pata_netcell.c b/drivers/ata/pata_netcell.c index bdb236957cb..9a698097134 100644 --- a/drivers/ata/pata_netcell.c +++ b/drivers/ata/pata_netcell.c @@ -20,13 +20,24 @@ /* No PIO or DMA methods needed for this device */ +static unsigned int netcell_read_id(struct ata_device *adev, + struct ata_taskfile *tf, u16 *id) +{ + unsigned int err_mask = ata_do_dev_read_id(adev, tf, id); + /* Firmware forgets to mark words 85-87 valid */ + if (err_mask == 0) + id[ATA_ID_CSF_DEFAULT] |= 0x0400; + return err_mask; +} + static struct scsi_host_template netcell_sht = { ATA_BMDMA_SHT(DRV_NAME), }; static struct ata_port_operations netcell_ops = { .inherits = &ata_bmdma_port_ops, - .cable_detect = ata_cable_80wire, + .cable_detect = ata_cable_80wire, + .read_id = netcell_read_id, }; |