Commit 23dabca3 authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://kernel.bkbits.net/jgarzik/net-drivers-2.5

into home.osdl.org:/home/torvalds/v2.5/linux
parents 89aaa1a6 45fad661
...@@ -1272,10 +1272,10 @@ static inline void UNEXPECTED_IO_APIC(void) ...@@ -1272,10 +1272,10 @@ static inline void UNEXPECTED_IO_APIC(void)
void __init print_IO_APIC(void) void __init print_IO_APIC(void)
{ {
int apic, i; int apic, i;
struct IO_APIC_reg_00 reg_00; union IO_APIC_reg_00 reg_00;
struct IO_APIC_reg_01 reg_01; union IO_APIC_reg_01 reg_01;
struct IO_APIC_reg_02 reg_02; union IO_APIC_reg_02 reg_02;
struct IO_APIC_reg_03 reg_03; union IO_APIC_reg_03 reg_03;
unsigned long flags; unsigned long flags;
printk(KERN_DEBUG "number of MP IRQ sources: %d.\n", mp_irq_entries); printk(KERN_DEBUG "number of MP IRQ sources: %d.\n", mp_irq_entries);
...@@ -1292,47 +1292,47 @@ void __init print_IO_APIC(void) ...@@ -1292,47 +1292,47 @@ void __init print_IO_APIC(void)
for (apic = 0; apic < nr_ioapics; apic++) { for (apic = 0; apic < nr_ioapics; apic++) {
spin_lock_irqsave(&ioapic_lock, flags); spin_lock_irqsave(&ioapic_lock, flags);
*(int *)&reg_00 = io_apic_read(apic, 0); reg_00.raw = io_apic_read(apic, 0);
*(int *)&reg_01 = io_apic_read(apic, 1); reg_01.raw = io_apic_read(apic, 1);
if (reg_01.version >= 0x10) if (reg_01.bits.version >= 0x10)
*(int *)&reg_02 = io_apic_read(apic, 2); reg_02.raw = io_apic_read(apic, 2);
if (reg_01.version >= 0x20) if (reg_01.bits.version >= 0x20)
*(int *)&reg_03 = io_apic_read(apic, 3); reg_03.raw = io_apic_read(apic, 3);
spin_unlock_irqrestore(&ioapic_lock, flags); spin_unlock_irqrestore(&ioapic_lock, flags);
printk("\n"); printk("\n");
printk(KERN_DEBUG "IO APIC #%d......\n", mp_ioapics[apic].mpc_apicid); printk(KERN_DEBUG "IO APIC #%d......\n", mp_ioapics[apic].mpc_apicid);
printk(KERN_DEBUG ".... register #00: %08X\n", *(int *)&reg_00); printk(KERN_DEBUG ".... register #00: %08X\n", reg_00.raw);
printk(KERN_DEBUG "....... : physical APIC id: %02X\n", reg_00.ID); printk(KERN_DEBUG "....... : physical APIC id: %02X\n", reg_00.bits.ID);
printk(KERN_DEBUG "....... : Delivery Type: %X\n", reg_00.delivery_type); printk(KERN_DEBUG "....... : Delivery Type: %X\n", reg_00.bits.delivery_type);
printk(KERN_DEBUG "....... : LTS : %X\n", reg_00.LTS); printk(KERN_DEBUG "....... : LTS : %X\n", reg_00.bits.LTS);
if (reg_00.ID >= APIC_BROADCAST_ID) if (reg_00.bits.ID >= APIC_BROADCAST_ID)
UNEXPECTED_IO_APIC(); UNEXPECTED_IO_APIC();
if (reg_00.__reserved_1 || reg_00.__reserved_2) if (reg_00.bits.__reserved_1 || reg_00.bits.__reserved_2)
UNEXPECTED_IO_APIC(); UNEXPECTED_IO_APIC();
printk(KERN_DEBUG ".... register #01: %08X\n", *(int *)&reg_01); printk(KERN_DEBUG ".... register #01: %08X\n", reg_01.raw);
printk(KERN_DEBUG "....... : max redirection entries: %04X\n", reg_01.entries); printk(KERN_DEBUG "....... : max redirection entries: %04X\n", reg_01.bits.entries);
if ( (reg_01.entries != 0x0f) && /* older (Neptune) boards */ if ( (reg_01.bits.entries != 0x0f) && /* older (Neptune) boards */
(reg_01.entries != 0x17) && /* typical ISA+PCI boards */ (reg_01.bits.entries != 0x17) && /* typical ISA+PCI boards */
(reg_01.entries != 0x1b) && /* Compaq Proliant boards */ (reg_01.bits.entries != 0x1b) && /* Compaq Proliant boards */
(reg_01.entries != 0x1f) && /* dual Xeon boards */ (reg_01.bits.entries != 0x1f) && /* dual Xeon boards */
(reg_01.entries != 0x22) && /* bigger Xeon boards */ (reg_01.bits.entries != 0x22) && /* bigger Xeon boards */
(reg_01.entries != 0x2E) && (reg_01.bits.entries != 0x2E) &&
(reg_01.entries != 0x3F) (reg_01.bits.entries != 0x3F)
) )
UNEXPECTED_IO_APIC(); UNEXPECTED_IO_APIC();
printk(KERN_DEBUG "....... : PRQ implemented: %X\n", reg_01.PRQ); printk(KERN_DEBUG "....... : PRQ implemented: %X\n", reg_01.bits.PRQ);
printk(KERN_DEBUG "....... : IO APIC version: %04X\n", reg_01.version); printk(KERN_DEBUG "....... : IO APIC version: %04X\n", reg_01.bits.version);
if ( (reg_01.version != 0x01) && /* 82489DX IO-APICs */ if ( (reg_01.bits.version != 0x01) && /* 82489DX IO-APICs */
(reg_01.version != 0x10) && /* oldest IO-APICs */ (reg_01.bits.version != 0x10) && /* oldest IO-APICs */
(reg_01.version != 0x11) && /* Pentium/Pro IO-APICs */ (reg_01.bits.version != 0x11) && /* Pentium/Pro IO-APICs */
(reg_01.version != 0x13) && /* Xeon IO-APICs */ (reg_01.bits.version != 0x13) && /* Xeon IO-APICs */
(reg_01.version != 0x20) /* Intel P64H (82806 AA) */ (reg_01.bits.version != 0x20) /* Intel P64H (82806 AA) */
) )
UNEXPECTED_IO_APIC(); UNEXPECTED_IO_APIC();
if (reg_01.__reserved_1 || reg_01.__reserved_2) if (reg_01.bits.__reserved_1 || reg_01.bits.__reserved_2)
UNEXPECTED_IO_APIC(); UNEXPECTED_IO_APIC();
/* /*
...@@ -1340,10 +1340,10 @@ void __init print_IO_APIC(void) ...@@ -1340,10 +1340,10 @@ void __init print_IO_APIC(void)
* but the value of reg_02 is read as the previous read register * but the value of reg_02 is read as the previous read register
* value, so ignore it if reg_02 == reg_01. * value, so ignore it if reg_02 == reg_01.
*/ */
if (reg_01.version >= 0x10 && *(int *)&reg_02 != *(int *)&reg_01) { if (reg_01.bits.version >= 0x10 && reg_02.raw != reg_01.raw) {
printk(KERN_DEBUG ".... register #02: %08X\n", *(int *)&reg_02); printk(KERN_DEBUG ".... register #02: %08X\n", reg_02.raw);
printk(KERN_DEBUG "....... : arbitration: %02X\n", reg_02.arbitration); printk(KERN_DEBUG "....... : arbitration: %02X\n", reg_02.bits.arbitration);
if (reg_02.__reserved_1 || reg_02.__reserved_2) if (reg_02.bits.__reserved_1 || reg_02.bits.__reserved_2)
UNEXPECTED_IO_APIC(); UNEXPECTED_IO_APIC();
} }
...@@ -1352,11 +1352,11 @@ void __init print_IO_APIC(void) ...@@ -1352,11 +1352,11 @@ void __init print_IO_APIC(void)
* or reg_03, but the value of reg_0[23] is read as the previous read * or reg_03, but the value of reg_0[23] is read as the previous read
* register value, so ignore it if reg_03 == reg_0[12]. * register value, so ignore it if reg_03 == reg_0[12].
*/ */
if (reg_01.version >= 0x20 && *(int *)&reg_03 != *(int *)&reg_02 && if (reg_01.bits.version >= 0x20 && reg_03.raw != reg_02.raw &&
*(int *)&reg_03 != *(int *)&reg_01) { reg_03.raw != reg_01.raw) {
printk(KERN_DEBUG ".... register #03: %08X\n", *(int *)&reg_03); printk(KERN_DEBUG ".... register #03: %08X\n", reg_03.raw);
printk(KERN_DEBUG "....... : Boot DT : %X\n", reg_03.boot_DT); printk(KERN_DEBUG "....... : Boot DT : %X\n", reg_03.bits.boot_DT);
if (reg_03.__reserved_1) if (reg_03.bits.__reserved_1)
UNEXPECTED_IO_APIC(); UNEXPECTED_IO_APIC();
} }
...@@ -1365,7 +1365,7 @@ void __init print_IO_APIC(void) ...@@ -1365,7 +1365,7 @@ void __init print_IO_APIC(void)
printk(KERN_DEBUG " NR Log Phy Mask Trig IRR Pol" printk(KERN_DEBUG " NR Log Phy Mask Trig IRR Pol"
" Stat Dest Deli Vect: \n"); " Stat Dest Deli Vect: \n");
for (i = 0; i <= reg_01.entries; i++) { for (i = 0; i <= reg_01.bits.entries; i++) {
struct IO_APIC_route_entry entry; struct IO_APIC_route_entry entry;
spin_lock_irqsave(&ioapic_lock, flags); spin_lock_irqsave(&ioapic_lock, flags);
...@@ -1546,7 +1546,7 @@ void /*__init*/ print_PIC(void) ...@@ -1546,7 +1546,7 @@ void /*__init*/ print_PIC(void)
static void __init enable_IO_APIC(void) static void __init enable_IO_APIC(void)
{ {
struct IO_APIC_reg_01 reg_01; union IO_APIC_reg_01 reg_01;
int i; int i;
unsigned long flags; unsigned long flags;
...@@ -1563,9 +1563,9 @@ static void __init enable_IO_APIC(void) ...@@ -1563,9 +1563,9 @@ static void __init enable_IO_APIC(void)
*/ */
for (i = 0; i < nr_ioapics; i++) { for (i = 0; i < nr_ioapics; i++) {
spin_lock_irqsave(&ioapic_lock, flags); spin_lock_irqsave(&ioapic_lock, flags);
*(int *)&reg_01 = io_apic_read(i, 1); reg_01.raw = io_apic_read(i, 1);
spin_unlock_irqrestore(&ioapic_lock, flags); spin_unlock_irqrestore(&ioapic_lock, flags);
nr_ioapic_registers[i] = reg_01.entries+1; nr_ioapic_registers[i] = reg_01.bits.entries+1;
} }
/* /*
...@@ -1597,7 +1597,7 @@ void disable_IO_APIC(void) ...@@ -1597,7 +1597,7 @@ void disable_IO_APIC(void)
#ifndef CONFIG_X86_NUMAQ #ifndef CONFIG_X86_NUMAQ
static void __init setup_ioapic_ids_from_mpc(void) static void __init setup_ioapic_ids_from_mpc(void)
{ {
struct IO_APIC_reg_00 reg_00; union IO_APIC_reg_00 reg_00;
unsigned long phys_id_present_map; unsigned long phys_id_present_map;
int apic; int apic;
int i; int i;
...@@ -1617,7 +1617,7 @@ static void __init setup_ioapic_ids_from_mpc(void) ...@@ -1617,7 +1617,7 @@ static void __init setup_ioapic_ids_from_mpc(void)
/* Read the register 0 value */ /* Read the register 0 value */
spin_lock_irqsave(&ioapic_lock, flags); spin_lock_irqsave(&ioapic_lock, flags);
*(int *)&reg_00 = io_apic_read(apic, 0); reg_00.raw = io_apic_read(apic, 0);
spin_unlock_irqrestore(&ioapic_lock, flags); spin_unlock_irqrestore(&ioapic_lock, flags);
old_id = mp_ioapics[apic].mpc_apicid; old_id = mp_ioapics[apic].mpc_apicid;
...@@ -1626,8 +1626,8 @@ static void __init setup_ioapic_ids_from_mpc(void) ...@@ -1626,8 +1626,8 @@ static void __init setup_ioapic_ids_from_mpc(void)
printk(KERN_ERR "BIOS bug, IO-APIC#%d ID is %d in the MPC table!...\n", printk(KERN_ERR "BIOS bug, IO-APIC#%d ID is %d in the MPC table!...\n",
apic, mp_ioapics[apic].mpc_apicid); apic, mp_ioapics[apic].mpc_apicid);
printk(KERN_ERR "... fixing up to %d. (tell your hw vendor)\n", printk(KERN_ERR "... fixing up to %d. (tell your hw vendor)\n",
reg_00.ID); reg_00.bits.ID);
mp_ioapics[apic].mpc_apicid = reg_00.ID; mp_ioapics[apic].mpc_apicid = reg_00.bits.ID;
} }
/* /*
...@@ -1671,18 +1671,18 @@ static void __init setup_ioapic_ids_from_mpc(void) ...@@ -1671,18 +1671,18 @@ static void __init setup_ioapic_ids_from_mpc(void)
printk(KERN_INFO "...changing IO-APIC physical APIC ID to %d ...", printk(KERN_INFO "...changing IO-APIC physical APIC ID to %d ...",
mp_ioapics[apic].mpc_apicid); mp_ioapics[apic].mpc_apicid);
reg_00.ID = mp_ioapics[apic].mpc_apicid; reg_00.bits.ID = mp_ioapics[apic].mpc_apicid;
spin_lock_irqsave(&ioapic_lock, flags); spin_lock_irqsave(&ioapic_lock, flags);
io_apic_write(apic, 0, *(int *)&reg_00); io_apic_write(apic, 0, reg_00.raw);
spin_unlock_irqrestore(&ioapic_lock, flags); spin_unlock_irqrestore(&ioapic_lock, flags);
/* /*
* Sanity check * Sanity check
*/ */
spin_lock_irqsave(&ioapic_lock, flags); spin_lock_irqsave(&ioapic_lock, flags);
*(int *)&reg_00 = io_apic_read(apic, 0); reg_00.raw = io_apic_read(apic, 0);
spin_unlock_irqrestore(&ioapic_lock, flags); spin_unlock_irqrestore(&ioapic_lock, flags);
if (reg_00.ID != mp_ioapics[apic].mpc_apicid) if (reg_00.bits.ID != mp_ioapics[apic].mpc_apicid)
panic("could not set ID!\n"); panic("could not set ID!\n");
else else
printk(" ok.\n"); printk(" ok.\n");
...@@ -2220,7 +2220,7 @@ late_initcall(io_apic_bug_finalize); ...@@ -2220,7 +2220,7 @@ late_initcall(io_apic_bug_finalize);
int __init io_apic_get_unique_id (int ioapic, int apic_id) int __init io_apic_get_unique_id (int ioapic, int apic_id)
{ {
struct IO_APIC_reg_00 reg_00; union IO_APIC_reg_00 reg_00;
static unsigned long apic_id_map = 0; static unsigned long apic_id_map = 0;
unsigned long flags; unsigned long flags;
int i = 0; int i = 0;
...@@ -2238,13 +2238,13 @@ int __init io_apic_get_unique_id (int ioapic, int apic_id) ...@@ -2238,13 +2238,13 @@ int __init io_apic_get_unique_id (int ioapic, int apic_id)
apic_id_map = phys_cpu_present_map; apic_id_map = phys_cpu_present_map;
spin_lock_irqsave(&ioapic_lock, flags); spin_lock_irqsave(&ioapic_lock, flags);
*(int *)&reg_00 = io_apic_read(ioapic, 0); reg_00.raw = io_apic_read(ioapic, 0);
spin_unlock_irqrestore(&ioapic_lock, flags); spin_unlock_irqrestore(&ioapic_lock, flags);
if (apic_id >= IO_APIC_MAX_ID) { if (apic_id >= IO_APIC_MAX_ID) {
printk(KERN_WARNING "IOAPIC[%d]: Invalid apic_id %d, trying " printk(KERN_WARNING "IOAPIC[%d]: Invalid apic_id %d, trying "
"%d\n", ioapic, apic_id, reg_00.ID); "%d\n", ioapic, apic_id, reg_00.bits.ID);
apic_id = reg_00.ID; apic_id = reg_00.bits.ID;
} }
/* /*
...@@ -2269,16 +2269,16 @@ int __init io_apic_get_unique_id (int ioapic, int apic_id) ...@@ -2269,16 +2269,16 @@ int __init io_apic_get_unique_id (int ioapic, int apic_id)
apic_id_map |= apicid_to_cpu_present(apic_id); apic_id_map |= apicid_to_cpu_present(apic_id);
if (reg_00.ID != apic_id) { if (reg_00.bits.ID != apic_id) {
reg_00.ID = apic_id; reg_00.bits.ID = apic_id;
spin_lock_irqsave(&ioapic_lock, flags); spin_lock_irqsave(&ioapic_lock, flags);
io_apic_write(ioapic, 0, *(int *)&reg_00); io_apic_write(ioapic, 0, reg_00.raw);
*(int *)&reg_00 = io_apic_read(ioapic, 0); reg_00.raw = io_apic_read(ioapic, 0);
spin_unlock_irqrestore(&ioapic_lock, flags); spin_unlock_irqrestore(&ioapic_lock, flags);
/* Sanity check */ /* Sanity check */
if (reg_00.ID != apic_id) if (reg_00.bits.ID != apic_id)
panic("IOAPIC[%d]: Unable change apic_id!\n", ioapic); panic("IOAPIC[%d]: Unable change apic_id!\n", ioapic);
} }
...@@ -2290,27 +2290,27 @@ int __init io_apic_get_unique_id (int ioapic, int apic_id) ...@@ -2290,27 +2290,27 @@ int __init io_apic_get_unique_id (int ioapic, int apic_id)
int __init io_apic_get_version (int ioapic) int __init io_apic_get_version (int ioapic)
{ {
struct IO_APIC_reg_01 reg_01; union IO_APIC_reg_01 reg_01;
unsigned long flags; unsigned long flags;
spin_lock_irqsave(&ioapic_lock, flags); spin_lock_irqsave(&ioapic_lock, flags);
*(int *)&reg_01 = io_apic_read(ioapic, 1); reg_01.raw = io_apic_read(ioapic, 1);
spin_unlock_irqrestore(&ioapic_lock, flags); spin_unlock_irqrestore(&ioapic_lock, flags);
return reg_01.version; return reg_01.bits.version;
} }
int __init io_apic_get_redir_entries (int ioapic) int __init io_apic_get_redir_entries (int ioapic)
{ {
struct IO_APIC_reg_01 reg_01; union IO_APIC_reg_01 reg_01;
unsigned long flags; unsigned long flags;
spin_lock_irqsave(&ioapic_lock, flags); spin_lock_irqsave(&ioapic_lock, flags);
*(int *)&reg_01 = io_apic_read(ioapic, 1); reg_01.raw = io_apic_read(ioapic, 1);
spin_unlock_irqrestore(&ioapic_lock, flags); spin_unlock_irqrestore(&ioapic_lock, flags);
return reg_01.entries; return reg_01.bits.entries;
} }
......
...@@ -200,9 +200,6 @@ ret_from_syscall: ...@@ -200,9 +200,6 @@ ret_from_syscall:
andi. r11,r11,_TIF_FORCE_NOERROR andi. r11,r11,_TIF_FORCE_NOERROR
bne 30f bne 30f
neg r3,r3 neg r3,r3
cmpi 0,r3,ERESTARTNOHAND
bne 22f
li r3,EINTR
22: lwz r10,_CCR(r1) /* Set SO bit in CR */ 22: lwz r10,_CCR(r1) /* Set SO bit in CR */
oris r10,r10,0x1000 oris r10,r10,0x1000
stw r10,_CCR(r1) stw r10,_CCR(r1)
......
...@@ -27,7 +27,7 @@ CONFIG_MODULES=y ...@@ -27,7 +27,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_OBSOLETE_MODPARM=y CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set CONFIG_MODVERSIONS=y
CONFIG_KMOD=y CONFIG_KMOD=y
# #
...@@ -162,7 +162,9 @@ CONFIG_LOGO_SUN_CLUT224=y ...@@ -162,7 +162,9 @@ CONFIG_LOGO_SUN_CLUT224=y
# #
CONFIG_SERIAL_SUNCORE=y CONFIG_SERIAL_SUNCORE=y
CONFIG_SERIAL_SUNZILOG=y CONFIG_SERIAL_SUNZILOG=y
CONFIG_SERIAL_SUNZILOG_CONSOLE=y
CONFIG_SERIAL_SUNSU=y CONFIG_SERIAL_SUNSU=y
CONFIG_SERIAL_SUNSU_CONSOLE=y
CONFIG_SERIAL_SUNSAB=m CONFIG_SERIAL_SUNSAB=m
CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_SERIAL_CORE_CONSOLE=y
...@@ -197,8 +199,8 @@ CONFIG_BLK_DEV_MD=m ...@@ -197,8 +199,8 @@ CONFIG_BLK_DEV_MD=m
CONFIG_MD_LINEAR=m CONFIG_MD_LINEAR=m
CONFIG_MD_RAID0=m CONFIG_MD_RAID0=m
CONFIG_MD_RAID1=m CONFIG_MD_RAID1=m
# CONFIG_MD_RAID5 is not set CONFIG_MD_RAID5=m
# CONFIG_MD_MULTIPATH is not set CONFIG_MD_MULTIPATH=m
CONFIG_BLK_DEV_DM=m CONFIG_BLK_DEV_DM=m
# CONFIG_BLK_DEV_RAM is not set # CONFIG_BLK_DEV_RAM is not set
...@@ -243,26 +245,27 @@ CONFIG_BLK_DEV_ADMA=y ...@@ -243,26 +245,27 @@ CONFIG_BLK_DEV_ADMA=y
# CONFIG_BLK_DEV_AEC62XX is not set # CONFIG_BLK_DEV_AEC62XX is not set
CONFIG_BLK_DEV_ALI15X3=y CONFIG_BLK_DEV_ALI15X3=y
# CONFIG_WDC_ALI15X3 is not set # CONFIG_WDC_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set CONFIG_BLK_DEV_AMD74XX=m
# CONFIG_BLK_DEV_CMD64X is not set CONFIG_BLK_DEV_CMD64X=m
# CONFIG_BLK_DEV_TRIFLEX is not set CONFIG_BLK_DEV_TRIFLEX=m
# CONFIG_BLK_DEV_CY82C693 is not set CONFIG_BLK_DEV_CY82C693=m
# CONFIG_BLK_DEV_CS5520 is not set CONFIG_BLK_DEV_CS5520=m
# CONFIG_BLK_DEV_HPT34X is not set CONFIG_BLK_DEV_HPT34X=m
# CONFIG_BLK_DEV_HPT366 is not set CONFIG_BLK_DEV_HPT366=m
# CONFIG_BLK_DEV_SC1200 is not set CONFIG_BLK_DEV_SC1200=m
# CONFIG_BLK_DEV_PIIX is not set CONFIG_BLK_DEV_PIIX=m
# CONFIG_BLK_DEV_NS87415 is not set CONFIG_BLK_DEV_NS87415=m
# CONFIG_BLK_DEV_OPTI621 is not set CONFIG_BLK_DEV_OPTI621=m
# CONFIG_BLK_DEV_PDC202XX_OLD is not set CONFIG_BLK_DEV_PDC202XX_OLD=m
# CONFIG_BLK_DEV_PDC202XX_NEW is not set CONFIG_BLK_DEV_PDC202XX_NEW=m
# CONFIG_BLK_DEV_SVWKS is not set CONFIG_BLK_DEV_SVWKS=m
# CONFIG_BLK_DEV_SIIMAGE is not set CONFIG_BLK_DEV_SIIMAGE=m
# CONFIG_BLK_DEV_SLC90E66 is not set CONFIG_BLK_DEV_SLC90E66=m
# CONFIG_BLK_DEV_TRM290 is not set CONFIG_BLK_DEV_TRM290=m
# CONFIG_BLK_DEV_VIA82CXXX is not set CONFIG_BLK_DEV_VIA82CXXX=m
CONFIG_IDEDMA_AUTO=y CONFIG_IDEDMA_AUTO=y
# CONFIG_IDEDMA_IVB is not set # CONFIG_IDEDMA_IVB is not set
CONFIG_BLK_DEV_PDC202XX=y
CONFIG_BLK_DEV_IDE_MODES=y CONFIG_BLK_DEV_IDE_MODES=y
# #
...@@ -408,14 +411,18 @@ CONFIG_NETFILTER=y ...@@ -408,14 +411,18 @@ CONFIG_NETFILTER=y
CONFIG_UNIX=y CONFIG_UNIX=y
CONFIG_NET_KEY=m CONFIG_NET_KEY=m
CONFIG_INET=y CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set # CONFIG_IP_ADVANCED_ROUTER is not set
# CONFIG_IP_PNP is not set # CONFIG_IP_PNP is not set
CONFIG_NET_IPIP=m CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
CONFIG_ARPD=y CONFIG_ARPD=y
CONFIG_INET_ECN=y CONFIG_INET_ECN=y
# CONFIG_SYN_COOKIES is not set CONFIG_SYN_COOKIES=y
CONFIG_INET_AH=y CONFIG_INET_AH=y
CONFIG_INET_ESP=y CONFIG_INET_ESP=y
CONFIG_INET_IPCOMP=y CONFIG_INET_IPCOMP=y
...@@ -436,6 +443,7 @@ CONFIG_IP_NF_MATCH_PKTTYPE=m ...@@ -436,6 +443,7 @@ CONFIG_IP_NF_MATCH_PKTTYPE=m
CONFIG_IP_NF_MATCH_MARK=m CONFIG_IP_NF_MATCH_MARK=m
CONFIG_IP_NF_MATCH_MULTIPORT=m CONFIG_IP_NF_MATCH_MULTIPORT=m
CONFIG_IP_NF_MATCH_TOS=m CONFIG_IP_NF_MATCH_TOS=m
CONFIG_IP_NF_MATCH_RECENT=m
CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_DSCP=m CONFIG_IP_NF_MATCH_DSCP=m
CONFIG_IP_NF_MATCH_AH_ESP=m CONFIG_IP_NF_MATCH_AH_ESP=m
...@@ -553,9 +561,9 @@ CONFIG_BRIDGE_EBT_SNAT=m ...@@ -553,9 +561,9 @@ CONFIG_BRIDGE_EBT_SNAT=m
CONFIG_BRIDGE_EBT_DNAT=m CONFIG_BRIDGE_EBT_DNAT=m
CONFIG_BRIDGE_EBT_REDIRECT=m CONFIG_BRIDGE_EBT_REDIRECT=m
CONFIG_BRIDGE_EBT_MARK_T=m CONFIG_BRIDGE_EBT_MARK_T=m
# CONFIG_X25 is not set CONFIG_X25=m
# CONFIG_LAPB is not set CONFIG_LAPB=m
# CONFIG_NET_DIVERT is not set CONFIG_NET_DIVERT=y
# CONFIG_ECONET is not set # CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set # CONFIG_WAN_ROUTER is not set
# CONFIG_NET_FASTROUTE is not set # CONFIG_NET_FASTROUTE is not set
...@@ -661,11 +669,13 @@ CONFIG_VIA_RHINE=m ...@@ -661,11 +669,13 @@ CONFIG_VIA_RHINE=m
# #
# Ethernet (1000 Mbit) # Ethernet (1000 Mbit)
# #
# CONFIG_ACENIC is not set CONFIG_ACENIC=m
# CONFIG_DL2K is not set # CONFIG_ACENIC_OMIT_TIGON_I is not set
# CONFIG_E1000 is not set CONFIG_DL2K=m
CONFIG_E1000=m
CONFIG_E1000_NAPI=y
CONFIG_MYRI_SBUS=m CONFIG_MYRI_SBUS=m
# CONFIG_NS83820 is not set CONFIG_NS83820=m
CONFIG_HAMACHI=m CONFIG_HAMACHI=m
CONFIG_YELLOWFIN=m CONFIG_YELLOWFIN=m
CONFIG_R8169=m CONFIG_R8169=m
...@@ -710,8 +720,11 @@ CONFIG_NET_RADIO=y ...@@ -710,8 +720,11 @@ CONFIG_NET_RADIO=y
# #
# Wireless 802.11b ISA/PCI cards support # Wireless 802.11b ISA/PCI cards support
# #
# CONFIG_AIRO is not set CONFIG_AIRO=m
# CONFIG_HERMES is not set CONFIG_HERMES=m
CONFIG_PLX_HERMES=m
CONFIG_TMD_HERMES=m
CONFIG_PCI_HERMES=m
CONFIG_NET_WIRELESS=y CONFIG_NET_WIRELESS=y
# #
...@@ -934,7 +947,6 @@ CONFIG_KEYBOARD_SUNKBD=y ...@@ -934,7 +947,6 @@ CONFIG_KEYBOARD_SUNKBD=y
# CONFIG_KEYBOARD_NEWTON is not set # CONFIG_KEYBOARD_NEWTON is not set
CONFIG_INPUT_MOUSE=y CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_SERIAL=y CONFIG_MOUSE_SERIAL=y
# CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set # CONFIG_INPUT_TOUCHSCREEN is not set
......
...@@ -747,6 +747,7 @@ struct pci_dev *isa_bridge; ...@@ -747,6 +747,7 @@ struct pci_dev *isa_bridge;
EXPORT_SYMBOL(isa_bridge); EXPORT_SYMBOL(isa_bridge);
#endif #endif
EXPORT_SYMBOL(pci_enable_device_bars);
EXPORT_SYMBOL(pci_enable_device); EXPORT_SYMBOL(pci_enable_device);
EXPORT_SYMBOL(pci_disable_device); EXPORT_SYMBOL(pci_disable_device);
EXPORT_SYMBOL(pci_max_busnr); EXPORT_SYMBOL(pci_max_busnr);
......
...@@ -326,6 +326,14 @@ config SERIAL_SUNZILOG ...@@ -326,6 +326,14 @@ config SERIAL_SUNZILOG
This driver supports the Zilog8530 serial ports found on many Sparc This driver supports the Zilog8530 serial ports found on many Sparc
systems. Say Y or M if you want to be able to these serial ports. systems. Say Y or M if you want to be able to these serial ports.
config SERIAL_SUNZILOG_CONSOLE
bool "Console on Sun Zilog8530 serial port"
depends on SERIAL_SUNZILOG=y
help
If you would like to be able to use the Zilog8530 serial port
on your Sparc system as the console, you can do so by answering
Y to this option.
config SERIAL_SUNSU config SERIAL_SUNSU
tristate "Sun SU serial support" tristate "Sun SU serial support"
depends on (SPARC32 || SPARC64) && PCI depends on (SPARC32 || SPARC64) && PCI
...@@ -334,6 +342,14 @@ config SERIAL_SUNSU ...@@ -334,6 +342,14 @@ config SERIAL_SUNSU
mouse on (PCI) UltraSPARC systems. Say Y or M if you want to be able mouse on (PCI) UltraSPARC systems. Say Y or M if you want to be able
to these serial ports. to these serial ports.
config SERIAL_SUNSU_CONSOLE
bool "Console on Sun SU serial port"
depends on SERIAL_SUNSU=y
help
If you would like to be able to use the SU serial port
on your Sparc system as the console, you can do so by answering
Y to this option.
config SERIAL_MUX config SERIAL_MUX
tristate "Serial MUX support" tristate "Serial MUX support"
depends on PARISC depends on PARISC
...@@ -380,6 +396,14 @@ config SERIAL_SUNSAB ...@@ -380,6 +396,14 @@ config SERIAL_SUNSAB
(PCI) UltraSPARC systems. Say Y or M if you want to be able to these (PCI) UltraSPARC systems. Say Y or M if you want to be able to these
serial ports. serial ports.
config SERIAL_SUNSAB_CONSOLE
bool "Console on Sun Siemens SAB82532 serial port"
depends on SERIAL_SUNSAB=y
help
If you would like to be able to use the SAB82532 serial port
on your Sparc system as the console, you can do so by answering
Y to this option.
config V850E_NB85E_UART config V850E_NB85E_UART
bool "NEC V850E on-chip UART support" bool "NEC V850E on-chip UART support"
depends on V850E_NB85E || V850E2_ANNA || V850E_AS85EP1 depends on V850E_NB85E || V850E2_ANNA || V850E_AS85EP1
...@@ -407,7 +431,7 @@ config SERIAL_CORE ...@@ -407,7 +431,7 @@ config SERIAL_CORE
config SERIAL_CORE_CONSOLE config SERIAL_CORE_CONSOLE
bool bool
depends on SERIAL_AMBA_CONSOLE || SERIAL_CLPS711X_CONSOLE || SERIAL_21285_CONSOLE || SERIAL_SA1100_CONSOLE || SERIAL_ANAKIN_CONSOLE || SERIAL_UART00_CONSOLE || SERIAL_8250_CONSOLE || SERIAL_MUX_CONSOLE || SERIAL_SUNCORE || V850E_NB85E_UART_CONSOLE || SERIAL98_CONSOLE depends on SERIAL_AMBA_CONSOLE || SERIAL_CLPS711X_CONSOLE || SERIAL_21285_CONSOLE || SERIAL_SA1100_CONSOLE || SERIAL_ANAKIN_CONSOLE || SERIAL_UART00_CONSOLE || SERIAL_8250_CONSOLE || SERIAL_MUX_CONSOLE || SERIAL_SUNZILOG_CONSOLE || SERIAL_SUNSU_CONSOLE || SERIAL_SUNSAB_CONSOLE || V850E_NB85E_UART_CONSOLE || SERIAL98_CONSOLE
default y default y
config SERIAL_68328 config SERIAL_68328
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/circ_buf.h> #include <linux/circ_buf.h>
#include <linux/serial.h> #include <linux/serial.h>
#include <linux/sysrq.h>
#include <linux/console.h> #include <linux/console.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/slab.h> #include <linux/slab.h>
...@@ -38,6 +39,10 @@ ...@@ -38,6 +39,10 @@
#include <asm/oplib.h> #include <asm/oplib.h>
#include <asm/ebus.h> #include <asm/ebus.h>
#if defined(CONFIG_SERIAL_SUNZILOG_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
#define SUPPORT_SYSRQ
#endif
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include "suncore.h" #include "suncore.h"
...@@ -838,6 +843,8 @@ static struct uart_driver sunsab_reg = { ...@@ -838,6 +843,8 @@ static struct uart_driver sunsab_reg = {
static struct uart_sunsab_port *sunsab_ports; static struct uart_sunsab_port *sunsab_ports;
static int num_channels; static int num_channels;
#ifdef CONFIG_SERIAL_SUNSAB_CONSOLE
static __inline__ void sunsab_console_putchar(struct uart_sunsab_port *up, char c) static __inline__ void sunsab_console_putchar(struct uart_sunsab_port *up, char c)
{ {
unsigned long flags; unsigned long flags;
...@@ -929,6 +936,7 @@ static struct console sunsab_console = { ...@@ -929,6 +936,7 @@ static struct console sunsab_console = {
.index = -1, .index = -1,
.data = &sunsab_reg, .data = &sunsab_reg,
}; };
#define SUNSAB_CONSOLE (&sunsab_console)
static void __init sunsab_console_init(void) static void __init sunsab_console_init(void)
{ {
...@@ -949,6 +957,10 @@ static void __init sunsab_console_init(void) ...@@ -949,6 +957,10 @@ static void __init sunsab_console_init(void)
sunsab_console.index = i; sunsab_console.index = i;
register_console(&sunsab_console); register_console(&sunsab_console);
} }
#else
#define SUNSAB_CONSOLE (NULL)
#define sunsab_console_init() do { } while (0)
#endif
static void __init for_each_sab_edev(void (*callback)(struct linux_ebus_device *, void *), void *arg) static void __init for_each_sab_edev(void (*callback)(struct linux_ebus_device *, void *), void *arg)
{ {
...@@ -1091,7 +1103,7 @@ static int __init sunsab_init(void) ...@@ -1091,7 +1103,7 @@ static int __init sunsab_init(void)
sunsab_reg.minor = sunserial_current_minor; sunsab_reg.minor = sunserial_current_minor;
sunsab_reg.nr = num_channels; sunsab_reg.nr = num_channels;
sunsab_reg.cons = &sunsab_console; sunsab_reg.cons = SUNSAB_CONSOLE;
ret = uart_register_driver(&sunsab_reg); ret = uart_register_driver(&sunsab_reg);
if (ret < 0) { if (ret < 0) {
......
...@@ -46,8 +46,7 @@ ...@@ -46,8 +46,7 @@
#include <asm/isa.h> #include <asm/isa.h>
#endif #endif
/* #if defined(CONFIG_SERIAL_8250_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) */ #if defined(CONFIG_SERIAL_SUNSU_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
#if defined(CONFIG_MAGIC_SYSRQ)
#define SUPPORT_SYSRQ #define SUPPORT_SYSRQ
#endif #endif
...@@ -1347,6 +1346,8 @@ static int __init sunsu_kbd_ms_init(void) ...@@ -1347,6 +1346,8 @@ static int __init sunsu_kbd_ms_init(void)
* ------------------------------------------------------------ * ------------------------------------------------------------
*/ */
#ifdef CONFIG_SERIAL_SUNSU_CONSOLE
#define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE) #define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE)
/* /*
...@@ -1465,6 +1466,7 @@ static struct console sunsu_cons = { ...@@ -1465,6 +1466,7 @@ static struct console sunsu_cons = {
.index = -1, .index = -1,
.data = &sunsu_reg, .data = &sunsu_reg,
}; };
#define SUNSU_CONSOLE (&sunsu_cons)
/* /*
* Register console. * Register console.
...@@ -1492,6 +1494,10 @@ static int __init sunsu_serial_console_init(void) ...@@ -1492,6 +1494,10 @@ static int __init sunsu_serial_console_init(void)
register_console(&sunsu_cons); register_console(&sunsu_cons);
return 0; return 0;
} }
#else
#define SUNSU_CONSOLE (NULL)
#define sunsu_serial_console_init() do { } while (0)
#endif
static int __init sunsu_serial_init(void) static int __init sunsu_serial_init(void)
{ {
...@@ -1522,7 +1528,7 @@ static int __init sunsu_serial_init(void) ...@@ -1522,7 +1528,7 @@ static int __init sunsu_serial_init(void)
sunserial_current_minor += instance; sunserial_current_minor += instance;
sunsu_reg.nr = instance; sunsu_reg.nr = instance;
sunsu_reg.cons = &sunsu_cons; sunsu_reg.cons = SUNSU_CONSOLE;
ret = uart_register_driver(&sunsu_reg); ret = uart_register_driver(&sunsu_reg);
if (ret < 0) if (ret < 0)
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/circ_buf.h> #include <linux/circ_buf.h>
#include <linux/serial.h> #include <linux/serial.h>
#include <linux/sysrq.h>
#include <linux/console.h> #include <linux/console.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
#ifdef CONFIG_SERIO #ifdef CONFIG_SERIO
...@@ -42,6 +43,10 @@ ...@@ -42,6 +43,10 @@
#endif #endif
#include <asm/sbus.h> #include <asm/sbus.h>
#if defined(CONFIG_SERIAL_SUNZILOG_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
#define SUPPORT_SYSRQ
#endif
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include "suncore.h" #include "suncore.h"
...@@ -1331,6 +1336,7 @@ static void sunzilog_serio_close(struct serio *serio) ...@@ -1331,6 +1336,7 @@ static void sunzilog_serio_close(struct serio *serio)
#endif /* CONFIG_SERIO */ #endif /* CONFIG_SERIO */
#ifdef CONFIG_SERIAL_SUNZILOG_CONSOLE
static void static void
sunzilog_console_write(struct console *con, const char *s, unsigned int count) sunzilog_console_write(struct console *con, const char *s, unsigned int count)
{ {
...@@ -1400,6 +1406,7 @@ static struct console sunzilog_console = { ...@@ -1400,6 +1406,7 @@ static struct console sunzilog_console = {
.index = -1, .index = -1,
.data = &sunzilog_reg, .data = &sunzilog_reg,
}; };
#define SUNZILOG_CONSOLE (&sunzilog_console)
static int __init sunzilog_console_init(void) static int __init sunzilog_console_init(void)
{ {
...@@ -1422,6 +1429,10 @@ static int __init sunzilog_console_init(void) ...@@ -1422,6 +1429,10 @@ static int __init sunzilog_console_init(void)
register_console(&sunzilog_console); register_console(&sunzilog_console);
return 0; return 0;
} }
#else
#define SUNZILOG_CONSOLE (NULL)
#define sunzilog_console_init() do { } while (0)
#endif
/* /*
* We scan the PROM tree recursively. This is the most reliable way * We scan the PROM tree recursively. This is the most reliable way
...@@ -1639,7 +1650,7 @@ static int __init sunzilog_ports_init(void) ...@@ -1639,7 +1650,7 @@ static int __init sunzilog_ports_init(void)
* in the system. * in the system.
*/ */
sunzilog_reg.nr = NUM_CHANNELS; sunzilog_reg.nr = NUM_CHANNELS;
sunzilog_reg.cons = &sunzilog_console; sunzilog_reg.cons = SUNZILOG_CONSOLE;
sunzilog_reg.minor = sunserial_current_minor; sunzilog_reg.minor = sunserial_current_minor;
sunserial_current_minor += NUM_CHANNELS; sunserial_current_minor += NUM_CHANNELS;
......
...@@ -57,10 +57,10 @@ ...@@ -57,10 +57,10 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/ethtool.h> #include <linux/ethtool.h>
#include <linux/pci.h> #include <linux/pci.h>
#include <linux/dma-mapping.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <asm/semaphore.h> #include <asm/semaphore.h>
#include <asm/byteorder.h> #include <asm/byteorder.h>
#include <asm/dma-mapping.h>
#define DEBUG #define DEBUG
......
...@@ -22,32 +22,44 @@ ...@@ -22,32 +22,44 @@
/* /*
* The structure of the IO-APIC: * The structure of the IO-APIC:
*/ */
struct IO_APIC_reg_00 { union IO_APIC_reg_00 {
__u32 __reserved_2 : 14, u32 raw;
struct {
u32 __reserved_2 : 14,
LTS : 1, LTS : 1,
delivery_type : 1, delivery_type : 1,
__reserved_1 : 8, __reserved_1 : 8,
ID : 8; ID : 8;
} __attribute__ ((packed)); } __attribute__ ((packed)) bits;
};
struct IO_APIC_reg_01 { union IO_APIC_reg_01 {
__u32 version : 8, u32 raw;
struct {
u32 version : 8,
__reserved_2 : 7, __reserved_2 : 7,
PRQ : 1, PRQ : 1,
entries : 8, entries : 8,
__reserved_1 : 8; __reserved_1 : 8;
} __attribute__ ((packed)); } __attribute__ ((packed)) bits;
};
struct IO_APIC_reg_02 { union IO_APIC_reg_02 {
__u32 __reserved_2 : 24, u32 raw;
struct {
u32 __reserved_2 : 24,
arbitration : 4, arbitration : 4,
__reserved_1 : 4; __reserved_1 : 4;
} __attribute__ ((packed)); } __attribute__ ((packed)) bits;
};
struct IO_APIC_reg_03 { union IO_APIC_reg_03 {
__u32 boot_DT : 1, u32 raw;
struct {
u32 boot_DT : 1,
__reserved_1 : 31; __reserved_1 : 31;
} __attribute__ ((packed)); } __attribute__ ((packed)) bits;
};
/* /*
* # of IO-APICs and # of IRQ routing registers * # of IO-APICs and # of IRQ routing registers
......
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