Commit 4b46cdeb authored by Steve French's avatar Steve French

Merge bk://linux.bkbits.net/linux-2.5

into hostme.bitkeeper.com:/repos/c/cifs/linux-2.5cifs
parents 6fc19bb2 7a650c81
......@@ -818,6 +818,11 @@ S: 1382 Bordeaux Drive
S: Sunnyvale, CA 94087
S: USA
N: Bruno Ducrot
E: ducrot@poupinou.org
D: CPUFreq and ACPI bugfixes.
S: Mougin, France
N: Don Dugger
E: n0ano@valinux.com
D: Linux/IA-64
......
......@@ -13,6 +13,7 @@ This driver is known to work with the following cards:
* SA 642
* SA 6400
* SA 6400 U320 Expansion Module
* SA 6i
If nodes are not already created in the /dev/cciss directory
......
......@@ -32,6 +32,7 @@
#include <asm/io_apic.h>
#include <asm/apic.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/mpspec.h>
#if defined (CONFIG_X86_LOCAL_APIC)
......@@ -45,8 +46,8 @@
int acpi_noirq __initdata = 0; /* skip ACPI IRQ initialization */
int acpi_ht __initdata = 1; /* enable HT */
int acpi_lapic = 0;
int acpi_ioapic = 0;
int acpi_lapic;
int acpi_ioapic;
/* --------------------------------------------------------------------------
Boot-time Configuration
......@@ -471,7 +472,7 @@ acpi_boot_init (void)
* and (optionally) overriden by a LAPIC_ADDR_OVR entry (64-bit value).
*/
result = acpi_table_parse_madt(ACPI_MADT_LAPIC_ADDR_OVR, acpi_parse_lapic_addr_ovr);
result = acpi_table_parse_madt(ACPI_MADT_LAPIC_ADDR_OVR, acpi_parse_lapic_addr_ovr, 0);
if (result < 0) {
printk(KERN_ERR PREFIX "Error parsing LAPIC address override entry\n");
return result;
......@@ -479,7 +480,8 @@ acpi_boot_init (void)
mp_register_lapic_address(acpi_lapic_addr);
result = acpi_table_parse_madt(ACPI_MADT_LAPIC, acpi_parse_lapic);
result = acpi_table_parse_madt(ACPI_MADT_LAPIC, acpi_parse_lapic,
MAX_APICS);
if (!result) {
printk(KERN_ERR PREFIX "No LAPIC entries present\n");
/* TBD: Cleanup to allow fallback to MPS */
......@@ -491,7 +493,7 @@ acpi_boot_init (void)
return result;
}
result = acpi_table_parse_madt(ACPI_MADT_LAPIC_NMI, acpi_parse_lapic_nmi);
result = acpi_table_parse_madt(ACPI_MADT_LAPIC_NMI, acpi_parse_lapic_nmi, 0);
if (result < 0) {
printk(KERN_ERR PREFIX "Error parsing LAPIC NMI entry\n");
/* TBD: Cleanup to allow fallback to MPS */
......@@ -528,8 +530,8 @@ acpi_boot_init (void)
return 1;
}
result = acpi_table_parse_madt(ACPI_MADT_IOAPIC, acpi_parse_ioapic);
if (!result) {
result = acpi_table_parse_madt(ACPI_MADT_IOAPIC, acpi_parse_ioapic, MAX_IO_APICS);
if (!result) {
printk(KERN_ERR PREFIX "No IOAPIC entries present\n");
return -ENODEV;
}
......@@ -541,14 +543,14 @@ acpi_boot_init (void)
/* Build a default routing table for legacy (ISA) interrupts. */
mp_config_acpi_legacy_irqs();
result = acpi_table_parse_madt(ACPI_MADT_INT_SRC_OVR, acpi_parse_int_src_ovr);
result = acpi_table_parse_madt(ACPI_MADT_INT_SRC_OVR, acpi_parse_int_src_ovr, NR_IRQ_VECTORS);
if (result < 0) {
printk(KERN_ERR PREFIX "Error parsing interrupt source overrides entry\n");
/* TBD: Cleanup to allow fallback to MPS */
return result;
}
result = acpi_table_parse_madt(ACPI_MADT_NMI_SRC, acpi_parse_nmi_src);
result = acpi_table_parse_madt(ACPI_MADT_NMI_SRC, acpi_parse_nmi_src, NR_IRQ_VECTORS);
if (result < 0) {
printk(KERN_ERR PREFIX "Error parsing NMI SRC entry\n");
/* TBD: Cleanup to allow fallback to MPS */
......
This diff is collapsed.
......@@ -191,8 +191,6 @@ acpi_parse_lsapic (acpi_table_entry_header *header)
if (!lsapic->flags.enabled)
printk(" disabled");
else if (available_cpus >= NR_CPUS)
printk(" ignored (increase NR_CPUS)");
else {
printk(" enabled");
#ifdef CONFIG_SMP
......@@ -395,12 +393,6 @@ acpi_numa_memory_affinity_init (struct acpi_table_memory_affinity *ma)
size = ma->length_hi;
size = (size << 32) | ma->length_lo;
if (num_memblks >= NR_MEMBLKS) {
printk(KERN_ERR "Too many mem chunks in SRAT. Ignoring %ld MBytes at %lx\n",
size/(1024*1024), paddr);
return;
}
/* Ignore disabled entries */
if (!ma->flags.enabled)
return;
......@@ -552,29 +544,29 @@ acpi_boot_init (void)
/* Local APIC */
if (acpi_table_parse_madt(ACPI_MADT_LAPIC_ADDR_OVR, acpi_parse_lapic_addr_ovr) < 0)
if (acpi_table_parse_madt(ACPI_MADT_LAPIC_ADDR_OVR, acpi_parse_lapic_addr_ovr, 0) < 0)
printk(KERN_ERR PREFIX "Error parsing LAPIC address override entry\n");
if (acpi_table_parse_madt(ACPI_MADT_LSAPIC, acpi_parse_lsapic) < 1)
if (acpi_table_parse_madt(ACPI_MADT_LSAPIC, acpi_parse_lsapic, NR_CPUS) < 1)
printk(KERN_ERR PREFIX "Error parsing MADT - no LAPIC entries\n");
if (acpi_table_parse_madt(ACPI_MADT_LAPIC_NMI, acpi_parse_lapic_nmi) < 0)
if (acpi_table_parse_madt(ACPI_MADT_LAPIC_NMI, acpi_parse_lapic_nmi, 0) < 0)
printk(KERN_ERR PREFIX "Error parsing LAPIC NMI entry\n");
/* I/O APIC */
if (acpi_table_parse_madt(ACPI_MADT_IOSAPIC, acpi_parse_iosapic) < 1)
if (acpi_table_parse_madt(ACPI_MADT_IOSAPIC, acpi_parse_iosapic, NR_IOSAPICS) < 1)
printk(KERN_ERR PREFIX "Error parsing MADT - no IOSAPIC entries\n");
/* System-Level Interrupt Routing */
if (acpi_table_parse_madt(ACPI_MADT_PLAT_INT_SRC, acpi_parse_plat_int_src) < 0)
if (acpi_table_parse_madt(ACPI_MADT_PLAT_INT_SRC, acpi_parse_plat_int_src, ACPI_MAX_PLATFORM_INTERRUPTS) < 0)
printk(KERN_ERR PREFIX "Error parsing platform interrupt source entry\n");
if (acpi_table_parse_madt(ACPI_MADT_INT_SRC_OVR, acpi_parse_int_src_ovr) < 0)
if (acpi_table_parse_madt(ACPI_MADT_INT_SRC_OVR, acpi_parse_int_src_ovr, 0) < 0)
printk(KERN_ERR PREFIX "Error parsing interrupt source overrides entry\n");
if (acpi_table_parse_madt(ACPI_MADT_NMI_SRC, acpi_parse_nmi_src) < 0)
if (acpi_table_parse_madt(ACPI_MADT_NMI_SRC, acpi_parse_nmi_src, 0) < 0)
printk(KERN_ERR PREFIX "Error parsing NMI SRC entry\n");
skip_madt:
......
......@@ -114,7 +114,7 @@ static struct iosapic {
char *addr; /* base address of IOSAPIC */
unsigned int gsi_base; /* first GSI assigned to this IOSAPIC */
unsigned short num_rte; /* number of RTE in this IOSAPIC */
} iosapic_lists[256];
} iosapic_lists[NR_IOSAPICS];
static int num_iosapic;
......
......@@ -14,6 +14,7 @@
#include <linux/kernel.h>
#include <linux/reboot.h>
#include <linux/sched.h>
#include <linux/module.h>
#include <asm/errno.h>
#include <asm/ptrace.h>
......
/*
* arch/v850/kernel/setup.c -- Arch-dependent initialization functions
*
* Copyright (C) 2001,02 NEC Corporation
* Copyright (C) 2001,02 Miles Bader <miles@gnu.org>
* Copyright (C) 2001,02,03 NEC Electronics Corporation
* Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org>
*
* This file is subject to the terms and conditions of the GNU General
* Public License. See the file COPYING in the main directory of this
......@@ -13,6 +13,7 @@
#include <linux/mm.h>
#include <linux/bootmem.h>
#include <linux/swap.h> /* we don't have swap, but for nr_free_pages */
#include <linux/irq.h>
#include <linux/reboot.h>
#include <linux/personality.h>
......
......@@ -17,6 +17,7 @@
implementation. */
#include <asm/entry.h>
#include <asm/cacheflush.h>
#include <asm/v850e_cache.h>
#define WAIT_UNTIL_CLEAR(value) while (value) {}
......
......@@ -51,8 +51,8 @@
int acpi_noirq __initdata = 0; /* skip ACPI IRQ initialization */
int acpi_ht __initdata = 1; /* enable HT */
int acpi_lapic = 0;
int acpi_ioapic = 0;
int acpi_lapic;
int acpi_ioapic;
/* --------------------------------------------------------------------------
Boot-time Configuration
......@@ -439,7 +439,7 @@ acpi_boot_init (void)
* and (optionally) overriden by a LAPIC_ADDR_OVR entry (64-bit value).
*/
result = acpi_table_parse_madt(ACPI_MADT_LAPIC_ADDR_OVR, acpi_parse_lapic_addr_ovr);
result = acpi_table_parse_madt(ACPI_MADT_LAPIC_ADDR_OVR, acpi_parse_lapic_addr_ovr, 0);
if (result < 0) {
printk(KERN_ERR PREFIX "Error parsing LAPIC address override entry\n");
return result;
......@@ -447,7 +447,8 @@ acpi_boot_init (void)
mp_register_lapic_address(acpi_lapic_addr);
result = acpi_table_parse_madt(ACPI_MADT_LAPIC, acpi_parse_lapic);
result = acpi_table_parse_madt(ACPI_MADT_LAPIC, acpi_parse_lapic,
MAX_APICS);
if (!result) {
printk(KERN_ERR PREFIX "No LAPIC entries present\n");
/* TBD: Cleanup to allow fallback to MPS */
......@@ -459,7 +460,7 @@ acpi_boot_init (void)
return result;
}
result = acpi_table_parse_madt(ACPI_MADT_LAPIC_NMI, acpi_parse_lapic_nmi);
result = acpi_table_parse_madt(ACPI_MADT_LAPIC_NMI, acpi_parse_lapic_nmi, 0);
if (result < 0) {
printk(KERN_ERR PREFIX "Error parsing LAPIC NMI entry\n");
/* TBD: Cleanup to allow fallback to MPS */
......@@ -496,8 +497,8 @@ acpi_boot_init (void)
return 1;
}
result = acpi_table_parse_madt(ACPI_MADT_IOAPIC, acpi_parse_ioapic);
if (!result) {
result = acpi_table_parse_madt(ACPI_MADT_IOAPIC, acpi_parse_ioapic, MAX_IO_APICS);
if (!result) {
printk(KERN_ERR PREFIX "No IOAPIC entries present\n");
return -ENODEV;
}
......@@ -509,14 +510,15 @@ acpi_boot_init (void)
/* Build a default routing table for legacy (ISA) interrupts. */
mp_config_acpi_legacy_irqs();
result = acpi_table_parse_madt(ACPI_MADT_INT_SRC_OVR, acpi_parse_int_src_ovr);
result = acpi_table_parse_madt(ACPI_MADT_INT_SRC_OVR, acpi_parse_int_src_ovr, NR_IRQ_VECTORS);
if (result < 0) {
printk(KERN_ERR PREFIX "Error parsing interrupt source overrides entry\n");
/* TBD: Cleanup to allow fallback to MPS */
return result;
}
result = acpi_table_parse_madt(ACPI_MADT_NMI_SRC, acpi_parse_nmi_src);
result = acpi_table_parse_madt(ACPI_MADT_NMI_SRC, acpi_parse_nmi_src,
NR_IRQ_VECTORS);
if (result < 0) {
printk(KERN_ERR PREFIX "Error parsing NMI SRC entry\n");
/* TBD: Cleanup to allow fallback to MPS */
......
This diff is collapsed.
......@@ -30,8 +30,9 @@
#include <linux/errno.h>
#include <linux/acpi.h>
#include <acpi/acpi_bus.h>
#include <acpi/acmacros.h>
extern int __init acpi_table_parse_madt_family (enum acpi_table_id id, unsigned long madt_size, int entry_id, acpi_madt_entry_handler handler);
extern int __init acpi_table_parse_madt_family (enum acpi_table_id id, unsigned long madt_size, int entry_id, acpi_madt_entry_handler handler, unsigned int max_entries);
void __init
acpi_table_print_srat_entry (
......@@ -46,9 +47,9 @@ acpi_table_print_srat_entry (
{
struct acpi_table_processor_affinity *p =
(struct acpi_table_processor_affinity*) header;
printk(KERN_INFO PREFIX "SRAT Processor (id[0x%02x] eid[0x%02x]) in proximity domain %d %s\n",
ACPI_DEBUG_PRINT((ACPI_DB_INFO "SRAT Processor (id[0x%02x] eid[0x%02x]) in proximity domain %d %s\n",
p->apic_id, p->lsapic_eid, p->proximity_domain,
p->flags.enabled?"enabled":"disabled");
p->flags.enabled?"enabled":"disabled"));
}
break;
......@@ -56,11 +57,11 @@ acpi_table_print_srat_entry (
{
struct acpi_table_memory_affinity *p =
(struct acpi_table_memory_affinity*) header;
printk(KERN_INFO PREFIX "SRAT Memory (0x%08x%08x length 0x%08x%08x type 0x%x) in proximity domain %d %s%s\n",
ACPI_DEBUG_PRINT((ACPI_DB_INFO "SRAT Memory (0x%08x%08x length 0x%08x%08x type 0x%x) in proximity domain %d %s%s\n",
p->base_addr_hi, p->base_addr_lo, p->length_hi, p->length_lo,
p->memory_type, p->proximity_domain,
p->flags.enabled ? "enabled" : "disabled",
p->flags.hot_pluggable ? " hot-pluggable" : "");
p->flags.hot_pluggable ? " hot-pluggable" : ""));
}
break;
......@@ -97,7 +98,7 @@ acpi_parse_slit (unsigned long phys_addr, unsigned long size)
static int __init
acpi_parse_processor_affinity (acpi_table_entry_header *header)
{
struct acpi_table_processor_affinity *processor_affinity = NULL;
struct acpi_table_processor_affinity *processor_affinity;
processor_affinity = (struct acpi_table_processor_affinity*) header;
if (!processor_affinity)
......@@ -115,7 +116,7 @@ acpi_parse_processor_affinity (acpi_table_entry_header *header)
static int __init
acpi_parse_memory_affinity (acpi_table_entry_header *header)
{
struct acpi_table_memory_affinity *memory_affinity = NULL;
struct acpi_table_memory_affinity *memory_affinity;
memory_affinity = (struct acpi_table_memory_affinity*) header;
if (!memory_affinity)
......@@ -133,7 +134,7 @@ acpi_parse_memory_affinity (acpi_table_entry_header *header)
static int __init
acpi_parse_srat (unsigned long phys_addr, unsigned long size)
{
struct acpi_table_srat *srat = NULL;
struct acpi_table_srat *srat;
if (!phys_addr || !size)
return -EINVAL;
......@@ -149,10 +150,11 @@ acpi_parse_srat (unsigned long phys_addr, unsigned long size)
int __init
acpi_table_parse_srat (
enum acpi_srat_entry_id id,
acpi_madt_entry_handler handler)
acpi_madt_entry_handler handler,
unsigned int max_entries)
{
return acpi_table_parse_madt_family(ACPI_SRAT, sizeof(struct acpi_table_srat),
id, handler);
id, handler, max_entries);
}
......@@ -166,9 +168,11 @@ acpi_numa_init()
if (result > 0) {
result = acpi_table_parse_srat(ACPI_SRAT_PROCESSOR_AFFINITY,
acpi_parse_processor_affinity);
acpi_parse_processor_affinity,
NR_CPUS);
result = acpi_table_parse_srat(ACPI_SRAT_MEMORY_AFFINITY,
acpi_parse_memory_affinity);
acpi_parse_memory_affinity,
NR_MEMBLKS);
} else {
/* FIXME */
printk("Warning: acpi_table_parse(ACPI_SRAT) returned %d!\n",result);
......
......@@ -315,7 +315,6 @@ acpi_pci_irq_enable (
{
int irq = 0;
u8 pin = 0;
static u16 irq_mask = 0;
ACPI_FUNCTION_TRACE("acpi_pci_irq_enable");
......@@ -372,10 +371,13 @@ acpi_pci_irq_enable (
* Make sure all (legacy) PCI IRQs are set as level-triggered.
*/
#ifdef CONFIG_X86
if ((dev->irq < 16) && !((1 << dev->irq) & irq_mask)) {
ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Setting IRQ %d as level-triggered\n", dev->irq));
irq_mask |= (1 << dev->irq);
eisa_set_level_irq(dev->irq);
{
static u16 irq_mask;
if ((dev->irq < 16) && !((1 << dev->irq) & irq_mask)) {
ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Setting IRQ %d as level-triggered\n", dev->irq));
irq_mask |= (1 << dev->irq);
eisa_set_level_irq(dev->irq);
}
}
#endif
#ifdef CONFIG_IOSAPIC
......
This diff is collapsed.
......@@ -302,13 +302,14 @@ acpi_table_parse_madt_family (
enum acpi_table_id id,
unsigned long madt_size,
int entry_id,
acpi_madt_entry_handler handler)
acpi_madt_entry_handler handler,
unsigned int max_entries)
{
void *madt = NULL;
acpi_table_entry_header *entry = NULL;
unsigned long count = 0;
unsigned long madt_end = 0;
unsigned int i = 0;
acpi_table_entry_header *entry;
unsigned int count = 0;
unsigned long madt_end;
unsigned int i;
if (!handler)
return -EINVAL;
......@@ -342,13 +343,18 @@ acpi_table_parse_madt_family (
((unsigned long) madt + madt_size);
while (((unsigned long) entry) < madt_end) {
if (entry->type == entry_id) {
count++;
if (entry->type == entry_id &&
(!max_entries || count++ < max_entries))
handler(entry);
}
entry = (acpi_table_entry_header *)
((unsigned long) entry + entry->length);
}
if (max_entries && count > max_entries) {
printk(KERN_WARNING PREFIX "[%s:0x%02x] ignored %i entries of "
"%i found\n", acpi_table_signatures[id], entry_id,
count - max_entries, count);
}
return count;
}
......@@ -357,10 +363,11 @@ acpi_table_parse_madt_family (
int __init
acpi_table_parse_madt (
enum acpi_madt_entry_id id,
acpi_madt_entry_handler handler)
acpi_madt_entry_handler handler,
unsigned int max_entries)
{
return acpi_table_parse_madt_family(ACPI_APIC, sizeof(struct acpi_table_madt),
id, handler);
id, handler, max_entries);
}
......@@ -585,4 +592,3 @@ acpi_table_init (void)
return 0;
}
......@@ -2,7 +2,7 @@
* toshiba_acpi.c - Toshiba Laptop ACPI Extras
*
*
* Copyright (C) 2002-2003 John Belmonte
* Copyright (C) 2002-2004 John Belmonte
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......@@ -33,7 +33,7 @@
*
*/
#define TOSHIBA_ACPI_VERSION "0.16"
#define TOSHIBA_ACPI_VERSION "0.17"
#define PROC_INTERFACE_VERSION 1
#include <linux/kernel.h>
......@@ -48,9 +48,15 @@ MODULE_AUTHOR("John Belmonte");
MODULE_DESCRIPTION("Toshiba Laptop ACPI Extras Driver");
MODULE_LICENSE("GPL");
#define MY_LOGPREFIX "toshiba_acpi: "
#define MY_ERR KERN_ERR MY_LOGPREFIX
#define MY_NOTICE KERN_NOTICE MY_LOGPREFIX
#define MY_INFO KERN_INFO MY_LOGPREFIX
/* Toshiba ACPI method paths */
#define METHOD_LCD_BRIGHTNESS "\\_SB_.PCI0.VGA_.LCD_._BCM"
#define METHOD_HCI "\\_SB_.VALD.GHCI"
#define METHOD_HCI_1 "\\_SB_.VALD.GHCI"
#define METHOD_HCI_2 "\\_SB_.VALZ.GHCI"
#define METHOD_VIDEO_OUT "\\_SB_.VALX.DSSX"
/* Toshiba HCI interface definitions
......@@ -120,6 +126,16 @@ snscanf(const char* str, int n, const char* format, ...)
/* acpi interface wrappers
*/
static int
is_valid_acpi_path(const char* methodName)
{
acpi_handle handle;
acpi_status status;
status = acpi_get_handle(0, (char*)methodName, &handle);
return !ACPI_FAILURE(status);
}
static int
write_acpi_int(const char* methodName, int val)
{
......@@ -154,6 +170,8 @@ read_acpi_int(const char* methodName, int* pVal)
}
#endif
static const char* method_hci /*= 0*/;
/* Perform a raw HCI call. Here we don't care about input or output buffer
* format.
*/
......@@ -177,7 +195,7 @@ hci_raw(const u32 in[HCI_WORDS], u32 out[HCI_WORDS])
results.length = sizeof(out_objs);
results.pointer = out_objs;
status = acpi_evaluate_object(0, METHOD_HCI, &params,
status = acpi_evaluate_object(0, (char*)method_hci, &params,
&results);
if ((status == AE_OK) && (out_objs->package.count <= HCI_WORDS)) {
for (i = 0; i < out_objs->package.count; ++i) {
......@@ -215,7 +233,7 @@ hci_read1(u32 reg, u32* out1, u32* result)
return status;
}
static struct proc_dir_entry* toshiba_proc_dir;
static struct proc_dir_entry* toshiba_proc_dir /*= 0*/;
static int force_fan;
static int last_key_event;
static int key_event_valid;
......@@ -270,7 +288,7 @@ read_lcd(char* p)
p += sprintf(p, "brightness_levels: %d\n",
HCI_LCD_BRIGHTNESS_LEVELS);
} else {
p += sprintf(p, "ERROR\n");
printk(MY_ERR "Error reading LCD brightness\n");
}
return p;
......@@ -310,7 +328,7 @@ read_video(char* p)
p += sprintf(p, "crt_out: %d\n", is_crt);
p += sprintf(p, "tv_out: %d\n", is_tv);
} else {
p += sprintf(p, "ERROR\n");
printk(MY_ERR "Error reading video out status\n");
}
return p;
......@@ -320,25 +338,31 @@ static unsigned long
write_video(const char* buffer, unsigned long count)
{
int value;
const char* buffer_end = buffer + count;
int remain = count;
int lcd_out = -1;
int crt_out = -1;
int tv_out = -1;
u32 hci_result;
int video_out;
/* scan expression. Multiple expressions may be delimited with ; */
do {
if (snscanf(buffer, count, " lcd_out : %i", &value) == 1)
/* scan expression. Multiple expressions may be delimited with ;
*
* NOTE: to keep scanning simple, invalid fields are ignored
*/
while (remain) {
if (snscanf(buffer, remain, " lcd_out : %i", &value) == 1)
lcd_out = value & 1;
else if (snscanf(buffer, count, " crt_out : %i", &value) == 1)
else if (snscanf(buffer, remain, " crt_out : %i", &value) == 1)
crt_out = value & 1;
else if (snscanf(buffer, count, " tv_out : %i", &value) == 1)
else if (snscanf(buffer, remain, " tv_out : %i", &value) == 1)
tv_out = value & 1;
/* advance to one character past the next ; */
do ++buffer;
while ((buffer < buffer_end) && (*(buffer-1) != ';'));
} while (buffer < buffer_end);
do {
++buffer;
--remain;
}
while (remain && *(buffer-1) != ';');
}
hci_read1(HCI_VIDEO_OUT, &video_out, &hci_result);
if (hci_result == HCI_SUCCESS) {
......@@ -353,6 +377,8 @@ write_video(const char* buffer, unsigned long count)
* video setting if something changed. */
if (new_video_out != video_out)
write_acpi_int(METHOD_VIDEO_OUT, new_video_out);
} else {
return -EFAULT;
}
return count;
......@@ -369,7 +395,7 @@ read_fan(char* p)
p += sprintf(p, "running: %d\n", (value > 0));
p += sprintf(p, "force_on: %d\n", force_fan);
} else {
p += sprintf(p, "ERROR\n");
printk(MY_ERR "Error reading fan status\n");
}
return p;
......@@ -413,8 +439,9 @@ read_keys(char* p)
* some machines where system events sporadically
* become disabled. */
hci_write1(HCI_SYSTEM_EVENT, 1, &hci_result);
printk(MY_NOTICE "Re-enabled hotkeys\n");
} else {
p += sprintf(p, "ERROR\n");
printk(MY_ERR "Error reading hotkey status\n");
goto end;
}
}
......@@ -465,7 +492,7 @@ ProcItem proc_items[] =
{ 0 , 0 , 0 },
};
static acpi_status
static acpi_status __init
add_device(void)
{
struct proc_dir_entry* proc;
......@@ -483,7 +510,7 @@ add_device(void)
return(AE_OK);
}
static acpi_status
static acpi_status __exit
remove_device(void)
{
ProcItem* item;
......@@ -497,15 +524,19 @@ static int __init
toshiba_acpi_init(void)
{
acpi_status status = AE_OK;
int value;
u32 hci_result;
/* simple device detection: try reading an HCI register */
hci_read1(HCI_LCD_BRIGHTNESS, &value, &hci_result);
if (hci_result != HCI_SUCCESS)
/* simple device detection: look for HCI method */
if (is_valid_acpi_path(METHOD_HCI_1))
method_hci = METHOD_HCI_1;
else if (is_valid_acpi_path(METHOD_HCI_2))
method_hci = METHOD_HCI_2;
else
return -ENODEV;
printk("Toshiba Laptop ACPI Extras version %s\n", TOSHIBA_ACPI_VERSION);
printk(MY_INFO "Toshiba Laptop ACPI Extras version %s\n",
TOSHIBA_ACPI_VERSION);
printk(MY_INFO " HCI method: %s\n", method_hci);
force_fan = 0;
key_event_valid = 0;
......
This diff is collapsed.
......@@ -32,6 +32,7 @@ typedef struct _drive_info_struct
int heads;
int sectors;
int cylinders;
int raid_level;
} drive_info_struct;
struct ctlr_info
......@@ -42,13 +43,13 @@ struct ctlr_info
char firm_ver[4]; // Firmware version
struct pci_dev *pdev;
__u32 board_id;
ulong vaddr;
__u32 paddr;
unsigned long vaddr;
unsigned long paddr;
unsigned long io_mem_addr;
unsigned long io_mem_length;
CfgTable_struct *cfgtable;
int intr;
int interrupts_enabled;
int max_commands;
int commands_outstanding;
int max_outstanding; /* Debug */
......@@ -78,6 +79,7 @@ struct ctlr_info
unsigned long *cmd_pool_bits;
int nr_allocs;
int nr_frees;
int busy_configuring;
// Disk structures we need to pass back
struct gendisk *gendisk[NWD];
......@@ -134,9 +136,11 @@ static void SA5_intr_mask(ctlr_info_t *h, unsigned long val)
{
if (val)
{ /* Turn interrupts on */
h->interrupts_enabled = 1;
writel(0, h->vaddr + SA5_REPLY_INTR_MASK_OFFSET);
} else /* Turn them off */
{
h->interrupts_enabled = 0;
writel( SA5_INTR_OFF,
h->vaddr + SA5_REPLY_INTR_MASK_OFFSET);
}
......@@ -150,9 +154,11 @@ static void SA5B_intr_mask(ctlr_info_t *h, unsigned long val)
{
if (val)
{ /* Turn interrupts on */
h->interrupts_enabled = 1;
writel(0, h->vaddr + SA5_REPLY_INTR_MASK_OFFSET);
} else /* Turn them off */
{
h->interrupts_enabled = 0;
writel( SA5B_INTR_OFF,
h->vaddr + SA5_REPLY_INTR_MASK_OFFSET);
}
......
......@@ -265,6 +265,7 @@ typedef struct _CfgTable_struct {
DWORD Reserved;
BYTE ServerName[16];
DWORD HeartBeat;
DWORD SCSI_Prefetch;
} CfgTable_struct;
#pragma pack()
#endif // CCISS_CMD_H
......@@ -20,7 +20,7 @@ ide-core-$(CONFIG_BLK_DEV_CMD640) += pci/cmd640.o
# Core IDE code - must come before legacy
ide-core-$(CONFIG_BLK_DEV_IDEPCI) += setup-pci.o
ide-core-$(CONFIG_BLK_DEV_IDEDMA_PCI) += ide-dma.o
ide-core-$(CONFIG_BLK_DEV_IDEDMA) += ide-dma.o
ide-core-$(CONFIG_BLK_DEV_IDE_TCQ) += ide-tcq.o
ide-core-$(CONFIG_PROC_FS) += ide-proc.o
ide-core-$(CONFIG_BLK_DEV_IDEPNP) += ide-pnp.o
......
......@@ -330,72 +330,6 @@ static int icside_set_speed(ide_drive_t *drive, u8 xfer_mode)
return on;
}
/*
* The following is a sick duplication from ide-dma.c ;(
*
* This should be defined in one place only.
*/
struct drive_list_entry {
const char * id_model;
const char * id_firmware;
};
static const struct drive_list_entry drive_whitelist [] = {
{ "Micropolis 2112A", "ALL" },
{ "CONNER CTMA 4000", "ALL" },
{ "CONNER CTT8000-A", "ALL" },
{ "ST34342A", "ALL" },
{ NULL, NULL }
};
static struct drive_list_entry drive_blacklist [] = {
{ "WDC AC11000H", "ALL" },
{ "WDC AC22100H", "ALL" },
{ "WDC AC32500H", "ALL" },
{ "WDC AC33100H", "ALL" },
{ "WDC AC31600H", "ALL" },
{ "WDC AC32100H", "24.09P07" },
{ "WDC AC23200L", "21.10N21" },
{ "Compaq CRD-8241B", "ALL" },
{ "CRD-8400B", "ALL" },
{ "CRD-8480B", "ALL" },
{ "CRD-8480C", "ALL" },
{ "CRD-8482B", "ALL" },
{ "CRD-84", "ALL" },
{ "SanDisk SDP3B", "ALL" },
{ "SanDisk SDP3B-64", "ALL" },
{ "SANYO CD-ROM CRD", "ALL" },
{ "HITACHI CDR-8", "ALL" },
{ "HITACHI CDR-8335", "ALL" },
{ "HITACHI CDR-8435", "ALL" },
{ "Toshiba CD-ROM XM-6202B", "ALL" },
{ "CD-532E-A", "ALL" },
{ "E-IDE CD-ROM CR-840", "ALL" },
{ "CD-ROM Drive/F5A", "ALL" },
{ "RICOH CD-R/RW MP7083A", "ALL" },
{ "WPI CDD-820", "ALL" },
{ "SAMSUNG CD-ROM SC-148C", "ALL" },
{ "SAMSUNG CD-ROM SC-148F", "ALL" },
{ "SAMSUNG CD-ROM SC", "ALL" },
{ "SanDisk SDP3B-64", "ALL" },
{ "SAMSUNG CD-ROM SN-124", "ALL" },
{ "PLEXTOR CD-R PX-W8432T", "ALL" },
{ "ATAPI CD-ROM DRIVE 40X MAXIMUM", "ALL" },
{ "_NEC DV5800A", "ALL" },
{ NULL, NULL }
};
static int
in_drive_list(struct hd_driveid *id, const struct drive_list_entry *drive_table)
{
for ( ; drive_table->id_model ; drive_table++)
if ((!strcmp(drive_table->id_model, id->model)) &&
((!strstr(drive_table->id_firmware, id->fw_rev)) ||
(!strcmp(drive_table->id_firmware, "ALL"))))
return 1;
return 0;
}
static int icside_dma_host_off(ide_drive_t *drive)
{
return 0;
......@@ -437,11 +371,8 @@ static int icside_dma_check(ide_drive_t *drive)
/*
* Consult the list of known "bad" drives
*/
if (in_drive_list(id, drive_blacklist)) {
printk("%s: Disabling DMA for %s (blacklisted)\n",
drive->name, id->model);
if (__ide_dma_bad_drive(drive))
goto out;
}
/*
* Enable DMA on any drive that has multiword DMA
......@@ -454,7 +385,7 @@ static int icside_dma_check(ide_drive_t *drive)
/*
* Consult the list of known "good" drives
*/
if (in_drive_list(id, drive_whitelist)) {
if (__ide_dma_good_drive(drive)) {
if (id->eide_dma_time > 150)
goto out;
xfer_mode = XFER_MW_DMA_1;
......@@ -954,18 +885,10 @@ icside_probe(struct expansion_card *ec, const struct ecard_id *id)
break;
}
if (ret == 0) {
if (ret == 0)
ecard_set_drvdata(ec, state);
/*
* this locks the driver in-core - remove this
* comment and the line below when we can
* safely remove interfaces.
*/
MOD_INC_USE_COUNT;
} else {
else
kfree(state);
}
out:
return ret;
}
......@@ -1048,14 +971,8 @@ static int __init icside_init(void)
return ecard_register_driver(&icside_driver);
}
static void __exit icside_exit(void)
{
ecard_remove_driver(&icside_driver);
}
MODULE_AUTHOR("Russell King <rmk@arm.linux.org.uk>");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("ICS IDE driver");
module_init(icside_init);
module_exit(icside_exit);
......@@ -33,14 +33,6 @@ rapide_probe(struct expansion_card *ec, const struct ecard_id *id)
if (ret)
ecard_release(ec);
/*
* this locks the driver in-core - remove this
* comment and the two lines below when we can
* safely remove interfaces.
*/
else
MOD_INC_USE_COUNT;
return ret;
}
......@@ -68,13 +60,7 @@ static int __init rapide_init(void)
return ecard_register_driver(&rapide_driver);
}
static void __exit rapide_exit(void)
{
ecard_remove_driver(&rapide_driver);
}
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Yellowstone RAPIDE driver");
module_init(rapide_init);
module_exit(rapide_exit);
......@@ -2860,6 +2860,10 @@ int ide_cdrom_open_real (struct cdrom_device_info *cdi, int purpose)
static
void ide_cdrom_release_real (struct cdrom_device_info *cdi)
{
ide_drive_t *drive = cdi->handle;
if (!cdi->use_count)
CDROM_STATE_FLAGS(drive)->toc_valid = 0;
}
......
......@@ -90,11 +90,11 @@
#include <asm/irq.h>
struct drive_list_entry {
char * id_model;
char * id_firmware;
const char *id_model;
const char *id_firmware;
};
struct drive_list_entry drive_whitelist [] = {
static const struct drive_list_entry drive_whitelist [] = {
{ "Micropolis 2112A" , "ALL" },
{ "CONNER CTMA 4000" , "ALL" },
......@@ -103,7 +103,7 @@ struct drive_list_entry drive_whitelist [] = {
{ 0 , 0 }
};
struct drive_list_entry drive_blacklist [] = {
static const struct drive_list_entry drive_blacklist [] = {
{ "WDC AC11000H" , "ALL" },
{ "WDC AC22100H" , "ALL" },
......@@ -151,7 +151,7 @@ struct drive_list_entry drive_blacklist [] = {
* Returns 1 if the drive is found in the table.
*/
static int in_drive_list(struct hd_driveid *id, struct drive_list_entry * drive_table)
static int in_drive_list(struct hd_driveid *id, const struct drive_list_entry *drive_table)
{
for ( ; drive_table->id_model ; drive_table++)
if ((!strcmp(drive_table->id_model, id->model)) &&
......@@ -161,6 +161,7 @@ static int in_drive_list(struct hd_driveid *id, struct drive_list_entry * drive_
return 0;
}
#ifdef CONFIG_BLK_DEV_IDEDMA_PCI
/**
* ide_dma_intr - IDE DMA interrupt handler
* @drive: the drive the interrupt is for
......@@ -764,6 +765,7 @@ int __ide_dma_test_irq (ide_drive_t *drive)
}
EXPORT_SYMBOL(__ide_dma_test_irq);
#endif /* CONFIG_BLK_DEV_IDEDMA_PCI */
int __ide_dma_bad_drive (ide_drive_t *drive)
{
......@@ -771,8 +773,9 @@ int __ide_dma_bad_drive (ide_drive_t *drive)
int blacklist = in_drive_list(id, drive_blacklist);
if (blacklist) {
printk(KERN_WARNING "%s: Disabling (U)DMA for %s\n", drive->name, id->model);
return(blacklist);
printk(KERN_WARNING "%s: Disabling (U)DMA for %s (blacklisted)\n",
drive->name, id->model);
return blacklist;
}
return 0;
}
......@@ -787,6 +790,7 @@ int __ide_dma_good_drive (ide_drive_t *drive)
EXPORT_SYMBOL(__ide_dma_good_drive);
#ifdef CONFIG_BLK_DEV_IDEDMA_PCI
/*
* Used for HOST FIFO counters for VDMA
* PIO over DMA, effective ATA-Bridge operator.
......@@ -1104,3 +1108,4 @@ void ide_setup_dma (ide_hwif_t *hwif, unsigned long dma_base, unsigned int num_p
}
EXPORT_SYMBOL_GPL(ide_setup_dma);
#endif /* CONFIG_BLK_DEV_IDEDMA_PCI */
......@@ -14,7 +14,6 @@
static int __init ide_generic_init(void)
{
MOD_INC_USE_COUNT;
if (ide_hwifs[0].io_ports[IDE_DATA_OFFSET])
ide_get_lock(NULL, NULL); /* for atari only */
......
......@@ -299,7 +299,9 @@ static void __init init_ide_data (void)
init_hwif_data(index);
/* Add default hw interfaces */
initializing = 1;
ide_init_default_hwifs();
initializing = 0;
idebus_parameter = 0;
system_bus_speed = 0;
......
......@@ -530,7 +530,6 @@ static int __devinit aec62xx_init_one(struct pci_dev *dev, const struct pci_devi
if (dev->device != d->device)
BUG();
d->init_setup(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -554,13 +553,7 @@ static int aec62xx_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void aec62xx_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(aec62xx_ide_init);
module_exit(aec62xx_ide_exit);
MODULE_AUTHOR("Andre Hedrick");
MODULE_DESCRIPTION("PCI driver module for ARTOP AEC62xx IDE");
......
......@@ -868,7 +868,6 @@ static int __devinit alim15x3_init_one(struct pci_dev *dev, const struct pci_dev
d->init_hwif = init_hwif_common_ali15x3;
#endif /* CONFIG_SPARC64 */
ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -889,13 +888,7 @@ static int ali15x3_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void ali15x3_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(ali15x3_ide_init);
module_exit(ali15x3_ide_exit);
MODULE_AUTHOR("Michael Aubry, Andrzej Krzysztofowicz, CJ, Andre Hedrick, Alan Cox");
MODULE_DESCRIPTION("PCI driver module for ALi 15x3 IDE");
......
......@@ -448,7 +448,6 @@ static int __devinit amd74xx_probe(struct pci_dev *dev, const struct pci_device_
if (dev->device != amd_chipset->device) BUG();
if (dev->device != amd_config->id) BUG();
ide_setup_pci_device(dev, amd_chipset);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -480,13 +479,7 @@ static int amd74xx_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void amd74xx_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(amd74xx_ide_init);
module_exit(amd74xx_ide_exit);
MODULE_AUTHOR("Vojtech Pavlik");
MODULE_DESCRIPTION("AMD PCI IDE driver");
......
......@@ -752,7 +752,6 @@ static int __devinit cmd64x_init_one(struct pci_dev *dev, const struct pci_devic
if (dev->device != d->device)
BUG();
ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -775,13 +774,7 @@ static int cmd64x_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void cmd64x_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(cmd64x_ide_init);
module_exit(cmd64x_ide_exit);
MODULE_AUTHOR("Eddie Dost, David Miller, Andre Hedrick");
MODULE_DESCRIPTION("PCI driver module for CMD64x IDE");
......
......@@ -291,7 +291,6 @@ static int __devinit cs5520_init_one(struct pci_dev *dev, const struct pci_devic
probe_hwif_init(&ide_hwifs[index.b.low]);
if((index.b.high & 0xf0) != 0xf0)
probe_hwif_init(&ide_hwifs[index.b.high]);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -312,13 +311,7 @@ static int cs5520_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void cs5520_ide_exit(void)
{
return ide_pci_unregister_driver(&driver);
}
module_init(cs5520_ide_init);
module_exit(cs5520_ide_exit);
MODULE_AUTHOR("Alan Cox");
MODULE_DESCRIPTION("PCI driver module for Cyrix 5510/5520 IDE");
......
......@@ -413,7 +413,6 @@ static int __devinit cs5530_init_one(struct pci_dev *dev, const struct pci_devic
if (dev->device != d->device)
BUG();
ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -433,13 +432,7 @@ static int cs5530_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void cs5530_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(cs5530_ide_init);
module_exit(cs5530_ide_exit);
MODULE_AUTHOR("Mark Lord");
MODULE_DESCRIPTION("PCI driver module for Cyrix/NS 5530 IDE");
......
......@@ -434,7 +434,6 @@ static int __devinit cy82c693_init_one(struct pci_dev *dev, const struct pci_dev
dev2 = pci_find_slot(dev->bus->number, dev->devfn + 1);
ide_setup_pci_devices(dev, dev2, d);
}
MOD_INC_USE_COUNT;
return 0;
}
......@@ -454,13 +453,7 @@ static int cy82c693_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void cy82c693_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(cy82c693_ide_init);
module_exit(cy82c693_ide_exit);
MODULE_AUTHOR("Andreas Krebs, Andre Hedrick");
MODULE_DESCRIPTION("PCI driver module for the Cypress CY82C693 IDE");
......
......@@ -121,7 +121,6 @@ static int __devinit generic_init_one(struct pci_dev *dev, const struct pci_devi
return 1;
}
ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -150,13 +149,7 @@ static int generic_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void generic_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(generic_ide_init);
module_exit(generic_ide_exit);
MODULE_AUTHOR("Andre Hedrick");
MODULE_DESCRIPTION("PCI driver module for generic PCI IDE");
......
......@@ -331,7 +331,6 @@ static int __devinit hpt34x_init_one(struct pci_dev *dev, const struct pci_devic
d->bootable = (pcicmd & PCI_COMMAND_MEMORY) ? OFF_BOARD : NEVER_BOARD;
ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -351,13 +350,7 @@ static int hpt34x_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void hpt34x_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(hpt34x_ide_init);
module_exit(hpt34x_ide_exit);
MODULE_AUTHOR("Andre Hedrick");
MODULE_DESCRIPTION("PCI driver module for Highpoint 34x IDE");
......
......@@ -1220,7 +1220,6 @@ static int __devinit hpt366_init_one(struct pci_dev *dev, const struct pci_devic
if (dev->device != d->device)
BUG();
d->init_setup(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -1244,13 +1243,7 @@ static int hpt366_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void hpt366_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(hpt366_ide_init);
module_exit(hpt366_ide_exit);
MODULE_AUTHOR("Andre Hedrick");
MODULE_DESCRIPTION("PCI driver module for Highpoint HPT366 IDE");
......
......@@ -295,7 +295,6 @@ static int __devinit it8172_init_one(struct pci_dev *dev, const struct pci_devic
(!((dev->class >> 8) == PCI_CLASS_STORAGE_IDE))))
return 1; /* IT8172 is more than only a IDE controller */
ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -315,13 +314,7 @@ static int it8172_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void it8172_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(it8172_ide_init);
module_exit(it8172_ide_exit);
MODULE_AUTHOR("SteveL@mvista.com");
MODULE_DESCRIPTION("PCI driver module for ITE 8172 IDE");
......
......@@ -198,7 +198,7 @@ static void __init init_hwif_ns87415 (ide_hwif_t *hwif)
}
if (!using_inta)
hwif->irq = hwif->channel ? 15 : 14; /* legacy mode */
hwif->irq = ide_default_irq(hwif->io_ports[IDE_DATA_OFFSET]);
else if (!hwif->irq && hwif->mate && hwif->mate->irq)
hwif->irq = hwif->mate->irq; /* share IRQ with mate */
......@@ -225,7 +225,6 @@ static int __devinit ns87415_init_one(struct pci_dev *dev, const struct pci_devi
if (dev->device != d->device)
BUG();
ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -245,13 +244,7 @@ static int ns87415_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void ns87415_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(ns87415_ide_init);
module_exit(ns87415_ide_exit);
MODULE_AUTHOR("Mark Lord, Eddie Dost, Andre Hedrick");
MODULE_DESCRIPTION("PCI driver module for NS87415 IDE");
......
......@@ -361,7 +361,6 @@ static int __devinit opti621_init_one(struct pci_dev *dev, const struct pci_devi
if (dev->device != d->device)
BUG();
ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -382,13 +381,7 @@ static int opti621_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void opti621_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(opti621_ide_init);
module_exit(opti621_ide_exit);
MODULE_AUTHOR("Jaromir Koutek, Jan Harkes, Mark Lord");
MODULE_DESCRIPTION("PCI driver module for Opti621 IDE");
......
......@@ -675,7 +675,6 @@ static int __devinit pdc202new_init_one(struct pci_dev *dev, const struct pci_de
if (dev->device != d->device)
BUG();
d->init_setup(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -701,13 +700,7 @@ static int pdc202new_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void pdc202new_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(pdc202new_ide_init);
module_exit(pdc202new_ide_exit);
MODULE_AUTHOR("Andre Hedrick, Frank Tiernan");
MODULE_DESCRIPTION("PCI driver module for Promise PDC20268 and higher");
......
......@@ -913,7 +913,6 @@ static int __devinit pdc202xx_init_one(struct pci_dev *dev, const struct pci_dev
if (dev->device != d->device)
BUG();
d->init_setup(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -937,13 +936,7 @@ static int pdc202xx_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void pdc202xx_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(pdc202xx_ide_init);
module_exit(pdc202xx_ide_exit);
MODULE_AUTHOR("Andre Hedrick, Frank Tiernan");
MODULE_DESCRIPTION("PCI driver module for older Promise IDE");
......
......@@ -743,7 +743,6 @@ static int __devinit piix_init_one(struct pci_dev *dev, const struct pci_device_
if (dev->device != d->device)
BUG();
d->init_setup(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -815,13 +814,7 @@ static int piix_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void piix_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(piix_ide_init);
module_exit(piix_ide_exit);
MODULE_AUTHOR("Andre Hedrick, Andrzej Krzysztofowicz");
MODULE_DESCRIPTION("PCI driver module for Intel PIIX IDE");
......
......@@ -62,7 +62,6 @@ static int __devinit rz1000_init_one(struct pci_dev *dev, const struct pci_devic
if (dev->device != d->device)
BUG();
ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -83,13 +82,7 @@ static int rz1000_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void rz1000_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(rz1000_ide_init);
module_exit(rz1000_ide_exit);
MODULE_AUTHOR("Andre Hedrick");
MODULE_DESCRIPTION("PCI driver module for RZ1000 IDE");
......
......@@ -554,7 +554,6 @@ static int __devinit sc1200_init_one(struct pci_dev *dev, const struct pci_devic
if (dev->device != d->device)
BUG();
ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -576,13 +575,7 @@ static int sc1200_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void sc1200_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(sc1200_ide_init);
module_exit(sc1200_ide_exit);
MODULE_AUTHOR("Mark Lord");
MODULE_DESCRIPTION("PCI driver module for NS SC1200 IDE");
......
......@@ -801,7 +801,6 @@ static int __devinit svwks_init_one(struct pci_dev *dev, const struct pci_device
if (dev->device != d->device)
BUG();
d->init_setup(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -828,13 +827,7 @@ static int svwks_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void svwks_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(svwks_ide_init);
module_exit(svwks_ide_exit);
MODULE_AUTHOR("Michael Aubry. Andrzej Krzysztofowicz, Andre Hedrick");
MODULE_DESCRIPTION("PCI driver module for Serverworks OSB4/CSB5/CSB6 IDE");
......
......@@ -794,8 +794,6 @@ sgiioc4_init_one(struct pci_dev *dev, const struct pci_device_id *id)
if (pci_init_sgiioc4(dev, d))
return 0;
MOD_INC_USE_COUNT;
return 0;
}
......@@ -817,14 +815,7 @@ sgiioc4_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void
sgiioc4_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(sgiioc4_ide_init);
module_exit(sgiioc4_ide_exit);
MODULE_AUTHOR("Aniket Malatpure - Silicon Graphics Inc. (SGI)");
MODULE_DESCRIPTION("PCI driver module for SGI IOC4 Base-IO Card");
......
......@@ -1168,7 +1168,6 @@ static int __devinit siimage_init_one(struct pci_dev *dev, const struct pci_devi
if (dev->device != d->device)
BUG();
ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -1190,13 +1189,7 @@ static int siimage_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void siimage_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(siimage_ide_init);
module_exit(siimage_ide_exit);
MODULE_AUTHOR("Andre Hedrick, Alan Cox");
MODULE_DESCRIPTION("PCI driver module for SiI IDE");
......
......@@ -953,7 +953,6 @@ static int __devinit sis5513_init_one(struct pci_dev *dev, const struct pci_devi
if (dev->device != d->device)
BUG();
ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -973,13 +972,7 @@ static int sis5513_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void sis5513_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(sis5513_ide_init);
module_exit(sis5513_ide_exit);
MODULE_AUTHOR("Lionel Bouton, L C Chang, Andre Hedrick, Vojtech Pavlik");
MODULE_DESCRIPTION("PCI driver module for SIS IDE");
......
......@@ -506,7 +506,6 @@ static int __devinit sl82c105_init_one(struct pci_dev *dev, const struct pci_dev
if (dev->device != d->device)
BUG();
ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -526,13 +525,7 @@ static int sl82c105_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void sl82c105_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(sl82c105_ide_init);
module_exit(sl82c105_ide_exit);
MODULE_DESCRIPTION("PCI driver module for W82C105 IDE");
MODULE_LICENSE("GPL");
......@@ -373,7 +373,6 @@ static int __devinit slc90e66_init_one(struct pci_dev *dev, const struct pci_dev
if (dev->device != d->device)
BUG();
ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -393,13 +392,7 @@ static int slc90e66_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void slc90e66_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(slc90e66_ide_init);
module_exit(slc90e66_ide_exit);
MODULE_AUTHOR("Andre Hedrick");
MODULE_DESCRIPTION("PCI driver module for SLC90E66 IDE");
......
......@@ -226,7 +226,6 @@ static int __devinit triflex_init_one(struct pci_dev *dev,
ide_setup_pci_device(dev, d);
triflex_dev = dev;
MOD_INC_USE_COUNT;
return 0;
}
......@@ -242,13 +241,7 @@ static int triflex_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void triflex_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(triflex_ide_init);
module_exit(triflex_ide_exit);
MODULE_AUTHOR("Torben Mathiasen");
MODULE_DESCRIPTION("PCI driver module for Compaq Triflex IDE");
......
......@@ -403,7 +403,6 @@ static int __devinit trm290_init_one(struct pci_dev *dev, const struct pci_devic
if (dev->device != d->device)
BUG();
ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -423,13 +422,7 @@ static int trm290_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void trm290_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(trm290_ide_init);
module_exit(trm290_ide_exit);
MODULE_AUTHOR("Mark Lord");
MODULE_DESCRIPTION("PCI driver module for Tekram TRM290 IDE");
......
......@@ -615,7 +615,6 @@ static int __devinit via_init_one(struct pci_dev *dev, const struct pci_device_i
if (dev->device != d->device)
BUG();
ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0;
}
......@@ -636,13 +635,7 @@ static int via_ide_init(void)
return ide_pci_register_driver(&driver);
}
static void via_ide_exit(void)
{
ide_pci_unregister_driver(&driver);
}
module_init(via_ide_init);
module_exit(via_ide_exit);
MODULE_AUTHOR("Vojtech Pavlik, Michel Aubry, Jeff Garzik, Andre Hedrick");
MODULE_DESCRIPTION("PCI driver module for VIA IDE");
......
......@@ -1155,6 +1155,23 @@ config SCSI_QLOGIC_ISP
To compile this driver as a module, choose M here: the
module will be called qlogicisp.
config SCSI_QLOGIC_FC
tristate "Qlogic ISP FC SCSI support"
depends on PCI && SCSI
help
This is a driver for the QLogic ISP2100 SCSI-FCP host adapter.
To compile this driver as a module, choose M here: the
module will be called qlogicfc.
config SCSI_QLOGIC_FC_FIRMWARE
bool "Include loadable firmware in driver"
depends on SCSI_QLOGIC_FC
help
Say Y to include ISP2X00 Fabric Initiator/Target Firmware, with
expanded LUN addressing and FcTape (FCP-2) support, in the
qlogicfc driver. This is required on some platforms.
config SCSI_QLOGIC_1280
tristate "Qlogic QLA 1280 SCSI support"
depends on PCI && SCSI
......
......@@ -69,6 +69,7 @@ obj-$(CONFIG_SCSI_NCR_Q720) += NCR_Q720_mod.o
obj-$(CONFIG_SCSI_SYM53C416) += sym53c416.o
obj-$(CONFIG_SCSI_QLOGIC_FAS) += qlogicfas.o
obj-$(CONFIG_SCSI_QLOGIC_ISP) += qlogicisp.o
obj-$(CONFIG_SCSI_QLOGIC_FC) += qlogicfc.o
obj-$(CONFIG_SCSI_QLOGIC_1280) += qla1280.o
obj-$(CONFIG_SCSI_QLA2XXX) += qla2xxx/
obj-$(CONFIG_SCSI_PAS16) += pas16.o
......
......@@ -1153,7 +1153,7 @@ static int __imm_attach(struct parport *pb)
if (!dev)
return -ENOMEM;
memset(dev, 0, sizeof(dev));
memset(dev, 0, sizeof(imm_struct));
dev->base = -1;
dev->mode = IMM_AUTODETECT;
......@@ -1208,19 +1208,10 @@ static int __imm_attach(struct parport *pb)
goto out1;
/* now the glue ... */
switch (dev->mode) {
case IMM_NIBBLE:
case IMM_PS2:
if (dev->mode == IMM_NIBBLE || dev->mode == IMM_PS2)
ports = 3;
break;
case IMM_EPP_8:
case IMM_EPP_16:
case IMM_EPP_32:
else
ports = 8;
break;
default: /* Never gets here */
BUG();
}
INIT_WORK(&dev->imm_tq, imm_interrupt, dev);
......
......@@ -1010,7 +1010,7 @@ static int __ppa_attach(struct parport *pb)
dev = kmalloc(sizeof(ppa_struct), GFP_KERNEL);
if (!dev)
return -ENOMEM;
memset(dev, 0, sizeof(dev));
memset(dev, 0, sizeof(ppa_struct));
dev->base = -1;
dev->mode = PPA_AUTODETECT;
dev->recon_tmo = PPA_RECON_TMO;
......@@ -1069,21 +1069,10 @@ static int __ppa_attach(struct parport *pb)
goto out1;
/* now the glue ... */
switch (dev->mode) {
case PPA_NIBBLE:
ports = 3;
break;
case PPA_PS2:
if (dev->mode == PPA_NIBBLE || dev->mode == PPA_PS2)
ports = 3;
break;
case PPA_EPP_8:
case PPA_EPP_16:
case PPA_EPP_32:
else
ports = 8;
break;
default: /* Never gets here */
BUG();
}
INIT_WORK(&dev->ppa_tq, ppa_interrupt, dev);
......
config SCSI_QLA2XXX_CONFIG
config SCSI_QLA2XXX
tristate
default (SCSI && PCI)
depends on SCSI && PCI
config SCSI_QLA21XX
tristate "QLogic ISP2100 host adapter family support"
depends on SCSI_QLA2XXX_CONFIG
depends on SCSI_QLA2XXX
---help---
This driver supports the QLogic 21xx (ISP2100) host adapter family.
config SCSI_QLA22XX
tristate "QLogic ISP2200 host adapter family support"
depends on SCSI_QLA2XXX_CONFIG
depends on SCSI_QLA2XXX
---help---
This driver supports the QLogic 22xx (ISP2200) host adapter family.
config SCSI_QLA2300
tristate "QLogic ISP2300 host adapter family support"
depends on SCSI_QLA2XXX_CONFIG
depends on SCSI_QLA2XXX
---help---
This driver supports the QLogic 2300 (ISP2300, and ISP2312) host
adapter family.
config SCSI_QLA2322
tristate "QLogic ISP2322 host adapter family support"
depends on SCSI_QLA2XXX_CONFIG
depends on SCSI_QLA2XXX
---help---
This driver supports the QLogic 2322 (ISP2322) host adapter family.
config SCSI_QLA6312
tristate "QLogic ISP6312 host adapter family support"
depends on SCSI_QLA2XXX_CONFIG
depends on SCSI_QLA2XXX
---help---
This driver supports the QLogic 6312 (ISP6312) host adapter family.
config SCSI_QLA6322
tristate "QLogic ISP6322 host adapter family support"
depends on SCSI_QLA2XXX_CONFIG
depends on SCSI_QLA2XXX
---help---
This driver supports the QLogic 6322 (ISP6322) host adapter family.
......@@ -62,7 +62,7 @@ qla2300_fw_dump(scsi_qla_host_t *ha, int hardware_locked)
ha->fw_dump_order);
if (ha->fw_dump == NULL) {
qla_printk(KERN_WARNING, ha,
"Unable to allocated memory for firmware dump (%d/%d).\n",
"Unable to allocated memory for firmware dump (%d/%Zd).\n",
ha->fw_dump_order, sizeof(struct qla2300_fw_dump));
return;
}
......@@ -598,7 +598,7 @@ qla2100_fw_dump(scsi_qla_host_t *ha, int hardware_locked)
ha->fw_dump_order);
if (ha->fw_dump == NULL) {
qla_printk(KERN_WARNING, ha,
"Unable to allocated memory for firmware dump (%d/%d).\n",
"Unable to allocated memory for firmware dump (%d/%Zd).\n",
ha->fw_dump_order, sizeof(struct qla2100_fw_dump));
return;
}
......
......@@ -2382,8 +2382,9 @@ qla2x00_proc_info(struct Scsi_Host *shost, char *buffer,
ha->brd_info->isp_name, ('A' + tmp_sn/100000), (tmp_sn%100000));
copy_info(&info,
"Request Queue = 0x%p, Response Queue = 0x%p\n",
(void *)ha->request_dma, (void *)ha->response_dma);
"Request Queue = 0x%llx, Response Queue = 0x%llx\n",
(unsigned long long)ha->request_dma,
(unsigned long long)ha->response_dma);
copy_info(&info,
"Request Queue count = %ld, Response Queue count = %ld\n",
......
This diff is collapsed.
/*
* QLogic ISP2x00 SCSI-FCP
*
* Written by Erik H. Moe, ehm@cris.com
* Copyright 1995, Erik H. Moe
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2, or (at your option) any
* later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*/
/* Renamed and updated to 1.3.x by Michael Griffith <grif@cs.ucr.edu> */
/* This is a version of the isp1020 driver which was modified by
* Chris Loveland <cwl@iol.unh.edu> to support the isp2x00
*/
/*
* $Date: 1995/09/22 02:32:56 $
* $Revision: 0.5 $
*
* $Log: isp1020.h,v $
* Revision 0.5 1995/09/22 02:32:56 root
* do auto request sense
*
* Revision 0.4 1995/08/07 04:48:28 root
* supply firmware with driver.
* numerous bug fixes/general cleanup of code.
*
* Revision 0.3 1995/07/16 16:17:16 root
* added reset/abort code.
*
* Revision 0.2 1995/06/29 03:19:43 root
* fixed biosparam.
* added queue protocol.
*
* Revision 0.1 1995/06/25 01:56:13 root
* Initial release.
*
*/
#ifndef _QLOGICFC_H
#define _QLOGICFC_H
/*
* With the qlogic interface, every queue slot can hold a SCSI
* command with up to 2 scatter/gather entries. If we need more
* than 2 entries, continuation entries can be used that hold
* another 5 entries each. Unlike for other drivers, this means
* that the maximum number of scatter/gather entries we can
* support at any given time is a function of the number of queue
* slots available. That is, host->can_queue and host->sg_tablesize
* are dynamic and _not_ independent. This all works fine because
* requests are queued serially and the scatter/gather limit is
* determined for each queue request anew.
*/
#define DATASEGS_PER_COMMAND 2
#define DATASEGS_PER_CONT 5
#define QLOGICFC_REQ_QUEUE_LEN 255 /* must be power of two - 1 */
#define QLOGICFC_MAX_SG(ql) (DATASEGS_PER_COMMAND + (((ql) > 0) ? DATASEGS_PER_CONT*((ql) - 1) : 0))
#define QLOGICFC_CMD_PER_LUN 8
int isp2x00_detect(Scsi_Host_Template *);
int isp2x00_release(struct Scsi_Host *);
const char * isp2x00_info(struct Scsi_Host *);
int isp2x00_queuecommand(Scsi_Cmnd *, void (* done)(Scsi_Cmnd *));
int isp2x00_abort(Scsi_Cmnd *);
int isp2x00_reset(Scsi_Cmnd *, unsigned int);
int isp2x00_biosparam(struct scsi_device *, struct block_device *,
sector_t, int[]);
#endif /* _QLOGICFC_H */
This diff is collapsed.
......@@ -114,6 +114,7 @@ enum radeon_chips {
RADEON_Ie,
RADEON_If,
RADEON_Ig,
RADEON_Ya,
RADEON_Yd,
RADEON_Ld,
RADEON_Le,
......@@ -208,6 +209,7 @@ static struct pci_device_id radeonfb_pci_table[] = {
{ PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RADEON_Ie, PCI_ANY_ID, PCI_ANY_ID, 0, 0, RADEON_Ie},
{ PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RADEON_If, PCI_ANY_ID, PCI_ANY_ID, 0, 0, RADEON_If},
{ PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RADEON_Ig, PCI_ANY_ID, PCI_ANY_ID, 0, 0, RADEON_Ig},
{ PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RADEON_Ya, PCI_ANY_ID, PCI_ANY_ID, 0, 0, RADEON_Ya},
{ PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RADEON_Yd, PCI_ANY_ID, PCI_ANY_ID, 0, 0, RADEON_Yd},
{ PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RADEON_Ld, PCI_ANY_ID, PCI_ANY_ID, 0, 0, RADEON_Ld},
{ PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RADEON_Le, PCI_ANY_ID, PCI_ANY_ID, 0, 0, RADEON_Le},
......
......@@ -9,8 +9,6 @@
#define ACPI_PROCESSOR_MAX_C2_LATENCY 100
#define ACPI_PROCESSOR_MAX_C3_LATENCY 1000
#define ACPI_PROCESSOR_MAX_PERFORMANCE 8
#define ACPI_PROCESSOR_MAX_THROTTLING 16
#define ACPI_PROCESSOR_MAX_THROTTLE 250 /* 25% */
#define ACPI_PROCESSOR_MAX_DUTY_WIDTH 4
......@@ -67,20 +65,22 @@ struct acpi_processor_px {
acpi_integer status; /* success indicator */
};
#define ACPI_PDC_REVISION_ID 0x1
struct acpi_processor_performance {
int state;
int platform_limit;
u16 control_register;
u16 status_register;
u8 control_register_bit_width;
u8 status_register_bit_width;
int state_count;
struct acpi_processor_px states[ACPI_PROCESSOR_MAX_PERFORMANCE];
struct cpufreq_frequency_table freq_table[ACPI_PROCESSOR_MAX_PERFORMANCE];
struct acpi_processor *pr;
unsigned int state;
unsigned int platform_limit;
struct acpi_pct_register control_register;
struct acpi_pct_register status_register;
unsigned int state_count;
struct acpi_processor_px *states;
/* the _PDC objects passed by the driver, if any */
struct acpi_object_list *pdc;
};
/* Throttling Control */
struct acpi_processor_tx {
......@@ -133,11 +133,11 @@ struct acpi_processor {
struct acpi_processor_limit limit;
};
extern int acpi_processor_get_platform_limit (
struct acpi_processor* pr);
extern int acpi_processor_register_performance (
struct acpi_processor_performance * performance,
struct acpi_processor ** pr,
unsigned int cpu);
extern void acpi_processor_unregister_performance (
struct acpi_processor_performance * performance,
unsigned int cpu);
#endif
......@@ -2,11 +2,12 @@
#define _ALPHA_BYTEORDER_H
#include <asm/types.h>
#include <linux/compiler.h>
#include <asm/compiler.h>
#ifdef __GNUC__
static __inline __u32 __attribute_const__ __arch__swab32(__u32 x)
static __inline __attribute_const__ __u32 __arch__swab32(__u32 x)
{
/*
* Unfortunately, we can't use the 6 instruction sequence
......
......@@ -52,6 +52,9 @@
#ifndef __ASSEMBLY__
#ifdef CONFIG_IOSAPIC
#define NR_IOSAPICS 256
extern void __init iosapic_system_init (int pcat_compat);
extern void __init iosapic_init (unsigned long address,
unsigned int gsi_base);
......
......@@ -2,8 +2,8 @@
* include/asm-v850/delay.h -- Delay routines, using a pre-computed
* "loops_per_second" value
*
* Copyright (C) 2001 NEC Corporation
* Copyright (C) 2001 Miles Bader <miles@gnu.org>
* Copyright (C) 2001,03 NEC Corporation
* Copyright (C) 2001,03 Miles Bader <miles@gnu.org>
* Copyright (C) 1994 Hamish Macdonald
*
* This file is subject to the terms and conditions of the GNU General
......@@ -18,8 +18,9 @@
extern __inline__ void __delay(unsigned long loops)
{
__asm__ __volatile__ ("1: add -1, %0; bnz 1b"
: "=r" (loops) : "0" (loops));
if (loops)
__asm__ __volatile__ ("1: add -1, %0; bnz 1b"
: "=r" (loops) : "0" (loops));
}
/*
......
/*
* include/asm-v850/module.h -- Architecture-specific module hooks
*
* Copyright (C) 2001,02,03 NEC Corporation
* Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org>
* Copyright (C) 2001,02,03,04 NEC Corporation
* Copyright (C) 2001,02,03,04 Miles Bader <miles@gnu.org>
* Copyright (C) 2001,03 Rusty Russell
*
* This file is subject to the terms and conditions of the GNU General
......@@ -50,5 +50,13 @@ search_extable(const struct exception_table_entry *first,
{
return 0;
}
#define ARCH_HAS_SEARCH_EXTABLE
static inline void
sort_extable(struct exception_table_entry *start,
struct exception_table_entry *finish)
{
/* nada */
}
#define ARCH_HAS_SORT_EXTABLE
#endif /* __V850_MODULE_H__ */
......@@ -355,8 +355,8 @@ int acpi_numa_init (void);
int acpi_table_init (void);
int acpi_table_parse (enum acpi_table_id id, acpi_table_handler handler);
int acpi_get_table_header_early (enum acpi_table_id id, struct acpi_table_header **header);
int acpi_table_parse_madt (enum acpi_madt_entry_id id, acpi_madt_entry_handler handler);
int acpi_table_parse_srat (enum acpi_srat_entry_id id, acpi_madt_entry_handler handler);
int acpi_table_parse_madt (enum acpi_madt_entry_id id, acpi_madt_entry_handler handler, unsigned int max_entries);
int acpi_table_parse_srat (enum acpi_srat_entry_id id, acpi_madt_entry_handler handler, unsigned int max_entries);
void acpi_table_print (struct acpi_table_header *header, unsigned long phys_addr);
void acpi_table_print_madt_entry (acpi_table_entry_header *madt);
void acpi_table_print_srat_entry (acpi_table_entry_header *srat);
......
This diff is collapsed.
......@@ -291,6 +291,7 @@
#define PCI_DEVICE_ID_ATI_RADEON_Ig 0x4967
/* Radeon RV280 (9200) */
#define PCI_DEVICE_ID_ATI_RADEON_Y_ 0x5960
#define PCI_DEVICE_ID_ATI_RADEON_Ya 0x5961
#define PCI_DEVICE_ID_ATI_RADEON_Yd 0x5964
/* Radeon R300 (9500) */
#define PCI_DEVICE_ID_ATI_RADEON_AD 0x4144
......
This diff is collapsed.
This diff is collapsed.
......@@ -406,7 +406,8 @@ static int vx2_load_dsp(vx_core_t *vx, const snd_hwdep_dsp_image_t *dsp)
int err;
if (*dsp->name)
snd_printdd("loading dsp [%d] %s, size = %d\n", dsp->index, dsp->name, dsp->length);
snd_printdd("loading dsp [%d] %s, size = %Zd\n",
dsp->index, dsp->name, dsp->length);
switch (dsp->index) {
case 0:
/* xilinx image */
......
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