RDMA/nes: Report correct vendor_id and vendor_part_id
authorChien Tung <chien.tin.tung@intel.com>
Fri, 6 Mar 2009 23:12:10 +0000 (15:12 -0800)
committerRoland Dreier <rolandd@cisco.com>
Fri, 6 Mar 2009 23:12:10 +0000 (15:12 -0800)
ibv_devinfo displays 0 for vendor_id and vendor_part_id.  Fill in OUI
and device_id for those two fields.

Signed-off-by: Chien Tung <chien.tin.tung@intel.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/nes/nes_hw.c

index cb4a5f3..3a72a06 100644 (file)
@@ -254,6 +254,7 @@ struct nes_adapter *nes_init_adapter(struct nes_device *nesdev, u8 hw_rev) {
        u32 adapter_size;
        u32 arp_table_size;
        u16 vendor_id;
+       u16 device_id;
        u8  OneG_Mode;
        u8  func_index;
 
@@ -356,6 +357,13 @@ struct nes_adapter *nes_init_adapter(struct nes_device *nesdev, u8 hw_rev) {
                return NULL;
        }
 
+       nesadapter->vendor_id = (((u32) nesadapter->mac_addr_high) << 8) |
+                               (nesadapter->mac_addr_low >> 24);
+
+       pci_bus_read_config_word(nesdev->pcidev->bus, nesdev->pcidev->devfn,
+                                PCI_DEVICE_ID, &device_id);
+       nesadapter->vendor_part_id = device_id;
+
        if (nes_init_serdes(nesdev, hw_rev, port_count, nesadapter,
                                                        OneG_Mode)) {
                kfree(nesadapter);