* [PATCH v5] drm/vgem/vgem_drv convert to use faux_device
@ 2025-07-01 10:51 Greg Kroah-Hartman
2025-07-02 7:36 ` Thomas Zimmermann
0 siblings, 1 reply; 5+ messages in thread
From: Greg Kroah-Hartman @ 2025-07-01 10:51 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, Maarten Lankhorst, Maxime Ripard,
David Airlie, Simona Vetter, dri-devel, Thomas Zimmermann,
Lyude Paul
The vgem driver does not need to create a platform device, as there is
no real platform resources associated it, it only did so because it was
simple to do that in order to get a device to use for resource
management of drm resources. Change the driver to use the faux device
instead as this is NOT a real platform device.
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: dri-devel@lists.freedesktop.org
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
v5: - rebased against 6.16-rc4 and resent as it seems to have been lost
v4: - api tweaked due to parent pointer added to faux_device create
function.
v3: - new patch in the series. For an example of the api working, does
not have to be merged at this time, but I can take it if the
maintainers give an ack.
drivers/gpu/drm/vgem/vgem_drv.c | 30 +++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c
index 2752ab4f1c97..260c64733972 100644
--- a/drivers/gpu/drm/vgem/vgem_drv.c
+++ b/drivers/gpu/drm/vgem/vgem_drv.c
@@ -32,7 +32,7 @@
#include <linux/dma-buf.h>
#include <linux/module.h>
-#include <linux/platform_device.h>
+#include <linux/device/faux.h>
#include <linux/shmem_fs.h>
#include <linux/vmalloc.h>
@@ -52,7 +52,7 @@
static struct vgem_device {
struct drm_device drm;
- struct platform_device *platform;
+ struct faux_device *faux_dev;
} *vgem_device;
static int vgem_open(struct drm_device *dev, struct drm_file *file)
@@ -127,27 +127,27 @@ static const struct drm_driver vgem_driver = {
static int __init vgem_init(void)
{
int ret;
- struct platform_device *pdev;
+ struct faux_device *fdev;
- pdev = platform_device_register_simple("vgem", -1, NULL, 0);
- if (IS_ERR(pdev))
- return PTR_ERR(pdev);
+ fdev = faux_device_create("vgem", NULL, NULL);
+ if (!fdev)
+ return -ENODEV;
- if (!devres_open_group(&pdev->dev, NULL, GFP_KERNEL)) {
+ if (!devres_open_group(&fdev->dev, NULL, GFP_KERNEL)) {
ret = -ENOMEM;
goto out_unregister;
}
- dma_coerce_mask_and_coherent(&pdev->dev,
+ dma_coerce_mask_and_coherent(&fdev->dev,
DMA_BIT_MASK(64));
- vgem_device = devm_drm_dev_alloc(&pdev->dev, &vgem_driver,
+ vgem_device = devm_drm_dev_alloc(&fdev->dev, &vgem_driver,
struct vgem_device, drm);
if (IS_ERR(vgem_device)) {
ret = PTR_ERR(vgem_device);
goto out_devres;
}
- vgem_device->platform = pdev;
+ vgem_device->faux_dev = fdev;
/* Final step: expose the device/driver to userspace */
ret = drm_dev_register(&vgem_device->drm, 0);
@@ -157,19 +157,19 @@ static int __init vgem_init(void)
return 0;
out_devres:
- devres_release_group(&pdev->dev, NULL);
+ devres_release_group(&fdev->dev, NULL);
out_unregister:
- platform_device_unregister(pdev);
+ faux_device_destroy(fdev);
return ret;
}
static void __exit vgem_exit(void)
{
- struct platform_device *pdev = vgem_device->platform;
+ struct faux_device *fdev = vgem_device->faux_dev;
drm_dev_unregister(&vgem_device->drm);
- devres_release_group(&pdev->dev, NULL);
- platform_device_unregister(pdev);
+ devres_release_group(&fdev->dev, NULL);
+ faux_device_destroy(fdev);
}
module_init(vgem_init);
--
2.50.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v5] drm/vgem/vgem_drv convert to use faux_device
2025-07-01 10:51 [PATCH v5] drm/vgem/vgem_drv convert to use faux_device Greg Kroah-Hartman
@ 2025-07-02 7:36 ` Thomas Zimmermann
2025-07-02 7:49 ` Greg Kroah-Hartman
0 siblings, 1 reply; 5+ messages in thread
From: Thomas Zimmermann @ 2025-07-02 7:36 UTC (permalink / raw)
To: Greg Kroah-Hartman, linux-kernel
Cc: Maarten Lankhorst, Maxime Ripard, David Airlie, Simona Vetter,
dri-devel, Lyude Paul
Hi
Am 01.07.25 um 12:51 schrieb Greg Kroah-Hartman:
> The vgem driver does not need to create a platform device, as there is
> no real platform resources associated it, it only did so because it was
> simple to do that in order to get a device to use for resource
> management of drm resources. Change the driver to use the faux device
> instead as this is NOT a real platform device.
>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Maxime Ripard <mripard@kernel.org>
> Cc: David Airlie <airlied@gmail.com>
> Cc: Simona Vetter <simona@ffwll.ch>
> Cc: dri-devel@lists.freedesktop.org
> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
> Reviewed-by: Lyude Paul <lyude@redhat.com>
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> ---
> v5: - rebased against 6.16-rc4 and resent as it seems to have been lost
Not lost, but thanks for the update. This patch and the one for vkms
depend on "drm/gem-shmem: Do not map s/g table by default". [1] It'll
land soon and the faux_device updates soon after.
Best regards
Thomas
[1] https://patchwork.freedesktop.org/series/150968/
> v4: - api tweaked due to parent pointer added to faux_device create
> function.
> v3: - new patch in the series. For an example of the api working, does
> not have to be merged at this time, but I can take it if the
> maintainers give an ack.
>
> drivers/gpu/drm/vgem/vgem_drv.c | 30 +++++++++++++++---------------
> 1 file changed, 15 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c
> index 2752ab4f1c97..260c64733972 100644
> --- a/drivers/gpu/drm/vgem/vgem_drv.c
> +++ b/drivers/gpu/drm/vgem/vgem_drv.c
> @@ -32,7 +32,7 @@
>
> #include <linux/dma-buf.h>
> #include <linux/module.h>
> -#include <linux/platform_device.h>
> +#include <linux/device/faux.h>
> #include <linux/shmem_fs.h>
> #include <linux/vmalloc.h>
>
> @@ -52,7 +52,7 @@
>
> static struct vgem_device {
> struct drm_device drm;
> - struct platform_device *platform;
> + struct faux_device *faux_dev;
> } *vgem_device;
>
> static int vgem_open(struct drm_device *dev, struct drm_file *file)
> @@ -127,27 +127,27 @@ static const struct drm_driver vgem_driver = {
> static int __init vgem_init(void)
> {
> int ret;
> - struct platform_device *pdev;
> + struct faux_device *fdev;
>
> - pdev = platform_device_register_simple("vgem", -1, NULL, 0);
> - if (IS_ERR(pdev))
> - return PTR_ERR(pdev);
> + fdev = faux_device_create("vgem", NULL, NULL);
> + if (!fdev)
> + return -ENODEV;
>
> - if (!devres_open_group(&pdev->dev, NULL, GFP_KERNEL)) {
> + if (!devres_open_group(&fdev->dev, NULL, GFP_KERNEL)) {
> ret = -ENOMEM;
> goto out_unregister;
> }
>
> - dma_coerce_mask_and_coherent(&pdev->dev,
> + dma_coerce_mask_and_coherent(&fdev->dev,
> DMA_BIT_MASK(64));
>
> - vgem_device = devm_drm_dev_alloc(&pdev->dev, &vgem_driver,
> + vgem_device = devm_drm_dev_alloc(&fdev->dev, &vgem_driver,
> struct vgem_device, drm);
> if (IS_ERR(vgem_device)) {
> ret = PTR_ERR(vgem_device);
> goto out_devres;
> }
> - vgem_device->platform = pdev;
> + vgem_device->faux_dev = fdev;
>
> /* Final step: expose the device/driver to userspace */
> ret = drm_dev_register(&vgem_device->drm, 0);
> @@ -157,19 +157,19 @@ static int __init vgem_init(void)
> return 0;
>
> out_devres:
> - devres_release_group(&pdev->dev, NULL);
> + devres_release_group(&fdev->dev, NULL);
> out_unregister:
> - platform_device_unregister(pdev);
> + faux_device_destroy(fdev);
> return ret;
> }
>
> static void __exit vgem_exit(void)
> {
> - struct platform_device *pdev = vgem_device->platform;
> + struct faux_device *fdev = vgem_device->faux_dev;
>
> drm_dev_unregister(&vgem_device->drm);
> - devres_release_group(&pdev->dev, NULL);
> - platform_device_unregister(pdev);
> + devres_release_group(&fdev->dev, NULL);
> + faux_device_destroy(fdev);
> }
>
> module_init(vgem_init);
--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v5] drm/vgem/vgem_drv convert to use faux_device
2025-07-02 7:36 ` Thomas Zimmermann
@ 2025-07-02 7:49 ` Greg Kroah-Hartman
2025-07-07 13:52 ` Thomas Zimmermann
0 siblings, 1 reply; 5+ messages in thread
From: Greg Kroah-Hartman @ 2025-07-02 7:49 UTC (permalink / raw)
To: Thomas Zimmermann
Cc: linux-kernel, Maarten Lankhorst, Maxime Ripard, David Airlie,
Simona Vetter, dri-devel, Lyude Paul
On Wed, Jul 02, 2025 at 09:36:40AM +0200, Thomas Zimmermann wrote:
> Hi
>
> Am 01.07.25 um 12:51 schrieb Greg Kroah-Hartman:
> > The vgem driver does not need to create a platform device, as there is
> > no real platform resources associated it, it only did so because it was
> > simple to do that in order to get a device to use for resource
> > management of drm resources. Change the driver to use the faux device
> > instead as this is NOT a real platform device.
> >
> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > Cc: Maxime Ripard <mripard@kernel.org>
> > Cc: David Airlie <airlied@gmail.com>
> > Cc: Simona Vetter <simona@ffwll.ch>
> > Cc: dri-devel@lists.freedesktop.org
> > Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
> > Reviewed-by: Lyude Paul <lyude@redhat.com>
> > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > ---
> > v5: - rebased against 6.16-rc4 and resent as it seems to have been lost
>
> Not lost, but thanks for the update. This patch and the one for vkms depend
> on "drm/gem-shmem: Do not map s/g table by default". [1] It'll land soon and
> the faux_device updates soon after.
>
> Best regards
> Thomas
>
> [1] https://patchwork.freedesktop.org/series/150968/
Great, thanks for letting me know.
greg k-h
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v5] drm/vgem/vgem_drv convert to use faux_device
2025-07-02 7:49 ` Greg Kroah-Hartman
@ 2025-07-07 13:52 ` Thomas Zimmermann
2025-07-08 8:14 ` Greg Kroah-Hartman
0 siblings, 1 reply; 5+ messages in thread
From: Thomas Zimmermann @ 2025-07-07 13:52 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: linux-kernel, Maarten Lankhorst, Maxime Ripard, David Airlie,
Simona Vetter, dri-devel, Lyude Paul
Hi
Am 02.07.25 um 09:49 schrieb Greg Kroah-Hartman:
> On Wed, Jul 02, 2025 at 09:36:40AM +0200, Thomas Zimmermann wrote:
>> Hi
>>
>> Am 01.07.25 um 12:51 schrieb Greg Kroah-Hartman:
>>> The vgem driver does not need to create a platform device, as there is
>>> no real platform resources associated it, it only did so because it was
>>> simple to do that in order to get a device to use for resource
>>> management of drm resources. Change the driver to use the faux device
>>> instead as this is NOT a real platform device.
>>>
>>> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>>> Cc: Maxime Ripard <mripard@kernel.org>
>>> Cc: David Airlie <airlied@gmail.com>
>>> Cc: Simona Vetter <simona@ffwll.ch>
>>> Cc: dri-devel@lists.freedesktop.org
>>> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
>>> Reviewed-by: Lyude Paul <lyude@redhat.com>
>>> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>>> ---
>>> v5: - rebased against 6.16-rc4 and resent as it seems to have been lost
>> Not lost, but thanks for the update. This patch and the one for vkms depend
>> on "drm/gem-shmem: Do not map s/g table by default". [1] It'll land soon and
>> the faux_device updates soon after.
>>
>> Best regards
>> Thomas
>>
>> [1] https://patchwork.freedesktop.org/series/150968/
> Great, thanks for letting me know.
This patch and the one for vkms have been merged into DRM trees. They
should show up in upstream in one of the next merge windows.
Best regards
Thomas
>
> greg k-h
--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v5] drm/vgem/vgem_drv convert to use faux_device
2025-07-07 13:52 ` Thomas Zimmermann
@ 2025-07-08 8:14 ` Greg Kroah-Hartman
0 siblings, 0 replies; 5+ messages in thread
From: Greg Kroah-Hartman @ 2025-07-08 8:14 UTC (permalink / raw)
To: Thomas Zimmermann
Cc: linux-kernel, Maarten Lankhorst, Maxime Ripard, David Airlie,
Simona Vetter, dri-devel, Lyude Paul
On Mon, Jul 07, 2025 at 03:52:32PM +0200, Thomas Zimmermann wrote:
> Hi
>
> Am 02.07.25 um 09:49 schrieb Greg Kroah-Hartman:
> > On Wed, Jul 02, 2025 at 09:36:40AM +0200, Thomas Zimmermann wrote:
> > > Hi
> > >
> > > Am 01.07.25 um 12:51 schrieb Greg Kroah-Hartman:
> > > > The vgem driver does not need to create a platform device, as there is
> > > > no real platform resources associated it, it only did so because it was
> > > > simple to do that in order to get a device to use for resource
> > > > management of drm resources. Change the driver to use the faux device
> > > > instead as this is NOT a real platform device.
> > > >
> > > > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > > > Cc: Maxime Ripard <mripard@kernel.org>
> > > > Cc: David Airlie <airlied@gmail.com>
> > > > Cc: Simona Vetter <simona@ffwll.ch>
> > > > Cc: dri-devel@lists.freedesktop.org
> > > > Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
> > > > Reviewed-by: Lyude Paul <lyude@redhat.com>
> > > > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > > > ---
> > > > v5: - rebased against 6.16-rc4 and resent as it seems to have been lost
> > > Not lost, but thanks for the update. This patch and the one for vkms depend
> > > on "drm/gem-shmem: Do not map s/g table by default". [1] It'll land soon and
> > > the faux_device updates soon after.
> > >
> > > Best regards
> > > Thomas
> > >
> > > [1] https://patchwork.freedesktop.org/series/150968/
> > Great, thanks for letting me know.
>
> This patch and the one for vkms have been merged into DRM trees. They should
> show up in upstream in one of the next merge windows.
Wonderful, thank you!
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-07-08 8:15 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-01 10:51 [PATCH v5] drm/vgem/vgem_drv convert to use faux_device Greg Kroah-Hartman
2025-07-02 7:36 ` Thomas Zimmermann
2025-07-02 7:49 ` Greg Kroah-Hartman
2025-07-07 13:52 ` Thomas Zimmermann
2025-07-08 8:14 ` Greg Kroah-Hartman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox