diff options
Diffstat (limited to 'drivers/net/ethernet/cadence/macb_pci.c')
| -rw-r--r-- | drivers/net/ethernet/cadence/macb_pci.c | 27 |
1 files changed, 10 insertions, 17 deletions
diff --git a/drivers/net/ethernet/cadence/macb_pci.c b/drivers/net/ethernet/cadence/macb_pci.c index 92be2cd8f817..9906fda76087 100644 --- a/drivers/net/ethernet/cadence/macb_pci.c +++ b/drivers/net/ethernet/cadence/macb_pci.c | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /** | 1 | /** |
| 2 | * macb_pci.c - Cadence GEM PCI wrapper. | 2 | * Cadence GEM PCI wrapper. |
| 3 | * | 3 | * |
| 4 | * Copyright (C) 2016 Cadence Design Systems - http://www.cadence.com | 4 | * Copyright (C) 2016 Cadence Design Systems - http://www.cadence.com |
| 5 | * | 5 | * |
| @@ -45,32 +45,27 @@ static int macb_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
| 45 | struct macb_platform_data plat_data; | 45 | struct macb_platform_data plat_data; |
| 46 | struct resource res[2]; | 46 | struct resource res[2]; |
| 47 | 47 | ||
| 48 | /* sanity check */ | ||
| 49 | if (!id) | ||
| 50 | return -EINVAL; | ||
| 51 | |||
| 52 | /* enable pci device */ | 48 | /* enable pci device */ |
| 53 | err = pci_enable_device(pdev); | 49 | err = pcim_enable_device(pdev); |
| 54 | if (err < 0) { | 50 | if (err < 0) { |
| 55 | dev_err(&pdev->dev, "Enabling PCI device has failed: 0x%04X", | 51 | dev_err(&pdev->dev, "Enabling PCI device has failed: %d", err); |
| 56 | err); | 52 | return err; |
| 57 | return -EACCES; | ||
| 58 | } | 53 | } |
| 59 | 54 | ||
| 60 | pci_set_master(pdev); | 55 | pci_set_master(pdev); |
| 61 | 56 | ||
| 62 | /* set up resources */ | 57 | /* set up resources */ |
| 63 | memset(res, 0x00, sizeof(struct resource) * ARRAY_SIZE(res)); | 58 | memset(res, 0x00, sizeof(struct resource) * ARRAY_SIZE(res)); |
| 64 | res[0].start = pdev->resource[0].start; | 59 | res[0].start = pci_resource_start(pdev, 0); |
| 65 | res[0].end = pdev->resource[0].end; | 60 | res[0].end = pci_resource_end(pdev, 0); |
| 66 | res[0].name = PCI_DRIVER_NAME; | 61 | res[0].name = PCI_DRIVER_NAME; |
| 67 | res[0].flags = IORESOURCE_MEM; | 62 | res[0].flags = IORESOURCE_MEM; |
| 68 | res[1].start = pdev->irq; | 63 | res[1].start = pci_irq_vector(pdev, 0); |
| 69 | res[1].name = PCI_DRIVER_NAME; | 64 | res[1].name = PCI_DRIVER_NAME; |
| 70 | res[1].flags = IORESOURCE_IRQ; | 65 | res[1].flags = IORESOURCE_IRQ; |
| 71 | 66 | ||
| 72 | dev_info(&pdev->dev, "EMAC physical base addr = 0x%p\n", | 67 | dev_info(&pdev->dev, "EMAC physical base addr: %pa\n", |
| 73 | (void *)(uintptr_t)pci_resource_start(pdev, 0)); | 68 | &res[0].start); |
| 74 | 69 | ||
| 75 | /* set up macb platform data */ | 70 | /* set up macb platform data */ |
| 76 | memset(&plat_data, 0, sizeof(plat_data)); | 71 | memset(&plat_data, 0, sizeof(plat_data)); |
| @@ -100,7 +95,7 @@ static int macb_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
| 100 | plat_info.num_res = ARRAY_SIZE(res); | 95 | plat_info.num_res = ARRAY_SIZE(res); |
| 101 | plat_info.data = &plat_data; | 96 | plat_info.data = &plat_data; |
| 102 | plat_info.size_data = sizeof(plat_data); | 97 | plat_info.size_data = sizeof(plat_data); |
| 103 | plat_info.dma_mask = DMA_BIT_MASK(32); | 98 | plat_info.dma_mask = pdev->dma_mask; |
| 104 | 99 | ||
| 105 | /* register platform device */ | 100 | /* register platform device */ |
| 106 | plat_dev = platform_device_register_full(&plat_info); | 101 | plat_dev = platform_device_register_full(&plat_info); |
| @@ -120,7 +115,6 @@ err_hclk_register: | |||
| 120 | clk_unregister(plat_data.pclk); | 115 | clk_unregister(plat_data.pclk); |
| 121 | 116 | ||
| 122 | err_pclk_register: | 117 | err_pclk_register: |
| 123 | pci_disable_device(pdev); | ||
| 124 | return err; | 118 | return err; |
| 125 | } | 119 | } |
| 126 | 120 | ||
| @@ -130,7 +124,6 @@ static void macb_remove(struct pci_dev *pdev) | |||
| 130 | struct macb_platform_data *plat_data = dev_get_platdata(&plat_dev->dev); | 124 | struct macb_platform_data *plat_data = dev_get_platdata(&plat_dev->dev); |
| 131 | 125 | ||
| 132 | platform_device_unregister(plat_dev); | 126 | platform_device_unregister(plat_dev); |
| 133 | pci_disable_device(pdev); | ||
| 134 | clk_unregister(plat_data->pclk); | 127 | clk_unregister(plat_data->pclk); |
| 135 | clk_unregister(plat_data->hclk); | 128 | clk_unregister(plat_data->hclk); |
| 136 | } | 129 | } |
