Commit a62cd1fe authored by Anton Altaparmakov's avatar Anton Altaparmakov

Merge cantab.net:/usr/src/bklinux-2.5 into cantab.net:/usr/src/ntfs-2.5

parents a2995e76 3c9bd375
...@@ -71,6 +71,7 @@ static int acpi_irq_irq = 0; ...@@ -71,6 +71,7 @@ static int acpi_irq_irq = 0;
static OSD_HANDLER acpi_irq_handler = NULL; static OSD_HANDLER acpi_irq_handler = NULL;
static void *acpi_irq_context = NULL; static void *acpi_irq_context = NULL;
extern struct pci_ops *pci_root_ops;
acpi_status acpi_status
acpi_os_initialize(void) acpi_os_initialize(void)
...@@ -80,7 +81,7 @@ acpi_os_initialize(void) ...@@ -80,7 +81,7 @@ acpi_os_initialize(void)
* it while walking the namespace (bus 0 and root bridges w/ _BBNs). * it while walking the namespace (bus 0 and root bridges w/ _BBNs).
*/ */
#ifdef CONFIG_ACPI_PCI #ifdef CONFIG_ACPI_PCI
if (!pci_config_read || !pci_config_write) { if (!pci_root_ops) {
printk(KERN_ERR PREFIX "Access to PCI configuration space unavailable\n"); printk(KERN_ERR PREFIX "Access to PCI configuration space unavailable\n");
return AE_NULL_ENTRY; return AE_NULL_ENTRY;
} }
...@@ -438,27 +439,31 @@ acpi_os_read_pci_configuration ( ...@@ -438,27 +439,31 @@ acpi_os_read_pci_configuration (
u32 width) u32 width)
{ {
int result = 0; int result = 0;
int size = 0;
struct pci_bus bus;
if (!value) if (!value)
return AE_BAD_PARAMETER; return AE_BAD_PARAMETER;
switch (width) switch (width) {
{
case 8: case 8:
result = pci_config_read(pci_id->segment, pci_id->bus, size = 1;
pci_id->device, pci_id->function, reg, 1, value);
break; break;
case 16: case 16:
result = pci_config_read(pci_id->segment, pci_id->bus, size = 2;
pci_id->device, pci_id->function, reg, 2, value);
break; break;
case 32: case 32:
result = pci_config_read(pci_id->segment, pci_id->bus, size = 4;
pci_id->device, pci_id->function, reg, 4, value);
break; break;
default: default:
BUG(); BUG();
} }
bus.number = pci_id->bus;
result = pci_root_ops->read(&bus, PCI_DEVFN(pci_id->device,
pci_id->function),
reg, size, value);
return (result ? AE_ERROR : AE_OK); return (result ? AE_ERROR : AE_OK);
} }
...@@ -470,25 +475,27 @@ acpi_os_write_pci_configuration ( ...@@ -470,25 +475,27 @@ acpi_os_write_pci_configuration (
u32 width) u32 width)
{ {
int result = 0; int result = 0;
int size = 0;
struct pci_bus bus;
switch (width) switch (width) {
{
case 8: case 8:
result = pci_config_write(pci_id->segment, pci_id->bus, size = 1;
pci_id->device, pci_id->function, reg, 1, value);
break; break;
case 16: case 16:
result = pci_config_write(pci_id->segment, pci_id->bus, size = 2;
pci_id->device, pci_id->function, reg, 2, value);
break; break;
case 32: case 32:
result = pci_config_write(pci_id->segment, pci_id->bus, size = 4;
pci_id->device, pci_id->function, reg, 4, value);
break; break;
default: default:
BUG(); BUG();
} }
bus.number = pci_id->bus;
result = pci_root_ops->write(&bus, PCI_DEVFN(pci_id->device,
pci_id->function),
reg, size, value);
return (result ? AE_ERROR : AE_OK); return (result ? AE_ERROR : AE_OK);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment