Imported Upstream version 16.07-rc2
[deb_dpdk.git] / drivers / net / cxgbe / cxgbe_ethdev.c
index 6c130ed..9208a61 100644 (file)
@@ -934,10 +934,17 @@ static int cxgbe_get_regs(struct rte_eth_dev *eth_dev,
        struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
        struct adapter *adapter = pi->adapter;
 
-       regs->length = cxgbe_get_regs_len(eth_dev);
        regs->version = CHELSIO_CHIP_VERSION(adapter->params.chip) |
-                       (CHELSIO_CHIP_RELEASE(adapter->params.chip) << 10) |
-                       (1 << 16);
+               (CHELSIO_CHIP_RELEASE(adapter->params.chip) << 10) |
+               (1 << 16);
+
+       if (regs->data == NULL) {
+               regs->length = cxgbe_get_regs_len(eth_dev);
+               regs->width = sizeof(uint32_t);
+
+               return 0;
+       }
+
        t4_get_regs(adapter, regs->data, (regs->length * sizeof(uint32_t)));
 
        return 0;
@@ -971,7 +978,6 @@ static const struct eth_dev_ops cxgbe_eth_dev_ops = {
        .get_eeprom_length      = cxgbe_get_eeprom_length,
        .get_eeprom             = cxgbe_get_eeprom,
        .set_eeprom             = cxgbe_set_eeprom,
-       .get_reg_length         = cxgbe_get_regs_len,
        .get_reg                = cxgbe_get_regs,
 };
 
@@ -1056,9 +1062,10 @@ static int rte_cxgbe_pmd_init(const char *name __rte_unused,
 }
 
 static struct rte_driver rte_cxgbe_driver = {
-       .name = "cxgbe_driver",
        .type = PMD_PDEV,
        .init = rte_cxgbe_pmd_init,
 };
 
-PMD_REGISTER_DRIVER(rte_cxgbe_driver);
+PMD_REGISTER_DRIVER(rte_cxgbe_driver, cxgb4);
+DRIVER_REGISTER_PCI_TABLE(cxgb4, cxgb4_pci_tbl);
+