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

Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc

Pull powerpc fixes from Ben Herrenschmidt:
"Here are a handful of powerpc fixes for 3.13.

The patches are reasonably trivial and self contained. Note the offb
patches outside of arch/powerpc, they are LE fixes for our
open-firmware 'dumb' framebuffer"

* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
powerpc: Fix up the kdump base cap to 128M
powernv: Fix VFIO support with PHB3
powerpc/52xx: Re-enable bestcomm driver in defconfigs
powerpc/pasemi: Turn on devtmpfs in defconfig
offb: Add palette hack for little endian
offb: Little endian fixes
powerpc: Fix PTE page address mismatch in pgtable ctor/dtor
powerpc/44x: Fix ocm_block allocation
powerpc: Fix build break with PPC_EARLY_DEBUG_BOOTX=y
powerpc/512x: dts: remove misplaced IRQ spec from 'soc' node

+47 -30
-1
arch/powerpc/boot/dts/mpc5121.dtsi
··· 77 77 compatible = "fsl,mpc5121-immr"; 78 78 #address-cells = <1>; 79 79 #size-cells = <1>; 80 - #interrupt-cells = <2>; 81 80 ranges = <0x0 0x80000000 0x400000>; 82 81 reg = <0x80000000 0x400000>; 83 82 bus-frequency = <66000000>; /* 66 MHz ips bus */
+2 -1
arch/powerpc/configs/52xx/cm5200_defconfig
··· 12 12 CONFIG_PPC_MPC52xx=y 13 13 CONFIG_PPC_MPC5200_SIMPLE=y 14 14 # CONFIG_PPC_PMAC is not set 15 - CONFIG_PPC_BESTCOMM=y 16 15 CONFIG_SPARSE_IRQ=y 17 16 CONFIG_PM=y 18 17 # CONFIG_PCI is not set ··· 70 71 CONFIG_USB_OHCI_HCD=y 71 72 CONFIG_USB_OHCI_HCD_PPC_OF_BE=y 72 73 CONFIG_USB_STORAGE=y 74 + CONFIG_DMADEVICES=y 75 + CONFIG_PPC_BESTCOMM=y 73 76 CONFIG_EXT2_FS=y 74 77 CONFIG_EXT3_FS=y 75 78 # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+2 -1
arch/powerpc/configs/52xx/lite5200b_defconfig
··· 15 15 CONFIG_PPC_MPC5200_SIMPLE=y 16 16 CONFIG_PPC_LITE5200=y 17 17 # CONFIG_PPC_PMAC is not set 18 - CONFIG_PPC_BESTCOMM=y 19 18 CONFIG_NO_HZ=y 20 19 CONFIG_HIGH_RES_TIMERS=y 21 20 CONFIG_SPARSE_IRQ=y ··· 58 59 CONFIG_I2C_MPC=y 59 60 # CONFIG_HWMON is not set 60 61 CONFIG_VIDEO_OUTPUT_CONTROL=m 62 + CONFIG_DMADEVICES=y 63 + CONFIG_PPC_BESTCOMM=y 61 64 CONFIG_EXT2_FS=y 62 65 CONFIG_EXT3_FS=y 63 66 # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+2 -1
arch/powerpc/configs/52xx/motionpro_defconfig
··· 12 12 CONFIG_PPC_MPC52xx=y 13 13 CONFIG_PPC_MPC5200_SIMPLE=y 14 14 # CONFIG_PPC_PMAC is not set 15 - CONFIG_PPC_BESTCOMM=y 16 15 CONFIG_SPARSE_IRQ=y 17 16 CONFIG_PM=y 18 17 # CONFIG_PCI is not set ··· 83 84 CONFIG_LEDS_TRIGGER_TIMER=y 84 85 CONFIG_RTC_CLASS=y 85 86 CONFIG_RTC_DRV_DS1307=y 87 + CONFIG_DMADEVICES=y 88 + CONFIG_PPC_BESTCOMM=y 86 89 CONFIG_EXT2_FS=y 87 90 CONFIG_EXT3_FS=y 88 91 # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+2 -1
arch/powerpc/configs/52xx/pcm030_defconfig
··· 21 21 CONFIG_PPC_MPC52xx=y 22 22 CONFIG_PPC_MPC5200_SIMPLE=y 23 23 # CONFIG_PPC_PMAC is not set 24 - CONFIG_PPC_BESTCOMM=y 25 24 CONFIG_NO_HZ=y 26 25 CONFIG_HIGH_RES_TIMERS=y 27 26 CONFIG_HZ_100=y ··· 86 87 CONFIG_USB_STORAGE=m 87 88 CONFIG_RTC_CLASS=y 88 89 CONFIG_RTC_DRV_PCF8563=m 90 + CONFIG_DMADEVICES=y 91 + CONFIG_PPC_BESTCOMM=y 89 92 CONFIG_EXT2_FS=m 90 93 CONFIG_EXT3_FS=m 91 94 # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+2 -1
arch/powerpc/configs/52xx/tqm5200_defconfig
··· 17 17 CONFIG_PPC_MPC5200_SIMPLE=y 18 18 CONFIG_PPC_MPC5200_BUGFIX=y 19 19 # CONFIG_PPC_PMAC is not set 20 - CONFIG_PPC_BESTCOMM=y 21 20 CONFIG_PM=y 22 21 # CONFIG_PCI is not set 23 22 CONFIG_NET=y ··· 85 86 CONFIG_RTC_CLASS=y 86 87 CONFIG_RTC_DRV_DS1307=y 87 88 CONFIG_RTC_DRV_DS1374=y 89 + CONFIG_DMADEVICES=y 90 + CONFIG_PPC_BESTCOMM=y 88 91 CONFIG_EXT2_FS=y 89 92 CONFIG_EXT3_FS=y 90 93 # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+2 -1
arch/powerpc/configs/mpc5200_defconfig
··· 15 15 CONFIG_PPC_MPC5200_BUGFIX=y 16 16 CONFIG_PPC_MPC5200_LPBFIFO=m 17 17 # CONFIG_PPC_PMAC is not set 18 - CONFIG_PPC_BESTCOMM=y 19 18 CONFIG_SIMPLE_GPIO=y 20 19 CONFIG_NO_HZ=y 21 20 CONFIG_HIGH_RES_TIMERS=y ··· 124 125 CONFIG_RTC_DRV_DS1307=y 125 126 CONFIG_RTC_DRV_DS1374=y 126 127 CONFIG_RTC_DRV_PCF8563=m 128 + CONFIG_DMADEVICES=y 129 + CONFIG_PPC_BESTCOMM=y 127 130 CONFIG_EXT2_FS=y 128 131 CONFIG_EXT3_FS=y 129 132 # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+3 -4
arch/powerpc/configs/pasemi_defconfig
··· 2 2 CONFIG_ALTIVEC=y 3 3 CONFIG_SMP=y 4 4 CONFIG_NR_CPUS=2 5 - CONFIG_EXPERIMENTAL=y 6 5 CONFIG_SYSVIPC=y 7 6 CONFIG_NO_HZ=y 8 7 CONFIG_HIGH_RES_TIMERS=y ··· 44 45 CONFIG_INET_ESP=y 45 46 # CONFIG_IPV6 is not set 46 47 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 48 + CONFIG_DEVTMPFS=y 49 + CONFIG_DEVTMPFS_MOUNT=y 47 50 CONFIG_MTD=y 48 - CONFIG_MTD_CHAR=y 49 51 CONFIG_MTD_BLOCK=y 50 52 CONFIG_MTD_SLRAM=y 51 53 CONFIG_MTD_PHRAM=y ··· 88 88 CONFIG_DM_CRYPT=y 89 89 CONFIG_NETDEVICES=y 90 90 CONFIG_DUMMY=y 91 - CONFIG_MII=y 92 91 CONFIG_TIGON3=y 93 92 CONFIG_E1000=y 94 93 CONFIG_PASEMI_MAC=y ··· 173 174 CONFIG_NLS_ISO8859_1=y 174 175 CONFIG_CRC_CCITT=y 175 176 CONFIG_PRINTK_TIME=y 176 - CONFIG_MAGIC_SYSRQ=y 177 177 CONFIG_DEBUG_FS=y 178 + CONFIG_MAGIC_SYSRQ=y 178 179 CONFIG_DEBUG_KERNEL=y 179 180 CONFIG_DETECT_HUNG_TASK=y 180 181 # CONFIG_SCHED_DEBUG is not set
+2 -4
arch/powerpc/include/asm/pgalloc-32.h
··· 84 84 static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t table, 85 85 unsigned long address) 86 86 { 87 - struct page *page = page_address(table); 88 - 89 87 tlb_flush_pgtable(tlb, address); 90 - pgtable_page_dtor(page); 91 - pgtable_free_tlb(tlb, page, 0); 88 + pgtable_page_dtor(table); 89 + pgtable_free_tlb(tlb, page_address(table), 0); 92 90 } 93 91 #endif /* _ASM_POWERPC_PGALLOC_32_H */
+2 -4
arch/powerpc/include/asm/pgalloc-64.h
··· 148 148 static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t table, 149 149 unsigned long address) 150 150 { 151 - struct page *page = page_address(table); 152 - 153 151 tlb_flush_pgtable(tlb, address); 154 - pgtable_page_dtor(page); 155 - pgtable_free_tlb(tlb, page, 0); 152 + pgtable_page_dtor(table); 153 + pgtable_free_tlb(tlb, page_address(table), 0); 156 154 } 157 155 158 156 #else /* if CONFIG_PPC_64K_PAGES */
+1 -1
arch/powerpc/kernel/machine_kexec.c
··· 148 148 * a small SLB (128MB) since the crash kernel needs to place 149 149 * itself and some stacks to be in the first segment. 150 150 */ 151 - crashk_res.start = min(0x80000000ULL, (ppc64_rma_size / 2)); 151 + crashk_res.start = min(0x8000000ULL, (ppc64_rma_size / 2)); 152 152 #else 153 153 crashk_res.start = KDUMP_KERNELBASE; 154 154 #endif
+4 -1
arch/powerpc/kernel/misc_64.S
··· 246 246 or r3,r7,r9 247 247 blr 248 248 249 - #if defined(CONFIG_PPC_PMAC) || defined(CONFIG_PPC_MAPLE) 250 249 250 + #ifdef CONFIG_PPC_EARLY_DEBUG_BOOTX 251 251 _GLOBAL(rmci_on) 252 252 sync 253 253 isync ··· 277 277 isync 278 278 sync 279 279 blr 280 + #endif /* CONFIG_PPC_EARLY_DEBUG_BOOTX */ 281 + 282 + #if defined(CONFIG_PPC_PMAC) || defined(CONFIG_PPC_MAPLE) 280 283 281 284 /* 282 285 * Do an IO access in real mode
+1
arch/powerpc/platforms/powernv/pci-ioda.c
··· 720 720 tbl->it_type = TCE_PCI_SWINV_CREATE | TCE_PCI_SWINV_FREE; 721 721 } 722 722 iommu_init_table(tbl, phb->hose->node); 723 + iommu_register_group(tbl, pci_domain_nr(pe->pbus), pe->pe_number); 723 724 724 725 if (pe->pdev) 725 726 set_iommu_table_base(&pe->pdev->dev, tbl);
+1 -1
arch/powerpc/sysdev/ppc4xx_ocm.c
··· 339 339 if (IS_ERR_VALUE(offset)) 340 340 continue; 341 341 342 - ocm_blk = kzalloc(sizeof(struct ocm_block *), GFP_KERNEL); 342 + ocm_blk = kzalloc(sizeof(struct ocm_block), GFP_KERNEL); 343 343 if (!ocm_blk) { 344 344 printk(KERN_ERR "PPC4XX OCM: could not allocate ocm block"); 345 345 rh_free(ocm_reg->rh, offset);
+21 -8
drivers/video/offb.c
··· 91 91 #define AVIVO_DC_LUTB_WHITE_OFFSET_GREEN 0x6cd4 92 92 #define AVIVO_DC_LUTB_WHITE_OFFSET_RED 0x6cd8 93 93 94 + #define FB_RIGHT_POS(p, bpp) (fb_be_math(p) ? 0 : (32 - (bpp))) 95 + 96 + static inline u32 offb_cmap_byteswap(struct fb_info *info, u32 value) 97 + { 98 + u32 bpp = info->var.bits_per_pixel; 99 + 100 + return cpu_to_be32(value) >> FB_RIGHT_POS(info, bpp); 101 + } 102 + 94 103 /* 95 104 * Set a single color register. The values supplied are already 96 105 * rounded down to the hardware's capabilities (according to the ··· 129 120 mask <<= info->var.transp.offset; 130 121 value |= mask; 131 122 } 132 - pal[regno] = value; 123 + pal[regno] = offb_cmap_byteswap(info, value); 133 124 return 0; 134 125 } 135 126 ··· 310 301 static void __iomem *offb_map_reg(struct device_node *np, int index, 311 302 unsigned long offset, unsigned long size) 312 303 { 313 - const u32 *addrp; 304 + const __be32 *addrp; 314 305 u64 asize, taddr; 315 306 unsigned int flags; 316 307 ··· 378 369 } 379 370 of_node_put(pciparent); 380 371 } else if (dp && of_device_is_compatible(dp, "qemu,std-vga")) { 381 - const u32 io_of_addr[3] = { 0x01000000, 0x0, 0x0 }; 372 + #ifdef __BIG_ENDIAN 373 + const __be32 io_of_addr[3] = { 0x01000000, 0x0, 0x0 }; 374 + #else 375 + const __be32 io_of_addr[3] = { 0x00000001, 0x0, 0x0 }; 376 + #endif 382 377 u64 io_addr = of_translate_address(dp, io_of_addr); 383 378 if (io_addr != OF_BAD_ADDR) { 384 379 par->cmap_adr = ioremap(io_addr + 0x3c8, 2); ··· 548 535 unsigned int flags, rsize, addr_prop = 0; 549 536 unsigned long max_size = 0; 550 537 u64 rstart, address = OF_BAD_ADDR; 551 - const u32 *pp, *addrp, *up; 538 + const __be32 *pp, *addrp, *up; 552 539 u64 asize; 553 540 int foreign_endian = 0; 554 541 ··· 564 551 if (pp == NULL) 565 552 pp = of_get_property(dp, "depth", &len); 566 553 if (pp && len == sizeof(u32)) 567 - depth = *pp; 554 + depth = be32_to_cpup(pp); 568 555 569 556 pp = of_get_property(dp, "linux,bootx-width", &len); 570 557 if (pp == NULL) 571 558 pp = of_get_property(dp, "width", &len); 572 559 if (pp && len == sizeof(u32)) 573 - width = *pp; 560 + width = be32_to_cpup(pp); 574 561 575 562 pp = of_get_property(dp, "linux,bootx-height", &len); 576 563 if (pp == NULL) 577 564 pp = of_get_property(dp, "height", &len); 578 565 if (pp && len == sizeof(u32)) 579 - height = *pp; 566 + height = be32_to_cpup(pp); 580 567 581 568 pp = of_get_property(dp, "linux,bootx-linebytes", &len); 582 569 if (pp == NULL) 583 570 pp = of_get_property(dp, "linebytes", &len); 584 571 if (pp && len == sizeof(u32) && (*pp != 0xffffffffu)) 585 - pitch = *pp; 572 + pitch = be32_to_cpup(pp); 586 573 else 587 574 pitch = width * ((depth + 7) / 8); 588 575