[Intel-gfx] [PATCH] drm/lease: Send a distinct uevent
Daniel Vetter
daniel.vetter at ffwll.ch
Thu Nov 29 22:33:13 UTC 2018
On Thu, Nov 29, 2018 at 10:42 AM Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
>
> Sending the exact same hotplug event is not great uapi. Luckily the
> only already merged implementation of leases (in the -modesetting
> driver) doesn't care about what kind of uevent it gets, and
> unconditionally processes both hotplug and lease changes. So we can
> still adjust the uapi here.
>
> But e.g. weston tries to filter stuff, and I guess others might want
> to do that too. Try to make that possible. Cc: stable since it's uapi
> adjustement that we want to roll out everywhere.
>
> Cc: Keith Packard <keithp at keithp.com>
> Cc: Dave Airlie <airlied at redhat.com>
> Cc: stable at vger.kernel.org
> Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
Michel said on irc that -amdgpu also supports leases already, but it
has the same logic as -modesetting, so would be fine too.
-Daniel
> ---
> drivers/gpu/drm/drm_internal.h | 2 ++
> drivers/gpu/drm/drm_lease.c | 2 +-
> drivers/gpu/drm/drm_sysfs.c | 10 ++++++++++
> 3 files changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_internal.h b/drivers/gpu/drm/drm_internal.h
> index c7a7d7ce5d1c..d9caf205e0b3 100644
> --- a/drivers/gpu/drm/drm_internal.h
> +++ b/drivers/gpu/drm/drm_internal.h
> @@ -99,6 +99,8 @@ struct device *drm_sysfs_minor_alloc(struct drm_minor *minor);
> int drm_sysfs_connector_add(struct drm_connector *connector);
> void drm_sysfs_connector_remove(struct drm_connector *connector);
>
> +void drm_sysfs_lease_event(struct drm_device *dev);
> +
> /* drm_gem.c */
> int drm_gem_init(struct drm_device *dev);
> void drm_gem_destroy(struct drm_device *dev);
> diff --git a/drivers/gpu/drm/drm_lease.c b/drivers/gpu/drm/drm_lease.c
> index 3650d3c46718..99cba8ea5d82 100644
> --- a/drivers/gpu/drm/drm_lease.c
> +++ b/drivers/gpu/drm/drm_lease.c
> @@ -292,7 +292,7 @@ void drm_lease_destroy(struct drm_master *master)
>
> if (master->lessor) {
> /* Tell the master to check the lessee list */
> - drm_sysfs_hotplug_event(dev);
> + drm_sysfs_lease_event(dev);
> drm_master_put(&master->lessor);
> }
>
> diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
> index b3c1daad1169..ecb7b33002bb 100644
> --- a/drivers/gpu/drm/drm_sysfs.c
> +++ b/drivers/gpu/drm/drm_sysfs.c
> @@ -301,6 +301,16 @@ void drm_sysfs_connector_remove(struct drm_connector *connector)
> connector->kdev = NULL;
> }
>
> +void drm_sysfs_lease_event(struct drm_device *dev)
> +{
> + char *event_string = "LEASE=1";
> + char *envp[] = { event_string, NULL };
> +
> + DRM_DEBUG("generating lease event\n");
> +
> + kobject_uevent_env(&dev->primary->kdev->kobj, KOBJ_CHANGE, envp);
> +}
> +
> /**
> * drm_sysfs_hotplug_event - generate a DRM uevent
> * @dev: DRM device
> --
> 2.19.1
>
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
More information about the Intel-gfx
mailing list