diff options
author | Jiri Kosina <jkosina@suse.cz> | 2014-02-20 08:54:28 -0500 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2014-02-20 08:54:28 -0500 |
commit | d4263348f796f29546f90802177865dd4379dd0a (patch) | |
tree | adcbdaebae584eee2f32fab95e826e8e49eef385 /arch/cris/arch-v32 | |
parent | be873ac782f5ff5ee6675f83929f4fe6737eead2 (diff) | |
parent | 6d0abeca3242a88cab8232e4acd7e2bf088f3bc2 (diff) |
Merge branch 'master' into for-next
Diffstat (limited to 'arch/cris/arch-v32')
-rw-r--r-- | arch/cris/arch-v32/drivers/axisflashmap.c | 2 | ||||
-rw-r--r-- | arch/cris/arch-v32/drivers/mach-a3/gpio.c | 2 | ||||
-rw-r--r-- | arch/cris/arch-v32/drivers/mach-fs/gpio.c | 4 | ||||
-rw-r--r-- | arch/cris/arch-v32/drivers/sync_serial.c | 4 | ||||
-rw-r--r-- | arch/cris/arch-v32/kernel/entry.S | 34 | ||||
-rw-r--r-- | arch/cris/arch-v32/kernel/fasttimer.c | 2 | ||||
-rw-r--r-- | arch/cris/arch-v32/kernel/irq.c | 10 | ||||
-rw-r--r-- | arch/cris/arch-v32/kernel/smp.c | 2 | ||||
-rw-r--r-- | arch/cris/arch-v32/kernel/time.c | 6 | ||||
-rw-r--r-- | arch/cris/arch-v32/mach-a3/arbiter.c | 4 | ||||
-rw-r--r-- | arch/cris/arch-v32/mach-fs/arbiter.c | 2 |
11 files changed, 43 insertions, 29 deletions
diff --git a/arch/cris/arch-v32/drivers/axisflashmap.c b/arch/cris/arch-v32/drivers/axisflashmap.c index 1b6ad6247204..28dd77144e8f 100644 --- a/arch/cris/arch-v32/drivers/axisflashmap.c +++ b/arch/cris/arch-v32/drivers/axisflashmap.c | |||
@@ -24,8 +24,6 @@ | |||
24 | #include <linux/mtd/mtdram.h> | 24 | #include <linux/mtd/mtdram.h> |
25 | #include <linux/mtd/partitions.h> | 25 | #include <linux/mtd/partitions.h> |
26 | 26 | ||
27 | #include <linux/cramfs_fs.h> | ||
28 | |||
29 | #include <asm/axisflashmap.h> | 27 | #include <asm/axisflashmap.h> |
30 | #include <asm/mmu.h> | 28 | #include <asm/mmu.h> |
31 | 29 | ||
diff --git a/arch/cris/arch-v32/drivers/mach-a3/gpio.c b/arch/cris/arch-v32/drivers/mach-a3/gpio.c index 0b86deedacb9..74f9fe80940c 100644 --- a/arch/cris/arch-v32/drivers/mach-a3/gpio.c +++ b/arch/cris/arch-v32/drivers/mach-a3/gpio.c | |||
@@ -978,7 +978,7 @@ static int __init gpio_init(void) | |||
978 | CRIS_LED_DISK_WRITE(0); | 978 | CRIS_LED_DISK_WRITE(0); |
979 | 979 | ||
980 | int res2 = request_irq(GIO_INTR_VECT, gpio_interrupt, | 980 | int res2 = request_irq(GIO_INTR_VECT, gpio_interrupt, |
981 | IRQF_SHARED | IRQF_DISABLED, "gpio", &alarmlist); | 981 | IRQF_SHARED, "gpio", &alarmlist); |
982 | if (res2) { | 982 | if (res2) { |
983 | printk(KERN_ERR "err: irq for gpio\n"); | 983 | printk(KERN_ERR "err: irq for gpio\n"); |
984 | return res2; | 984 | return res2; |
diff --git a/arch/cris/arch-v32/drivers/mach-fs/gpio.c b/arch/cris/arch-v32/drivers/mach-fs/gpio.c index a2ac0917f1a6..9e54273af0ca 100644 --- a/arch/cris/arch-v32/drivers/mach-fs/gpio.c +++ b/arch/cris/arch-v32/drivers/mach-fs/gpio.c | |||
@@ -964,11 +964,11 @@ gpio_init(void) | |||
964 | * in some tests. | 964 | * in some tests. |
965 | */ | 965 | */ |
966 | if (request_irq(TIMER0_INTR_VECT, gpio_poll_timer_interrupt, | 966 | if (request_irq(TIMER0_INTR_VECT, gpio_poll_timer_interrupt, |
967 | IRQF_SHARED | IRQF_DISABLED, "gpio poll", &alarmlist)) | 967 | IRQF_SHARED, "gpio poll", &alarmlist)) |
968 | printk(KERN_ERR "timer0 irq for gpio\n"); | 968 | printk(KERN_ERR "timer0 irq for gpio\n"); |
969 | 969 | ||
970 | if (request_irq(GIO_INTR_VECT, gpio_pa_interrupt, | 970 | if (request_irq(GIO_INTR_VECT, gpio_pa_interrupt, |
971 | IRQF_SHARED | IRQF_DISABLED, "gpio PA", &alarmlist)) | 971 | IRQF_SHARED, "gpio PA", &alarmlist)) |
972 | printk(KERN_ERR "PA irq for gpio\n"); | 972 | printk(KERN_ERR "PA irq for gpio\n"); |
973 | 973 | ||
974 | #ifdef CONFIG_ETRAX_VIRTUAL_GPIO | 974 | #ifdef CONFIG_ETRAX_VIRTUAL_GPIO |
diff --git a/arch/cris/arch-v32/drivers/sync_serial.c b/arch/cris/arch-v32/drivers/sync_serial.c index 219f704e3221..bbb806b68838 100644 --- a/arch/cris/arch-v32/drivers/sync_serial.c +++ b/arch/cris/arch-v32/drivers/sync_serial.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/timer.h> | 20 | #include <linux/timer.h> |
21 | #include <linux/spinlock.h> | 21 | #include <linux/spinlock.h> |
22 | #include <linux/wait.h> | ||
22 | 23 | ||
23 | #include <asm/io.h> | 24 | #include <asm/io.h> |
24 | #include <dma.h> | 25 | #include <dma.h> |
@@ -1144,7 +1145,8 @@ static ssize_t sync_serial_read(struct file * file, char * buf, | |||
1144 | if (file->f_flags & O_NONBLOCK) | 1145 | if (file->f_flags & O_NONBLOCK) |
1145 | return -EAGAIN; | 1146 | return -EAGAIN; |
1146 | 1147 | ||
1147 | interruptible_sleep_on(&port->in_wait_q); | 1148 | wait_event_interruptible(port->in_wait_q, |
1149 | !(start == end && !port->full)); | ||
1148 | if (signal_pending(current)) | 1150 | if (signal_pending(current)) |
1149 | return -EINTR; | 1151 | return -EINTR; |
1150 | 1152 | ||
diff --git a/arch/cris/arch-v32/kernel/entry.S b/arch/cris/arch-v32/kernel/entry.S index faa644111feb..2f19ac6217aa 100644 --- a/arch/cris/arch-v32/kernel/entry.S +++ b/arch/cris/arch-v32/kernel/entry.S | |||
@@ -424,7 +424,7 @@ nmi_interrupt: | |||
424 | bpl 1f | 424 | bpl 1f |
425 | nop | 425 | nop |
426 | jsr handle_watchdog_bite ; In time.c. | 426 | jsr handle_watchdog_bite ; In time.c. |
427 | move.d $sp, $r10 ; Pointer to registers | 427 | move.d $sp, $r10 ; Pointer to registers |
428 | 1: btstq REG_BIT(intr_vect, r_nmi, ext), $r0 | 428 | 1: btstq REG_BIT(intr_vect, r_nmi, ext), $r0 |
429 | bpl 1f | 429 | bpl 1f |
430 | nop | 430 | nop |
@@ -452,7 +452,7 @@ spurious_interrupt: | |||
452 | nop | 452 | nop |
453 | 453 | ||
454 | ;; This handles the case when multiple interrupts arrive at the same | 454 | ;; This handles the case when multiple interrupts arrive at the same |
455 | ;; time. Jump to the first set interrupt bit in a priotiry fashion. The | 455 | ;; time. Jump to the first set interrupt bit in a priority fashion. The |
456 | ;; hardware will call the unserved interrupts after the handler | 456 | ;; hardware will call the unserved interrupts after the handler |
457 | ;; finishes. | 457 | ;; finishes. |
458 | .type multiple_interrupt, @function | 458 | .type multiple_interrupt, @function |
@@ -885,13 +885,29 @@ sys_call_table: | |||
885 | .long sys_preadv | 885 | .long sys_preadv |
886 | .long sys_pwritev | 886 | .long sys_pwritev |
887 | .long sys_setns /* 335 */ | 887 | .long sys_setns /* 335 */ |
888 | 888 | .long sys_name_to_handle_at | |
889 | /* | 889 | .long sys_open_by_handle_at |
890 | * NOTE!! This doesn't have to be exact - we just have | 890 | .long sys_rt_tgsigqueueinfo |
891 | * to make sure we have _enough_ of the "sys_ni_syscall" | 891 | .long sys_perf_event_open |
892 | * entries. Don't panic if you notice that this hasn't | 892 | .long sys_recvmmsg /* 340 */ |
893 | * been shrunk every time we add a new system call. | 893 | .long sys_accept4 |
894 | */ | 894 | .long sys_fanotify_init |
895 | .long sys_fanotify_mark | ||
896 | .long sys_prlimit64 | ||
897 | .long sys_clock_adjtime /* 345 */ | ||
898 | .long sys_syncfs | ||
899 | .long sys_sendmmsg | ||
900 | .long sys_process_vm_readv | ||
901 | .long sys_process_vm_writev | ||
902 | .long sys_kcmp /* 350 */ | ||
903 | .long sys_finit_module | ||
904 | |||
905 | /* | ||
906 | * NOTE!! This doesn't have to be exact - we just have | ||
907 | * to make sure we have _enough_ of the "sys_ni_syscall" | ||
908 | * entries. Don't panic if you notice that this hasn't | ||
909 | * been shrunk every time we add a new system call. | ||
910 | */ | ||
895 | 911 | ||
896 | .rept NR_syscalls - (.-sys_call_table) / 4 | 912 | .rept NR_syscalls - (.-sys_call_table) / 4 |
897 | .long sys_ni_syscall | 913 | .long sys_ni_syscall |
diff --git a/arch/cris/arch-v32/kernel/fasttimer.c b/arch/cris/arch-v32/kernel/fasttimer.c index f6644535b17e..b130c2c5fdd8 100644 --- a/arch/cris/arch-v32/kernel/fasttimer.c +++ b/arch/cris/arch-v32/kernel/fasttimer.c | |||
@@ -786,7 +786,7 @@ int fast_timer_init(void) | |||
786 | proc_create("fasttimer", 0, NULL, &proc_fasttimer_fops); | 786 | proc_create("fasttimer", 0, NULL, &proc_fasttimer_fops); |
787 | #endif /* PROC_FS */ | 787 | #endif /* PROC_FS */ |
788 | if (request_irq(TIMER0_INTR_VECT, timer_trig_interrupt, | 788 | if (request_irq(TIMER0_INTR_VECT, timer_trig_interrupt, |
789 | IRQF_SHARED | IRQF_DISABLED, | 789 | IRQF_SHARED, |
790 | "fast timer int", &fast_timer_list)) | 790 | "fast timer int", &fast_timer_list)) |
791 | printk(KERN_ERR "err: fasttimer irq\n"); | 791 | printk(KERN_ERR "err: fasttimer irq\n"); |
792 | fast_timer_is_init = 1; | 792 | fast_timer_is_init = 1; |
diff --git a/arch/cris/arch-v32/kernel/irq.c b/arch/cris/arch-v32/kernel/irq.c index 5ebe6e841820..25437ae28128 100644 --- a/arch/cris/arch-v32/kernel/irq.c +++ b/arch/cris/arch-v32/kernel/irq.c | |||
@@ -331,11 +331,11 @@ extern void do_IRQ(int irq, struct pt_regs * regs); | |||
331 | void | 331 | void |
332 | crisv32_do_IRQ(int irq, int block, struct pt_regs* regs) | 332 | crisv32_do_IRQ(int irq, int block, struct pt_regs* regs) |
333 | { | 333 | { |
334 | /* Interrupts that may not be moved to another CPU and | 334 | /* Interrupts that may not be moved to another CPU may |
335 | * are IRQF_DISABLED may skip blocking. This is currently | 335 | * skip blocking. This is currently only valid for the |
336 | * only valid for the timer IRQ and the IPI and is used | 336 | * timer IRQ and the IPI and is used for the timer |
337 | * for the timer interrupt to avoid watchdog starvation. | 337 | * interrupt to avoid watchdog starvation. |
338 | */ | 338 | */ |
339 | if (!block) { | 339 | if (!block) { |
340 | do_IRQ(irq, regs); | 340 | do_IRQ(irq, regs); |
341 | return; | 341 | return; |
diff --git a/arch/cris/arch-v32/kernel/smp.c b/arch/cris/arch-v32/kernel/smp.c index fe8e6039db2a..0698582467ca 100644 --- a/arch/cris/arch-v32/kernel/smp.c +++ b/arch/cris/arch-v32/kernel/smp.c | |||
@@ -64,7 +64,7 @@ static irqreturn_t crisv32_ipi_interrupt(int irq, void *dev_id); | |||
64 | static int send_ipi(int vector, int wait, cpumask_t cpu_mask); | 64 | static int send_ipi(int vector, int wait, cpumask_t cpu_mask); |
65 | static struct irqaction irq_ipi = { | 65 | static struct irqaction irq_ipi = { |
66 | .handler = crisv32_ipi_interrupt, | 66 | .handler = crisv32_ipi_interrupt, |
67 | .flags = IRQF_DISABLED, | 67 | .flags = 0, |
68 | .name = "ipi", | 68 | .name = "ipi", |
69 | }; | 69 | }; |
70 | 70 | ||
diff --git a/arch/cris/arch-v32/kernel/time.c b/arch/cris/arch-v32/kernel/time.c index 8c4b45efd7b6..ee66866538f8 100644 --- a/arch/cris/arch-v32/kernel/time.c +++ b/arch/cris/arch-v32/kernel/time.c | |||
@@ -216,12 +216,10 @@ static inline irqreturn_t timer_interrupt(int irq, void *dev_id) | |||
216 | return IRQ_HANDLED; | 216 | return IRQ_HANDLED; |
217 | } | 217 | } |
218 | 218 | ||
219 | /* Timer is IRQF_SHARED so drivers can add stuff to the timer irq chain. | 219 | /* Timer is IRQF_SHARED so drivers can add stuff to the timer irq chain. */ |
220 | * It needs to be IRQF_DISABLED to make the jiffies update work properly. | ||
221 | */ | ||
222 | static struct irqaction irq_timer = { | 220 | static struct irqaction irq_timer = { |
223 | .handler = timer_interrupt, | 221 | .handler = timer_interrupt, |
224 | .flags = IRQF_SHARED | IRQF_DISABLED, | 222 | .flags = IRQF_SHARED, |
225 | .name = "timer" | 223 | .name = "timer" |
226 | }; | 224 | }; |
227 | 225 | ||
diff --git a/arch/cris/arch-v32/mach-a3/arbiter.c b/arch/cris/arch-v32/mach-a3/arbiter.c index 15f5c9de2639..ab5c421a4de8 100644 --- a/arch/cris/arch-v32/mach-a3/arbiter.c +++ b/arch/cris/arch-v32/mach-a3/arbiter.c | |||
@@ -256,11 +256,11 @@ static void crisv32_arbiter_init(void) | |||
256 | crisv32_arbiter_config(1, EXT_REGION, 0); | 256 | crisv32_arbiter_config(1, EXT_REGION, 0); |
257 | 257 | ||
258 | if (request_irq(MEMARB_FOO_INTR_VECT, crisv32_foo_arbiter_irq, | 258 | if (request_irq(MEMARB_FOO_INTR_VECT, crisv32_foo_arbiter_irq, |
259 | IRQF_DISABLED, "arbiter", NULL)) | 259 | 0, "arbiter", NULL)) |
260 | printk(KERN_ERR "Couldn't allocate arbiter IRQ\n"); | 260 | printk(KERN_ERR "Couldn't allocate arbiter IRQ\n"); |
261 | 261 | ||
262 | if (request_irq(MEMARB_BAR_INTR_VECT, crisv32_bar_arbiter_irq, | 262 | if (request_irq(MEMARB_BAR_INTR_VECT, crisv32_bar_arbiter_irq, |
263 | IRQF_DISABLED, "arbiter", NULL)) | 263 | 0, "arbiter", NULL)) |
264 | printk(KERN_ERR "Couldn't allocate arbiter IRQ\n"); | 264 | printk(KERN_ERR "Couldn't allocate arbiter IRQ\n"); |
265 | 265 | ||
266 | #ifndef CONFIG_ETRAX_KGDB | 266 | #ifndef CONFIG_ETRAX_KGDB |
diff --git a/arch/cris/arch-v32/mach-fs/arbiter.c b/arch/cris/arch-v32/mach-fs/arbiter.c index 3f8ebb5c1477..c97f4d8120f9 100644 --- a/arch/cris/arch-v32/mach-fs/arbiter.c +++ b/arch/cris/arch-v32/mach-fs/arbiter.c | |||
@@ -184,7 +184,7 @@ static void crisv32_arbiter_init(void) | |||
184 | crisv32_arbiter_config(EXT_REGION, 0); | 184 | crisv32_arbiter_config(EXT_REGION, 0); |
185 | crisv32_arbiter_config(INT_REGION, 0); | 185 | crisv32_arbiter_config(INT_REGION, 0); |
186 | 186 | ||
187 | if (request_irq(MEMARB_INTR_VECT, crisv32_arbiter_irq, IRQF_DISABLED, | 187 | if (request_irq(MEMARB_INTR_VECT, crisv32_arbiter_irq, 0, |
188 | "arbiter", NULL)) | 188 | "arbiter", NULL)) |
189 | printk(KERN_ERR "Couldn't allocate arbiter IRQ\n"); | 189 | printk(KERN_ERR "Couldn't allocate arbiter IRQ\n"); |
190 | 190 | ||