X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=target%2Flinux%2Flayerscape%2Fpatches-4.9%2F818-vfio-support-layerscape.patch;h=4854738d38ec07591b7e41e62609bd2bbed75bae;hb=d2fdece2e17a756959e4ee1ae63e5de1c1b687ef;hp=1dba7b3158c076f2429d4b8d04f8975043de3ce8;hpb=239dff6697b56f9589dd83bc0268635cc32c188c;p=openwrt%2Fstaging%2Fjogo.git diff --git a/target/linux/layerscape/patches-4.9/818-vfio-support-layerscape.patch b/target/linux/layerscape/patches-4.9/818-vfio-support-layerscape.patch index 1dba7b3158..4854738d38 100644 --- a/target/linux/layerscape/patches-4.9/818-vfio-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.9/818-vfio-support-layerscape.patch @@ -27,8 +27,6 @@ Signed-off-by: Yangbo Lu create mode 100644 drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c create mode 100644 drivers/vfio/fsl-mc/vfio_fsl_mc_private.h -diff --git a/drivers/vfio/Kconfig b/drivers/vfio/Kconfig -index da6e2ce7..8a8a33e0 100644 --- a/drivers/vfio/Kconfig +++ b/drivers/vfio/Kconfig @@ -48,4 +48,5 @@ menuconfig VFIO_NOIOMMU @@ -37,18 +35,13 @@ index da6e2ce7..8a8a33e0 100644 source "drivers/vfio/platform/Kconfig" +source "drivers/vfio/fsl-mc/Kconfig" source "virt/lib/Kconfig" -diff --git a/drivers/vfio/Makefile b/drivers/vfio/Makefile -index 7b8a31f6..560f0c67 100644 --- a/drivers/vfio/Makefile +++ b/drivers/vfio/Makefile -@@ -7,3 +7,4 @@ obj-$(CONFIG_VFIO_IOMMU_SPAPR_TCE) += vfio_iommu_spapr_tce.o +@@ -7,3 +7,4 @@ obj-$(CONFIG_VFIO_IOMMU_SPAPR_TCE) += vf obj-$(CONFIG_VFIO_SPAPR_EEH) += vfio_spapr_eeh.o obj-$(CONFIG_VFIO_PCI) += pci/ obj-$(CONFIG_VFIO_PLATFORM) += platform/ +obj-$(CONFIG_VFIO_FSL_MC) += fsl-mc/ -diff --git a/drivers/vfio/fsl-mc/Kconfig b/drivers/vfio/fsl-mc/Kconfig -new file mode 100644 -index 00000000..b1a527d6 --- /dev/null +++ b/drivers/vfio/fsl-mc/Kconfig @@ -0,0 +1,9 @@ @@ -61,17 +54,11 @@ index 00000000..b1a527d6 + fsl-mc bus devices using the VFIO framework. + + If you don't know what to do here, say N. -diff --git a/drivers/vfio/fsl-mc/Makefile b/drivers/vfio/fsl-mc/Makefile -new file mode 100644 -index 00000000..2aca75af --- /dev/null +++ b/drivers/vfio/fsl-mc/Makefile @@ -0,0 +1,2 @@ +vfio-fsl_mc-y := vfio_fsl_mc.o +obj-$(CONFIG_VFIO_FSL_MC) += vfio_fsl_mc.o vfio_fsl_mc_intr.o -diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc.c b/drivers/vfio/fsl-mc/vfio_fsl_mc.c -new file mode 100644 -index 00000000..9dc32d27 --- /dev/null +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc.c @@ -0,0 +1,753 @@ @@ -828,9 +815,6 @@ index 00000000..9dc32d27 +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR(DRIVER_AUTHOR); +MODULE_DESCRIPTION(DRIVER_DESC); -diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c -new file mode 100644 -index 00000000..eb244bb0 --- /dev/null +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c @@ -0,0 +1,199 @@ @@ -1033,9 +1017,6 @@ index 00000000..eb244bb0 + + return ret; +} -diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc_private.h b/drivers/vfio/fsl-mc/vfio_fsl_mc_private.h -new file mode 100644 -index 00000000..34e75754 --- /dev/null +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc_private.h @@ -0,0 +1,55 @@ @@ -1094,8 +1075,6 @@ index 00000000..34e75754 + unsigned int start, unsigned int count, + void *data); +#endif /* VFIO_PCI_PRIVATE_H */ -diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c -index 1d48e62f..f0a39331 100644 --- a/drivers/vfio/vfio_iommu_type1.c +++ b/drivers/vfio/vfio_iommu_type1.c @@ -36,6 +36,8 @@ @@ -1107,7 +1086,7 @@ index 1d48e62f..f0a39331 100644 #define DRIVER_VERSION "0.2" #define DRIVER_AUTHOR "Alex Williamson " -@@ -720,6 +722,27 @@ static void vfio_test_domain_fgsp(struct vfio_domain *domain) +@@ -720,6 +722,27 @@ static void vfio_test_domain_fgsp(struct __free_pages(pages, order); } @@ -1135,7 +1114,7 @@ index 1d48e62f..f0a39331 100644 static int vfio_iommu_type1_attach_group(void *iommu_data, struct iommu_group *iommu_group) { -@@ -728,6 +751,8 @@ static int vfio_iommu_type1_attach_group(void *iommu_data, +@@ -728,6 +751,8 @@ static int vfio_iommu_type1_attach_group struct vfio_domain *domain, *d; struct bus_type *bus = NULL; int ret; @@ -1144,7 +1123,7 @@ index 1d48e62f..f0a39331 100644 mutex_lock(&iommu->lock); -@@ -774,11 +799,15 @@ static int vfio_iommu_type1_attach_group(void *iommu_data, +@@ -774,11 +799,15 @@ static int vfio_iommu_type1_attach_group if (ret) goto out_domain; @@ -1162,7 +1141,7 @@ index 1d48e62f..f0a39331 100644 pr_warn("%s: No interrupt remapping support. Use the module param \"allow_unsafe_interrupts\" to enable VFIO IOMMU support on this platform\n", __func__); ret = -EPERM; -@@ -820,6 +849,12 @@ static int vfio_iommu_type1_attach_group(void *iommu_data, +@@ -820,6 +849,12 @@ static int vfio_iommu_type1_attach_group if (ret) goto out_detach; @@ -1175,8 +1154,6 @@ index 1d48e62f..f0a39331 100644 list_add(&domain->next, &iommu->domain_list); mutex_unlock(&iommu->lock); -diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h -index 255a2113..1bbaa13d 100644 --- a/include/uapi/linux/vfio.h +++ b/include/uapi/linux/vfio.h @@ -198,6 +198,7 @@ struct vfio_device_info { @@ -1187,6 +1164,3 @@ index 255a2113..1bbaa13d 100644 __u32 num_regions; /* Max region index + 1 */ __u32 num_irqs; /* Max IRQ index + 1 */ }; --- -2.14.1 -