aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/pata_hpt366.c
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2008-03-24 23:22:49 -0400
committerJeff Garzik <jgarzik@redhat.com>2008-04-17 15:44:17 -0400
commit887125e3740283be25564bfc6fb5d24974b651ab (patch)
treebd037e1c17a468fabe1834e707b70b4b43513e4a /drivers/ata/pata_hpt366.c
parent1bd5b715a305f6f13455e89becbd839010dd14b5 (diff)
libata: stop overloading port_info->private_data
port_info->private_data is currently used for two purposes - to record private data about the port_info or to specify host->private_data to use when allocating ata_host. This overloading is confusing and counter-intuitive in that port_info->private_data becomes host->private_data instead of port->private_data. In addition, port_info and host don't correspond to each other 1-to-1. Currently, the first non-NULL port_info->private_data is used. This patch makes port_info->private_data just be what it is - private_data for the port_info where LLD can jot down extra info. libata no longer sets host->private_data to the first non-NULL port_info->private_data, @host_priv argument is added to ata_pci_init_one() instead. LLDs which use ata_pci_init_one() can use this argument to pass in pointer to host private data. LLDs which don't should use init-register model anyway and can initialize host->private_data directly. Adding @host_priv instead of using init-register model for LLDs which use ata_pci_init_one() is suggested by Alan Cox. Signed-off-by: Tejun Heo <htejun@gmail.com> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Diffstat (limited to 'drivers/ata/pata_hpt366.c')
-rw-r--r--drivers/ata/pata_hpt366.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/ata/pata_hpt366.c b/drivers/ata/pata_hpt366.c
index b62d398ed84b..c2d4923d4db7 100644
--- a/drivers/ata/pata_hpt366.c
+++ b/drivers/ata/pata_hpt366.c
@@ -356,9 +356,9 @@ static int hpt36x_init_one(struct pci_dev *dev, const struct pci_device_id *id)
356 .udma_mask = ATA_UDMA4, 356 .udma_mask = ATA_UDMA4,
357 .port_ops = &hpt366_port_ops 357 .port_ops = &hpt366_port_ops
358 }; 358 };
359 struct ata_port_info info = info_hpt366; 359 const struct ata_port_info *ppi[] = { &info_hpt366, NULL };
360 const struct ata_port_info *ppi[] = { &info, NULL };
361 360
361 void *hpriv = NULL;
362 u32 class_rev; 362 u32 class_rev;
363 u32 reg1; 363 u32 reg1;
364 int rc; 364 int rc;
@@ -383,17 +383,17 @@ static int hpt36x_init_one(struct pci_dev *dev, const struct pci_device_id *id)
383 /* info_hpt366 is safe against re-entry so we can scribble on it */ 383 /* info_hpt366 is safe against re-entry so we can scribble on it */
384 switch((reg1 & 0x700) >> 8) { 384 switch((reg1 & 0x700) >> 8) {
385 case 5: 385 case 5:
386 info.private_data = &hpt366_40; 386 hpriv = &hpt366_40;
387 break; 387 break;
388 case 9: 388 case 9:
389 info.private_data = &hpt366_25; 389 hpriv = &hpt366_25;
390 break; 390 break;
391 default: 391 default:
392 info.private_data = &hpt366_33; 392 hpriv = &hpt366_33;
393 break; 393 break;
394 } 394 }
395 /* Now kick off ATA set up */ 395 /* Now kick off ATA set up */
396 return ata_pci_init_one(dev, ppi, &hpt36x_sht); 396 return ata_pci_init_one(dev, ppi, &hpt36x_sht, hpriv);
397} 397}
398 398
399#ifdef CONFIG_PM 399#ifdef CONFIG_PM