Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6

+90 -37
+4
arch/sparc/Kconfig
··· 21 21 bool 22 22 default y 23 23 24 + config GENERIC_IOMAP 25 + bool 26 + default y 27 + 24 28 source "init/Kconfig" 25 29 26 30 menu "General machine setup"
+1
arch/sparc/defconfig
··· 5 5 CONFIG_UID16=y 6 6 CONFIG_HIGHMEM=y 7 7 CONFIG_GENERIC_ISA_DMA=y 8 + CONFIG_GENERIC_IOMAP=y 8 9 9 10 # 10 11 # Code maturity level options
+21 -18
arch/sparc64/kernel/entry.S
··· 33 33 /* This is trivial with the new code... */ 34 34 .globl do_fpdis 35 35 do_fpdis: 36 - sethi %hi(TSTATE_PEF), %g4 ! IEU0 36 + sethi %hi(TSTATE_PEF), %g4 37 37 rdpr %tstate, %g5 38 38 andcc %g5, %g4, %g0 39 39 be,pt %xcc, 1f ··· 50 50 add %g0, %g0, %g0 51 51 ba,a,pt %xcc, rtrap_clr_l6 52 52 53 - 1: ldub [%g6 + TI_FPSAVED], %g5 ! Load Group 54 - wr %g0, FPRS_FEF, %fprs ! LSU Group+4bubbles 55 - andcc %g5, FPRS_FEF, %g0 ! IEU1 Group 56 - be,a,pt %icc, 1f ! CTI 57 - clr %g7 ! IEU0 58 - ldx [%g6 + TI_GSR], %g7 ! Load Group 59 - 1: andcc %g5, FPRS_DL, %g0 ! IEU1 60 - bne,pn %icc, 2f ! CTI 61 - fzero %f0 ! FPA 62 - andcc %g5, FPRS_DU, %g0 ! IEU1 Group 63 - bne,pn %icc, 1f ! CTI 64 - fzero %f2 ! FPA 53 + 1: ldub [%g6 + TI_FPSAVED], %g5 54 + wr %g0, FPRS_FEF, %fprs 55 + andcc %g5, FPRS_FEF, %g0 56 + be,a,pt %icc, 1f 57 + clr %g7 58 + ldx [%g6 + TI_GSR], %g7 59 + 1: andcc %g5, FPRS_DL, %g0 60 + bne,pn %icc, 2f 61 + fzero %f0 62 + andcc %g5, FPRS_DU, %g0 63 + bne,pn %icc, 1f 64 + fzero %f2 65 65 faddd %f0, %f2, %f4 66 66 fmuld %f0, %f2, %f6 67 67 faddd %f0, %f2, %f8 ··· 104 104 add %g6, TI_FPREGS + 0xc0, %g2 105 105 faddd %f0, %f2, %f8 106 106 fmuld %f0, %f2, %f10 107 - ldda [%g1] ASI_BLK_S, %f32 ! grrr, where is ASI_BLK_NUCLEUS 8-( 107 + membar #Sync 108 + ldda [%g1] ASI_BLK_S, %f32 108 109 ldda [%g2] ASI_BLK_S, %f48 110 + membar #Sync 109 111 faddd %f0, %f2, %f12 110 112 fmuld %f0, %f2, %f14 111 113 faddd %f0, %f2, %f16 ··· 118 116 fmuld %f0, %f2, %f26 119 117 faddd %f0, %f2, %f28 120 118 fmuld %f0, %f2, %f30 121 - membar #Sync 122 119 b,pt %xcc, fpdis_exit 123 120 nop 124 121 2: andcc %g5, FPRS_DU, %g0 ··· 134 133 add %g6, TI_FPREGS + 0x40, %g2 135 134 faddd %f32, %f34, %f36 136 135 fmuld %f32, %f34, %f38 137 - ldda [%g1] ASI_BLK_S, %f0 ! grrr, where is ASI_BLK_NUCLEUS 8-( 136 + membar #Sync 137 + ldda [%g1] ASI_BLK_S, %f0 138 138 ldda [%g2] ASI_BLK_S, %f16 139 + membar #Sync 139 140 faddd %f32, %f34, %f40 140 141 fmuld %f32, %f34, %f42 141 142 faddd %f32, %f34, %f44 ··· 150 147 fmuld %f32, %f34, %f58 151 148 faddd %f32, %f34, %f60 152 149 fmuld %f32, %f34, %f62 153 - membar #Sync 154 150 ba,pt %xcc, fpdis_exit 155 151 nop 156 152 3: mov SECONDARY_CONTEXT, %g3 ··· 160 158 stxa %g2, [%g3] ASI_DMMU 161 159 membar #Sync 162 160 mov 0x40, %g2 163 - ldda [%g1] ASI_BLK_S, %f0 ! grrr, where is ASI_BLK_NUCLEUS 8-( 161 + membar #Sync 162 + ldda [%g1] ASI_BLK_S, %f0 164 163 ldda [%g1 + %g2] ASI_BLK_S, %f16 165 164 add %g1, 0x80, %g1 166 165 ldda [%g1] ASI_BLK_S, %f32
+51 -13
arch/sparc64/kernel/power.c
··· 17 17 18 18 #include <asm/system.h> 19 19 #include <asm/ebus.h> 20 + #include <asm/isa.h> 20 21 #include <asm/auxio.h> 21 22 22 23 #include <linux/unistd.h> ··· 101 100 return 0; 102 101 } 103 102 104 - static int __init has_button_interrupt(struct linux_ebus_device *edev) 103 + static int __init has_button_interrupt(unsigned int irq, int prom_node) 105 104 { 106 - if (edev->irqs[0] == PCI_IRQ_NONE) 105 + if (irq == PCI_IRQ_NONE) 107 106 return 0; 108 - if (!prom_node_has_property(edev->prom_node, "button")) 107 + if (!prom_node_has_property(prom_node, "button")) 109 108 return 0; 110 109 111 110 return 1; 112 111 } 113 112 114 - void __init power_init(void) 113 + static int __init power_probe_ebus(struct resource **resp, unsigned int *irq_p, int *prom_node_p) 115 114 { 116 115 struct linux_ebus *ebus; 117 116 struct linux_ebus_device *edev; 117 + 118 + for_each_ebus(ebus) { 119 + for_each_ebusdev(edev, ebus) { 120 + if (!strcmp(edev->prom_name, "power")) { 121 + *resp = &edev->resource[0]; 122 + *irq_p = edev->irqs[0]; 123 + *prom_node_p = edev->prom_node; 124 + return 0; 125 + } 126 + } 127 + } 128 + return -ENODEV; 129 + } 130 + 131 + static int __init power_probe_isa(struct resource **resp, unsigned int *irq_p, int *prom_node_p) 132 + { 133 + struct sparc_isa_bridge *isa_bus; 134 + struct sparc_isa_device *isa_dev; 135 + 136 + for_each_isa(isa_bus) { 137 + for_each_isadev(isa_dev, isa_bus) { 138 + if (!strcmp(isa_dev->prom_name, "power")) { 139 + *resp = &isa_dev->resource; 140 + *irq_p = isa_dev->irq; 141 + *prom_node_p = isa_dev->prom_node; 142 + return 0; 143 + } 144 + } 145 + } 146 + return -ENODEV; 147 + } 148 + 149 + void __init power_init(void) 150 + { 151 + struct resource *res = NULL; 152 + unsigned int irq; 153 + int prom_node; 118 154 static int invoked; 119 155 120 156 if (invoked) 121 157 return; 122 158 invoked = 1; 123 159 124 - for_each_ebus(ebus) { 125 - for_each_ebusdev(edev, ebus) { 126 - if (!strcmp(edev->prom_name, "power")) 127 - goto found; 128 - } 129 - } 160 + if (!power_probe_ebus(&res, &irq, &prom_node)) 161 + goto found; 162 + 163 + if (!power_probe_isa(&res, &irq, &prom_node)) 164 + goto found; 165 + 130 166 return; 131 167 132 168 found: 133 - power_reg = ioremap(edev->resource[0].start, 0x4); 169 + power_reg = ioremap(res->start, 0x4); 134 170 printk("power: Control reg at %p ... ", power_reg); 135 171 poweroff_method = machine_halt; /* able to use the standard halt */ 136 - if (has_button_interrupt(edev)) { 172 + if (has_button_interrupt(irq, prom_node)) { 137 173 if (kernel_thread(powerd, NULL, CLONE_FS) < 0) { 138 174 printk("Failed to start power daemon.\n"); 139 175 return; 140 176 } 141 177 printk("powerd running.\n"); 142 178 143 - if (request_irq(edev->irqs[0], 179 + if (request_irq(irq, 144 180 power_handler, SA_SHIRQ, "power", NULL) < 0) 145 181 printk("power: Error, cannot register IRQ handler.\n"); 146 182 } else {
+4 -3
arch/sparc64/kernel/rtrap.S
··· 312 312 wr %g1, FPRS_FEF, %fprs 313 313 ldx [%o1 + %o5], %g1 314 314 add %g6, TI_XFSR, %o1 315 - membar #StoreLoad | #LoadLoad 316 315 sll %o0, 8, %o2 317 316 add %g6, TI_FPREGS, %o3 318 317 brz,pn %l6, 1f 319 318 add %g6, TI_FPREGS+0x40, %o4 320 319 320 + membar #Sync 321 321 ldda [%o3 + %o2] ASI_BLK_P, %f0 322 322 ldda [%o4 + %o2] ASI_BLK_P, %f16 323 + membar #Sync 323 324 1: andcc %l2, FPRS_DU, %g0 324 325 be,pn %icc, 1f 325 326 wr %g1, 0, %gsr 326 327 add %o2, 0x80, %o2 328 + membar #Sync 327 329 ldda [%o3 + %o2] ASI_BLK_P, %f32 328 330 ldda [%o4 + %o2] ASI_BLK_P, %f48 329 - 330 331 1: membar #Sync 331 332 ldx [%o1 + %o5], %fsr 332 333 2: stb %l5, [%g6 + TI_FPDEPTH] 333 334 ba,pt %xcc, rt_continue 334 335 nop 335 336 5: wr %g0, FPRS_FEF, %fprs 336 - membar #StoreLoad | #LoadLoad 337 337 sll %o0, 8, %o2 338 338 339 339 add %g6, TI_FPREGS+0x80, %o3 340 340 add %g6, TI_FPREGS+0xc0, %o4 341 + membar #Sync 341 342 ldda [%o3 + %o2] ASI_BLK_P, %f32 342 343 ldda [%o4 + %o2] ASI_BLK_P, %f48 343 344 membar #Sync
+5 -3
arch/sparc64/lib/VISsave.S
··· 59 59 be,pn %icc, 9b 60 60 add %g6, TI_FPREGS, %g2 61 61 andcc %o5, FPRS_DL, %g0 62 - membar #StoreStore | #LoadStore 63 62 64 63 be,pn %icc, 4f 65 64 add %g6, TI_FPREGS+0x40, %g3 65 + membar #Sync 66 66 stda %f0, [%g2 + %g1] ASI_BLK_P 67 67 stda %f16, [%g3 + %g1] ASI_BLK_P 68 + membar #Sync 68 69 andcc %o5, FPRS_DU, %g0 69 70 be,pn %icc, 5f 70 71 4: add %g1, 128, %g1 72 + membar #Sync 71 73 stda %f32, [%g2 + %g1] ASI_BLK_P 72 74 73 75 stda %f48, [%g3 + %g1] ASI_BLK_P ··· 89 87 sll %g1, 5, %g1 90 88 add %g6, TI_FPREGS+0xc0, %g3 91 89 wr %g0, FPRS_FEF, %fprs 92 - membar #StoreStore | #LoadStore 90 + membar #Sync 93 91 stda %f32, [%g2 + %g1] ASI_BLK_P 94 92 stda %f48, [%g3 + %g1] ASI_BLK_P 95 93 membar #Sync ··· 130 128 be,pn %icc, 4f 131 129 add %g6, TI_FPREGS, %g2 132 130 133 - membar #StoreStore | #LoadStore 134 131 add %g6, TI_FPREGS+0x40, %g3 132 + membar #Sync 135 133 stda %f0, [%g2 + %g1] ASI_BLK_P 136 134 stda %f16, [%g3 + %g1] ASI_BLK_P 137 135 membar #Sync
+4
drivers/video/p9100.c
··· 288 288 all->par.physbase = sdev->reg_addrs[2].phys_addr; 289 289 290 290 sbusfb_fill_var(&all->info.var, sdev->prom_node, 8); 291 + all->info.var.red.length = 8; 292 + all->info.var.green.length = 8; 293 + all->info.var.blue.length = 8; 291 294 292 295 linebytes = prom_getintdefault(sdev->prom_node, "linebytes", 293 296 all->info.var.xres); ··· 326 323 kfree(all); 327 324 return; 328 325 } 326 + fb_set_cmap(&all->info.cmap, &all->info); 329 327 330 328 list_add(&all->list, &p9100_list); 331 329