On Fri, 15 Jan 2016, Shannon Zhao wrote: > From: Shannon Zhao <shannon.zhao@xxxxxxxxxx> > > 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@xxxxxxxxxx> Reviewed-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> > 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 7d902ea..9978f8d 100644 > --- a/drivers/xen/arm-device.c > +++ b/drivers/xen/arm-device.c > @@ -138,3 +138,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 > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxx > http://lists.xen.org/xen-devel > -- To unsubscribe from this list: send the line "unsubscribe linux-efi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html