Merge tag 'powerpc-4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux
Pull powerpc updates from Michael Ellerman: - disable the 32-bit vdso when building LE, so we can build with a 64-bit only toolchain. - EEH fixes from Gavin & Richard. - enable the sys_kcmp syscall from Laurent. - sysfs control for fastsleep workaround from Shreyas. - expose OPAL events as an irq chip by Alistair. - MSI ops moved to pci_controller_ops by Daniel. - fix for kernel to userspace backtraces for perf from Anton. - merge pseries and pseries_le defconfigs from Cyril. - CXL in-kernel API from Mikey. - OPAL prd driver from Jeremy. - fix for DSCR handling & tests from Anshuman. - Powernv flash mtd driver from Cyril. - dynamic DMA Window support on powernv from Alexey. - LLVM clang fixes & workarounds from Anton. - reworked version of the patch to abort syscalls when transactional. - fix the swap encoding to support 4TB, from Aneesh. - various fixes as usual. - Freescale updates from Scott: Highlights include more 8xx optimizations, an e6500 hugetlb optimization, QMan device tree nodes, t1024/t1023 support, and various fixes and cleanup. * tag 'powerpc-4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux: (180 commits) cxl: Fix typo in debug print cxl: Add CXL_KERNEL_API config option powerpc/powernv: Fix wrong IOMMU table in pnv_ioda_setup_bus_dma() powerpc/mm: Change the swap encoding in pte. powerpc/mm: PTE_RPN_MAX is not used, remove the same powerpc/tm: Abort syscalls in active transactions powerpc/iommu/ioda2: Enable compile with IOV=on and IOMMU_API=off powerpc/include: Add opal-prd to installed uapi headers powerpc/powernv: fix construction of opal PRD messages powerpc/powernv: Increase opal-irqchip initcall priority powerpc: Make doorbell check preemption safe powerpc/powernv: pnv_init_idle_states() should only run on powernv macintosh/nvram: Remove as unused powerpc: Don't use gcc specific options on clang powerpc: Don't use -mno-strict-align on clang powerpc: Only use -mtraceback=no, -mno-string and -msoft-float if toolchain supports it powerpc: Only use -mabi=altivec if toolchain supports it powerpc: Fix duplicate const clang warning in user access code vfio: powerpc/spapr: Support Dynamic DMA windows vfio: powerpc/spapr: Register memory and define IOMMU v2 ...
This commit is contained in:
@@ -29,6 +29,7 @@
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/interrupt.h>
|
||||
|
||||
#include <asm/hvconsole.h>
|
||||
#include <asm/prom.h>
|
||||
@@ -61,7 +62,6 @@ static struct hvc_opal_priv *hvc_opal_privs[MAX_NR_HVC_CONSOLES];
|
||||
/* For early boot console */
|
||||
static struct hvc_opal_priv hvc_opal_boot_priv;
|
||||
static u32 hvc_opal_boot_termno;
|
||||
static bool hvc_opal_event_registered;
|
||||
|
||||
static const struct hv_ops hvc_opal_raw_ops = {
|
||||
.get_chars = opal_get_chars,
|
||||
@@ -162,28 +162,15 @@ static const struct hv_ops hvc_opal_hvsi_ops = {
|
||||
.tiocmset = hvc_opal_hvsi_tiocmset,
|
||||
};
|
||||
|
||||
static int hvc_opal_console_event(struct notifier_block *nb,
|
||||
unsigned long events, void *change)
|
||||
{
|
||||
if (events & OPAL_EVENT_CONSOLE_INPUT)
|
||||
hvc_kick();
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct notifier_block hvc_opal_console_nb = {
|
||||
.notifier_call = hvc_opal_console_event,
|
||||
};
|
||||
|
||||
static int hvc_opal_probe(struct platform_device *dev)
|
||||
{
|
||||
const struct hv_ops *ops;
|
||||
struct hvc_struct *hp;
|
||||
struct hvc_opal_priv *pv;
|
||||
hv_protocol_t proto;
|
||||
unsigned int termno, boot = 0;
|
||||
unsigned int termno, irq, boot = 0;
|
||||
const __be32 *reg;
|
||||
|
||||
|
||||
if (of_device_is_compatible(dev->dev.of_node, "ibm,opal-console-raw")) {
|
||||
proto = HV_PROTOCOL_RAW;
|
||||
ops = &hvc_opal_raw_ops;
|
||||
@@ -227,18 +214,18 @@ static int hvc_opal_probe(struct platform_device *dev)
|
||||
dev->dev.of_node->full_name,
|
||||
boot ? " (boot console)" : "");
|
||||
|
||||
/* We don't do IRQ ... */
|
||||
hp = hvc_alloc(termno, 0, ops, MAX_VIO_PUT_CHARS);
|
||||
irq = opal_event_request(ilog2(OPAL_EVENT_CONSOLE_INPUT));
|
||||
if (!irq) {
|
||||
pr_err("hvc_opal: Unable to map interrupt for device %s\n",
|
||||
dev->dev.of_node->full_name);
|
||||
return irq;
|
||||
}
|
||||
|
||||
hp = hvc_alloc(termno, irq, ops, MAX_VIO_PUT_CHARS);
|
||||
if (IS_ERR(hp))
|
||||
return PTR_ERR(hp);
|
||||
dev_set_drvdata(&dev->dev, hp);
|
||||
|
||||
/* ... but we use OPAL event to kick the console */
|
||||
if (!hvc_opal_event_registered) {
|
||||
opal_notifier_register(&hvc_opal_console_nb);
|
||||
hvc_opal_event_registered = true;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Verwijs in nieuw issue
Block a user