Commit 497e0044 authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://kernel.bkbits.net/davem/net-2.6

into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents 546d9171 2db1b65b
...@@ -226,15 +226,19 @@ running once the system is up. ...@@ -226,15 +226,19 @@ running once the system is up.
atascsi= [HW,SCSI] Atari SCSI atascsi= [HW,SCSI] Atari SCSI
atkbd.extra= [HW] Enable extra LEDs and keys on IBM RapidAccess, EzKey atkbd.extra= [HW] Enable extra LEDs and keys on IBM RapidAccess,
and similar keyboards EzKey and similar keyboards
atkbd.reset= [HW] Reset keyboard during initialization atkbd.reset= [HW] Reset keyboard during initialization
atkbd.set= [HW] Select keyboard code set atkbd.set= [HW] Select keyboard code set
Format: <int> (2 = AT (default) 3 = PS/2) Format: <int> (2 = AT (default) 3 = PS/2)
atkbd.scroll= [HW] Enable scroll wheel on MS Office and similar keyboards atkbd.scroll= [HW] Enable scroll wheel on MS Office and similar
keyboards
atkbd.softraw= [HW] Choose between synthetic and real raw mode
Format: <bool> (0 = real, 1 = synthetic (default))
atkbd.softrepeat= atkbd.softrepeat=
[HW] Use software keyboard repeat [HW] Use software keyboard repeat
......
...@@ -26,28 +26,27 @@ ...@@ -26,28 +26,27 @@
/* /*
* Invalid mode handlers * Invalid mode handlers
*/ */
__pabt_invalid: sub sp, sp, #S_FRAME_SIZE @ Allocate frame size in one go .macro inv_entry, sym, reason
sub sp, sp, #S_FRAME_SIZE @ Allocate frame size in one go
stmia sp, {r0 - lr} @ Save XXX r0 - lr stmia sp, {r0 - lr} @ Save XXX r0 - lr
ldr r4, .LCabt ldr r4, .LC\sym
mov r1, #BAD_PREFETCH mov r1, #\reason
.endm
__pabt_invalid:
inv_entry abt, BAD_PREFETCH
b 1f b 1f
__dabt_invalid: sub sp, sp, #S_FRAME_SIZE __dabt_invalid:
stmia sp, {r0 - lr} @ Save SVC r0 - lr [lr *should* be intact] inv_entry abt, BAD_DATA
ldr r4, .LCabt
mov r1, #BAD_DATA
b 1f b 1f
__irq_invalid: sub sp, sp, #S_FRAME_SIZE @ Allocate space on stack for frame __irq_invalid:
stmfd sp, {r0 - lr} @ Save r0 - lr inv_entry irq, BAD_IRQ
ldr r4, .LCirq
mov r1, #BAD_IRQ
b 1f b 1f
__und_invalid: sub sp, sp, #S_FRAME_SIZE __und_invalid:
stmia sp, {r0 - lr} inv_entry und, BAD_UNDEFINSTR
ldr r4, .LCund
mov r1, #BAD_UNDEFINSTR @ int reason
1: zero_fp 1: zero_fp
ldmia r4, {r5 - r7} @ Get XXX pc, cpsr, old_r0 ldmia r4, {r5 - r7} @ Get XXX pc, cpsr, old_r0
...@@ -60,15 +59,20 @@ __und_invalid: sub sp, sp, #S_FRAME_SIZE ...@@ -60,15 +59,20 @@ __und_invalid: sub sp, sp, #S_FRAME_SIZE
/* /*
* SVC mode handlers * SVC mode handlers
*/ */
.align 5 .macro svc_entry, sym
__dabt_svc: sub sp, sp, #S_FRAME_SIZE sub sp, sp, #S_FRAME_SIZE
stmia sp, {r0 - r12} @ save r0 - r12 stmia sp, {r0 - r12} @ save r0 - r12
ldr r2, .LCabt ldr r2, .LC\sym
add r0, sp, #S_FRAME_SIZE add r0, sp, #S_FRAME_SIZE
ldmia r2, {r2 - r4} @ get pc, cpsr ldmia r2, {r2 - r4} @ get pc, cpsr
add r5, sp, #S_SP add r5, sp, #S_SP
mov r1, lr mov r1, lr
stmia r5, {r0 - r4} @ save sp_SVC, lr_SVC, pc, cpsr, old_ro stmia r5, {r0 - r4} @ save sp_SVC, lr_SVC, pc, cpsr, old_ro
.endm
.align 5
__dabt_svc:
svc_entry abt
mrs r9, cpsr @ Enable interrupts if they were mrs r9, cpsr @ Enable interrupts if they were
tst r3, #PSR_I_BIT tst r3, #PSR_I_BIT
biceq r9, r9, #PSR_I_BIT @ previously biceq r9, r9, #PSR_I_BIT @ previously
...@@ -91,14 +95,8 @@ __dabt_svc: sub sp, sp, #S_FRAME_SIZE ...@@ -91,14 +95,8 @@ __dabt_svc: sub sp, sp, #S_FRAME_SIZE
ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr
.align 5 .align 5
__irq_svc: sub sp, sp, #S_FRAME_SIZE __irq_svc:
stmia sp, {r0 - r12} @ save r0 - r12 svc_entry irq
ldr r7, .LCirq
add r5, sp, #S_FRAME_SIZE
ldmia r7, {r7 - r9}
add r4, sp, #S_SP
mov r6, lr
stmia r4, {r5, r6, r7, r8, r9} @ save sp_SVC, lr_SVC, pc, cpsr, old_ro
#ifdef CONFIG_PREEMPT #ifdef CONFIG_PREEMPT
get_thread_info r8 get_thread_info r8
ldr r9, [r8, #TI_PREEMPT] @ get preempt count ldr r9, [r8, #TI_PREEMPT] @ get preempt count
...@@ -148,16 +146,10 @@ svc_preempt: teq r9, #0 @ was preempt count = 0 ...@@ -148,16 +146,10 @@ svc_preempt: teq r9, #0 @ was preempt count = 0
#endif #endif
.align 5 .align 5
__und_svc: sub sp, sp, #S_FRAME_SIZE __und_svc:
stmia sp, {r0 - r12} @ save r0 - r12 svc_entry und
ldr r3, .LCund
mov r4, lr ldr r0, [r2, #-4] @ r0 = instruction
ldmia r3, {r5 - r7}
add r3, sp, #S_FRAME_SIZE
add r2, sp, #S_SP
stmia r2, {r3 - r7} @ save sp_SVC, lr_SVC, pc, cpsr, old_ro
ldr r0, [r5, #-4] @ r0 = instruction
adrsvc al, r9, 1f @ r9 = normal FP return adrsvc al, r9, 1f @ r9 = normal FP return
bl call_fpe @ lr = undefined instr return bl call_fpe @ lr = undefined instr return
...@@ -170,14 +162,8 @@ __und_svc: sub sp, sp, #S_FRAME_SIZE ...@@ -170,14 +162,8 @@ __und_svc: sub sp, sp, #S_FRAME_SIZE
ldmia sp, {r0 - pc}^ @ Restore SVC registers ldmia sp, {r0 - pc}^ @ Restore SVC registers
.align 5 .align 5
__pabt_svc: sub sp, sp, #S_FRAME_SIZE __pabt_svc:
stmia sp, {r0 - r12} @ save r0 - r12 svc_entry abt
ldr r2, .LCabt
add r0, sp, #S_FRAME_SIZE
ldmia r2, {r2 - r4} @ get pc, cpsr
add r5, sp, #S_SP
mov r1, lr
stmia r5, {r0 - r4} @ save sp_SVC, lr_SVC, pc, cpsr, old_ro
mrs r9, cpsr @ Enable interrupts if they were mrs r9, cpsr @ Enable interrupts if they were
tst r3, #PSR_I_BIT tst r3, #PSR_I_BIT
biceq r9, r9, #PSR_I_BIT @ previously biceq r9, r9, #PSR_I_BIT @ previously
...@@ -205,15 +191,20 @@ __pabt_svc: sub sp, sp, #S_FRAME_SIZE ...@@ -205,15 +191,20 @@ __pabt_svc: sub sp, sp, #S_FRAME_SIZE
/* /*
* User mode handlers * User mode handlers
*/ */
.align 5 .macro usr_entry, sym
__dabt_usr: sub sp, sp, #S_FRAME_SIZE @ Allocate frame size in one go sub sp, sp, #S_FRAME_SIZE @ Allocate frame size in one go
stmia sp, {r0 - r12} @ save r0 - r12 stmia sp, {r0 - r12} @ save r0 - r12
ldr r7, .LCabt ldr r7, .LC\sym
add r5, sp, #S_PC add r5, sp, #S_PC
ldmia r7, {r2 - r4} @ Get USR pc, cpsr ldmia r7, {r2 - r4} @ Get USR pc, cpsr
stmia r5, {r2 - r4} @ Save USR pc, cpsr, old_r0 stmia r5, {r2 - r4} @ Save USR pc, cpsr, old_r0
stmdb r5, {sp, lr}^ stmdb r5, {sp, lr}^
alignment_trap r7, r7, __temp_abt .endm
.align 5
__dabt_usr:
usr_entry abt
alignment_trap r7, r0, __temp_abt
zero_fp zero_fp
#ifdef MULTI_ABORT #ifdef MULTI_ABORT
ldr r4, .LCprocfns @ pass r2, r3 to ldr r4, .LCprocfns @ pass r2, r3 to
...@@ -228,14 +219,9 @@ __dabt_usr: sub sp, sp, #S_FRAME_SIZE @ Allocate frame size in one go ...@@ -228,14 +219,9 @@ __dabt_usr: sub sp, sp, #S_FRAME_SIZE @ Allocate frame size in one go
b do_DataAbort b do_DataAbort
.align 5 .align 5
__irq_usr: sub sp, sp, #S_FRAME_SIZE __irq_usr:
stmia sp, {r0 - r12} @ save r0 - r12 usr_entry irq
ldr r4, .LCirq alignment_trap r7, r0, __temp_irq
add r8, sp, #S_PC
ldmia r4, {r5 - r7} @ get saved PC, SPSR
stmia r8, {r5 - r7} @ save pc, psr, old_r0
stmdb r8, {sp, lr}^
alignment_trap r4, r7, __temp_irq
zero_fp zero_fp
#ifdef CONFIG_PREEMPT #ifdef CONFIG_PREEMPT
get_thread_info r8 get_thread_info r8
...@@ -265,18 +251,13 @@ __irq_usr: sub sp, sp, #S_FRAME_SIZE ...@@ -265,18 +251,13 @@ __irq_usr: sub sp, sp, #S_FRAME_SIZE
.ltorg .ltorg
.align 5 .align 5
__und_usr: sub sp, sp, #S_FRAME_SIZE @ Allocate frame size in one go __und_usr:
stmia sp, {r0 - r12} @ Save r0 - r12 usr_entry und
ldr r4, .LCund alignment_trap r7, r0, __temp_und
add r8, sp, #S_PC
ldmia r4, {r5 - r7}
stmia r8, {r5 - r7} @ Save USR pc, cpsr, old_r0
stmdb r8, {sp, lr}^ @ Save user sp, lr
alignment_trap r4, r7, __temp_und
zero_fp zero_fp
tst r6, #PSR_T_BIT @ Thumb mode? tst r3, #PSR_T_BIT @ Thumb mode?
bne fpundefinstr @ ignore FP bne fpundefinstr @ ignore FP
sub r4, r5, #4 sub r4, r2, #4
1: ldrt r0, [r4] @ r0 = instruction 1: ldrt r0, [r4] @ r0 = instruction
adrsvc al, r9, ret_from_exception @ r9 = normal FP return adrsvc al, r9, ret_from_exception @ r9 = normal FP return
adrsvc al, lr, fpundefinstr @ lr = undefined instr return adrsvc al, lr, fpundefinstr @ lr = undefined instr return
...@@ -375,14 +356,9 @@ fpundefinstr: mov r0, sp ...@@ -375,14 +356,9 @@ fpundefinstr: mov r0, sp
b do_undefinstr b do_undefinstr
.align 5 .align 5
__pabt_usr: sub sp, sp, #S_FRAME_SIZE @ Allocate frame size in one go __pabt_usr:
stmia sp, {r0 - r12} @ Save r0 - r12 usr_entry abt
ldr r4, .LCabt alignment_trap r7, r0, __temp_abt
add r8, sp, #S_PC
ldmia r4, {r5 - r7} @ Get USR pc, cpsr
stmia r8, {r5 - r7} @ Save USR pc, cpsr, old_r0
stmdb r8, {sp, lr}^ @ Save sp_usr lr_usr
alignment_trap r4, r7, __temp_abt
zero_fp zero_fp
enable_irq r0 @ Enable interrupts enable_irq r0 @ Enable interrupts
mov r0, r5 @ address (pc) mov r0, r5 @ address (pc)
......
...@@ -28,7 +28,6 @@ bootmem_data_t plat_node_bdata[MAX_NUMNODES]; ...@@ -28,7 +28,6 @@ bootmem_data_t plat_node_bdata[MAX_NUMNODES];
int memnode_shift; int memnode_shift;
u8 memnodemap[NODEMAPSIZE]; u8 memnodemap[NODEMAPSIZE];
#define NUMA_NO_NODE 0xff
unsigned char cpu_to_node[NR_CPUS] = { [0 ... NR_CPUS-1] = NUMA_NO_NODE }; unsigned char cpu_to_node[NR_CPUS] = { [0 ... NR_CPUS-1] = NUMA_NO_NODE };
cpumask_t node_to_cpumask[MAX_NUMNODES]; cpumask_t node_to_cpumask[MAX_NUMNODES];
......
...@@ -65,7 +65,10 @@ static void flush_kernel_map(void *address) ...@@ -65,7 +65,10 @@ static void flush_kernel_map(void *address)
asm volatile("clflush (%0)" :: "r" (address + i)); asm volatile("clflush (%0)" :: "r" (address + i));
} else } else
asm volatile("wbinvd":::"memory"); asm volatile("wbinvd":::"memory");
if (address)
__flush_tlb_one(address); __flush_tlb_one(address);
else
__flush_tlb_all();
} }
...@@ -217,6 +220,8 @@ void global_flush_tlb(void) ...@@ -217,6 +220,8 @@ void global_flush_tlb(void)
down_read(&init_mm.mmap_sem); down_read(&init_mm.mmap_sem);
df = xchg(&df_list, NULL); df = xchg(&df_list, NULL);
up_read(&init_mm.mmap_sem); up_read(&init_mm.mmap_sem);
if (!df)
return;
flush_map((df && !df->next) ? df->address : 0); flush_map((df && !df->next) ? df->address : 0);
for (; df; df = next_df) { for (; df; df = next_df) {
next_df = df->next; next_df = df->next;
......
...@@ -177,10 +177,18 @@ int __init acpi_scan_nodes(unsigned long start, unsigned long end) ...@@ -177,10 +177,18 @@ int __init acpi_scan_nodes(unsigned long start, unsigned long end)
if (!node_isset(i, nodes_parsed)) if (!node_isset(i, nodes_parsed))
continue; continue;
cutoff_node(i, start, end); cutoff_node(i, start, end);
if (nodes[i].start == nodes[i].end) if (nodes[i].start == nodes[i].end) {
node_clear(i, nodes_parsed);
continue; continue;
}
setup_node_bootmem(i, nodes[i].start, nodes[i].end); setup_node_bootmem(i, nodes[i].start, nodes[i].end);
} }
for (i = 0; i < NR_CPUS; i++) {
if (cpu_to_node[i] == NUMA_NO_NODE)
continue;
if (!node_isset(cpu_to_node[i], nodes_parsed))
cpu_to_node[i] = NUMA_NO_NODE;
}
numa_init_array(); numa_init_array();
return 0; return 0;
} }
......
...@@ -1285,19 +1285,19 @@ static int cfq_queue_empty(request_queue_t *q) ...@@ -1285,19 +1285,19 @@ static int cfq_queue_empty(request_queue_t *q)
static void cfq_completed_request(request_queue_t *q, struct request *rq) static void cfq_completed_request(request_queue_t *q, struct request *rq)
{ {
struct cfq_rq *crq = RQ_DATA(rq); struct cfq_rq *crq = RQ_DATA(rq);
struct cfq_queue *cfqq;
if (unlikely(!blk_fs_request(rq))) if (unlikely(!blk_fs_request(rq)))
return; return;
if (crq->in_flight) { cfqq = crq->cfq_queue;
struct cfq_queue *cfqq = crq->cfq_queue;
if (crq->in_flight) {
WARN_ON(!cfqq->in_flight); WARN_ON(!cfqq->in_flight);
cfqq->in_flight--; cfqq->in_flight--;
cfq_account_completion(cfqq, crq);
} }
cfq_account_completion(cfqq, crq);
} }
static struct request * static struct request *
......
/* /*
* i8xx_tco 0.06: TCO timer driver for i8xx chipsets * i8xx_tco 0.07: TCO timer driver for i8xx chipsets
* *
* (c) Copyright 2000 kernel concepts <nils@kernelconcepts.de>, All Rights Reserved. * (c) Copyright 2000 kernel concepts <nils@kernelconcepts.de>, All Rights Reserved.
* http://www.kernelconcepts.de * http://www.kernelconcepts.de
...@@ -22,11 +22,22 @@ ...@@ -22,11 +22,22 @@
* *
* The TCO timer is implemented in the following I/O controller hubs: * The TCO timer is implemented in the following I/O controller hubs:
* (See the intel documentation on http://developer.intel.com.) * (See the intel documentation on http://developer.intel.com.)
* 82801AA & 82801AB chip : document number 290655-003, 290677-004, * 82801AA (ICH) : document number 290655-003, 290677-014,
* 82801BA & 82801BAM chip : document number 290687-002, 298242-005, * 82801AB (ICHO) : document number 290655-003, 290677-014,
* 82801CA & 82801CAM chip : document number 290716-001, 290718-001, * 82801BA (ICH2) : document number 290687-002, 298242-027,
* 82801DB & 82801E chip : document number 290744-001, 273599-001, * 82801BAM (ICH2-M) : document number 290687-002, 298242-027,
* 82801EB & 82801ER chip : document number 252516-001 * 82801CA (ICH3-S) : document number 290733-003, 290739-013,
* 82801CAM (ICH3-M) : document number 290716-001, 290718-007,
* 82801DB (ICH4) : document number 290744-001, 290745-020,
* 82801DBM (ICH4-M) : document number 252337-001, 252663-005,
* 82801E (C-ICH) : document number 273599-001, 273645-002,
* 82801EB (ICH5) : document number 252516-001, 252517-003,
* 82801ER (ICH5R) : document number 252516-001, 252517-003,
* 82801FB (ICH6) : document number 301473-002, 301474-007,
* 82801FR (ICH6R) : document number 301473-002, 301474-007,
* 82801FBM (ICH6-M) : document number 301473-002, 301474-007,
* 82801FW (ICH6W) : document number 301473-001, 301474-007,
* 82801FRW (ICH6RW) : document number 301473-001, 301474-007
* *
* 20000710 Nils Faerber * 20000710 Nils Faerber
* Initial Version 0.01 * Initial Version 0.01
...@@ -49,6 +60,9 @@ ...@@ -49,6 +60,9 @@
* 20030921 Wim Van Sebroeck <wim@iguana.be> * 20030921 Wim Van Sebroeck <wim@iguana.be>
* 0.06 change i810_margin to heartbeat, use module_param, * 0.06 change i810_margin to heartbeat, use module_param,
* added notify system support, renamed module to i8xx_tco. * added notify system support, renamed module to i8xx_tco.
* 20050128 Wim Van Sebroeck <wim@iguana.be>
* 0.07 Added support for the ICH4-M, ICH6, ICH6R, ICH6-M, ICH6W and ICH6RW
* chipsets. Also added support for the "undocumented" ICH7 chipset.
*/ */
/* /*
...@@ -73,7 +87,7 @@ ...@@ -73,7 +87,7 @@
#include "i8xx_tco.h" #include "i8xx_tco.h"
/* Module and version information */ /* Module and version information */
#define TCO_VERSION "0.06" #define TCO_VERSION "0.07"
#define TCO_MODULE_NAME "i8xx TCO timer" #define TCO_MODULE_NAME "i8xx TCO timer"
#define TCO_DRIVER_NAME TCO_MODULE_NAME ", v" TCO_VERSION #define TCO_DRIVER_NAME TCO_MODULE_NAME ", v" TCO_VERSION
#define PFX TCO_MODULE_NAME ": " #define PFX TCO_MODULE_NAME ": "
...@@ -360,8 +374,14 @@ static struct pci_device_id i8xx_tco_pci_tbl[] = { ...@@ -360,8 +374,14 @@ static struct pci_device_id i8xx_tco_pci_tbl[] = {
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_0, PCI_ANY_ID, PCI_ANY_ID, }, { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_0, PCI_ANY_ID, PCI_ANY_ID, },
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_12, PCI_ANY_ID, PCI_ANY_ID, }, { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_12, PCI_ANY_ID, PCI_ANY_ID, },
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_0, PCI_ANY_ID, PCI_ANY_ID, }, { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_0, PCI_ANY_ID, PCI_ANY_ID, },
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_12, PCI_ANY_ID, PCI_ANY_ID, },
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801E_0, PCI_ANY_ID, PCI_ANY_ID, }, { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801E_0, PCI_ANY_ID, PCI_ANY_ID, },
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801EB_0, PCI_ANY_ID, PCI_ANY_ID, }, { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801EB_0, PCI_ANY_ID, PCI_ANY_ID, },
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_0, PCI_ANY_ID, PCI_ANY_ID, },
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_1, PCI_ANY_ID, PCI_ANY_ID, },
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_2, PCI_ANY_ID, PCI_ANY_ID, },
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_0, PCI_ANY_ID, PCI_ANY_ID, },
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_1, PCI_ANY_ID, PCI_ANY_ID, },
{ 0, }, /* End of list */ { 0, }, /* End of list */
}; };
MODULE_DEVICE_TABLE (pci, i8xx_tco_pci_tbl); MODULE_DEVICE_TABLE (pci, i8xx_tco_pci_tbl);
......
...@@ -283,6 +283,7 @@ void ata_to_sense_error(struct ata_queued_cmd *qc, u8 drv_stat) ...@@ -283,6 +283,7 @@ void ata_to_sense_error(struct ata_queued_cmd *qc, u8 drv_stat)
if(err) if(err)
printk(KERN_DEBUG "ata%u: no sense translation for 0x%02x\n", qc->ap->id, err); printk(KERN_DEBUG "ata%u: no sense translation for 0x%02x\n", qc->ap->id, err);
i = 0;
/* Fall back to interpreting status bits */ /* Fall back to interpreting status bits */
while(stat_table[i][0] != 0xFF) while(stat_table[i][0] != 0xFF)
{ {
......
...@@ -744,11 +744,12 @@ static void s3c24xx_serial_set_termios(struct uart_port *port, ...@@ -744,11 +744,12 @@ static void s3c24xx_serial_set_termios(struct uart_port *port,
unsigned long flags; unsigned long flags;
unsigned int baud, quot; unsigned int baud, quot;
unsigned int ulcon; unsigned int ulcon;
unsigned int umcon;
/* /*
* We don't support modem control lines. * We don't support modem control lines.
*/ */
termios->c_cflag &= ~(HUPCL | CRTSCTS | CMSPAR); termios->c_cflag &= ~(HUPCL | CMSPAR);
termios->c_cflag |= CLOCAL; termios->c_cflag |= CLOCAL;
/* /*
...@@ -806,8 +807,10 @@ static void s3c24xx_serial_set_termios(struct uart_port *port, ...@@ -806,8 +807,10 @@ static void s3c24xx_serial_set_termios(struct uart_port *port,
if (termios->c_cflag & CSTOPB) if (termios->c_cflag & CSTOPB)
ulcon |= S3C2410_LCON_STOPB; ulcon |= S3C2410_LCON_STOPB;
umcon = (termios->c_cflag & CRTSCTS) ? S3C2410_UMCOM_AFC : 0;
if (termios->c_cflag & PARENB) { if (termios->c_cflag & PARENB) {
if (!(termios->c_cflag & PARODD)) if (termios->c_cflag & PARODD)
ulcon |= S3C2410_LCON_PODD; ulcon |= S3C2410_LCON_PODD;
else else
ulcon |= S3C2410_LCON_PEVEN; ulcon |= S3C2410_LCON_PEVEN;
...@@ -821,6 +824,7 @@ static void s3c24xx_serial_set_termios(struct uart_port *port, ...@@ -821,6 +824,7 @@ static void s3c24xx_serial_set_termios(struct uart_port *port,
wr_regl(port, S3C2410_ULCON, ulcon); wr_regl(port, S3C2410_ULCON, ulcon);
wr_regl(port, S3C2410_UBRDIV, quot); wr_regl(port, S3C2410_UBRDIV, quot);
wr_regl(port, S3C2410_UMCON, umcon);
dbg("uart: ulcon = 0x%08x, ucon = 0x%08x, ufcon = 0x%08x\n", dbg("uart: ulcon = 0x%08x, ucon = 0x%08x, ufcon = 0x%08x\n",
rd_regl(port, S3C2410_ULCON), rd_regl(port, S3C2410_ULCON),
......
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
#ifdef CONFIG_DISCONTIGMEM #ifdef CONFIG_DISCONTIGMEM
#define NODES_SHIFT 4 /* Up to 16 nodes */
/* /*
* Given a kernel address, find the home node of the underlying memory. * Given a kernel address, find the home node of the underlying memory.
*/ */
......
...@@ -65,12 +65,9 @@ static inline unsigned sz __in##fnsuffix (unsigned int port) \ ...@@ -65,12 +65,9 @@ static inline unsigned sz __in##fnsuffix (unsigned int port) \
return (unsigned sz)value; \ return (unsigned sz)value; \
} }
static inline unsigned int __ioaddr (unsigned int port) static inline void __iomem *__ioaddr (unsigned int port)
{ {
if (__PORT_PCIO(port)) return (void __iomem *)(__PORT_PCIO(port) ? PCIO_BASE + port : port);
return (unsigned int)(PCIO_BASE + (port));
else
return (unsigned int)(0 + (port));
} }
#define DECLARE_IO(sz,fnsuffix,instr) \ #define DECLARE_IO(sz,fnsuffix,instr) \
...@@ -170,7 +167,7 @@ DECLARE_IO(int,l,"") ...@@ -170,7 +167,7 @@ DECLARE_IO(int,l,"")
result; \ result; \
}) })
#define __ioaddrc(port) (__PORT_PCIO((port)) ? PCIO_BASE + ((port)) : ((port))) #define __ioaddrc(port) ((void __iomem *)(__PORT_PCIO(port) ? PCIO_BASE + (port) : (port)))
#define inb(p) (__builtin_constant_p((p)) ? __inbc(p) : __inb(p)) #define inb(p) (__builtin_constant_p((p)) ? __inbc(p) : __inb(p))
#define inw(p) (__builtin_constant_p((p)) ? __inwc(p) : __inw(p)) #define inw(p) (__builtin_constant_p((p)) ? __inwc(p) : __inw(p))
......
...@@ -113,6 +113,9 @@ ...@@ -113,6 +113,9 @@
S3C2410_UFCON_TXTRIG0 | \ S3C2410_UFCON_TXTRIG0 | \
S3C2410_UFCON_RXTRIG8 ) S3C2410_UFCON_RXTRIG8 )
#define S3C2410_UMCOM_AFC (1<<4)
#define S3C2410_UMCOM_RTS_LOW (1<<0)
#define S3C2410_UFSTAT_TXFULL (1<<9) #define S3C2410_UFSTAT_TXFULL (1<<9)
#define S3C2410_UFSTAT_RXFULL (1<<8) #define S3C2410_UFSTAT_RXFULL (1<<8)
#define S3C2410_UFSTAT_TXMASK (15<<4) #define S3C2410_UFSTAT_TXMASK (15<<4)
......
...@@ -7,12 +7,17 @@ ...@@ -7,12 +7,17 @@
* it under the terms of the GNU General Public License version 2 as * it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation. * published by the Free Software Foundation.
*/ */
/* This declaration for the size of the NUMA (CONFIG_DISCONTIGMEM)
* memory node table is the default.
*
* A good place to override this value is include/asm/arch/memory.h.
*/
#ifndef __ASM_ARM_NUMNODES_H #ifndef __ASM_ARM_NUMNODES_H
#define __ASM_ARM_NUMNODES_H #define __ASM_ARM_NUMNODES_H
#ifdef CONFIG_ARCH_LH7A40X #ifndef NODES_SHIFT
# define NODES_SHIFT 4 /* Max 16 nodes for the Sharp CPUs */
#else
# define NODES_SHIFT 2 /* Normally, Max 4 Nodes */ # define NODES_SHIFT 2 /* Normally, Max 4 Nodes */
#endif #endif
......
...@@ -16,4 +16,6 @@ extern void numa_add_cpu(int cpu); ...@@ -16,4 +16,6 @@ extern void numa_add_cpu(int cpu);
extern void numa_init_array(void); extern void numa_init_array(void);
extern int numa_off; extern int numa_off;
#define NUMA_NO_NODE 0xff
#endif #endif
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