diff options
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 bdb236957cb9..f0d52f72f5bb 100644 --- a/drivers/ata/pata_netcell.c +++ b/drivers/ata/pata_netcell.c | |||
@@ -20,13 +20,24 @@ | |||
20 | 20 | ||
21 | /* No PIO or DMA methods needed for this device */ | 21 | /* No PIO or DMA methods needed for this device */ |
22 | 22 | ||
23 | static unsigned int netcell_read_id(struct ata_device *adev, | ||
24 | struct ata_taskfile *tf, u16 *id) | ||
25 | { | ||
26 | unsigned int err_mask = ata_do_dev_read_id(adev, tf, id); | ||
27 | /* Firmware forgets to mark words 85-87 valid */ | ||
28 | if (err_mask == 0) | ||
29 | id[ATA_ID_CSF_DEFAULT] |= 0x4000; | ||
30 | return err_mask; | ||
31 | } | ||
32 | |||
23 | static struct scsi_host_template netcell_sht = { | 33 | static struct scsi_host_template netcell_sht = { |
24 | ATA_BMDMA_SHT(DRV_NAME), | 34 | ATA_BMDMA_SHT(DRV_NAME), |
25 | }; | 35 | }; |
26 | 36 | ||
27 | static struct ata_port_operations netcell_ops = { | 37 | static struct ata_port_operations netcell_ops = { |
28 | .inherits = &ata_bmdma_port_ops, | 38 | .inherits = &ata_bmdma_port_ops, |
29 | .cable_detect = ata_cable_80wire, | 39 | .cable_detect = ata_cable_80wire, |
40 | .read_id = netcell_read_id, | ||
30 | }; | 41 | }; |
31 | 42 | ||
32 | 43 | ||