Commit e364e4ce authored by Jakub Kicinski's avatar Jakub Kicinski
Browse files

Merge branch 'stmmac-several-pci-related-improvements'

Philipp Stanner says:

====================
stmmac: Several PCI-related improvements
====================

Link: https://patch.msgid.link/20250324092928.9482-2-phasta@kernel.org


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parents 071ccde6 45b76168
Loading
Loading
Loading
Loading
+6 −21
Original line number Diff line number Diff line
@@ -533,10 +533,10 @@ static int loongson_dwmac_fix_reset(void *priv, void __iomem *ioaddr)
static int loongson_dwmac_probe(struct pci_dev *pdev, const struct pci_device_id *id)
{
	struct plat_stmmacenet_data *plat;
	struct stmmac_resources res = {};
	struct stmmac_pci_info *info;
	struct stmmac_resources res;
	struct loongson_data *ld;
	int ret, i;
	int ret;

	plat = devm_kzalloc(&pdev->dev, sizeof(*plat), GFP_KERNEL);
	if (!plat)
@@ -566,17 +566,10 @@ static int loongson_dwmac_probe(struct pci_dev *pdev, const struct pci_device_id
	pci_set_master(pdev);

	/* Get the base address of device */
	for (i = 0; i < PCI_STD_NUM_BARS; i++) {
		if (pci_resource_len(pdev, i) == 0)
			continue;
		ret = pcim_iomap_regions(pdev, BIT(0), DRIVER_NAME);
	res.addr = pcim_iomap_region(pdev, 0, DRIVER_NAME);
	ret = PTR_ERR_OR_ZERO(res.addr);
	if (ret)
		goto err_disable_device;
		break;
	}

	memset(&res, 0, sizeof(res));
	res.addr = pcim_iomap_table(pdev)[0];

	plat->bsp_priv = ld;
	plat->setup = loongson_dwmac_setup;
@@ -624,7 +617,6 @@ static void loongson_dwmac_remove(struct pci_dev *pdev)
	struct net_device *ndev = dev_get_drvdata(&pdev->dev);
	struct stmmac_priv *priv = netdev_priv(ndev);
	struct loongson_data *ld;
	int i;

	ld = priv->plat->bsp_priv;
	stmmac_dvr_remove(&pdev->dev);
@@ -635,13 +627,6 @@ static void loongson_dwmac_remove(struct pci_dev *pdev)
	if (ld->loongson_id == DWMAC_CORE_LS_MULTICHAN)
		loongson_dwmac_msi_clear(pdev);

	for (i = 0; i < PCI_STD_NUM_BARS; i++) {
		if (pci_resource_len(pdev, i) == 0)
			continue;
		pcim_iounmap_regions(pdev, BIT(i));
		break;
	}

	pci_disable_device(pdev);
}

+6 −18
Original line number Diff line number Diff line
@@ -155,9 +155,9 @@ static int stmmac_pci_probe(struct pci_dev *pdev,
{
	struct stmmac_pci_info *info = (struct stmmac_pci_info *)id->driver_data;
	struct plat_stmmacenet_data *plat;
	struct stmmac_resources res;
	int i;
	struct stmmac_resources res = {};
	int ret;
	int i;

	plat = devm_kzalloc(&pdev->dev, sizeof(*plat), GFP_KERNEL);
	if (!plat)
@@ -192,9 +192,9 @@ static int stmmac_pci_probe(struct pci_dev *pdev,
	for (i = 0; i < PCI_STD_NUM_BARS; i++) {
		if (pci_resource_len(pdev, i) == 0)
			continue;
		ret = pcim_iomap_regions(pdev, BIT(i), pci_name(pdev));
		if (ret)
			return ret;
		res.addr = pcim_iomap_region(pdev, i, STMMAC_RESOURCE_NAME);
		if (IS_ERR(res.addr))
			return PTR_ERR(res.addr);
		break;
	}

@@ -204,8 +204,6 @@ static int stmmac_pci_probe(struct pci_dev *pdev,
	if (ret)
		return ret;

	memset(&res, 0, sizeof(res));
	res.addr = pcim_iomap_table(pdev)[i];
	res.wol_irq = pdev->irq;
	res.irq = pdev->irq;

@@ -226,21 +224,11 @@ static int stmmac_pci_probe(struct pci_dev *pdev,
 * stmmac_pci_remove
 *
 * @pdev: platform device pointer
 * Description: this function calls the main to free the net resources
 * and releases the PCI resources.
 * Description: this function calls the main to free the net resources.
 */
static void stmmac_pci_remove(struct pci_dev *pdev)
{
	int i;

	stmmac_dvr_remove(&pdev->dev);

	for (i = 0; i < PCI_STD_NUM_BARS; i++) {
		if (pci_resource_len(pdev, i) == 0)
			continue;
		pcim_iounmap_regions(pdev, BIT(i));
		break;
	}
}

static int __maybe_unused stmmac_pci_suspend(struct device *dev)