Skip to content
Snippets Groups Projects
Select Git revision
  • df69ba43217d3cf4215c83c0627ce98a26e56e7c
  • bob/tesla/kvm-non-refcounted-pages+virtio-gpu-modifiers
  • bob/intel/drm-tip/userpointer-helpers
  • alarumbe/intel/drm-tip/force-pool-alloc
  • bob/intel/drm-tip/swiotlb-removal
  • bob/intel/drm-tip/internal-backend
  • bob/intel/drm-tip/stolen-backend
  • bob/intel/drm-tip/stolen-backend-debug
  • bob/intel/drm-tip/generic-backend-fixes
  • bob/intel/drm-tip/drm-tip
  • bob/intel/drm-tip/userpointer-backend
  • bob/intel/drm-tip/internal-backend-debug
  • bob/intel/drm-tip/cache-level-fix
  • bob/intel/drm-tip/drm-tip-debug
  • bob/intel/drm-tip/internal-backend-ttm-direct
  • bob/intel/drm-tip/internal-backend-backup
  • bob/intel/drm-tip/stolen-backend-ci-fix
  • alarumbe/shmem-keep
  • bob/intel/drm-tip/2mb-64k-upstream
  • bob/intel/intel-dg2-prereq-head
  • bob/intel/intel-dg2-prereq-base
  • v5.7
  • v5.7-rc7
  • v5.7-rc6
  • v5.7-rc5
  • v5.7-rc4
  • v5.7-rc3
  • v5.7-rc2
  • v5.7-rc1
  • v5.6
  • v5.6-rc7
  • v5.6-rc6
  • v5.6-rc5
  • v5.6-rc4
  • v5.6-rc3
  • v5.6-rc2
  • v5.6-rc1
  • v5.5
  • v5.5-rc7
  • v5.5-rc6
  • v5.5-rc5
41 results

ionic_bus_pci.c

Blame
  • ionic_bus_pci.c 1.23 KiB
    // SPDX-License-Identifier: GPL-2.0
    /* Copyright(c) 2017 - 2019 Pensando Systems, Inc */
    
    #include <linux/module.h>
    #include <linux/netdevice.h>
    #include <linux/etherdevice.h>
    #include <linux/pci.h>
    
    #include "ionic.h"
    #include "ionic_bus.h"
    
    /* Supported devices */
    static const struct pci_device_id ionic_id_table[] = {
    	{ PCI_VDEVICE(PENSANDO, PCI_DEVICE_ID_PENSANDO_IONIC_ETH_PF) },
    	{ PCI_VDEVICE(PENSANDO, PCI_DEVICE_ID_PENSANDO_IONIC_ETH_VF) },
    	{ 0, }	/* end of table */
    };
    MODULE_DEVICE_TABLE(pci, ionic_id_table);
    
    static int ionic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
    {
    	struct device *dev = &pdev->dev;
    	struct ionic *ionic;
    
    	ionic = ionic_devlink_alloc(dev);
    	if (!ionic)
    		return -ENOMEM;
    
    	ionic->pdev = pdev;
    	ionic->dev = dev;
    	pci_set_drvdata(pdev, ionic);
    
    	return 0;
    }
    
    static void ionic_remove(struct pci_dev *pdev)
    {
    	struct ionic *ionic = pci_get_drvdata(pdev);
    
    	ionic_devlink_free(ionic);
    }
    
    static struct pci_driver ionic_driver = {
    	.name = IONIC_DRV_NAME,
    	.id_table = ionic_id_table,
    	.probe = ionic_probe,
    	.remove = ionic_remove,
    };
    
    int ionic_bus_register_driver(void)
    {
    	return pci_register_driver(&ionic_driver);
    }
    
    void ionic_bus_unregister_driver(void)
    {
    	pci_unregister_driver(&ionic_driver);
    }