Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
64706886
Commit
64706886
authored
Mar 31, 2004
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://linux-acpi.bkbits.net/linux-acpi-release-2.6.5
into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents
4a10600a
8660e3d9
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
37 additions
and
29 deletions
+37
-29
arch/i386/kernel/acpi/boot.c
arch/i386/kernel/acpi/boot.c
+4
-0
arch/i386/kernel/io_apic.c
arch/i386/kernel/io_apic.c
+5
-1
arch/x86_64/kernel/io_apic.c
arch/x86_64/kernel/io_apic.c
+5
-1
drivers/acpi/bus.c
drivers/acpi/bus.c
+5
-0
drivers/acpi/pci_irq.c
drivers/acpi/pci_irq.c
+17
-14
include/asm-i386/acpi.h
include/asm-i386/acpi.h
+0
-9
include/asm-i386/system.h
include/asm-i386/system.h
+1
-4
No files found.
arch/i386/kernel/acpi/boot.c
View file @
64706886
...
@@ -67,6 +67,10 @@ int acpi_sci_override_gsi __initdata;
...
@@ -67,6 +67,10 @@ int acpi_sci_override_gsi __initdata;
static
u64
acpi_lapic_addr
__initdata
=
APIC_DEFAULT_PHYS_BASE
;
static
u64
acpi_lapic_addr
__initdata
=
APIC_DEFAULT_PHYS_BASE
;
#endif
#endif
#ifndef __HAVE_ARCH_CMPXCHG
#warning ACPI uses CMPXCHG, i486 and later hardware
#endif
/* --------------------------------------------------------------------------
/* --------------------------------------------------------------------------
Boot-time Configuration
Boot-time Configuration
-------------------------------------------------------------------------- */
-------------------------------------------------------------------------- */
...
...
arch/i386/kernel/io_apic.c
View file @
64706886
...
@@ -2440,6 +2440,10 @@ int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int a
...
@@ -2440,6 +2440,10 @@ int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int a
entry
.
polarity
=
active_high_low
;
entry
.
polarity
=
active_high_low
;
entry
.
mask
=
1
;
entry
.
mask
=
1
;
/*
* IRQs < 16 are already in the irq_2_pin[] map
*/
if
(
irq
>=
16
)
add_pin_to_irq
(
irq
,
ioapic
,
pin
);
add_pin_to_irq
(
irq
,
ioapic
,
pin
);
entry
.
vector
=
assign_irq_vector
(
irq
);
entry
.
vector
=
assign_irq_vector
(
irq
);
...
...
arch/x86_64/kernel/io_apic.c
View file @
64706886
...
@@ -1891,6 +1891,10 @@ int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int a
...
@@ -1891,6 +1891,10 @@ int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int a
entry
.
polarity
=
active_high_low
;
entry
.
polarity
=
active_high_low
;
entry
.
mask
=
1
;
/* Disabled (masked) */
entry
.
mask
=
1
;
/* Disabled (masked) */
/*
* IRQs < 16 are already in the irq_2_pin[] map
*/
if
(
irq
>=
16
)
add_pin_to_irq
(
irq
,
ioapic
,
pin
);
add_pin_to_irq
(
irq
,
ioapic
,
pin
);
entry
.
vector
=
assign_irq_vector
(
irq
);
entry
.
vector
=
assign_irq_vector
(
irq
);
...
...
drivers/acpi/bus.c
View file @
64706886
...
@@ -615,6 +615,11 @@ acpi_bus_init (void)
...
@@ -615,6 +615,11 @@ acpi_bus_init (void)
#ifdef CONFIG_X86
#ifdef CONFIG_X86
if
(
!
acpi_ioapic
)
{
if
(
!
acpi_ioapic
)
{
extern
acpi_interrupt_flags
acpi_sci_flags
;
extern
acpi_interrupt_flags
acpi_sci_flags
;
/* compatible (0) means level (3) */
if
(
acpi_sci_flags
.
trigger
==
0
)
acpi_sci_flags
.
trigger
=
3
;
/* Set PIC-mode SCI trigger type */
/* Set PIC-mode SCI trigger type */
acpi_pic_sci_set_trigger
(
acpi_fadt
.
sci_int
,
acpi_sci_flags
.
trigger
);
acpi_pic_sci_set_trigger
(
acpi_fadt
.
sci_int
,
acpi_sci_flags
.
trigger
);
}
else
{
}
else
{
...
...
drivers/acpi/pci_irq.c
View file @
64706886
...
@@ -273,11 +273,6 @@ acpi_pci_irq_lookup (struct pci_bus *bus, int device, int pin)
...
@@ -273,11 +273,6 @@ acpi_pci_irq_lookup (struct pci_bus *bus, int device, int pin)
return_VALUE
(
entry
->
irq
);
return_VALUE
(
entry
->
irq
);
}
}
/*
* current thinking is that acpi_pci_irq_derive() adds no value
* and should be deleted, so warn if it actually does something.
*/
static
int
static
int
acpi_pci_irq_derive
(
acpi_pci_irq_derive
(
struct
pci_dev
*
dev
,
struct
pci_dev
*
dev
,
...
@@ -285,6 +280,7 @@ acpi_pci_irq_derive (
...
@@ -285,6 +280,7 @@ acpi_pci_irq_derive (
{
{
struct
pci_dev
*
bridge
=
dev
;
struct
pci_dev
*
bridge
=
dev
;
int
irq
=
0
;
int
irq
=
0
;
u8
bridge_pin
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_irq_derive"
);
ACPI_FUNCTION_TRACE
(
"acpi_pci_irq_derive"
);
...
@@ -293,11 +289,25 @@ acpi_pci_irq_derive (
...
@@ -293,11 +289,25 @@ acpi_pci_irq_derive (
/*
/*
* Attempt to derive an IRQ for this device from a parent bridge's
* Attempt to derive an IRQ for this device from a parent bridge's
* PCI interrupt routing entry (
a.k.a. the "bridge swizzle"
).
* PCI interrupt routing entry (
eg. yenta bridge and add-in card bridge
).
*/
*/
while
(
!
irq
&&
bridge
->
bus
->
self
)
{
while
(
!
irq
&&
bridge
->
bus
->
self
)
{
pin
=
(
pin
+
PCI_SLOT
(
bridge
->
devfn
))
%
4
;
pin
=
(
pin
+
PCI_SLOT
(
bridge
->
devfn
))
%
4
;
bridge
=
bridge
->
bus
->
self
;
bridge
=
bridge
->
bus
->
self
;
if
((
bridge
->
class
>>
8
)
==
PCI_CLASS_BRIDGE_CARDBUS
)
{
/* PC card has the same IRQ as its cardbridge */
pci_read_config_byte
(
bridge
,
PCI_INTERRUPT_PIN
,
&
bridge_pin
);
if
(
!
bridge_pin
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"No interrupt pin configured for device %s
\n
"
,
pci_name
(
bridge
)));
return_VALUE
(
0
);
}
/* Pin is from 0 to 3 */
bridge_pin
--
;
pin
=
bridge_pin
;
}
irq
=
acpi_pci_irq_lookup
(
bridge
->
bus
,
irq
=
acpi_pci_irq_lookup
(
bridge
->
bus
,
PCI_SLOT
(
bridge
->
devfn
),
pin
);
PCI_SLOT
(
bridge
->
devfn
),
pin
);
}
}
...
@@ -307,7 +317,7 @@ acpi_pci_irq_derive (
...
@@ -307,7 +317,7 @@ acpi_pci_irq_derive (
return_VALUE
(
0
);
return_VALUE
(
0
);
}
}
ACPI_DEBUG_PRINT
((
ACPI_DB_
WARN
,
"Derive IRQ %d for device %s from %s
\n
"
,
ACPI_DEBUG_PRINT
((
ACPI_DB_
INFO
,
"Derive IRQ %d for device %s from %s
\n
"
,
irq
,
pci_name
(
dev
),
pci_name
(
bridge
)));
irq
,
pci_name
(
dev
),
pci_name
(
bridge
)));
return_VALUE
(
irq
);
return_VALUE
(
irq
);
...
@@ -344,13 +354,6 @@ acpi_pci_irq_enable (
...
@@ -344,13 +354,6 @@ acpi_pci_irq_enable (
*/
*/
irq
=
acpi_pci_irq_lookup
(
dev
->
bus
,
PCI_SLOT
(
dev
->
devfn
),
pin
);
irq
=
acpi_pci_irq_lookup
(
dev
->
bus
,
PCI_SLOT
(
dev
->
devfn
),
pin
);
/*
* Check if the device has an IRQ,
* Hotplug devices may get IRQs by scanning
*/
if
(
!
irq
&&
dev
->
irq
)
irq
=
dev
->
irq
;
/*
/*
* If no PRT entry was found, we'll try to derive an IRQ from the
* If no PRT entry was found, we'll try to derive an IRQ from the
* device's parent bridge.
* device's parent bridge.
...
...
include/asm-i386/acpi.h
View file @
64706886
...
@@ -54,15 +54,6 @@
...
@@ -54,15 +54,6 @@
#define ACPI_ENABLE_IRQS() local_irq_enable()
#define ACPI_ENABLE_IRQS() local_irq_enable()
#define ACPI_FLUSH_CPU_CACHE() wbinvd()
#define ACPI_FLUSH_CPU_CACHE() wbinvd()
/*
* A brief explanation as GNU inline assembly is a bit hairy
* %0 is the output parameter in EAX ("=a")
* %1 and %2 are the input parameters in ECX ("c")
* and an immediate value ("i") respectively
* All actual register references are preceded with "%%" as in "%%edx"
* Immediate values in the assembly are preceded by "$" as in "$0x1"
* The final asm parameter are the operation altered non-output registers.
*/
static
inline
int
static
inline
int
__acpi_acquire_global_lock
(
unsigned
int
*
lock
)
__acpi_acquire_global_lock
(
unsigned
int
*
lock
)
...
...
include/asm-i386/system.h
View file @
64706886
...
@@ -241,6 +241,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int siz
...
@@ -241,6 +241,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int siz
#ifdef CONFIG_X86_CMPXCHG
#ifdef CONFIG_X86_CMPXCHG
#define __HAVE_ARCH_CMPXCHG 1
#define __HAVE_ARCH_CMPXCHG 1
#endif
static
inline
unsigned
long
__cmpxchg
(
volatile
void
*
ptr
,
unsigned
long
old
,
static
inline
unsigned
long
__cmpxchg
(
volatile
void
*
ptr
,
unsigned
long
old
,
unsigned
long
new
,
int
size
)
unsigned
long
new
,
int
size
)
...
@@ -273,10 +274,6 @@ static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
...
@@ -273,10 +274,6 @@ static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
((__typeof__(*(ptr)))__cmpxchg((ptr),(unsigned long)(o),\
((__typeof__(*(ptr)))__cmpxchg((ptr),(unsigned long)(o),\
(unsigned long)(n),sizeof(*(ptr))))
(unsigned long)(n),sizeof(*(ptr))))
#else
/* Compiling for a 386 proper. Is it worth implementing via cli/sti? */
#endif
#ifdef __KERNEL__
#ifdef __KERNEL__
struct
alt_instr
{
struct
alt_instr
{
__u8
*
instr
;
/* original instruction */
__u8
*
instr
;
/* original instruction */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment