* [PATCH v9 02/19] vfio: platform: probe to devices on the platform bus [not found] ` <1414433284-31719-1-git-send-email-a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> @ 2014-10-27 18:07 ` Antonios Motakis 2014-10-27 18:07 ` [PATCH v9 04/19] vfio: amba: VFIO support for AMBA devices Antonios Motakis 1 sibling, 0 replies; 4+ messages in thread From: Antonios Motakis @ 2014-10-27 18:07 UTC (permalink / raw) To: kvmarm-FPEHb7Xf0XXUo1n7N8X6UoWGPAHP3yOg, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA, alex.williamson-H+wXaHxf7aLQT0dZR+AlfA Cc: open list:VFIO DRIVER, eric.auger-QSEj5FYQhm4dnm+yROfE0A, marc.zyngier-5wv7dgnIgG8, open list:ABI/API, will.deacon-5wv7dgnIgG8, open list, Antonios Motakis, tech-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J, christoffer.dall-QSEj5FYQhm4dnm+yROfE0A Driver to bind to Linux platform devices, and callbacks to discover their resources to be used by the main VFIO PLATFORM code. Signed-off-by: Antonios Motakis <a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> --- drivers/vfio/platform/vfio_platform.c | 114 ++++++++++++++++++++++++++++++++++ include/uapi/linux/vfio.h | 1 + 2 files changed, 115 insertions(+) create mode 100644 drivers/vfio/platform/vfio_platform.c diff --git a/drivers/vfio/platform/vfio_platform.c b/drivers/vfio/platform/vfio_platform.c new file mode 100644 index 0000000..3885122 --- /dev/null +++ b/drivers/vfio/platform/vfio_platform.c @@ -0,0 +1,114 @@ +/* + * Copyright (C) 2013 - Virtual Open Systems + * Author: Antonios Motakis <a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License, version 2, as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include <linux/device.h> +#include <linux/eventfd.h> +#include <linux/interrupt.h> +#include <linux/iommu.h> +#include <linux/module.h> +#include <linux/mutex.h> +#include <linux/notifier.h> +#include <linux/pm_runtime.h> +#include <linux/slab.h> +#include <linux/types.h> +#include <linux/uaccess.h> +#include <linux/vfio.h> +#include <linux/io.h> +#include <linux/platform_device.h> +#include <linux/irq.h> + +#include "vfio_platform_private.h" + +#define DRIVER_VERSION "0.9" +#define DRIVER_AUTHOR "Antonios Motakis <a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org>" +#define DRIVER_DESC "VFIO for platform devices - User Level meta-driver" + +/* probing devices from the linux platform bus */ + +static struct resource *get_platform_resource(struct vfio_platform_device *vdev, + int num) +{ + struct platform_device *dev = (struct platform_device *) vdev->opaque; + int i; + + for (i = 0; i < dev->num_resources; i++) { + struct resource *r = &dev->resource[i]; + + if (resource_type(r) & (IORESOURCE_MEM|IORESOURCE_IO)) { + if (!num) + return r; + + num--; + } + } + return NULL; +} + +static int get_platform_irq(struct vfio_platform_device *vdev, int i) +{ + struct platform_device *pdev = (struct platform_device *) vdev->opaque; + + return platform_get_irq(pdev, i); +} + +static int vfio_platform_probe(struct platform_device *pdev) +{ + struct vfio_platform_device *vdev; + int ret; + + vdev = kzalloc(sizeof(*vdev), GFP_KERNEL); + if (!vdev) + return -ENOMEM; + + vdev->opaque = (void *) pdev; + vdev->name = pdev->name; + vdev->flags = VFIO_DEVICE_FLAGS_PLATFORM; + vdev->get_resource = get_platform_resource; + vdev->get_irq = get_platform_irq; + + ret = vfio_platform_probe_common(vdev, &pdev->dev); + if (ret) + kfree(vdev); + + return ret; +} + +static int vfio_platform_remove(struct platform_device *pdev) +{ + struct vfio_platform_device *vdev; + + vdev = vfio_platform_remove_common(&pdev->dev); + if(vdev) { + kfree(vdev); + return 0; + } + + return -EINVAL; +} + +static struct platform_driver vfio_platform_driver = { + .probe = vfio_platform_probe, + .remove = vfio_platform_remove, + .driver = { + .name = "vfio-platform", + .owner = THIS_MODULE, + }, +}; + +module_platform_driver(vfio_platform_driver); + +MODULE_VERSION(DRIVER_VERSION); +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR(DRIVER_AUTHOR); +MODULE_DESCRIPTION(DRIVER_DESC); diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h index 06d66c9..9db1056 100644 --- a/include/uapi/linux/vfio.h +++ b/include/uapi/linux/vfio.h @@ -157,6 +157,7 @@ struct vfio_device_info { __u32 flags; #define VFIO_DEVICE_FLAGS_RESET (1 << 0) /* Device supports reset */ #define VFIO_DEVICE_FLAGS_PCI (1 << 1) /* vfio-pci device */ +#define VFIO_DEVICE_FLAGS_PLATFORM (1 << 2) /* vfio-platform device */ __u32 num_regions; /* Max region index + 1 */ __u32 num_irqs; /* Max IRQ index + 1 */ }; -- 2.1.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v9 04/19] vfio: amba: VFIO support for AMBA devices [not found] ` <1414433284-31719-1-git-send-email-a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> 2014-10-27 18:07 ` [PATCH v9 02/19] vfio: platform: probe to devices on the platform bus Antonios Motakis @ 2014-10-27 18:07 ` Antonios Motakis [not found] ` <1414433284-31719-5-git-send-email-a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> 1 sibling, 1 reply; 4+ messages in thread From: Antonios Motakis @ 2014-10-27 18:07 UTC (permalink / raw) To: kvmarm-FPEHb7Xf0XXUo1n7N8X6UoWGPAHP3yOg, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA, alex.williamson-H+wXaHxf7aLQT0dZR+AlfA Cc: open list:VFIO DRIVER, eric.auger-QSEj5FYQhm4dnm+yROfE0A, marc.zyngier-5wv7dgnIgG8, open list:ABI/API, will.deacon-5wv7dgnIgG8, open list, Antonios Motakis, tech-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J, christoffer.dall-QSEj5FYQhm4dnm+yROfE0A Add support for discovering AMBA devices with VFIO and handle them similarly to Linux platform devices. Signed-off-by: Antonios Motakis <a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> --- drivers/vfio/platform/vfio_amba.c | 116 ++++++++++++++++++++++++++++++++++++++ include/uapi/linux/vfio.h | 1 + 2 files changed, 117 insertions(+) create mode 100644 drivers/vfio/platform/vfio_amba.c diff --git a/drivers/vfio/platform/vfio_amba.c b/drivers/vfio/platform/vfio_amba.c new file mode 100644 index 0000000..cf61324 --- /dev/null +++ b/drivers/vfio/platform/vfio_amba.c @@ -0,0 +1,116 @@ +/* + * Copyright (C) 2013 - Virtual Open Systems + * Author: Antonios Motakis <a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License, version 2, as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include <linux/device.h> +#include <linux/interrupt.h> +#include <linux/iommu.h> +#include <linux/module.h> +#include <linux/mutex.h> +#include <linux/notifier.h> +#include <linux/pm_runtime.h> +#include <linux/slab.h> +#include <linux/types.h> +#include <linux/uaccess.h> +#include <linux/vfio.h> +#include <linux/io.h> +#include <linux/irq.h> +#include <linux/amba/bus.h> + +#include "vfio_platform_private.h" + +#define DRIVER_VERSION "0.9" +#define DRIVER_AUTHOR "Antonios Motakis <a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org>" +#define DRIVER_DESC "VFIO for AMBA devices - User Level meta-driver" + +/* probing devices from the AMBA bus */ + +static struct resource *get_amba_resource(struct vfio_platform_device *vdev, + int i) +{ + struct amba_device *adev = (struct amba_device *) vdev->opaque; + + if (i == 0) + return &adev->res; + + return NULL; +} + +static int get_amba_irq(struct vfio_platform_device *vdev, int i) +{ + struct amba_device *adev = (struct amba_device *) vdev->opaque; + + if (i < AMBA_NR_IRQS) + return adev->irq[i]; + + return 0; +} + +static int vfio_amba_probe(struct amba_device *adev, const struct amba_id *id) +{ + + struct vfio_platform_device *vdev; + int ret; + + vdev = kzalloc(sizeof(*vdev), GFP_KERNEL); + if (!vdev) + return -ENOMEM; + + vdev->opaque = (void *) adev; + vdev->name = "vfio-amba-dev"; + vdev->flags = VFIO_DEVICE_FLAGS_AMBA; + vdev->get_resource = get_amba_resource; + vdev->get_irq = get_amba_irq; + + ret = vfio_platform_probe_common(vdev, &adev->dev); + if (ret) + kfree(vdev); + + return ret; +} + +static int vfio_amba_remove(struct amba_device *adev) +{ + struct vfio_platform_device *vdev; + + vdev = vfio_platform_remove_common(&adev->dev); + if(vdev) { + kfree(vdev); + return 0; + } + + return -EINVAL; +} + +static struct amba_id pl330_ids[] = { + { 0, 0 }, +}; + +MODULE_DEVICE_TABLE(amba, pl330_ids); + +static struct amba_driver vfio_amba_driver = { + .probe = vfio_amba_probe, + .remove = vfio_amba_remove, + .id_table = pl330_ids, + .drv = { + .name = "vfio-amba", + .owner = THIS_MODULE, + }, +}; + +module_amba_driver(vfio_amba_driver); + +MODULE_VERSION(DRIVER_VERSION); +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR(DRIVER_AUTHOR); +MODULE_DESCRIPTION(DRIVER_DESC); diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h index 9db1056..92469e0 100644 --- a/include/uapi/linux/vfio.h +++ b/include/uapi/linux/vfio.h @@ -158,6 +158,7 @@ struct vfio_device_info { #define VFIO_DEVICE_FLAGS_RESET (1 << 0) /* Device supports reset */ #define VFIO_DEVICE_FLAGS_PCI (1 << 1) /* vfio-pci device */ #define VFIO_DEVICE_FLAGS_PLATFORM (1 << 2) /* vfio-platform device */ +#define VFIO_DEVICE_FLAGS_AMBA (1 << 3) /* vfio-amba device */ __u32 num_regions; /* Max region index + 1 */ __u32 num_irqs; /* Max IRQ index + 1 */ }; -- 2.1.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
[parent not found: <1414433284-31719-5-git-send-email-a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org>]
* Re: [PATCH v9 04/19] vfio: amba: VFIO support for AMBA devices [not found] ` <1414433284-31719-5-git-send-email-a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> @ 2014-10-31 18:40 ` Alex Williamson [not found] ` <1414780819.27420.314.camel-85EaTFmN5p//9pzu0YdTqQ@public.gmane.org> 0 siblings, 1 reply; 4+ messages in thread From: Alex Williamson @ 2014-10-31 18:40 UTC (permalink / raw) To: Antonios Motakis Cc: kvmarm-FPEHb7Xf0XXUo1n7N8X6UoWGPAHP3yOg, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA, will.deacon-5wv7dgnIgG8, tech-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J, christoffer.dall-QSEj5FYQhm4dnm+yROfE0A, eric.auger-QSEj5FYQhm4dnm+yROfE0A, kim.phillips-KZfg59tc24xl57MIdRCFDg, marc.zyngier-5wv7dgnIgG8, open list, open list:VFIO DRIVER, open list:ABI/API On Mon, 2014-10-27 at 19:07 +0100, Antonios Motakis wrote: > Add support for discovering AMBA devices with VFIO and handle them > similarly to Linux platform devices. > > Signed-off-by: Antonios Motakis <a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> > --- > drivers/vfio/platform/vfio_amba.c | 116 ++++++++++++++++++++++++++++++++++++++ > include/uapi/linux/vfio.h | 1 + > 2 files changed, 117 insertions(+) > create mode 100644 drivers/vfio/platform/vfio_amba.c > > diff --git a/drivers/vfio/platform/vfio_amba.c b/drivers/vfio/platform/vfio_amba.c > new file mode 100644 > index 0000000..cf61324 > --- /dev/null > +++ b/drivers/vfio/platform/vfio_amba.c > @@ -0,0 +1,116 @@ > +/* > + * Copyright (C) 2013 - Virtual Open Systems > + * Author: Antonios Motakis <a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License, version 2, as > + * published by the Free Software Foundation. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + */ > + > +#include <linux/device.h> > +#include <linux/interrupt.h> > +#include <linux/iommu.h> > +#include <linux/module.h> > +#include <linux/mutex.h> > +#include <linux/notifier.h> > +#include <linux/pm_runtime.h> > +#include <linux/slab.h> > +#include <linux/types.h> > +#include <linux/uaccess.h> > +#include <linux/vfio.h> > +#include <linux/io.h> > +#include <linux/irq.h> > +#include <linux/amba/bus.h> > + > +#include "vfio_platform_private.h" > + > +#define DRIVER_VERSION "0.9" > +#define DRIVER_AUTHOR "Antonios Motakis <a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org>" > +#define DRIVER_DESC "VFIO for AMBA devices - User Level meta-driver" > + > +/* probing devices from the AMBA bus */ > + > +static struct resource *get_amba_resource(struct vfio_platform_device *vdev, > + int i) > +{ > + struct amba_device *adev = (struct amba_device *) vdev->opaque; > + > + if (i == 0) > + return &adev->res; > + > + return NULL; > +} > + > +static int get_amba_irq(struct vfio_platform_device *vdev, int i) > +{ > + struct amba_device *adev = (struct amba_device *) vdev->opaque; > + > + if (i < AMBA_NR_IRQS) > + return adev->irq[i]; > + > + return 0; > +} > + > +static int vfio_amba_probe(struct amba_device *adev, const struct amba_id *id) > +{ > + > + struct vfio_platform_device *vdev; > + int ret; > + > + vdev = kzalloc(sizeof(*vdev), GFP_KERNEL); > + if (!vdev) > + return -ENOMEM; > + > + vdev->opaque = (void *) adev; > + vdev->name = "vfio-amba-dev"; You need to actually allocate some memory here with something like kasprintf. Don't forget to free it on the error and remove path. > + vdev->flags = VFIO_DEVICE_FLAGS_AMBA; > + vdev->get_resource = get_amba_resource; > + vdev->get_irq = get_amba_irq; > + > + ret = vfio_platform_probe_common(vdev, &adev->dev); > + if (ret) > + kfree(vdev); > + > + return ret; > +} > + > +static int vfio_amba_remove(struct amba_device *adev) > +{ > + struct vfio_platform_device *vdev; > + > + vdev = vfio_platform_remove_common(&adev->dev); > + if(vdev) { > + kfree(vdev); > + return 0; > + } > + > + return -EINVAL; > +} > + > +static struct amba_id pl330_ids[] = { > + { 0, 0 }, > +}; > + > +MODULE_DEVICE_TABLE(amba, pl330_ids); > + > +static struct amba_driver vfio_amba_driver = { > + .probe = vfio_amba_probe, > + .remove = vfio_amba_remove, > + .id_table = pl330_ids, > + .drv = { > + .name = "vfio-amba", > + .owner = THIS_MODULE, > + }, > +}; > + > +module_amba_driver(vfio_amba_driver); > + > +MODULE_VERSION(DRIVER_VERSION); > +MODULE_LICENSE("GPL v2"); > +MODULE_AUTHOR(DRIVER_AUTHOR); > +MODULE_DESCRIPTION(DRIVER_DESC); > diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h > index 9db1056..92469e0 100644 > --- a/include/uapi/linux/vfio.h > +++ b/include/uapi/linux/vfio.h > @@ -158,6 +158,7 @@ struct vfio_device_info { > #define VFIO_DEVICE_FLAGS_RESET (1 << 0) /* Device supports reset */ > #define VFIO_DEVICE_FLAGS_PCI (1 << 1) /* vfio-pci device */ > #define VFIO_DEVICE_FLAGS_PLATFORM (1 << 2) /* vfio-platform device */ > +#define VFIO_DEVICE_FLAGS_AMBA (1 << 3) /* vfio-amba device */ > __u32 num_regions; /* Max region index + 1 */ > __u32 num_irqs; /* Max IRQ index + 1 */ > }; ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <1414780819.27420.314.camel-85EaTFmN5p//9pzu0YdTqQ@public.gmane.org>]
* Re: [PATCH v9 04/19] vfio: amba: VFIO support for AMBA devices [not found] ` <1414780819.27420.314.camel-85EaTFmN5p//9pzu0YdTqQ@public.gmane.org> @ 2014-11-05 9:50 ` Antonios Motakis 0 siblings, 0 replies; 4+ messages in thread From: Antonios Motakis @ 2014-11-05 9:50 UTC (permalink / raw) To: Alex Williamson Cc: open list:VFIO DRIVER, Eric Auger, Marc Zyngier, open list:ABI/API, Will Deacon, open list, Linux IOMMU, VirtualOpenSystems Technical Team, kvm-arm, Christoffer Dall On Fri, Oct 31, 2014 at 7:40 PM, Alex Williamson <alex.williamson-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote: > On Mon, 2014-10-27 at 19:07 +0100, Antonios Motakis wrote: >> Add support for discovering AMBA devices with VFIO and handle them >> similarly to Linux platform devices. >> >> Signed-off-by: Antonios Motakis <a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> >> --- >> drivers/vfio/platform/vfio_amba.c | 116 ++++++++++++++++++++++++++++++++++++++ >> include/uapi/linux/vfio.h | 1 + >> 2 files changed, 117 insertions(+) >> create mode 100644 drivers/vfio/platform/vfio_amba.c >> >> diff --git a/drivers/vfio/platform/vfio_amba.c b/drivers/vfio/platform/vfio_amba.c >> new file mode 100644 >> index 0000000..cf61324 >> --- /dev/null >> +++ b/drivers/vfio/platform/vfio_amba.c >> @@ -0,0 +1,116 @@ >> +/* >> + * Copyright (C) 2013 - Virtual Open Systems >> + * Author: Antonios Motakis <a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> >> + * >> + * This program is free software; you can redistribute it and/or modify >> + * it under the terms of the GNU General Public License, version 2, as >> + * published by the Free Software Foundation. >> + * >> + * This program is distributed in the hope that it will be useful, >> + * but WITHOUT ANY WARRANTY; without even the implied warranty of >> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >> + * GNU General Public License for more details. >> + */ >> + >> +#include <linux/device.h> >> +#include <linux/interrupt.h> >> +#include <linux/iommu.h> >> +#include <linux/module.h> >> +#include <linux/mutex.h> >> +#include <linux/notifier.h> >> +#include <linux/pm_runtime.h> >> +#include <linux/slab.h> >> +#include <linux/types.h> >> +#include <linux/uaccess.h> >> +#include <linux/vfio.h> >> +#include <linux/io.h> >> +#include <linux/irq.h> >> +#include <linux/amba/bus.h> >> + >> +#include "vfio_platform_private.h" >> + >> +#define DRIVER_VERSION "0.9" >> +#define DRIVER_AUTHOR "Antonios Motakis <a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org>" >> +#define DRIVER_DESC "VFIO for AMBA devices - User Level meta-driver" >> + >> +/* probing devices from the AMBA bus */ >> + >> +static struct resource *get_amba_resource(struct vfio_platform_device *vdev, >> + int i) >> +{ >> + struct amba_device *adev = (struct amba_device *) vdev->opaque; >> + >> + if (i == 0) >> + return &adev->res; >> + >> + return NULL; >> +} >> + >> +static int get_amba_irq(struct vfio_platform_device *vdev, int i) >> +{ >> + struct amba_device *adev = (struct amba_device *) vdev->opaque; >> + >> + if (i < AMBA_NR_IRQS) >> + return adev->irq[i]; >> + >> + return 0; >> +} >> + >> +static int vfio_amba_probe(struct amba_device *adev, const struct amba_id *id) >> +{ >> + >> + struct vfio_platform_device *vdev; >> + int ret; >> + >> + vdev = kzalloc(sizeof(*vdev), GFP_KERNEL); >> + if (!vdev) >> + return -ENOMEM; >> + >> + vdev->opaque = (void *) adev; >> + vdev->name = "vfio-amba-dev"; > > You need to actually allocate some memory here with something like > kasprintf. Don't forget to free it on the error and remove path. Ack. > >> + vdev->flags = VFIO_DEVICE_FLAGS_AMBA; >> + vdev->get_resource = get_amba_resource; >> + vdev->get_irq = get_amba_irq; >> + >> + ret = vfio_platform_probe_common(vdev, &adev->dev); >> + if (ret) >> + kfree(vdev); >> + >> + return ret; >> +} >> + >> +static int vfio_amba_remove(struct amba_device *adev) >> +{ >> + struct vfio_platform_device *vdev; >> + >> + vdev = vfio_platform_remove_common(&adev->dev); >> + if(vdev) { >> + kfree(vdev); >> + return 0; >> + } >> + >> + return -EINVAL; >> +} >> + >> +static struct amba_id pl330_ids[] = { >> + { 0, 0 }, >> +}; >> + >> +MODULE_DEVICE_TABLE(amba, pl330_ids); >> + >> +static struct amba_driver vfio_amba_driver = { >> + .probe = vfio_amba_probe, >> + .remove = vfio_amba_remove, >> + .id_table = pl330_ids, >> + .drv = { >> + .name = "vfio-amba", >> + .owner = THIS_MODULE, >> + }, >> +}; >> + >> +module_amba_driver(vfio_amba_driver); >> + >> +MODULE_VERSION(DRIVER_VERSION); >> +MODULE_LICENSE("GPL v2"); >> +MODULE_AUTHOR(DRIVER_AUTHOR); >> +MODULE_DESCRIPTION(DRIVER_DESC); >> diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h >> index 9db1056..92469e0 100644 >> --- a/include/uapi/linux/vfio.h >> +++ b/include/uapi/linux/vfio.h >> @@ -158,6 +158,7 @@ struct vfio_device_info { >> #define VFIO_DEVICE_FLAGS_RESET (1 << 0) /* Device supports reset */ >> #define VFIO_DEVICE_FLAGS_PCI (1 << 1) /* vfio-pci device */ >> #define VFIO_DEVICE_FLAGS_PLATFORM (1 << 2) /* vfio-platform device */ >> +#define VFIO_DEVICE_FLAGS_AMBA (1 << 3) /* vfio-amba device */ >> __u32 num_regions; /* Max region index + 1 */ >> __u32 num_irqs; /* Max IRQ index + 1 */ >> }; > > > ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-11-05 9:50 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <1414433284-31719-1-git-send-email-a.motakis@virtualopensystems.com> [not found] ` <1414433284-31719-1-git-send-email-a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> 2014-10-27 18:07 ` [PATCH v9 02/19] vfio: platform: probe to devices on the platform bus Antonios Motakis 2014-10-27 18:07 ` [PATCH v9 04/19] vfio: amba: VFIO support for AMBA devices Antonios Motakis [not found] ` <1414433284-31719-5-git-send-email-a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org> 2014-10-31 18:40 ` Alex Williamson [not found] ` <1414780819.27420.314.camel-85EaTFmN5p//9pzu0YdTqQ@public.gmane.org> 2014-11-05 9:50 ` Antonios Motakis
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).