Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1349896

[PATCH v5 07/17] Xen: ARM: Add support for mapping AMBA device mmio

From Shannon Zhao <zhaoshenglong@huawei.com>
Newsgroups linux.kernel
Subject [PATCH v5 07/17] Xen: ARM: Add support for mapping AMBA device mmio
Date 2016-03-04 07:50 +0100
Message-ID <r8RIK-2AC-15@gated-at.bofh.it> (permalink)
References <r8Rz3-2wY-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


From: Shannon Zhao <shannon.zhao@linaro.org>

Add a bus_notifier for AMBA bus device in order to map the device
mmio regions when DOM0 booting with ACPI.

Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
 drivers/xen/arm-device.c | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/drivers/xen/arm-device.c b/drivers/xen/arm-device.c
index 76e26e5..3854043 100644
--- a/drivers/xen/arm-device.c
+++ b/drivers/xen/arm-device.c
@@ -139,3 +139,46 @@ static int __init register_xen_platform_notifier(void)
 }
 
 arch_initcall(register_xen_platform_notifier);
+
+#ifdef CONFIG_ARM_AMBA
+#include <linux/amba/bus.h>
+
+static int xen_amba_notifier(struct notifier_block *nb,
+			     unsigned long action, void *data)
+{
+	struct amba_device *adev = to_amba_device(data);
+	int r = 0;
+
+	switch (action) {
+	case BUS_NOTIFY_ADD_DEVICE:
+		r = xen_map_device_mmio(&adev->res, 1);
+		break;
+	case BUS_NOTIFY_DEL_DEVICE:
+		r = xen_unmap_device_mmio(&adev->res, 1);
+		break;
+	default:
+		return NOTIFY_DONE;
+	}
+	if (r)
+		dev_err(&adev->dev, "AMBA: Failed to %s device %s MMIO!\n",
+			action == BUS_NOTIFY_ADD_DEVICE ? "map" :
+			(action == BUS_NOTIFY_DEL_DEVICE ? "unmap" : "?"),
+			adev->dev.init_name);
+
+	return NOTIFY_OK;
+}
+
+static struct notifier_block amba_device_nb = {
+	.notifier_call = xen_amba_notifier,
+};
+
+static int __init register_xen_amba_notifier(void)
+{
+	if (!xen_initial_domain() || acpi_disabled)
+		return 0;
+
+	return bus_register_notifier(&amba_bustype, &amba_device_nb);
+}
+
+arch_initcall(register_xen_amba_notifier);
+#endif
-- 
2.0.4

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v5 00/17] Add ACPI support for Xen Dom0 on ARM64 Shannon Zhao <zhaoshenglong@huawei.com> - 2016-03-04 07:50 +0100
  [PATCH v5 14/17] XEN: EFI: Move x86 specific codes to architecture directory Shannon Zhao <zhaoshenglong@huawei.com> - 2016-03-04 07:50 +0100
  [PATCH v5 03/17] Xen: xlate: Use page_to_xen_pfn instead of page_to_pfn Shannon Zhao <zhaoshenglong@huawei.com> - 2016-03-04 07:50 +0100
  [PATCH v5 08/17] Xen: public/hvm: sync changes of HVM_PARAM_CALLBACK_VIA ABI from Xen Shannon Zhao <zhaoshenglong@huawei.com> - 2016-03-04 07:50 +0100
  [PATCH v5 13/17] ARM: Xen: Document UEFI support on Xen ARM virtual platforms Shannon Zhao <zhaoshenglong@huawei.com> - 2016-03-04 07:50 +0100
  [PATCH v5 11/17] ARM: XEN: Move xen_early_init() before efi_init() Shannon Zhao <zhaoshenglong@huawei.com> - 2016-03-04 07:50 +0100
  [PATCH v5 17/17] Xen: EFI: Parse DT parameters for Xen specific UEFI Shannon Zhao <zhaoshenglong@huawei.com> - 2016-03-04 07:50 +0100
  [PATCH v5 15/17] ARM64: XEN: Add a function to initialize Xen specific UEFI runtime services Shannon Zhao <zhaoshenglong@huawei.com> - 2016-03-04 07:50 +0100
  [PATCH v5 07/17] Xen: ARM: Add support for mapping AMBA device mmio Shannon Zhao <zhaoshenglong@huawei.com> - 2016-03-04 07:50 +0100
  [PATCH v5 16/17] FDT: Add a helper to get the subnode by given name Shannon Zhao <zhaoshenglong@huawei.com> - 2016-03-04 07:50 +0100
    Re: [PATCH v5 16/17] FDT: Add a helper to get the subnode by given  name Stefano Stabellini <stefano.stabellini@eu.citrix.com> - 2016-03-04 13:30 +0100
  [PATCH v5 10/17] arm/xen: Get event-channel irq through HVM_PARAM when booting with ACPI Shannon Zhao <zhaoshenglong@huawei.com> - 2016-03-04 07:50 +0100

csiph-web