svn commit: r322028 - in head/sys/compat/linuxkpi/common: include/linux src

Mark Johnston markj at FreeBSD.org
Thu Aug 3 21:14:48 UTC 2017


Author: markj
Date: Thu Aug  3 21:14:46 2017
New Revision: 322028
URL: https://svnweb.freebsd.org/changeset/base/322028

Log:
  Add subsystem vendor and device ID fields to struct pci_dev.
  
  MFC after:	1 week

Modified:
  head/sys/compat/linuxkpi/common/include/linux/pci.h
  head/sys/compat/linuxkpi/common/src/linux_pci.c

Modified: head/sys/compat/linuxkpi/common/include/linux/pci.h
==============================================================================
--- head/sys/compat/linuxkpi/common/include/linux/pci.h	Thu Aug  3 19:01:46 2017	(r322027)
+++ head/sys/compat/linuxkpi/common/include/linux/pci.h	Thu Aug  3 21:14:46 2017	(r322028)
@@ -202,6 +202,8 @@ struct pci_dev {
 	uint64_t		dma_mask;
 	uint16_t		device;
 	uint16_t		vendor;
+	uint16_t		subsystem_vendor;
+	uint16_t		subsystem_device;
 	unsigned int		irq;
 	unsigned int		devfn;
 	uint32_t		class;

Modified: head/sys/compat/linuxkpi/common/src/linux_pci.c
==============================================================================
--- head/sys/compat/linuxkpi/common/src/linux_pci.c	Thu Aug  3 19:01:46 2017	(r322027)
+++ head/sys/compat/linuxkpi/common/src/linux_pci.c	Thu Aug  3 21:14:46 2017	(r322028)
@@ -119,10 +119,13 @@ linux_pci_attach(device_t dev)
 {
 	struct resource_list_entry *rle;
 	struct pci_dev *pdev;
+	struct pci_devinfo *dinfo;
 	struct pci_driver *pdrv;
 	const struct pci_device_id *id;
 	int error;
 
+	dinfo = device_get_ivars(dev);
+
 	linux_set_current(curthread);
 	pdrv = linux_pci_find(dev, &id);
 	pdev = device_get_softc(dev);
@@ -132,6 +135,8 @@ linux_pci_attach(device_t dev)
 	pdev->devfn = PCI_DEVFN(pci_get_slot(dev), pci_get_function(dev));
 	pdev->device = id->device;
 	pdev->vendor = id->vendor;
+	pdev->subsystem_vendor = dinfo->cfg.subvendor;
+	pdev->subsystem_device = dinfo->cfg.subdevice;
 	pdev->class = pci_get_class(dev);
 	pdev->revision = pci_get_revid(dev);
 	pdev->dev.dma_mask = &pdev->dma_mask;


More information about the svn-src-all mailing list