mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-25 17:50:54 +07:00
Merge of rsync://rsync.kernel.org/pub/scm/linux/kernel/git/gregkh/pci-2.6.git/
This commit is contained in:
commit
742b0c905d
@ -279,6 +279,7 @@ pci_for_each_dev_reverse() Superseded by pci_find_device_reverse()
|
||||
pci_for_each_bus() Superseded by pci_find_next_bus()
|
||||
pci_find_device() Superseded by pci_get_device()
|
||||
pci_find_subsys() Superseded by pci_get_subsys()
|
||||
pci_find_slot() Superseded by pci_get_slot()
|
||||
pcibios_find_class() Superseded by pci_get_class()
|
||||
pci_find_class() Superseded by pci_get_class()
|
||||
pci_(read|write)_*_nodev() Superseded by pci_bus_(read|write)_*()
|
||||
|
@ -165,40 +165,9 @@ Description:
|
||||
These functions are intended for use by individual drivers, and are defined in
|
||||
struct pci_driver:
|
||||
|
||||
int (*save_state) (struct pci_dev *dev, u32 state);
|
||||
int (*suspend) (struct pci_dev *dev, u32 state);
|
||||
int (*suspend) (struct pci_dev *dev, pm_message_t state);
|
||||
int (*resume) (struct pci_dev *dev);
|
||||
int (*enable_wake) (struct pci_dev *dev, u32 state, int enable);
|
||||
|
||||
|
||||
save_state
|
||||
----------
|
||||
|
||||
Usage:
|
||||
|
||||
if (dev->driver && dev->driver->save_state)
|
||||
dev->driver->save_state(dev,state);
|
||||
|
||||
The driver should use this callback to save device state. It should take into
|
||||
account the current state of the device and the requested state in order to
|
||||
avoid any unnecessary operations.
|
||||
|
||||
For example, a video card that supports all 4 states (D0-D3), all controller
|
||||
context is preserved when entering D1, but the screen is placed into a low power
|
||||
state (blanked).
|
||||
|
||||
The driver can also interpret this function as a notification that it may be
|
||||
entering a sleep state in the near future. If it knows that the device cannot
|
||||
enter the requested state, either because of lack of support for it, or because
|
||||
the device is middle of some critical operation, then it should fail.
|
||||
|
||||
This function should not be used to set any state in the device or the driver
|
||||
because the device may not actually enter the sleep state (e.g. another driver
|
||||
later causes causes a global state transition to fail).
|
||||
|
||||
Note that in intermediate low power states, a device's I/O and memory spaces may
|
||||
be disabled and may not be available in subsequent transitions to lower power
|
||||
states.
|
||||
int (*enable_wake) (struct pci_dev *dev, pci_power_t state, int enable);
|
||||
|
||||
|
||||
suspend
|
||||
|
@ -501,15 +501,6 @@ pci_set_dma_mask(struct pci_dev *dev, u64 mask)
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
int
|
||||
pci_dac_set_dma_mask(struct pci_dev *dev, u64 mask)
|
||||
{
|
||||
if (mask >= SZ_64M - 1 )
|
||||
return 0;
|
||||
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
int
|
||||
pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
|
||||
{
|
||||
@ -520,7 +511,6 @@ pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(pci_set_dma_mask);
|
||||
EXPORT_SYMBOL(pci_dac_set_dma_mask);
|
||||
EXPORT_SYMBOL(pci_set_consistent_dma_mask);
|
||||
EXPORT_SYMBOL(ixp4xx_pci_read);
|
||||
EXPORT_SYMBOL(ixp4xx_pci_write);
|
||||
|
@ -196,7 +196,7 @@ struct ebda_hpc_bus {
|
||||
|
||||
|
||||
/********************************************************************
|
||||
* THREE TYPE OF HOT PLUG CONTROLER *
|
||||
* THREE TYPE OF HOT PLUG CONTROLLER *
|
||||
********************************************************************/
|
||||
|
||||
struct isa_ctlr_access {
|
||||
|
@ -64,7 +64,7 @@ static int to_debug = FALSE;
|
||||
#define WPG_I2C_OR 0x2000 // I2C OR operation
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Command set for I2C Master Operation Setup Regisetr
|
||||
// Command set for I2C Master Operation Setup Register
|
||||
//----------------------------------------------------------------------------
|
||||
#define WPG_READATADDR_MASK 0x00010000 // read,bytes,I2C shifted,index
|
||||
#define WPG_WRITEATADDR_MASK 0x40010000 // write,bytes,I2C shifted,index
|
||||
@ -835,7 +835,7 @@ static void poll_hpc (void)
|
||||
if (ibmphp_shutdown)
|
||||
break;
|
||||
|
||||
/* try to get the lock to do some kind of harware access */
|
||||
/* try to get the lock to do some kind of hardware access */
|
||||
down (&semOperations);
|
||||
|
||||
switch (poll_state) {
|
||||
@ -906,7 +906,7 @@ static void poll_hpc (void)
|
||||
poll_state = POLL_LATCH_REGISTER;
|
||||
break;
|
||||
}
|
||||
/* give up the harware semaphore */
|
||||
/* give up the hardware semaphore */
|
||||
up (&semOperations);
|
||||
/* sleep for a short time just for good measure */
|
||||
msleep(100);
|
||||
|
@ -1308,10 +1308,10 @@ static int unconfigure_boot_device (u8 busno, u8 device, u8 function)
|
||||
/* ????????? DO WE NEED TO WRITE ANYTHING INTO THE PCI CONFIG SPACE BACK ?????????? */
|
||||
} else {
|
||||
/* This is Memory */
|
||||
start_address &= PCI_BASE_ADDRESS_MEM_MASK;
|
||||
if (start_address & PCI_BASE_ADDRESS_MEM_PREFETCH) {
|
||||
/* pfmem */
|
||||
debug ("start address of pfmem is %x\n", start_address);
|
||||
start_address &= PCI_BASE_ADDRESS_MEM_MASK;
|
||||
|
||||
if (ibmphp_find_resource (bus, start_address, &pfmem, PFMEM) < 0) {
|
||||
err ("cannot find corresponding PFMEM resource to remove\n");
|
||||
@ -1325,6 +1325,8 @@ static int unconfigure_boot_device (u8 busno, u8 device, u8 function)
|
||||
} else {
|
||||
/* regular memory */
|
||||
debug ("start address of mem is %x\n", start_address);
|
||||
start_address &= PCI_BASE_ADDRESS_MEM_MASK;
|
||||
|
||||
if (ibmphp_find_resource (bus, start_address, &mem, MEM) < 0) {
|
||||
err ("cannot find corresponding MEM resource to remove\n");
|
||||
return -EIO;
|
||||
@ -1422,9 +1424,9 @@ static int unconfigure_boot_bridge (u8 busno, u8 device, u8 function)
|
||||
/* ????????? DO WE NEED TO WRITE ANYTHING INTO THE PCI CONFIG SPACE BACK ?????????? */
|
||||
} else {
|
||||
/* This is Memory */
|
||||
start_address &= PCI_BASE_ADDRESS_MEM_MASK;
|
||||
if (start_address & PCI_BASE_ADDRESS_MEM_PREFETCH) {
|
||||
/* pfmem */
|
||||
start_address &= PCI_BASE_ADDRESS_MEM_MASK;
|
||||
if (ibmphp_find_resource (bus, start_address, &pfmem, PFMEM) < 0) {
|
||||
err ("cannot find corresponding PFMEM resource to remove\n");
|
||||
return -EINVAL;
|
||||
@ -1436,6 +1438,7 @@ static int unconfigure_boot_bridge (u8 busno, u8 device, u8 function)
|
||||
}
|
||||
} else {
|
||||
/* regular memory */
|
||||
start_address &= PCI_BASE_ADDRESS_MEM_MASK;
|
||||
if (ibmphp_find_resource (bus, start_address, &mem, MEM) < 0) {
|
||||
err ("cannot find corresponding MEM resource to remove\n");
|
||||
return -EINVAL;
|
||||
|
@ -150,7 +150,7 @@ struct hotplug_slot_info {
|
||||
* @name: the name of the slot being registered. This string must
|
||||
* be unique amoung slots registered on this system.
|
||||
* @ops: pointer to the &struct hotplug_slot_ops to be used for this slot
|
||||
* @info: pointer to the &struct hotplug_slot_info for the inital values for
|
||||
* @info: pointer to the &struct hotplug_slot_info for the initial values for
|
||||
* this slot.
|
||||
* @release: called during pci_hp_deregister to free memory allocated in a
|
||||
* hotplug_slot structure.
|
||||
|
@ -90,6 +90,22 @@ static struct hotplug_slot_ops pciehp_hotplug_slot_ops = {
|
||||
.get_cur_bus_speed = get_cur_bus_speed,
|
||||
};
|
||||
|
||||
/**
|
||||
* release_slot - free up the memory used by a slot
|
||||
* @hotplug_slot: slot to free
|
||||
*/
|
||||
static void release_slot(struct hotplug_slot *hotplug_slot)
|
||||
{
|
||||
struct slot *slot = hotplug_slot->private;
|
||||
|
||||
dbg("%s - physical_slot = %s\n", __FUNCTION__, hotplug_slot->name);
|
||||
|
||||
kfree(slot->hotplug_slot->info);
|
||||
kfree(slot->hotplug_slot->name);
|
||||
kfree(slot->hotplug_slot);
|
||||
kfree(slot);
|
||||
}
|
||||
|
||||
static int init_slots(struct controller *ctrl)
|
||||
{
|
||||
struct slot *new_slot;
|
||||
@ -139,7 +155,8 @@ static int init_slots(struct controller *ctrl)
|
||||
|
||||
/* register this slot with the hotplug pci core */
|
||||
new_slot->hotplug_slot->private = new_slot;
|
||||
make_slot_name (new_slot->hotplug_slot->name, SLOT_NAME_SIZE, new_slot);
|
||||
new_slot->hotplug_slot->release = &release_slot;
|
||||
make_slot_name(new_slot->hotplug_slot->name, SLOT_NAME_SIZE, new_slot);
|
||||
new_slot->hotplug_slot->ops = &pciehp_hotplug_slot_ops;
|
||||
|
||||
new_slot->hpc_ops->get_power_status(new_slot, &(new_slot->hotplug_slot->info->power_status));
|
||||
@ -188,10 +205,6 @@ static int cleanup_slots (struct controller * ctrl)
|
||||
while (old_slot) {
|
||||
next_slot = old_slot->next;
|
||||
pci_hp_deregister (old_slot->hotplug_slot);
|
||||
kfree(old_slot->hotplug_slot->info);
|
||||
kfree(old_slot->hotplug_slot->name);
|
||||
kfree(old_slot->hotplug_slot);
|
||||
kfree(old_slot);
|
||||
old_slot = next_slot;
|
||||
}
|
||||
|
||||
|
@ -297,7 +297,7 @@ static int __init init_slots(void)
|
||||
hotplug_slot->ops = &skel_hotplug_slot_ops;
|
||||
|
||||
/*
|
||||
* Initilize the slot info structure with some known
|
||||
* Initialize the slot info structure with some known
|
||||
* good values.
|
||||
*/
|
||||
info->power_status = get_power_status(slot);
|
||||
|
@ -522,7 +522,7 @@ void pci_scan_msi_device(struct pci_dev *dev)
|
||||
* msi_capability_init - configure device's MSI capability structure
|
||||
* @dev: pointer to the pci_dev data structure of MSI device function
|
||||
*
|
||||
* Setup the MSI capability structure of device funtion with a single
|
||||
* Setup the MSI capability structure of device function with a single
|
||||
* MSI vector, regardless of device function is capable of handling
|
||||
* multiple messages. A return of zero indicates the successful setup
|
||||
* of an entry zero with the new MSI vector or non-zero for otherwise.
|
||||
@ -599,7 +599,7 @@ static int msi_capability_init(struct pci_dev *dev)
|
||||
* msix_capability_init - configure device's MSI-X capability
|
||||
* @dev: pointer to the pci_dev data structure of MSI-X device function
|
||||
*
|
||||
* Setup the MSI-X capability structure of device funtion with a
|
||||
* Setup the MSI-X capability structure of device function with a
|
||||
* single MSI-X vector. A return of zero indicates the successful setup of
|
||||
* requested MSI-X entries with allocated vectors or non-zero for otherwise.
|
||||
**/
|
||||
@ -1074,7 +1074,7 @@ void pci_disable_msix(struct pci_dev* dev)
|
||||
* msi_remove_pci_irq_vectors - reclaim MSI(X) vectors to unused state
|
||||
* @dev: pointer to the pci_dev data structure of MSI(X) device function
|
||||
*
|
||||
* Being called during hotplug remove, from which the device funciton
|
||||
* Being called during hotplug remove, from which the device function
|
||||
* is hot-removed. All previous assigned MSI/MSI-X vectors, if
|
||||
* allocated for this device function, are reclaimed to unused state,
|
||||
* which may be used later on.
|
||||
|
@ -19,7 +19,7 @@
|
||||
|
||||
static u32 ctrlset_buf[3] = {0, 0, 0};
|
||||
static u32 global_ctrlsets = 0;
|
||||
u8 OSC_UUID[16] = {0x5B, 0x4D, 0xDB, 0x33, 0xF7, 0x1F, 0x1C, 0x40, 0x96, 0x57, 0x74, 0x41, 0xC0, 0x3D, 0xD7, 0x66};
|
||||
static u8 OSC_UUID[16] = {0x5B, 0x4D, 0xDB, 0x33, 0xF7, 0x1F, 0x1C, 0x40, 0x96, 0x57, 0x74, 0x41, 0xC0, 0x3D, 0xD7, 0x66};
|
||||
|
||||
static acpi_status
|
||||
acpi_query_osc (
|
||||
|
@ -318,6 +318,14 @@ static int pci_device_resume(struct device * dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void pci_device_shutdown(struct device *dev)
|
||||
{
|
||||
struct pci_dev *pci_dev = to_pci_dev(dev);
|
||||
struct pci_driver *drv = pci_dev->driver;
|
||||
|
||||
if (drv && drv->shutdown)
|
||||
drv->shutdown(pci_dev);
|
||||
}
|
||||
|
||||
#define kobj_to_pci_driver(obj) container_of(obj, struct device_driver, kobj)
|
||||
#define attr_to_driver_attribute(obj) container_of(obj, struct driver_attribute, attr)
|
||||
@ -373,7 +381,7 @@ pci_populate_driver_dir(struct pci_driver *drv)
|
||||
*
|
||||
* Adds the driver structure to the list of registered drivers.
|
||||
* Returns a negative value on error, otherwise 0.
|
||||
* If no error occured, the driver remains registered even if
|
||||
* If no error occurred, the driver remains registered even if
|
||||
* no device was claimed during registration.
|
||||
*/
|
||||
int pci_register_driver(struct pci_driver *drv)
|
||||
@ -385,6 +393,7 @@ int pci_register_driver(struct pci_driver *drv)
|
||||
drv->driver.bus = &pci_bus_type;
|
||||
drv->driver.probe = pci_device_probe;
|
||||
drv->driver.remove = pci_device_remove;
|
||||
drv->driver.shutdown = pci_device_shutdown,
|
||||
drv->driver.owner = drv->owner;
|
||||
drv->driver.kobj.ktype = &pci_driver_kobj_type;
|
||||
pci_init_dynids(&drv->dynids);
|
||||
|
@ -91,6 +91,7 @@ pci_read_config(struct kobject *kobj, char *buf, loff_t off, size_t count)
|
||||
struct pci_dev *dev = to_pci_dev(container_of(kobj,struct device,kobj));
|
||||
unsigned int size = 64;
|
||||
loff_t init_off = off;
|
||||
u8 *data = (u8*) buf;
|
||||
|
||||
/* Several chips lock up trying to read undefined config space */
|
||||
if (capable(CAP_SYS_ADMIN)) {
|
||||
@ -108,30 +109,47 @@ pci_read_config(struct kobject *kobj, char *buf, loff_t off, size_t count)
|
||||
size = count;
|
||||
}
|
||||
|
||||
while (off & 3) {
|
||||
unsigned char val;
|
||||
if ((off & 1) && size) {
|
||||
u8 val;
|
||||
pci_read_config_byte(dev, off, &val);
|
||||
buf[off - init_off] = val;
|
||||
data[off - init_off] = val;
|
||||
off++;
|
||||
if (--size == 0)
|
||||
break;
|
||||
size--;
|
||||
}
|
||||
|
||||
if ((off & 3) && size > 2) {
|
||||
u16 val;
|
||||
pci_read_config_word(dev, off, &val);
|
||||
data[off - init_off] = val & 0xff;
|
||||
data[off - init_off + 1] = (val >> 8) & 0xff;
|
||||
off += 2;
|
||||
size -= 2;
|
||||
}
|
||||
|
||||
while (size > 3) {
|
||||
unsigned int val;
|
||||
u32 val;
|
||||
pci_read_config_dword(dev, off, &val);
|
||||
buf[off - init_off] = val & 0xff;
|
||||
buf[off - init_off + 1] = (val >> 8) & 0xff;
|
||||
buf[off - init_off + 2] = (val >> 16) & 0xff;
|
||||
buf[off - init_off + 3] = (val >> 24) & 0xff;
|
||||
data[off - init_off] = val & 0xff;
|
||||
data[off - init_off + 1] = (val >> 8) & 0xff;
|
||||
data[off - init_off + 2] = (val >> 16) & 0xff;
|
||||
data[off - init_off + 3] = (val >> 24) & 0xff;
|
||||
off += 4;
|
||||
size -= 4;
|
||||
}
|
||||
|
||||
while (size > 0) {
|
||||
unsigned char val;
|
||||
if (size >= 2) {
|
||||
u16 val;
|
||||
pci_read_config_word(dev, off, &val);
|
||||
data[off - init_off] = val & 0xff;
|
||||
data[off - init_off + 1] = (val >> 8) & 0xff;
|
||||
off += 2;
|
||||
size -= 2;
|
||||
}
|
||||
|
||||
if (size > 0) {
|
||||
u8 val;
|
||||
pci_read_config_byte(dev, off, &val);
|
||||
buf[off - init_off] = val;
|
||||
data[off - init_off] = val;
|
||||
off++;
|
||||
--size;
|
||||
}
|
||||
@ -145,6 +163,7 @@ pci_write_config(struct kobject *kobj, char *buf, loff_t off, size_t count)
|
||||
struct pci_dev *dev = to_pci_dev(container_of(kobj,struct device,kobj));
|
||||
unsigned int size = count;
|
||||
loff_t init_off = off;
|
||||
u8 *data = (u8*) buf;
|
||||
|
||||
if (off > dev->cfg_size)
|
||||
return 0;
|
||||
@ -152,26 +171,41 @@ pci_write_config(struct kobject *kobj, char *buf, loff_t off, size_t count)
|
||||
size = dev->cfg_size - off;
|
||||
count = size;
|
||||
}
|
||||
|
||||
while (off & 3) {
|
||||
pci_write_config_byte(dev, off, buf[off - init_off]);
|
||||
|
||||
if ((off & 1) && size) {
|
||||
pci_write_config_byte(dev, off, data[off - init_off]);
|
||||
off++;
|
||||
if (--size == 0)
|
||||
break;
|
||||
size--;
|
||||
}
|
||||
|
||||
if ((off & 3) && size > 2) {
|
||||
u16 val = data[off - init_off];
|
||||
val |= (u16) data[off - init_off + 1] << 8;
|
||||
pci_write_config_word(dev, off, val);
|
||||
off += 2;
|
||||
size -= 2;
|
||||
}
|
||||
|
||||
while (size > 3) {
|
||||
unsigned int val = buf[off - init_off];
|
||||
val |= (unsigned int) buf[off - init_off + 1] << 8;
|
||||
val |= (unsigned int) buf[off - init_off + 2] << 16;
|
||||
val |= (unsigned int) buf[off - init_off + 3] << 24;
|
||||
u32 val = data[off - init_off];
|
||||
val |= (u32) data[off - init_off + 1] << 8;
|
||||
val |= (u32) data[off - init_off + 2] << 16;
|
||||
val |= (u32) data[off - init_off + 3] << 24;
|
||||
pci_write_config_dword(dev, off, val);
|
||||
off += 4;
|
||||
size -= 4;
|
||||
}
|
||||
|
||||
if (size >= 2) {
|
||||
u16 val = data[off - init_off];
|
||||
val |= (u16) data[off - init_off + 1] << 8;
|
||||
pci_write_config_word(dev, off, val);
|
||||
off += 2;
|
||||
size -= 2;
|
||||
}
|
||||
|
||||
while (size > 0) {
|
||||
pci_write_config_byte(dev, off, buf[off - init_off]);
|
||||
if (size) {
|
||||
pci_write_config_byte(dev, off, data[off - init_off]);
|
||||
off++;
|
||||
--size;
|
||||
}
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <asm/dma.h> /* isa_dma_bridge_buggy */
|
||||
#include "pci.h"
|
||||
|
||||
|
||||
/**
|
||||
@ -398,10 +399,10 @@ pci_enable_device(struct pci_dev *dev)
|
||||
{
|
||||
int err;
|
||||
|
||||
dev->is_enabled = 1;
|
||||
if ((err = pci_enable_device_bars(dev, (1 << PCI_NUM_RESOURCES) - 1)))
|
||||
return err;
|
||||
pci_fixup_device(pci_fixup_enable, dev);
|
||||
dev->is_enabled = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -427,16 +428,15 @@ pci_disable_device(struct pci_dev *dev)
|
||||
{
|
||||
u16 pci_command;
|
||||
|
||||
dev->is_enabled = 0;
|
||||
dev->is_busmaster = 0;
|
||||
|
||||
pci_read_config_word(dev, PCI_COMMAND, &pci_command);
|
||||
if (pci_command & PCI_COMMAND_MASTER) {
|
||||
pci_command &= ~PCI_COMMAND_MASTER;
|
||||
pci_write_config_word(dev, PCI_COMMAND, pci_command);
|
||||
}
|
||||
dev->is_busmaster = 0;
|
||||
|
||||
pcibios_disable_device(dev);
|
||||
dev->is_enabled = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -748,17 +748,6 @@ pci_set_dma_mask(struct pci_dev *dev, u64 mask)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
pci_dac_set_dma_mask(struct pci_dev *dev, u64 mask)
|
||||
{
|
||||
if (!pci_dac_dma_supported(dev, mask))
|
||||
return -EIO;
|
||||
|
||||
dev->dma_mask = mask;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
|
||||
{
|
||||
@ -821,7 +810,6 @@ EXPORT_SYMBOL(pci_set_master);
|
||||
EXPORT_SYMBOL(pci_set_mwi);
|
||||
EXPORT_SYMBOL(pci_clear_mwi);
|
||||
EXPORT_SYMBOL(pci_set_dma_mask);
|
||||
EXPORT_SYMBOL(pci_dac_set_dma_mask);
|
||||
EXPORT_SYMBOL(pci_set_consistent_dma_mask);
|
||||
EXPORT_SYMBOL(pci_assign_resource);
|
||||
EXPORT_SYMBOL(pci_find_parent_resource);
|
||||
|
@ -9,6 +9,7 @@
|
||||
#include <linux/slab.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/cpumask.h>
|
||||
#include "pci.h"
|
||||
|
||||
#define CARDBUS_LATENCY_TIMER 176 /* secondary latency timer */
|
||||
#define CARDBUS_RESERVE_BUSNR 3
|
||||
|
@ -15,6 +15,7 @@
|
||||
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/byteorder.h>
|
||||
#include "pci.h"
|
||||
|
||||
static int proc_initialized; /* = 0 */
|
||||
|
||||
|
@ -18,6 +18,7 @@
|
||||
#include <linux/pci.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/delay.h>
|
||||
#include "pci.h"
|
||||
|
||||
/* Deal with broken BIOS'es that neglect to enable passive release,
|
||||
which can cause problems in combination with the 82441FX/PPro MTRRs */
|
||||
@ -328,6 +329,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_12,
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_0, quirk_ich4_lpc_acpi );
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_12, quirk_ich4_lpc_acpi );
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801EB_0, quirk_ich4_lpc_acpi );
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB_1, quirk_ich4_lpc_acpi );
|
||||
|
||||
/*
|
||||
* VIA ACPI: One IO region pointed to by longword at
|
||||
|
@ -671,6 +671,7 @@ struct pci_driver {
|
||||
int (*suspend) (struct pci_dev *dev, pm_message_t state); /* Device suspended */
|
||||
int (*resume) (struct pci_dev *dev); /* Device woken up */
|
||||
int (*enable_wake) (struct pci_dev *dev, pci_power_t state, int enable); /* Enable wake event */
|
||||
void (*shutdown) (struct pci_dev *dev);
|
||||
|
||||
struct device_driver driver;
|
||||
struct pci_dynids dynids;
|
||||
@ -810,7 +811,6 @@ void pci_set_master(struct pci_dev *dev);
|
||||
int pci_set_mwi(struct pci_dev *dev);
|
||||
void pci_clear_mwi(struct pci_dev *dev);
|
||||
int pci_set_dma_mask(struct pci_dev *dev, u64 mask);
|
||||
int pci_dac_set_dma_mask(struct pci_dev *dev, u64 mask);
|
||||
int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask);
|
||||
int pci_assign_resource(struct pci_dev *dev, int i);
|
||||
|
||||
@ -941,7 +941,6 @@ static inline void pci_set_master(struct pci_dev *dev) { }
|
||||
static inline int pci_enable_device(struct pci_dev *dev) { return -EIO; }
|
||||
static inline void pci_disable_device(struct pci_dev *dev) { }
|
||||
static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask) { return -EIO; }
|
||||
static inline int pci_dac_set_dma_mask(struct pci_dev *dev, u64 mask) { return -EIO; }
|
||||
static inline int pci_assign_resource(struct pci_dev *dev, int i) { return -EBUSY;}
|
||||
static inline int pci_register_driver(struct pci_driver *drv) { return 0;}
|
||||
static inline void pci_unregister_driver(struct pci_driver *drv) { }
|
||||
|
Loading…
Reference in New Issue
Block a user