aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-05-02 13:16:16 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-05-02 13:16:16 -0400
commit5a148af66932c31814e263366094b5812210b501 (patch)
treec5155ae89d7109533b8b073631bd65a7dd394b9d /drivers
parent99c6bcf46d2233d33e441834e958ed0bc22b190a (diff)
parent54d5999d98f2ab36ad71b9ef4d82cf5f399205f5 (diff)
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
Pull powerpc update from Benjamin Herrenschmidt: "The main highlights this time around are: - A pile of addition POWER8 bits and nits, such as updated performance counter support (Michael Ellerman), new branch history buffer support (Anshuman Khandual), base support for the new PCI host bridge when not using the hypervisor (Gavin Shan) and other random related bits and fixes from various contributors. - Some rework of our page table format by Aneesh Kumar which fixes a thing or two and paves the way for THP support. THP itself will not make it this time around however. - More Freescale updates, including Altivec support on the new e6500 cores, new PCI controller support, and a pile of new boards support and updates. - The usual batch of trivial cleanups & fixes" * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (156 commits) powerpc: Fix build error for book3e powerpc: Context switch the new EBB SPRs powerpc: Turn on the EBB H/FSCR bits powerpc: Replace CPU_FTR_BCTAR with CPU_FTR_ARCH_207S powerpc: Setup BHRB instructions facility in HFSCR for POWER8 powerpc: Fix interrupt range check on debug exception powerpc: Update tlbie/tlbiel as per ISA doc powerpc: Print page size info during boot powerpc: print both base and actual page size on hash failure powerpc: Fix hpte_decode to use the correct decoding for page sizes powerpc: Decode the pte-lp-encoding bits correctly. powerpc: Use encode avpn where we need only avpn values powerpc: Reduce PTE table memory wastage powerpc: Move the pte free routines from common header powerpc: Reduce the PTE_INDEX_SIZE powerpc: Switch 16GB and 16MB explicit hugepages to a different page table format powerpc: New hugepage directory format powerpc: Don't truncate pgd_index wrongly powerpc: Don't hard code the size of pte page powerpc: Save DAR and DSISR in pt_regs on MCE ...
Diffstat (limited to 'drivers')
-rw-r--r--drivers/macintosh/smu.c6
-rw-r--r--drivers/macintosh/via-pmu.c5
-rw-r--r--drivers/pci/probe.c2
-rw-r--r--drivers/pnp/pnpbios/core.c9
-rw-r--r--drivers/video/cirrusfb.c62
5 files changed, 18 insertions, 66 deletions
diff --git a/drivers/macintosh/smu.c b/drivers/macintosh/smu.c
index 9c6b96414862..b3b2d36c009e 100644
--- a/drivers/macintosh/smu.c
+++ b/drivers/macintosh/smu.c
@@ -120,11 +120,7 @@ static void smu_start_cmd(void)
120 120
121 DPRINTK("SMU: starting cmd %x, %d bytes data\n", cmd->cmd, 121 DPRINTK("SMU: starting cmd %x, %d bytes data\n", cmd->cmd,
122 cmd->data_len); 122 cmd->data_len);
123 DPRINTK("SMU: data buffer: %02x %02x %02x %02x %02x %02x %02x %02x\n", 123 DPRINTK("SMU: data buffer: %8ph\n", cmd->data_buf);
124 ((u8 *)cmd->data_buf)[0], ((u8 *)cmd->data_buf)[1],
125 ((u8 *)cmd->data_buf)[2], ((u8 *)cmd->data_buf)[3],
126 ((u8 *)cmd->data_buf)[4], ((u8 *)cmd->data_buf)[5],
127 ((u8 *)cmd->data_buf)[6], ((u8 *)cmd->data_buf)[7]);
128 124
129 /* Fill the SMU command buffer */ 125 /* Fill the SMU command buffer */
130 smu->cmd_buf->cmd = cmd->cmd; 126 smu->cmd_buf->cmd = cmd->cmd;
diff --git a/drivers/macintosh/via-pmu.c b/drivers/macintosh/via-pmu.c
index c31fbab6aa82..283e1b53c6be 100644
--- a/drivers/macintosh/via-pmu.c
+++ b/drivers/macintosh/via-pmu.c
@@ -750,8 +750,9 @@ done_battery_state_smart(struct adb_request* req)
750 voltage = (req->reply[8] << 8) | req->reply[9]; 750 voltage = (req->reply[8] << 8) | req->reply[9];
751 break; 751 break;
752 default: 752 default:
753 printk(KERN_WARNING "pmu.c : unrecognized battery info, len: %d, %02x %02x %02x %02x\n", 753 pr_warn("pmu.c: unrecognized battery info, "
754 req->reply_len, req->reply[0], req->reply[1], req->reply[2], req->reply[3]); 754 "len: %d, %4ph\n", req->reply_len,
755 req->reply);
755 break; 756 break;
756 } 757 }
757 } 758 }
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 43ece5d41d36..631aeb7d2d2d 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -990,7 +990,6 @@ int pci_setup_device(struct pci_dev *dev)
990 dev->sysdata = dev->bus->sysdata; 990 dev->sysdata = dev->bus->sysdata;
991 dev->dev.parent = dev->bus->bridge; 991 dev->dev.parent = dev->bus->bridge;
992 dev->dev.bus = &pci_bus_type; 992 dev->dev.bus = &pci_bus_type;
993 dev->dev.type = &pci_dev_type;
994 dev->hdr_type = hdr_type & 0x7f; 993 dev->hdr_type = hdr_type & 0x7f;
995 dev->multifunction = !!(hdr_type & 0x80); 994 dev->multifunction = !!(hdr_type & 0x80);
996 dev->error_state = pci_channel_io_normal; 995 dev->error_state = pci_channel_io_normal;
@@ -1210,6 +1209,7 @@ struct pci_dev *alloc_pci_dev(void)
1210 return NULL; 1209 return NULL;
1211 1210
1212 INIT_LIST_HEAD(&dev->bus_list); 1211 INIT_LIST_HEAD(&dev->bus_list);
1212 dev->dev.type = &pci_dev_type;
1213 1213
1214 return dev; 1214 return dev;
1215} 1215}
diff --git a/drivers/pnp/pnpbios/core.c b/drivers/pnp/pnpbios/core.c
index 5d66e5585f97..9b86a01af631 100644
--- a/drivers/pnp/pnpbios/core.c
+++ b/drivers/pnp/pnpbios/core.c
@@ -513,10 +513,6 @@ static int __init pnpbios_init(void)
513{ 513{
514 int ret; 514 int ret;
515 515
516#if defined(CONFIG_PPC)
517 if (check_legacy_ioport(PNPBIOS_BASE))
518 return -ENODEV;
519#endif
520 if (pnpbios_disabled || dmi_check_system(pnpbios_dmi_table) || 516 if (pnpbios_disabled || dmi_check_system(pnpbios_dmi_table) ||
521 paravirt_enabled()) { 517 paravirt_enabled()) {
522 printk(KERN_INFO "PnPBIOS: Disabled\n"); 518 printk(KERN_INFO "PnPBIOS: Disabled\n");
@@ -570,10 +566,7 @@ fs_initcall(pnpbios_init);
570static int __init pnpbios_thread_init(void) 566static int __init pnpbios_thread_init(void)
571{ 567{
572 struct task_struct *task; 568 struct task_struct *task;
573#if defined(CONFIG_PPC) 569
574 if (check_legacy_ioport(PNPBIOS_BASE))
575 return 0;
576#endif
577 if (pnpbios_disabled) 570 if (pnpbios_disabled)
578 return 0; 571 return 0;
579 572
diff --git a/drivers/video/cirrusfb.c b/drivers/video/cirrusfb.c
index c3dbbe6e3acf..97db3ba8f237 100644
--- a/drivers/video/cirrusfb.c
+++ b/drivers/video/cirrusfb.c
@@ -53,12 +53,6 @@
53#ifdef CONFIG_AMIGA 53#ifdef CONFIG_AMIGA
54#include <asm/amigahw.h> 54#include <asm/amigahw.h>
55#endif 55#endif
56#ifdef CONFIG_PPC_PREP
57#include <asm/machdep.h>
58#define isPReP machine_is(prep)
59#else
60#define isPReP 0
61#endif
62 56
63#include <video/vga.h> 57#include <video/vga.h>
64#include <video/cirrus.h> 58#include <video/cirrus.h>
@@ -557,30 +551,18 @@ static int cirrusfb_check_var(struct fb_var_screeninfo *var,
557 break; 551 break;
558 552
559 case 16: 553 case 16:
560 if (isPReP) { 554 var->red.offset = 11;
561 var->red.offset = 2; 555 var->green.offset = 5;
562 var->green.offset = -3; 556 var->blue.offset = 0;
563 var->blue.offset = 8;
564 } else {
565 var->red.offset = 11;
566 var->green.offset = 5;
567 var->blue.offset = 0;
568 }
569 var->red.length = 5; 557 var->red.length = 5;
570 var->green.length = 6; 558 var->green.length = 6;
571 var->blue.length = 5; 559 var->blue.length = 5;
572 break; 560 break;
573 561
574 case 24: 562 case 24:
575 if (isPReP) { 563 var->red.offset = 16;
576 var->red.offset = 0; 564 var->green.offset = 8;
577 var->green.offset = 8; 565 var->blue.offset = 0;
578 var->blue.offset = 16;
579 } else {
580 var->red.offset = 16;
581 var->green.offset = 8;
582 var->blue.offset = 0;
583 }
584 var->red.length = 8; 566 var->red.length = 8;
585 var->green.length = 8; 567 var->green.length = 8;
586 var->blue.length = 8; 568 var->blue.length = 8;
@@ -1874,17 +1856,6 @@ static void cirrusfb_imageblit(struct fb_info *info,
1874 } 1856 }
1875} 1857}
1876 1858
1877#ifdef CONFIG_PPC_PREP
1878#define PREP_VIDEO_BASE ((volatile unsigned long) 0xC0000000)
1879#define PREP_IO_BASE ((volatile unsigned char *) 0x80000000)
1880static void get_prep_addrs(unsigned long *display, unsigned long *registers)
1881{
1882 *display = PREP_VIDEO_BASE;
1883 *registers = (unsigned long) PREP_IO_BASE;
1884}
1885
1886#endif /* CONFIG_PPC_PREP */
1887
1888#ifdef CONFIG_PCI 1859#ifdef CONFIG_PCI
1889static int release_io_ports; 1860static int release_io_ports;
1890 1861
@@ -2139,21 +2110,12 @@ static int cirrusfb_pci_register(struct pci_dev *pdev,
2139 dev_dbg(info->device, " base address 1 is 0x%Lx\n", 2110 dev_dbg(info->device, " base address 1 is 0x%Lx\n",
2140 (unsigned long long)pdev->resource[1].start); 2111 (unsigned long long)pdev->resource[1].start);
2141 2112
2142 if (isPReP) { 2113 dev_dbg(info->device,
2143 pci_write_config_dword(pdev, PCI_BASE_ADDRESS_0, 0x00000000); 2114 "Attempt to get PCI info for Cirrus Graphics Card\n");
2144#ifdef CONFIG_PPC_PREP 2115 get_pci_addrs(pdev, &board_addr, &info->fix.mmio_start);
2145 get_prep_addrs(&board_addr, &info->fix.mmio_start); 2116 /* FIXME: this forces VGA. alternatives? */
2146#endif 2117 cinfo->regbase = NULL;
2147 /* PReP dies if we ioremap the IO registers, but it works w/out... */ 2118 cinfo->laguna_mmio = ioremap(info->fix.mmio_start, 0x1000);
2148 cinfo->regbase = (char __iomem *) info->fix.mmio_start;
2149 } else {
2150 dev_dbg(info->device,
2151 "Attempt to get PCI info for Cirrus Graphics Card\n");
2152 get_pci_addrs(pdev, &board_addr, &info->fix.mmio_start);
2153 /* FIXME: this forces VGA. alternatives? */
2154 cinfo->regbase = NULL;
2155 cinfo->laguna_mmio = ioremap(info->fix.mmio_start, 0x1000);
2156 }
2157 2119
2158 dev_dbg(info->device, "Board address: 0x%lx, register address: 0x%lx\n", 2120 dev_dbg(info->device, "Board address: 0x%lx, register address: 0x%lx\n",
2159 board_addr, info->fix.mmio_start); 2121 board_addr, info->fix.mmio_start);