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
> new file mode 100644
> index 000000000000..60bbc806f17b
> --- /dev/null
> +++ b/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_main.c
> @@ -0,0 +1,124 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/* Copyright(c) 2020 - 2025 Mucse Corporation. */
> +
> +#include <linux/pci.h>
> +
> +#include "rnpgbe.h"
> +
> +static const char rnpgbe_driver_name[] = "rnpgbe";
> +
> +/* rnpgbe_pci_tbl - PCI Device ID Table
> + *
> + * { PCI_DEVICE(Vendor ID, Device ID),
> + *   driver_data (used for different hw chip) }
> + */
> +static struct pci_device_id rnpgbe_pci_tbl[] = {
> +     { PCI_DEVICE(PCI_VENDOR_ID_MUCSE, PCI_DEVICE_ID_N500_QUAD_PORT),
> +       .driver_data = board_n500},
> +     { PCI_DEVICE(PCI_VENDOR_ID_MUCSE, PCI_DEVICE_ID_N500_DUAL_PORT),
> +       .driver_data = board_n500},
> +     { PCI_DEVICE(PCI_VENDOR_ID_MUCSE, PCI_DEVICE_ID_N210),
> +       .driver_data = board_n210},
> +     { PCI_DEVICE(PCI_VENDOR_ID_MUCSE, PCI_DEVICE_ID_N210L),
> +       .driver_data = board_n210},

Should there be a space before }?

> +     /* required last entry */
> +     {0, },
> +};
> +
> +/**
> + * rnpgbe_probe - Device initialization routine
> + * @pdev: PCI device information struct
> + * @id: entry in rnpgbe_pci_tbl
> + *
> + * rnpgbe_probe initializes a PF adapter identified by a pci_dev
> + * structure.
> + *
> + * Return: 0 on success, negative errno on failure
> + **/
> +static int rnpgbe_probe(struct pci_dev *pdev, const struct pci_device_id *id)
> +{
> +     int err;

In rnpgbe_mbx.c you use `int ret` for this pattern. I think you should unify
this. But I'm more in favour of `err` than `ret`.

> +
> +     err = pci_enable_device_mem(pdev);
> +     if (err)
> +             return err;
> +
> +     err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(56));
> +     if (err) {
> +             dev_err(&pdev->dev,
> +                     "No usable DMA configuration, aborting %d\n", err);
> +             goto err_disable_dev;
> +     }
> +
> +     err = pci_request_mem_regions(pdev, rnpgbe_driver_name);
> +     if (err) {
> +             dev_err(&pdev->dev,
> +                     "pci_request_selected_regions failed %d\n", err);
> +             goto err_disable_dev;
> +     }
> +
> +     pci_set_master(pdev);
> +     err = pci_save_state(pdev);
> +     if (err) {
> +             dev_err(&pdev->dev, "pci_save_state failed %d\n", err);
> +             goto err_free_regions;
> +     }
> +
> +     return 0;
> +err_free_regions:
> +     pci_release_mem_regions(pdev);
> +err_disable_dev:
> +     pci_disable_device(pdev);
> +     return err;
> +}
> +
> +/**
> + * rnpgbe_remove - Device removal routine
> + * @pdev: PCI device information struct
> + *
> + * rnpgbe_remove is called by the PCI subsystem to alert the driver
> + * that it should release a PCI device. This could be caused by a
> + * Hot-Plug event, or because the driver is going to be removed from
> + * memory.
> + **/
> +static void rnpgbe_remove(struct pci_dev *pdev)
> +{
> +     pci_release_mem_regions(pdev);
> +     pci_disable_device(pdev);
> +}
> +
> +/**
> + * rnpgbe_dev_shutdown - Device shutdown routine
> + * @pdev: PCI device information struct
> + **/
> +static void rnpgbe_dev_shutdown(struct pci_dev *pdev)
> +{
> +     pci_disable_device(pdev);
> +}
> +
> +/**
> + * rnpgbe_shutdown - Device shutdown routine
> + * @pdev: PCI device information struct
> + *
> + * rnpgbe_shutdown is called by the PCI subsystem to alert the driver
> + * that os shutdown. Device should setup wakeup state here.
> + **/
> +static void rnpgbe_shutdown(struct pci_dev *pdev)
> +{
> +     rnpgbe_dev_shutdown(pdev);

Is this the only user of rnpgbe_dev_shutdown?

> +}
> +
> +static struct pci_driver rnpgbe_driver = {
> +     .name = rnpgbe_driver_name,
> +     .id_table = rnpgbe_pci_tbl,
> +     .probe = rnpgbe_probe,
> +     .remove = rnpgbe_remove,
> +     .shutdown = rnpgbe_shutdown,
> +};
> +
> +module_pci_driver(rnpgbe_driver);
> +
> +MODULE_DEVICE_TABLE(pci, rnpgbe_pci_tbl);
> +MODULE_AUTHOR("Mucse Corporation, <techsupp...@mucse.com>");
> +MODULE_DESCRIPTION("Mucse(R) 1 Gigabit PCI Express Network Driver");
> +MODULE_LICENSE("GPL");
> -- 
> 2.25.1
> 
> 

-- 
Als deutscher Tourist im Ausland steht man vor der Frage, ob man sich
anständig benehmen muss oder ob schon deutsche Touristen dagewesen sind.
                                                (Kurt Tucholsky)

Attachment: signature.asc
Description: PGP signature

Reply via email to