Dong Yibo schrieb am Di 16. Sep, 19:29 (+0800):
> diff --git a/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_main.c
> b/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_main.c
> index 60bbc806f17b..0afe39621661 100644
> --- a/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_main.c
> +++ b/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_main.c
> @@ -2,8 +2,11 @@
> /* Copyright(c) 2020 - 2025 Mucse Corporation. */
>
> #include <linux/pci.h>
> +#include <net/rtnetlink.h>
> +#include <linux/etherdevice.h>
>
> #include "rnpgbe.h"
> +#include "rnpgbe_hw.h"
>
> static const char rnpgbe_driver_name[] = "rnpgbe";
>
> @@ -25,6 +28,54 @@ static struct pci_device_id rnpgbe_pci_tbl[] = {
> {0, },
> };
>
> +/**
> + * rnpgbe_add_adapter - Add netdev for this pci_dev
> + * @pdev: PCI device information structure
> + * @board_type: board type
> + *
> + * rnpgbe_add_adapter initializes a netdev for this pci_dev
> + * structure. Initializes Bar map, private structure, and a
> + * hardware reset occur.
> + *
> + * Return: 0 on success, negative errno on failure
> + **/
> +static int rnpgbe_add_adapter(struct pci_dev *pdev,
> + int board_type)
> +{
> + struct net_device *netdev;
> + void __iomem *hw_addr;
> + struct mucse *mucse;
> + struct mucse_hw *hw;
> + int err;
> +
> + netdev = alloc_etherdev_mq(sizeof(struct mucse), RNPGBE_MAX_QUEUES);
> + if (!netdev)
> + return -ENOMEM;
> +
> + SET_NETDEV_DEV(netdev, &pdev->dev);
> + mucse = netdev_priv(netdev);
> + mucse->netdev = netdev;
> + mucse->pdev = pdev;
> + pci_set_drvdata(pdev, mucse);
> +
> + hw = &mucse->hw;
> + hw_addr = devm_ioremap(&pdev->dev,
> + pci_resource_start(pdev, 2),
> + pci_resource_len(pdev, 2));
> + if (!hw_addr) {
> + err = -EIO;
> + goto err_free_net;
> + }
> +
> + hw->hw_addr = hw_addr;
> +
> + return 0;
> +
> +err_free_net:
> + free_netdev(netdev);
> + return err;
> +}
> +
> /**
> * rnpgbe_probe - Device initialization routine
> * @pdev: PCI device information struct
> @@ -37,6 +88,7 @@ static struct pci_device_id rnpgbe_pci_tbl[] = {
> **/
> static int rnpgbe_probe(struct pci_dev *pdev, const struct pci_device_id *id)
> {
> + int board_type = id->driver_data;
> int err;
>
> err = pci_enable_device_mem(pdev);
> @@ -63,6 +115,9 @@ static int rnpgbe_probe(struct pci_dev *pdev, const struct
> pci_device_id *id)
> dev_err(&pdev->dev, "pci_save_state failed %d\n", err);
> goto err_free_regions;
> }
> + err = rnpgbe_add_adapter(pdev, board_type);Would an empty line before this assignment make the code more readable? -- Professor: ‚Gott‘, unverständliches und mythisches Wesen, das sich einmal pro Woche im Kreis der Sterblichen manifestiert um Weisheit auf Folien unter das Volk zu bringen. (Dschungelbuch 11, FSU Jena)
signature.asc
Description: PGP signature
