From: Maxime Ripard <mripard@kernel.org>
To: Louis Chauvet <louis.chauvet@bootlin.com>
Cc: "Rodrigo Siqueira" <rodrigosiqueiramelo@gmail.com>,
"Melissa Wen" <melissa.srw@gmail.com>,
"Maíra Canal" <mairacanal@riseup.net>,
"Haneen Mohammed" <hamohammed.sa@gmail.com>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Simona Vetter" <simona.vetter@ffwll.ch>,
dri-devel@lists.freedesktop.org, arthurgrillo@riseup.net,
linux-kernel@vger.kernel.org, jeremie.dautheribes@bootlin.com,
miquel.raynal@bootlin.com, thomas.petazzoni@bootlin.com,
seanpaul@google.com, nicolejadeyee@google.com,
20241010-vkms-remove-index-v2-1-6b8d6cfd5a15@bootlin.com
Subject: Re: [PATCH v4 4/5] drm: writeback: Introduce drm managed helpers
Date: Thu, 24 Oct 2024 10:19:56 +0200 [thread overview]
Message-ID: <20241024-slim-onyx-emu-3e4869@houat> (raw)
In-Reply-To: <20241010-google-vkms-managed-v4-4-ed04a62ad2e3@bootlin.com>
[-- Attachment #1: Type: text/plain, Size: 2849 bytes --]
Hi,
On Thu, Oct 10, 2024 at 07:39:06PM +0200, Louis Chauvet wrote:
> Currently drm_writeback_connector are created by
> drm_writeback_connector_init or drm_writeback_connector_init_with_encoder.
> Both of the function uses drm_connector_init and drm_encoder_init, but
> there is no way to properly clean those structure from outside. By using
> drm managed variants, we can ensure that the writeback connector is
> properly cleaned.
>
> This patch introduce drmm_writeback_connector_init, an helper to initialize
> a writeback connector using drm managed helpers. This function allows the
> caller to use its own encoder.
>
> Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
> ---
> drivers/gpu/drm/drm_connector.c | 4 +
> drivers/gpu/drm/drm_writeback.c | 224 ++++++++++++++++++++++++++++++++++------
> include/drm/drm_writeback.h | 10 ++
> 3 files changed, 208 insertions(+), 30 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> index fc35f47e2849..fe4c1967860a 100644
> --- a/drivers/gpu/drm/drm_connector.c
> +++ b/drivers/gpu/drm/drm_connector.c
> @@ -613,6 +613,7 @@ static void drm_mode_remove(struct drm_connector *connector,
> drm_mode_destroy(connector->dev, mode);
> }
>
> +void drm_writeback_connector_cleanup(struct drm_device *dev, void *data);
> /**
> * drm_connector_cleanup - cleans up an initialised connector
> * @connector: connector to cleanup
> @@ -631,6 +632,9 @@ void drm_connector_cleanup(struct drm_connector *connector)
> DRM_CONNECTOR_REGISTERED))
> drm_connector_unregister(connector);
>
> + if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
> + drm_writeback_connector_cleanup(dev, connector);
> +
So I think it should live in its own patch.
You're doing multiple things here. There's a) the bug that writeback
connectors aren't built properly, b) the discussion about how it's best to
clean it up, and c) how to make every driver clean up properly.
AFAIU, you're trying to address a and c here.
I think putting that call in drm_connector_cleanup is backward compared
to the pattern we're using in the rest of DRM.
drm_connector_cleanup should just clean what was allocated by
drm_connector_init, and that's it.
So we should create a drm_writeback_connector_cleanup function to
address a). That should be your first patch.
Now, it would indeed be best if drm_writeback_connector_cleanup didn't
need to be called at all. That's the second part of your patch, and
should be in its own patch as well. It would address b).
And finally, addressing c will require some driver changes, to either a
call to drmm_writeback_connector_init_* or by using
drm_writeback_connector_cleanup, but we'll have to make that change in
every driver.
Maxime
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 273 bytes --]
next prev parent reply other threads:[~2024-10-24 8:20 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-10 17:39 [PATCH v4 0/5] drm/vkms: Switch all vkms object to DRM managed objects Louis Chauvet
2024-10-10 17:39 ` [PATCH v4 1/5] drm/vkms: Switch to managed for connector Louis Chauvet
2024-10-26 15:29 ` Maíra Canal
2024-10-28 9:50 ` Louis Chauvet
2024-10-10 17:39 ` [PATCH v4 2/5] drm/vkms: Switch to managed for encoder Louis Chauvet
2024-10-10 17:39 ` [PATCH v4 3/5] drm/vkms: Switch to managed for crtc Louis Chauvet
2024-10-10 17:39 ` [PATCH v4 4/5] drm: writeback: Introduce drm managed helpers Louis Chauvet
2024-10-24 8:19 ` Maxime Ripard [this message]
2024-10-10 17:39 ` [PATCH v4 5/5] drm/vkms: Switch to managed for writeback connector Louis Chauvet
2024-10-26 15:33 ` [PATCH v4 0/5] drm/vkms: Switch all vkms object to DRM managed objects Maíra Canal
2024-10-28 9:50 ` Louis Chauvet
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=20241024-slim-onyx-emu-3e4869@houat \
--to=mripard@kernel.org \
--cc=20241010-vkms-remove-index-v2-1-6b8d6cfd5a15@bootlin.com \
--cc=airlied@gmail.com \
--cc=arthurgrillo@riseup.net \
--cc=dri-devel@lists.freedesktop.org \
--cc=hamohammed.sa@gmail.com \
--cc=jeremie.dautheribes@bootlin.com \
--cc=linux-kernel@vger.kernel.org \
--cc=louis.chauvet@bootlin.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mairacanal@riseup.net \
--cc=melissa.srw@gmail.com \
--cc=miquel.raynal@bootlin.com \
--cc=nicolejadeyee@google.com \
--cc=rodrigosiqueiramelo@gmail.com \
--cc=seanpaul@google.com \
--cc=simona.vetter@ffwll.ch \
--cc=simona@ffwll.ch \
--cc=thomas.petazzoni@bootlin.com \
--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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®