cregit-Linux how code gets into the kernel

Release 4.15 include/linux/i7300_idle.h

Directory: include/linux
/* SPDX-License-Identifier: GPL-2.0 */

#ifndef I7300_IDLE_H

#define I7300_IDLE_H

#include <linux/pci.h>

/*
 * I/O AT controls (PCI bus 0 device 8 function 0)
 * DIMM controls (PCI bus 0 device 16 function 1)
 */

#define IOAT_BUS 0

#define IOAT_DEVFN PCI_DEVFN(8, 0)

#define MEMCTL_BUS 0

#define MEMCTL_DEVFN PCI_DEVFN(16, 1)


struct fbd_ioat {
	
unsigned int vendor;
	
unsigned int ioat_dev;
	
unsigned int enabled;
};

/*
 * The i5000 chip-set has the same hooks as the i7300
 * but it is not enabled by default and must be manually
 * manually enabled with "forceload=1" because it is
 * only lightly validated.
 */


static const struct fbd_ioat fbd_ioat_list[] = {
	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT_CNB, 1},
	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT, 0},
	{0, 0}
};

/* table of devices that work with this driver */

static const struct pci_device_id pci_tbl[] = {
	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_FBD_CNB) },
	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_5000_ERR) },
	{ } /* Terminating entry */
};

/* Check for known platforms with I/O-AT */

static inline int i7300_idle_platform_probe(struct pci_dev **fbd_dev, struct pci_dev **ioat_dev, int enable_all) { int i; struct pci_dev *memdev, *dmadev; memdev = pci_get_bus_and_slot(MEMCTL_BUS, MEMCTL_DEVFN); if (!memdev) return -ENODEV; for (i = 0; pci_tbl[i].vendor != 0; i++) { if (memdev->vendor == pci_tbl[i].vendor && memdev->device == pci_tbl[i].device) { break; } } if (pci_tbl[i].vendor == 0) return -ENODEV; dmadev = pci_get_bus_and_slot(IOAT_BUS, IOAT_DEVFN); if (!dmadev) return -ENODEV; for (i = 0; fbd_ioat_list[i].vendor != 0; i++) { if (dmadev->vendor == fbd_ioat_list[i].vendor && dmadev->device == fbd_ioat_list[i].ioat_dev) { if (!(fbd_ioat_list[i].enabled || enable_all)) continue; if (fbd_dev) *fbd_dev = memdev; if (ioat_dev) *ioat_dev = dmadev; return 0; } } return -ENODEV; }

Contributors

PersonTokensPropCommitsCommitProp
Venkatesh Pallipadi19991.71%150.00%
Len Brown188.29%150.00%
Total217100.00%2100.00%

#endif

Overall Contributors

PersonTokensPropCommitsCommitProp
Venkatesh Pallipadi29991.44%133.33%
Len Brown278.26%133.33%
Greg Kroah-Hartman10.31%133.33%
Total327100.00%3100.00%
Directory: include/linux
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.