aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband
diff options
context:
space:
mode:
authorJoachim Fenkes <fenkes@de.ibm.com>2007-09-26 05:45:51 -0400
committerPaul Mackerras <paulus@samba.org>2007-10-17 08:30:08 -0400
commit6b08f3ae8eec27a9e557468a48540bc64fd4a524 (patch)
tree0739be87e3262ddef0535949186670f4ae5eb850 /drivers/infiniband
parent55347cc9962fbf2048a3cf78e92c3f52035ac524 (diff)
[POWERPC] ibmebus: Move to of_device and of_platform_driver, match eHCA and eHEA drivers
Replace struct ibmebus_dev and struct ibmebus_driver with struct of_device and struct of_platform_driver, respectively. Match the external ibmebus interface and drivers using it. Signed-off-by: Joachim Fenkes <fenkes@de.ibm.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Roland Dreier <rolandd@cisco.com> Acked-by: Jeff Garzik <jeff@garzik.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r--drivers/infiniband/hw/ehca/ehca_classes.h2
-rw-r--r--drivers/infiniband/hw/ehca/ehca_eq.c6
-rw-r--r--drivers/infiniband/hw/ehca/ehca_main.c32
3 files changed, 20 insertions, 20 deletions
diff --git a/drivers/infiniband/hw/ehca/ehca_classes.h b/drivers/infiniband/hw/ehca/ehca_classes.h
index 0f7a55d35ea7..3f2d68cff764 100644
--- a/drivers/infiniband/hw/ehca/ehca_classes.h
+++ b/drivers/infiniband/hw/ehca/ehca_classes.h
@@ -107,7 +107,7 @@ struct ehca_sport {
107 107
108struct ehca_shca { 108struct ehca_shca {
109 struct ib_device ib_device; 109 struct ib_device ib_device;
110 struct ibmebus_dev *ibmebus_dev; 110 struct of_device *ofdev;
111 u8 num_ports; 111 u8 num_ports;
112 int hw_level; 112 int hw_level;
113 struct list_head shca_list; 113 struct list_head shca_list;
diff --git a/drivers/infiniband/hw/ehca/ehca_eq.c b/drivers/infiniband/hw/ehca/ehca_eq.c
index 1d41faa7a337..b4ac617a70e6 100644
--- a/drivers/infiniband/hw/ehca/ehca_eq.c
+++ b/drivers/infiniband/hw/ehca/ehca_eq.c
@@ -123,7 +123,7 @@ int ehca_create_eq(struct ehca_shca *shca,
123 123
124 /* register interrupt handlers and initialize work queues */ 124 /* register interrupt handlers and initialize work queues */
125 if (type == EHCA_EQ) { 125 if (type == EHCA_EQ) {
126 ret = ibmebus_request_irq(NULL, eq->ist, ehca_interrupt_eq, 126 ret = ibmebus_request_irq(eq->ist, ehca_interrupt_eq,
127 IRQF_DISABLED, "ehca_eq", 127 IRQF_DISABLED, "ehca_eq",
128 (void *)shca); 128 (void *)shca);
129 if (ret < 0) 129 if (ret < 0)
@@ -131,7 +131,7 @@ int ehca_create_eq(struct ehca_shca *shca,
131 131
132 tasklet_init(&eq->interrupt_task, ehca_tasklet_eq, (long)shca); 132 tasklet_init(&eq->interrupt_task, ehca_tasklet_eq, (long)shca);
133 } else if (type == EHCA_NEQ) { 133 } else if (type == EHCA_NEQ) {
134 ret = ibmebus_request_irq(NULL, eq->ist, ehca_interrupt_neq, 134 ret = ibmebus_request_irq(eq->ist, ehca_interrupt_neq,
135 IRQF_DISABLED, "ehca_neq", 135 IRQF_DISABLED, "ehca_neq",
136 (void *)shca); 136 (void *)shca);
137 if (ret < 0) 137 if (ret < 0)
@@ -171,7 +171,7 @@ int ehca_destroy_eq(struct ehca_shca *shca, struct ehca_eq *eq)
171 u64 h_ret; 171 u64 h_ret;
172 172
173 spin_lock_irqsave(&eq->spinlock, flags); 173 spin_lock_irqsave(&eq->spinlock, flags);
174 ibmebus_free_irq(NULL, eq->ist, (void *)shca); 174 ibmebus_free_irq(eq->ist, (void *)shca);
175 175
176 h_ret = hipz_h_destroy_eq(shca->ipz_hca_handle, eq); 176 h_ret = hipz_h_destroy_eq(shca->ipz_hca_handle, eq);
177 177
diff --git a/drivers/infiniband/hw/ehca/ehca_main.c b/drivers/infiniband/hw/ehca/ehca_main.c
index 403467f66fe6..a3409fdb307c 100644
--- a/drivers/infiniband/hw/ehca/ehca_main.c
+++ b/drivers/infiniband/hw/ehca/ehca_main.c
@@ -404,7 +404,7 @@ int ehca_init_device(struct ehca_shca *shca)
404 shca->ib_device.node_type = RDMA_NODE_IB_CA; 404 shca->ib_device.node_type = RDMA_NODE_IB_CA;
405 shca->ib_device.phys_port_cnt = shca->num_ports; 405 shca->ib_device.phys_port_cnt = shca->num_ports;
406 shca->ib_device.num_comp_vectors = 1; 406 shca->ib_device.num_comp_vectors = 1;
407 shca->ib_device.dma_device = &shca->ibmebus_dev->ofdev.dev; 407 shca->ib_device.dma_device = &shca->ofdev->dev;
408 shca->ib_device.query_device = ehca_query_device; 408 shca->ib_device.query_device = ehca_query_device;
409 shca->ib_device.query_port = ehca_query_port; 409 shca->ib_device.query_port = ehca_query_port;
410 shca->ib_device.query_gid = ehca_query_gid; 410 shca->ib_device.query_gid = ehca_query_gid;
@@ -658,7 +658,7 @@ static struct attribute_group ehca_dev_attr_grp = {
658 .attrs = ehca_dev_attrs 658 .attrs = ehca_dev_attrs
659}; 659};
660 660
661static int __devinit ehca_probe(struct ibmebus_dev *dev, 661static int __devinit ehca_probe(struct of_device *dev,
662 const struct of_device_id *id) 662 const struct of_device_id *id)
663{ 663{
664 struct ehca_shca *shca; 664 struct ehca_shca *shca;
@@ -666,16 +666,16 @@ static int __devinit ehca_probe(struct ibmebus_dev *dev,
666 struct ib_pd *ibpd; 666 struct ib_pd *ibpd;
667 int ret; 667 int ret;
668 668
669 handle = of_get_property(dev->ofdev.node, "ibm,hca-handle", NULL); 669 handle = of_get_property(dev->node, "ibm,hca-handle", NULL);
670 if (!handle) { 670 if (!handle) {
671 ehca_gen_err("Cannot get eHCA handle for adapter: %s.", 671 ehca_gen_err("Cannot get eHCA handle for adapter: %s.",
672 dev->ofdev.node->full_name); 672 dev->node->full_name);
673 return -ENODEV; 673 return -ENODEV;
674 } 674 }
675 675
676 if (!(*handle)) { 676 if (!(*handle)) {
677 ehca_gen_err("Wrong eHCA handle for adapter: %s.", 677 ehca_gen_err("Wrong eHCA handle for adapter: %s.",
678 dev->ofdev.node->full_name); 678 dev->node->full_name);
679 return -ENODEV; 679 return -ENODEV;
680 } 680 }
681 681
@@ -686,9 +686,9 @@ static int __devinit ehca_probe(struct ibmebus_dev *dev,
686 } 686 }
687 mutex_init(&shca->modify_mutex); 687 mutex_init(&shca->modify_mutex);
688 688
689 shca->ibmebus_dev = dev; 689 shca->ofdev = dev;
690 shca->ipz_hca_handle.handle = *handle; 690 shca->ipz_hca_handle.handle = *handle;
691 dev->ofdev.dev.driver_data = shca; 691 dev->dev.driver_data = shca;
692 692
693 ret = ehca_sense_attributes(shca); 693 ret = ehca_sense_attributes(shca);
694 if (ret < 0) { 694 if (ret < 0) {
@@ -764,7 +764,7 @@ static int __devinit ehca_probe(struct ibmebus_dev *dev,
764 } 764 }
765 } 765 }
766 766
767 ret = sysfs_create_group(&dev->ofdev.dev.kobj, &ehca_dev_attr_grp); 767 ret = sysfs_create_group(&dev->dev.kobj, &ehca_dev_attr_grp);
768 if (ret) /* only complain; we can live without attributes */ 768 if (ret) /* only complain; we can live without attributes */
769 ehca_err(&shca->ib_device, 769 ehca_err(&shca->ib_device,
770 "Cannot create device attributes ret=%d", ret); 770 "Cannot create device attributes ret=%d", ret);
@@ -814,12 +814,12 @@ probe1:
814 return -EINVAL; 814 return -EINVAL;
815} 815}
816 816
817static int __devexit ehca_remove(struct ibmebus_dev *dev) 817static int __devexit ehca_remove(struct of_device *dev)
818{ 818{
819 struct ehca_shca *shca = dev->ofdev.dev.driver_data; 819 struct ehca_shca *shca = dev->dev.driver_data;
820 int ret; 820 int ret;
821 821
822 sysfs_remove_group(&dev->ofdev.dev.kobj, &ehca_dev_attr_grp); 822 sysfs_remove_group(&dev->dev.kobj, &ehca_dev_attr_grp);
823 823
824 if (ehca_open_aqp1 == 1) { 824 if (ehca_open_aqp1 == 1) {
825 int i; 825 int i;
@@ -870,11 +870,11 @@ static struct of_device_id ehca_device_table[] =
870 {}, 870 {},
871}; 871};
872 872
873static struct ibmebus_driver ehca_driver = { 873static struct of_platform_driver ehca_driver = {
874 .name = "ehca", 874 .name = "ehca",
875 .id_table = ehca_device_table, 875 .match_table = ehca_device_table,
876 .probe = ehca_probe, 876 .probe = ehca_probe,
877 .remove = ehca_remove, 877 .remove = ehca_remove,
878}; 878};
879 879
880void ehca_poll_eqs(unsigned long data) 880void ehca_poll_eqs(unsigned long data)