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
nexedi
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;
static
u64
acpi_lapic_addr
__initdata
=
APIC_DEFAULT_PHYS_BASE
;
#endif
#ifndef __HAVE_ARCH_CMPXCHG
#warning ACPI uses CMPXCHG, i486 and later hardware
#endif
/* --------------------------------------------------------------------------
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
entry
.
polarity
=
active_high_low
;
entry
.
mask
=
1
;
/*
* IRQs < 16 are already in the irq_2_pin[] map
*/
if
(
irq
>=
16
)
add_pin_to_irq
(
irq
,
ioapic
,
pin
);
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
entry
.
polarity
=
active_high_low
;
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
);
entry
.
vector
=
assign_irq_vector
(
irq
);
...
...
drivers/acpi/bus.c
View file @
64706886
...
...
@@ -615,6 +615,11 @@ acpi_bus_init (void)
#ifdef CONFIG_X86
if
(
!
acpi_ioapic
)
{
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 */
acpi_pic_sci_set_trigger
(
acpi_fadt
.
sci_int
,
acpi_sci_flags
.
trigger
);
}
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)
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
acpi_pci_irq_derive
(
struct
pci_dev
*
dev
,
...
...
@@ -285,6 +280,7 @@ acpi_pci_irq_derive (
{
struct
pci_dev
*
bridge
=
dev
;
int
irq
=
0
;
u8
bridge_pin
=
0
;
ACPI_FUNCTION_TRACE
(
"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
* 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
)
{
pin
=
(
pin
+
PCI_SLOT
(
bridge
->
devfn
))
%
4
;
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
,
PCI_SLOT
(
bridge
->
devfn
),
pin
);
}
...
...
@@ -307,7 +317,7 @@ acpi_pci_irq_derive (
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
)));
return_VALUE
(
irq
);
...
...
@@ -344,13 +354,6 @@ acpi_pci_irq_enable (
*/
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
* device's parent bridge.
...
...
include/asm-i386/acpi.h
View file @
64706886
...
...
@@ -54,15 +54,6 @@
#define ACPI_ENABLE_IRQS() local_irq_enable()
#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
__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
#ifdef CONFIG_X86_CMPXCHG
#define __HAVE_ARCH_CMPXCHG 1
#endif
static
inline
unsigned
long
__cmpxchg
(
volatile
void
*
ptr
,
unsigned
long
old
,
unsigned
long
new
,
int
size
)
...
...
@@ -273,10 +274,6 @@ static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
((__typeof__(*(ptr)))__cmpxchg((ptr),(unsigned long)(o),\
(unsigned long)(n),sizeof(*(ptr))))
#else
/* Compiling for a 386 proper. Is it worth implementing via cli/sti? */
#endif
#ifdef __KERNEL__
struct
alt_instr
{
__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