diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-24 20:08:56 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-24 20:08:56 -0400 |
commit | 5f8fe4270e53d38421ba34c428c3b58933b48e50 (patch) | |
tree | 2148a3ba1ec842d0d0ad8f3e3eb209eb6eba673d | |
parent | d9fbd9a2cd5ac1b286a7d7cdb1a180ce1edaee2f (diff) | |
parent | 24924ece4482d5466ffcd0affedce63816c88e53 (diff) |
Merge branch 'for-linus' of git://repo.or.cz/cris-mirror
* 'for-linus' of git://repo.or.cz/cris-mirror:
CRIS: Cleanup linker script using new linker script macros.
ARRAY_SIZE changes
CRIS: convert to asm-generic/hardirq.h
CRISv10: Don't autonegotiate if autonegotiation is off
CRIS: fix defconfig build failure
CRIS: add pgprot_noncached
-rw-r--r-- | arch/cris/arch-v10/kernel/time.c | 1 | ||||
-rw-r--r-- | arch/cris/arch-v32/kernel/smp.c | 2 | ||||
-rw-r--r-- | arch/cris/arch-v32/kernel/time.c | 1 | ||||
-rw-r--r-- | arch/cris/arch-v32/mach-a3/io.c | 2 | ||||
-rw-r--r-- | arch/cris/arch-v32/mach-fs/io.c | 2 | ||||
-rw-r--r-- | arch/cris/include/arch-v10/arch/mmu.h | 9 | ||||
-rw-r--r-- | arch/cris/include/arch-v32/arch/mmu.h | 10 | ||||
-rw-r--r-- | arch/cris/include/asm/hardirq.h | 12 | ||||
-rw-r--r-- | arch/cris/include/asm/pgtable.h | 2 | ||||
-rw-r--r-- | arch/cris/kernel/irq.c | 5 | ||||
-rw-r--r-- | arch/cris/kernel/vmlinux.lds.S | 37 | ||||
-rw-r--r-- | drivers/net/cris/eth_v10.c | 20 | ||||
-rw-r--r-- | drivers/serial/crisv10.c | 1 |
13 files changed, 43 insertions, 61 deletions
diff --git a/arch/cris/arch-v10/kernel/time.c b/arch/cris/arch-v10/kernel/time.c index 2b73c7a5b649..31ca1418d5a7 100644 --- a/arch/cris/arch-v10/kernel/time.c +++ b/arch/cris/arch-v10/kernel/time.c | |||
@@ -28,7 +28,6 @@ | |||
28 | 28 | ||
29 | extern void update_xtime_from_cmos(void); | 29 | extern void update_xtime_from_cmos(void); |
30 | extern int set_rtc_mmss(unsigned long nowtime); | 30 | extern int set_rtc_mmss(unsigned long nowtime); |
31 | extern int setup_irq(int, struct irqaction *); | ||
32 | extern int have_rtc; | 31 | extern int have_rtc; |
33 | 32 | ||
34 | unsigned long get_ns_in_jiffie(void) | 33 | unsigned long get_ns_in_jiffie(void) |
diff --git a/arch/cris/arch-v32/kernel/smp.c b/arch/cris/arch-v32/kernel/smp.c index d2a3ff8c4d37..058adddf4e4b 100644 --- a/arch/cris/arch-v32/kernel/smp.c +++ b/arch/cris/arch-v32/kernel/smp.c | |||
@@ -52,8 +52,6 @@ static struct mm_struct* flush_mm; | |||
52 | static struct vm_area_struct* flush_vma; | 52 | static struct vm_area_struct* flush_vma; |
53 | static unsigned long flush_addr; | 53 | static unsigned long flush_addr; |
54 | 54 | ||
55 | extern int setup_irq(int, struct irqaction *); | ||
56 | |||
57 | /* Mode registers */ | 55 | /* Mode registers */ |
58 | static unsigned long irq_regs[NR_CPUS] = { | 56 | static unsigned long irq_regs[NR_CPUS] = { |
59 | regi_irq, | 57 | regi_irq, |
diff --git a/arch/cris/arch-v32/kernel/time.c b/arch/cris/arch-v32/kernel/time.c index 65633d0dab86..b1920d8de403 100644 --- a/arch/cris/arch-v32/kernel/time.c +++ b/arch/cris/arch-v32/kernel/time.c | |||
@@ -46,7 +46,6 @@ unsigned long timer_regs[NR_CPUS] = | |||
46 | 46 | ||
47 | extern void update_xtime_from_cmos(void); | 47 | extern void update_xtime_from_cmos(void); |
48 | extern int set_rtc_mmss(unsigned long nowtime); | 48 | extern int set_rtc_mmss(unsigned long nowtime); |
49 | extern int setup_irq(int, struct irqaction *); | ||
50 | extern int have_rtc; | 49 | extern int have_rtc; |
51 | 50 | ||
52 | #ifdef CONFIG_CPU_FREQ | 51 | #ifdef CONFIG_CPU_FREQ |
diff --git a/arch/cris/arch-v32/mach-a3/io.c b/arch/cris/arch-v32/mach-a3/io.c index c22f67ecd9f3..090ceb99ef0b 100644 --- a/arch/cris/arch-v32/mach-a3/io.c +++ b/arch/cris/arch-v32/mach-a3/io.c | |||
@@ -36,7 +36,7 @@ struct crisv32_ioport crisv32_ioports[] = { | |||
36 | }, | 36 | }, |
37 | }; | 37 | }; |
38 | 38 | ||
39 | #define NBR_OF_PORTS sizeof(crisv32_ioports)/sizeof(struct crisv32_ioport) | 39 | #define NBR_OF_PORTS ARRAY_SIZE(crisv32_ioports) |
40 | 40 | ||
41 | struct crisv32_iopin crisv32_led_net0_green; | 41 | struct crisv32_iopin crisv32_led_net0_green; |
42 | struct crisv32_iopin crisv32_led_net0_red; | 42 | struct crisv32_iopin crisv32_led_net0_red; |
diff --git a/arch/cris/arch-v32/mach-fs/io.c b/arch/cris/arch-v32/mach-fs/io.c index cb6327b1f8f8..a6958661fa8e 100644 --- a/arch/cris/arch-v32/mach-fs/io.c +++ b/arch/cris/arch-v32/mach-fs/io.c | |||
@@ -52,7 +52,7 @@ struct crisv32_ioport crisv32_ioports[] = { | |||
52 | } | 52 | } |
53 | }; | 53 | }; |
54 | 54 | ||
55 | #define NBR_OF_PORTS sizeof(crisv32_ioports)/sizeof(struct crisv32_ioport) | 55 | #define NBR_OF_PORTS ARRAY_SIZE(crisv32_ioports) |
56 | 56 | ||
57 | struct crisv32_iopin crisv32_led_net0_green; | 57 | struct crisv32_iopin crisv32_led_net0_green; |
58 | struct crisv32_iopin crisv32_led_net0_red; | 58 | struct crisv32_iopin crisv32_led_net0_red; |
diff --git a/arch/cris/include/arch-v10/arch/mmu.h b/arch/cris/include/arch-v10/arch/mmu.h index df84f1716e6b..e829e5a37bbe 100644 --- a/arch/cris/include/arch-v10/arch/mmu.h +++ b/arch/cris/include/arch-v10/arch/mmu.h | |||
@@ -33,10 +33,10 @@ typedef struct | |||
33 | 33 | ||
34 | /* CRIS PTE bits (see R_TLB_LO in the register description) | 34 | /* CRIS PTE bits (see R_TLB_LO in the register description) |
35 | * | 35 | * |
36 | * Bit: 31-13 12-------4 3 2 1 0 | 36 | * Bit: 31 30-13 12-------4 3 2 1 0 |
37 | * ________________________________________________ | 37 | * _______________________________________________________ |
38 | * | pfn | reserved | global | valid | kernel | we | | 38 | * | cache |pfn | reserved | global | valid | kernel | we | |
39 | * |_____|__________|________|_______|________|_____| | 39 | * |_______|____|__________|________|_______|________|_____| |
40 | * | 40 | * |
41 | * (pfn = physical frame number) | 41 | * (pfn = physical frame number) |
42 | */ | 42 | */ |
@@ -53,6 +53,7 @@ typedef struct | |||
53 | #define _PAGE_VALID (1<<2) /* page is valid */ | 53 | #define _PAGE_VALID (1<<2) /* page is valid */ |
54 | #define _PAGE_SILENT_READ (1<<2) /* synonym */ | 54 | #define _PAGE_SILENT_READ (1<<2) /* synonym */ |
55 | #define _PAGE_GLOBAL (1<<3) /* global page - context is ignored */ | 55 | #define _PAGE_GLOBAL (1<<3) /* global page - context is ignored */ |
56 | #define _PAGE_NO_CACHE (1<<31) /* part of the uncached memory map */ | ||
56 | 57 | ||
57 | /* Bits the HW doesn't care about but the kernel uses them in SW */ | 58 | /* Bits the HW doesn't care about but the kernel uses them in SW */ |
58 | 59 | ||
diff --git a/arch/cris/include/arch-v32/arch/mmu.h b/arch/cris/include/arch-v32/arch/mmu.h index 6bcdc3fdf7dc..c1a13e05e963 100644 --- a/arch/cris/include/arch-v32/arch/mmu.h +++ b/arch/cris/include/arch-v32/arch/mmu.h | |||
@@ -28,10 +28,10 @@ typedef struct | |||
28 | /* | 28 | /* |
29 | * CRISv32 PTE bits: | 29 | * CRISv32 PTE bits: |
30 | * | 30 | * |
31 | * Bit: 31-13 12-5 4 3 2 1 0 | 31 | * Bit: 31 30-13 12-5 4 3 2 1 0 |
32 | * +-----+------+--------+-------+--------+-------+---------+ | 32 | * +-------+-----+------+--------+-------+--------+-------+---------+ |
33 | * | pfn | zero | global | valid | kernel | write | execute | | 33 | * | cache | pfn | zero | global | valid | kernel | write | execute | |
34 | * +-----+------+--------+-------+--------+-------+---------+ | 34 | * +-------+-----+------+--------+-------+--------+-------+---------+ |
35 | */ | 35 | */ |
36 | 36 | ||
37 | /* | 37 | /* |
@@ -45,6 +45,8 @@ typedef struct | |||
45 | #define _PAGE_VALID (1 << 3) /* Page is valid. */ | 45 | #define _PAGE_VALID (1 << 3) /* Page is valid. */ |
46 | #define _PAGE_SILENT_READ (1 << 3) /* Same as above. */ | 46 | #define _PAGE_SILENT_READ (1 << 3) /* Same as above. */ |
47 | #define _PAGE_GLOBAL (1 << 4) /* Global page. */ | 47 | #define _PAGE_GLOBAL (1 << 4) /* Global page. */ |
48 | #define _PAGE_NO_CACHE (1 << 31) /* part of the uncached memory map */ | ||
49 | |||
48 | 50 | ||
49 | /* | 51 | /* |
50 | * The hardware doesn't care about these bits, but the kernel uses them in | 52 | * The hardware doesn't care about these bits, but the kernel uses them in |
diff --git a/arch/cris/include/asm/hardirq.h b/arch/cris/include/asm/hardirq.h index 74178adeb1cd..17bb12d760b2 100644 --- a/arch/cris/include/asm/hardirq.h +++ b/arch/cris/include/asm/hardirq.h | |||
@@ -2,16 +2,6 @@ | |||
2 | #define __ASM_HARDIRQ_H | 2 | #define __ASM_HARDIRQ_H |
3 | 3 | ||
4 | #include <asm/irq.h> | 4 | #include <asm/irq.h> |
5 | #include <linux/threads.h> | ||
6 | #include <linux/cache.h> | ||
7 | |||
8 | typedef struct { | ||
9 | unsigned int __softirq_pending; | ||
10 | } ____cacheline_aligned irq_cpustat_t; | ||
11 | |||
12 | #include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */ | ||
13 | |||
14 | void ack_bad_irq(unsigned int irq); | ||
15 | 5 | ||
16 | #define HARDIRQ_BITS 8 | 6 | #define HARDIRQ_BITS 8 |
17 | 7 | ||
@@ -24,4 +14,6 @@ void ack_bad_irq(unsigned int irq); | |||
24 | # error HARDIRQ_BITS is too low! | 14 | # error HARDIRQ_BITS is too low! |
25 | #endif | 15 | #endif |
26 | 16 | ||
17 | #include <asm-generic/hardirq.h> | ||
18 | |||
27 | #endif /* __ASM_HARDIRQ_H */ | 19 | #endif /* __ASM_HARDIRQ_H */ |
diff --git a/arch/cris/include/asm/pgtable.h b/arch/cris/include/asm/pgtable.h index 50aa974aa834..1fcce00f01f4 100644 --- a/arch/cris/include/asm/pgtable.h +++ b/arch/cris/include/asm/pgtable.h | |||
@@ -197,6 +197,8 @@ static inline pte_t __mk_pte(void * page, pgprot_t pgprot) | |||
197 | static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) | 197 | static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) |
198 | { pte_val(pte) = (pte_val(pte) & _PAGE_CHG_MASK) | pgprot_val(newprot); return pte; } | 198 | { pte_val(pte) = (pte_val(pte) & _PAGE_CHG_MASK) | pgprot_val(newprot); return pte; } |
199 | 199 | ||
200 | #define pgprot_noncached(prot) __pgprot((pgprot_val(prot) | _PAGE_NO_CACHE)) | ||
201 | |||
200 | 202 | ||
201 | /* pte_val refers to a page in the 0x4xxxxxxx physical DRAM interval | 203 | /* pte_val refers to a page in the 0x4xxxxxxx physical DRAM interval |
202 | * __pte_page(pte_val) refers to the "virtual" DRAM interval | 204 | * __pte_page(pte_val) refers to the "virtual" DRAM interval |
diff --git a/arch/cris/kernel/irq.c b/arch/cris/kernel/irq.c index 7f642fcffbfc..0ca7d9892cc6 100644 --- a/arch/cris/kernel/irq.c +++ b/arch/cris/kernel/irq.c | |||
@@ -38,11 +38,6 @@ | |||
38 | 38 | ||
39 | #include <asm/io.h> | 39 | #include <asm/io.h> |
40 | 40 | ||
41 | void ack_bad_irq(unsigned int irq) | ||
42 | { | ||
43 | printk("unexpected IRQ trap at vector %02x\n", irq); | ||
44 | } | ||
45 | |||
46 | int show_interrupts(struct seq_file *p, void *v) | 41 | int show_interrupts(struct seq_file *p, void *v) |
47 | { | 42 | { |
48 | int i = *(loff_t *) v, j; | 43 | int i = *(loff_t *) v, j; |
diff --git a/arch/cris/kernel/vmlinux.lds.S b/arch/cris/kernel/vmlinux.lds.S index 6c81836b9229..bbfda67d2907 100644 --- a/arch/cris/kernel/vmlinux.lds.S +++ b/arch/cris/kernel/vmlinux.lds.S | |||
@@ -51,10 +51,7 @@ SECTIONS | |||
51 | _etext = . ; /* End of text section. */ | 51 | _etext = . ; /* End of text section. */ |
52 | __etext = .; | 52 | __etext = .; |
53 | 53 | ||
54 | . = ALIGN(4); /* Exception table. */ | 54 | EXCEPTION_TABLE(4) |
55 | __start___ex_table = .; | ||
56 | __ex_table : { *(__ex_table) } | ||
57 | __stop___ex_table = .; | ||
58 | 55 | ||
59 | RODATA | 56 | RODATA |
60 | 57 | ||
@@ -67,36 +64,24 @@ SECTIONS | |||
67 | __edata = . ; /* End of data section. */ | 64 | __edata = . ; /* End of data section. */ |
68 | _edata = . ; | 65 | _edata = . ; |
69 | 66 | ||
70 | . = ALIGN(PAGE_SIZE); /* init_task and stack, must be aligned. */ | 67 | INIT_TASK_DATA_SECTION(PAGE_SIZE) |
71 | .data.init_task : { *(.data.init_task) } | ||
72 | 68 | ||
73 | . = ALIGN(PAGE_SIZE); /* Init code and data. */ | 69 | . = ALIGN(PAGE_SIZE); /* Init code and data. */ |
74 | __init_begin = .; | 70 | __init_begin = .; |
75 | .init.text : { | 71 | INIT_TEXT_SECTION(PAGE_SIZE) |
76 | _sinittext = .; | ||
77 | INIT_TEXT | ||
78 | _einittext = .; | ||
79 | } | ||
80 | .init.data : { INIT_DATA } | 72 | .init.data : { INIT_DATA } |
81 | . = ALIGN(16); | 73 | .init.setup : { INIT_SETUP(16) } |
82 | __setup_start = .; | ||
83 | .init.setup : { *(.init.setup) } | ||
84 | __setup_end = .; | ||
85 | #ifdef CONFIG_ETRAX_ARCH_V32 | 74 | #ifdef CONFIG_ETRAX_ARCH_V32 |
86 | __start___param = .; | 75 | __start___param = .; |
87 | __param : { *(__param) } | 76 | __param : { *(__param) } |
88 | __stop___param = .; | 77 | __stop___param = .; |
89 | #endif | 78 | #endif |
90 | .initcall.init : { | 79 | .initcall.init : { |
91 | __initcall_start = .; | 80 | INIT_CALLS |
92 | INITCALLS | ||
93 | __initcall_end = .; | ||
94 | } | 81 | } |
95 | 82 | ||
96 | .con_initcall.init : { | 83 | .con_initcall.init : { |
97 | __con_initcall_start = .; | 84 | CON_INITCALL |
98 | *(.con_initcall.init) | ||
99 | __con_initcall_end = .; | ||
100 | } | 85 | } |
101 | SECURITY_INIT | 86 | SECURITY_INIT |
102 | 87 | ||
@@ -114,9 +99,7 @@ SECTIONS | |||
114 | PERCPU(PAGE_SIZE) | 99 | PERCPU(PAGE_SIZE) |
115 | 100 | ||
116 | .init.ramfs : { | 101 | .init.ramfs : { |
117 | __initramfs_start = .; | 102 | INIT_RAM_FS |
118 | *(.init.ramfs) | ||
119 | __initramfs_end = .; | ||
120 | } | 103 | } |
121 | #endif | 104 | #endif |
122 | 105 | ||
@@ -130,11 +113,7 @@ SECTIONS | |||
130 | __init_end = .; | 113 | __init_end = .; |
131 | 114 | ||
132 | __data_end = . ; /* Move to _edata ? */ | 115 | __data_end = . ; /* Move to _edata ? */ |
133 | __bss_start = .; /* BSS. */ | 116 | BSS_SECTION(0, 0, 0) |
134 | .bss : { | ||
135 | *(COMMON) | ||
136 | *(.bss) | ||
137 | } | ||
138 | 117 | ||
139 | . = ALIGN (0x20); | 118 | . = ALIGN (0x20); |
140 | _end = .; | 119 | _end = .; |
diff --git a/drivers/net/cris/eth_v10.c b/drivers/net/cris/eth_v10.c index 15c0195ebd31..a24be34a3f7a 100644 --- a/drivers/net/cris/eth_v10.c +++ b/drivers/net/cris/eth_v10.c | |||
@@ -768,10 +768,24 @@ e100_negotiate(struct net_device* dev) | |||
768 | 768 | ||
769 | e100_set_mdio_reg(dev, np->mii_if.phy_id, MII_ADVERTISE, data); | 769 | e100_set_mdio_reg(dev, np->mii_if.phy_id, MII_ADVERTISE, data); |
770 | 770 | ||
771 | /* Renegotiate with link partner */ | 771 | data = e100_get_mdio_reg(dev, np->mii_if.phy_id, MII_BMCR); |
772 | if (autoneg_normal) { | 772 | if (autoneg_normal) { |
773 | data = e100_get_mdio_reg(dev, np->mii_if.phy_id, MII_BMCR); | 773 | /* Renegotiate with link partner */ |
774 | data |= BMCR_ANENABLE | BMCR_ANRESTART; | 774 | data |= BMCR_ANENABLE | BMCR_ANRESTART; |
775 | } else { | ||
776 | /* Don't negotiate speed or duplex */ | ||
777 | data &= ~(BMCR_ANENABLE | BMCR_ANRESTART); | ||
778 | |||
779 | /* Set speed and duplex static */ | ||
780 | if (current_speed_selection == 10) | ||
781 | data &= ~BMCR_SPEED100; | ||
782 | else | ||
783 | data |= BMCR_SPEED100; | ||
784 | |||
785 | if (current_duplex != full) | ||
786 | data &= ~BMCR_FULLDPLX; | ||
787 | else | ||
788 | data |= BMCR_FULLDPLX; | ||
775 | } | 789 | } |
776 | e100_set_mdio_reg(dev, np->mii_if.phy_id, MII_BMCR, data); | 790 | e100_set_mdio_reg(dev, np->mii_if.phy_id, MII_BMCR, data); |
777 | } | 791 | } |
diff --git a/drivers/serial/crisv10.c b/drivers/serial/crisv10.c index 7be52fe288eb..31f172397af3 100644 --- a/drivers/serial/crisv10.c +++ b/drivers/serial/crisv10.c | |||
@@ -18,6 +18,7 @@ static char *serial_version = "$Revision: 1.25 $"; | |||
18 | #include <linux/tty.h> | 18 | #include <linux/tty.h> |
19 | #include <linux/tty_flip.h> | 19 | #include <linux/tty_flip.h> |
20 | #include <linux/major.h> | 20 | #include <linux/major.h> |
21 | #include <linux/smp_lock.h> | ||
21 | #include <linux/string.h> | 22 | #include <linux/string.h> |
22 | #include <linux/fcntl.h> | 23 | #include <linux/fcntl.h> |
23 | #include <linux/mm.h> | 24 | #include <linux/mm.h> |