@@ -25,8 +25,8 @@
/* probing devices from the linux platform bus */
-static struct resource *get_platform_resource(struct vfio_platform_device *vdev,
- int num)
+struct resource *get_platform_resource(struct vfio_platform_device *vdev,
+ int num)
{
struct platform_device *dev = (struct platform_device *) vdev->opaque;
int i;
@@ -43,15 +43,17 @@ static struct resource *get_platform_resource(struct vfio_platform_device *vdev,
}
return NULL;
}
+EXPORT_SYMBOL_GPL(get_platform_resource);
-static int get_platform_irq(struct vfio_platform_device *vdev, int i)
+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);
}
+EXPORT_SYMBOL_GPL(get_platform_irq);
-static int vfio_platform_probe(struct platform_device *pdev)
+int vfio_platform_probe(struct platform_device *pdev)
{
struct vfio_platform_device *vdev;
int ret;
@@ -72,8 +74,9 @@ static int vfio_platform_probe(struct platform_device *pdev)
return ret;
}
+EXPORT_SYMBOL_GPL(vfio_platform_probe);
-static int vfio_platform_remove(struct platform_device *pdev)
+int vfio_platform_remove(struct platform_device *pdev)
{
struct vfio_platform_device *vdev;
@@ -85,6 +88,7 @@ static int vfio_platform_remove(struct platform_device *pdev)
return -EINVAL;
}
+EXPORT_SYMBOL_GPL(vfio_platform_remove);
static struct platform_driver vfio_platform_driver = {
.probe = vfio_platform_probe,
@@ -95,4 +95,11 @@ extern int vfio_platform_external_set_automasked(void *device_data,
unsigned count,
bool automasked);
+struct platform_device;
+struct resource *get_platform_resource(struct vfio_platform_device *vdev,
+ int num);
+int get_platform_irq(struct vfio_platform_device *vdev, int i);
+int vfio_platform_probe(struct platform_device *pdev);
+int vfio_platform_remove(struct platform_device *pdev);
+
#endif /* VFIO_PLATFORM_PRIVATE_H */
We intend to derive the platform driver into specialized ones, featuring reset modality. In order to avoid duplication, let's export the functions that can be reused in all vfio_platform drivers: - get_platform_resource - get_platform_irq - vfio_platform_probe - vfio_platform_remove Practically, only the vfio_platform_probe method should need to be overridden. Signed-off-by: Eric Auger <eric.auger@linaro.org> --- drivers/vfio/platform/vfio_platform.c | 14 +++++++++----- drivers/vfio/platform/vfio_platform_private.h | 7 +++++++ 2 files changed, 16 insertions(+), 5 deletions(-)