diff options
| -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..9a698097134b 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] |= 0x0400; | ||
| 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 | ||
