diff options
| -rw-r--r-- | drivers/ata/pata_serverworks.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/ata/pata_serverworks.c b/drivers/ata/pata_serverworks.c index fc5f31d4828e..57de02123c4c 100644 --- a/drivers/ata/pata_serverworks.c +++ b/drivers/ata/pata_serverworks.c | |||
| @@ -251,12 +251,18 @@ static void serverworks_set_dmamode(struct ata_port *ap, struct ata_device *adev | |||
| 251 | pci_write_config_byte(pdev, 0x54, ultra_cfg); | 251 | pci_write_config_byte(pdev, 0x54, ultra_cfg); |
| 252 | } | 252 | } |
| 253 | 253 | ||
| 254 | static struct scsi_host_template serverworks_sht = { | 254 | static struct scsi_host_template serverworks_osb4_sht = { |
| 255 | ATA_BMDMA_SHT(DRV_NAME), | ||
| 256 | .sg_tablesize = LIBATA_DUMB_MAX_PRD, | ||
| 257 | }; | ||
| 258 | |||
| 259 | static struct scsi_host_template serverworks_csb_sht = { | ||
| 255 | ATA_BMDMA_SHT(DRV_NAME), | 260 | ATA_BMDMA_SHT(DRV_NAME), |
| 256 | }; | 261 | }; |
| 257 | 262 | ||
| 258 | static struct ata_port_operations serverworks_osb4_port_ops = { | 263 | static struct ata_port_operations serverworks_osb4_port_ops = { |
| 259 | .inherits = &ata_bmdma_port_ops, | 264 | .inherits = &ata_bmdma_port_ops, |
| 265 | .qc_prep = ata_bmdma_dumb_qc_prep, | ||
| 260 | .cable_detect = serverworks_cable_detect, | 266 | .cable_detect = serverworks_cable_detect, |
| 261 | .mode_filter = serverworks_osb4_filter, | 267 | .mode_filter = serverworks_osb4_filter, |
| 262 | .set_piomode = serverworks_set_piomode, | 268 | .set_piomode = serverworks_set_piomode, |
| @@ -265,6 +271,7 @@ static struct ata_port_operations serverworks_osb4_port_ops = { | |||
| 265 | 271 | ||
| 266 | static struct ata_port_operations serverworks_csb_port_ops = { | 272 | static struct ata_port_operations serverworks_csb_port_ops = { |
| 267 | .inherits = &serverworks_osb4_port_ops, | 273 | .inherits = &serverworks_osb4_port_ops, |
| 274 | .qc_prep = ata_bmdma_qc_prep, | ||
| 268 | .mode_filter = serverworks_csb_filter, | 275 | .mode_filter = serverworks_csb_filter, |
| 269 | }; | 276 | }; |
| 270 | 277 | ||
| @@ -404,6 +411,7 @@ static int serverworks_init_one(struct pci_dev *pdev, const struct pci_device_id | |||
| 404 | } | 411 | } |
| 405 | }; | 412 | }; |
| 406 | const struct ata_port_info *ppi[] = { &info[id->driver_data], NULL }; | 413 | const struct ata_port_info *ppi[] = { &info[id->driver_data], NULL }; |
| 414 | struct scsi_host_template *sht = &serverworks_csb_sht; | ||
| 407 | int rc; | 415 | int rc; |
| 408 | 416 | ||
| 409 | rc = pcim_enable_device(pdev); | 417 | rc = pcim_enable_device(pdev); |
| @@ -417,6 +425,7 @@ static int serverworks_init_one(struct pci_dev *pdev, const struct pci_device_id | |||
| 417 | /* Select non UDMA capable OSB4 if we can't do fixups */ | 425 | /* Select non UDMA capable OSB4 if we can't do fixups */ |
| 418 | if (rc < 0) | 426 | if (rc < 0) |
| 419 | ppi[0] = &info[1]; | 427 | ppi[0] = &info[1]; |
| 428 | sht = &serverworks_osb4_sht; | ||
| 420 | } | 429 | } |
| 421 | /* setup CSB5/CSB6 : South Bridge and IDE option RAID */ | 430 | /* setup CSB5/CSB6 : South Bridge and IDE option RAID */ |
| 422 | else if ((pdev->device == PCI_DEVICE_ID_SERVERWORKS_CSB5IDE) || | 431 | else if ((pdev->device == PCI_DEVICE_ID_SERVERWORKS_CSB5IDE) || |
| @@ -433,7 +442,7 @@ static int serverworks_init_one(struct pci_dev *pdev, const struct pci_device_id | |||
| 433 | ppi[1] = &ata_dummy_port_info; | 442 | ppi[1] = &ata_dummy_port_info; |
| 434 | } | 443 | } |
| 435 | 444 | ||
| 436 | return ata_pci_bmdma_init_one(pdev, ppi, &serverworks_sht, NULL, 0); | 445 | return ata_pci_bmdma_init_one(pdev, ppi, sht, NULL, 0); |
| 437 | } | 446 | } |
| 438 | 447 | ||
| 439 | #ifdef CONFIG_PM_SLEEP | 448 | #ifdef CONFIG_PM_SLEEP |
