From: Rob Clark <robdclark@gmail.com> To: dri-devel@lists.freedesktop.org Cc: Peter Zijlstra <peterz@infradead.org>, Tejun Heo <tj@kernel.org>, timmurray@google.com, linux-arm-msm@vger.kernel.org, Rob Clark <robdclark@chromium.org>, Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>, linux-kernel@vger.kernel.org (open list) Subject: [PATCH 1/3] drm/crtc: Introduce per-crtc kworker Date: Sat, 19 Sep 2020 12:37:24 -0700 [thread overview] Message-ID: <20200919193727.2093945-2-robdclark@gmail.com> (raw) In-Reply-To: <20200919193727.2093945-1-robdclark@gmail.com> From: Rob Clark <robdclark@chromium.org> This will be used for non-block atomic commits. Signed-off-by: Rob Clark <robdclark@chromium.org> --- drivers/gpu/drm/drm_crtc.c | 11 +++++++++++ include/drm/drm_crtc.h | 8 ++++++++ 2 files changed, 19 insertions(+) diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index aecdd7ea26dc..4f7c0bfce0a3 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c @@ -326,6 +326,14 @@ int drm_crtc_init_with_planes(struct drm_device *dev, struct drm_crtc *crtc, config->prop_out_fence_ptr, 0); drm_object_attach_property(&crtc->base, config->prop_vrr_enabled, 0); + + crtc->worker = kthread_create_worker(0, "%s-worker", crtc->name); + if (IS_ERR(crtc->worker)) { + drm_mode_object_unregister(dev, &crtc->base); + ret = PTR_ERR(crtc->worker); + crtc->worker = NULL; + return ret; + } } return 0; @@ -366,6 +374,9 @@ void drm_crtc_cleanup(struct drm_crtc *crtc) kfree(crtc->name); + if (crtc->worker) + kthread_destroy_worker(crtc->worker); + memset(crtc, 0, sizeof(*crtc)); } EXPORT_SYMBOL(drm_crtc_cleanup); diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h index 59b51a09cae6..8964a3732bca 100644 --- a/include/drm/drm_crtc.h +++ b/include/drm/drm_crtc.h @@ -30,6 +30,7 @@ #include <linux/types.h> #include <linux/fb.h> #include <linux/hdmi.h> +#include <linux/kthread.h> #include <linux/media-bus-format.h> #include <uapi/drm/drm_mode.h> #include <uapi/drm/drm_fourcc.h> @@ -1172,6 +1173,13 @@ struct drm_crtc { * Initialized via drm_self_refresh_helper_init(). */ struct drm_self_refresh_data *self_refresh_data; + + /** + * worker: + * + * Per-CRTC worker for nonblock atomic commits. + */ + struct kthread_worker *worker; }; /** -- 2.26.2
WARNING: multiple messages have this Message-ID (diff)
From: Rob Clark <robdclark@gmail.com> To: dri-devel@lists.freedesktop.org Cc: Rob Clark <robdclark@chromium.org>, Peter Zijlstra <peterz@infradead.org>, linux-arm-msm@vger.kernel.org, open list <linux-kernel@vger.kernel.org>, timmurray@google.com, David Airlie <airlied@linux.ie>, Thomas Zimmermann <tzimmermann@suse.de>, Tejun Heo <tj@kernel.org> Subject: [PATCH 1/3] drm/crtc: Introduce per-crtc kworker Date: Sat, 19 Sep 2020 12:37:24 -0700 [thread overview] Message-ID: <20200919193727.2093945-2-robdclark@gmail.com> (raw) In-Reply-To: <20200919193727.2093945-1-robdclark@gmail.com> From: Rob Clark <robdclark@chromium.org> This will be used for non-block atomic commits. Signed-off-by: Rob Clark <robdclark@chromium.org> --- drivers/gpu/drm/drm_crtc.c | 11 +++++++++++ include/drm/drm_crtc.h | 8 ++++++++ 2 files changed, 19 insertions(+) diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index aecdd7ea26dc..4f7c0bfce0a3 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c @@ -326,6 +326,14 @@ int drm_crtc_init_with_planes(struct drm_device *dev, struct drm_crtc *crtc, config->prop_out_fence_ptr, 0); drm_object_attach_property(&crtc->base, config->prop_vrr_enabled, 0); + + crtc->worker = kthread_create_worker(0, "%s-worker", crtc->name); + if (IS_ERR(crtc->worker)) { + drm_mode_object_unregister(dev, &crtc->base); + ret = PTR_ERR(crtc->worker); + crtc->worker = NULL; + return ret; + } } return 0; @@ -366,6 +374,9 @@ void drm_crtc_cleanup(struct drm_crtc *crtc) kfree(crtc->name); + if (crtc->worker) + kthread_destroy_worker(crtc->worker); + memset(crtc, 0, sizeof(*crtc)); } EXPORT_SYMBOL(drm_crtc_cleanup); diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h index 59b51a09cae6..8964a3732bca 100644 --- a/include/drm/drm_crtc.h +++ b/include/drm/drm_crtc.h @@ -30,6 +30,7 @@ #include <linux/types.h> #include <linux/fb.h> #include <linux/hdmi.h> +#include <linux/kthread.h> #include <linux/media-bus-format.h> #include <uapi/drm/drm_mode.h> #include <uapi/drm/drm_fourcc.h> @@ -1172,6 +1173,13 @@ struct drm_crtc { * Initialized via drm_self_refresh_helper_init(). */ struct drm_self_refresh_data *self_refresh_data; + + /** + * worker: + * + * Per-CRTC worker for nonblock atomic commits. + */ + struct kthread_worker *worker; }; /** -- 2.26.2 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2020-09-19 19:36 UTC|newest] Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-09-19 19:37 [PATCH 0/3] drm: commit_work scheduling Rob Clark 2020-09-19 19:37 ` Rob Clark 2020-09-19 19:37 ` Rob Clark [this message] 2020-09-19 19:37 ` [PATCH 1/3] drm/crtc: Introduce per-crtc kworker Rob Clark 2020-09-21 9:20 ` Jani Nikula 2020-09-21 9:20 ` Jani Nikula 2020-09-19 19:37 ` [PATCH 2/3] drm/atomic: Use kthread worker for nonblocking commits Rob Clark 2020-09-19 19:37 ` Rob Clark 2020-09-20 1:58 ` Hillf Danton 2020-09-21 9:23 ` Daniel Vetter 2020-09-21 9:23 ` Daniel Vetter 2020-09-21 14:55 ` Rob Clark 2020-09-21 14:55 ` Rob Clark 2020-09-22 13:18 ` Daniel Vetter 2020-09-22 13:18 ` Daniel Vetter 2020-09-19 19:37 ` [PATCH 3/3] drm: Add a client-cap to set scheduling mode Rob Clark 2020-09-19 19:37 ` Rob Clark 2020-09-20 2:17 ` Hillf Danton 2020-09-21 9:21 ` [PATCH 0/3] drm: commit_work scheduling Daniel Vetter 2020-09-21 9:21 ` Daniel Vetter 2020-09-21 10:49 ` peterz 2020-09-21 10:49 ` peterz 2020-09-21 14:28 ` Tejun Heo 2020-09-21 14:28 ` Tejun Heo 2020-09-21 15:16 ` Rob Clark 2020-09-21 15:16 ` Rob Clark 2020-09-21 15:20 ` Rob Clark 2020-09-21 15:20 ` Rob Clark 2020-09-21 16:19 ` Rob Clark 2020-09-21 16:19 ` Rob Clark 2020-09-22 6:58 ` Daniel Vetter 2020-09-22 6:58 ` Daniel Vetter 2020-09-22 14:48 ` Rob Clark 2020-09-22 14:48 ` Rob Clark 2020-09-23 15:25 ` Daniel Vetter 2020-09-23 15:25 ` Daniel Vetter 2020-09-24 2:33 ` Rob Clark 2020-09-24 2:33 ` Rob Clark 2020-09-24 8:49 ` Daniel Vetter 2020-09-24 8:49 ` Daniel Vetter 2020-09-24 15:24 ` Rob Clark 2020-09-24 15:24 ` Rob Clark 2020-09-24 16:15 ` Qais Yousef 2020-09-24 16:15 ` Qais Yousef 2020-09-25 8:23 ` Daniel Vetter 2020-09-25 8:23 ` Daniel Vetter 2020-09-21 16:10 ` Qais Yousef 2020-09-21 16:10 ` Qais Yousef 2020-09-21 16:23 ` Rob Clark 2020-09-21 16:23 ` Rob Clark
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200919193727.2093945-2-robdclark@gmail.com \ --to=robdclark@gmail.com \ --cc=airlied@linux.ie \ --cc=daniel@ffwll.ch \ --cc=dri-devel@lists.freedesktop.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=maarten.lankhorst@linux.intel.com \ --cc=mripard@kernel.org \ --cc=peterz@infradead.org \ --cc=robdclark@chromium.org \ --cc=timmurray@google.com \ --cc=tj@kernel.org \ --cc=tzimmermann@suse.de \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.