public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Danilo Krummrich <dakr@kernel.org>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
	Karol Herbst <kherbst@redhat.com>, Lyude Paul <lyude@redhat.com>,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	nouveau@lists.freedesktop.org
Subject: Re: [PATCH v2 0/2] drm/nouveau: remove drm_encoder_slave interface
Date: Mon, 16 Dec 2024 13:41:56 +0100	[thread overview]
Message-ID: <Z2AgFHV2BaaZYGTx@cassiopeiae> (raw)
In-Reply-To: <20241216121651.GP32204@pendragon.ideasonboard.com>

On Mon, Dec 16, 2024 at 02:16:51PM +0200, Laurent Pinchart wrote:
> On Mon, Dec 16, 2024 at 02:11:41PM +0200, Dmitry Baryshkov wrote:
> > On Mon, Dec 16, 2024 at 12:45:15PM +0100, Danilo Krummrich wrote:
> > > On Sun, Dec 15, 2024 at 12:19:22PM +0200, Dmitry Baryshkov wrote:
> > > > The nouveau driver is the only user of the drm_encoder_slave interface.
> > > > Demote it from KMS helpers module to the nouveau driver itself, moving
> > > > corresponding I2C encoders to be handled by nouveau driver too.
> > > 
> > > I understand nouveau is the only driver using this interface (and the
> > > corresponding i2c encoders).
> > > 
> > > However, I'm not quite seeing the advantage of folding the interface (including
> > > the two i2c drivers) into nouveau. I don't think this legacy interface does harm
> > > the subsystem in any way / does prevent the subsystem from moving forward.
> > > 
> > > Can't we just keep it as it is?
> > 
> > Well, drm_encoder_slave is a part of the DRM KMS helpers module, so it
> > take (a little bit) of space on every system. The nouveau situation
> > isn't unique, other drivers (i915, ast) also incorporate the code for
> > I2C backends. For the further discussion see the thread starting from
> > Laurent's email ([1]).
> > 
> > [1] https://lore.kernel.org/all/20241117205426.GE12409@pendragon.ideasonboard.com/

The drm_encoder_slave code it's rather small, but I guess this can be used as
argument for both, keeping it where it is and moving it.

If you want to move it to nouveau, I'm not going to object. But please fold the
helper code, such that we aren't left with unused functions and unnecessary
function pointer indirections through struct drm_encoder_slave_funcs.

> 
> It's also a question of whether maintenance of this code based used by
> the nouveau driver only should be the responsibility of the drm-misc
> community or the nouveau driver maintainers.

Good question. It's common infrastructure; do we expect / require the last user
of such infrastructure to take ownership?

> 
> > > > Ideally those two drivers should be converted to the drm_bridge
> > > > interface, but it's unclear if it's worth spending time on that.
> > > 
> > > Probably not.
> > > 
> > > > 
> > > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > > > ---
> > > > Changes in v2:
> > > > - Renamed symbols in defconfig (Laurent)
> > > > - Added missing Kbuild file (Laurent, LKP)
> > > > - Renamed guarding defines in include files.
> > > > - Dropped mentions of two removed functions.
> > > > - Link to v1: https://lore.kernel.org/r/20241214-nouveau-encoder-slave-v1-0-beda767472e3@linaro.org
> > > > 
> > > > ---
> > > > Dmitry Baryshkov (2):
> > > >       drm/nouveau: incorporate I2C TV encoder drivers
> > > >       drm/nouveau: vendor in drm_encoder_slave API
> > > > 
> > > >  arch/arm/configs/multi_v7_defconfig                |   4 +-
> > > >  arch/parisc/configs/generic-32bit_defconfig        |   4 +-
> > > >  arch/parisc/configs/generic-64bit_defconfig        |   4 +-
> > > >  drivers/gpu/drm/Makefile                           |   1 -
> > > >  drivers/gpu/drm/i2c/Kconfig                        |  18 ----
> > > >  drivers/gpu/drm/i2c/Makefile                       |   6 --
> > > >  drivers/gpu/drm/nouveau/Kconfig                    |  20 ++++
> > > >  drivers/gpu/drm/nouveau/dispnv04/Kbuild            |   3 +
> > > >  drivers/gpu/drm/nouveau/dispnv04/dfp.c             |  12 +--
> > > >  drivers/gpu/drm/nouveau/dispnv04/i2c/Kbuild        |   5 +
> > > >  .../drm/{ => nouveau/dispnv04}/i2c/ch7006_drv.c    |  30 +++---
> > > >  .../drm/{ => nouveau/dispnv04}/i2c/ch7006_mode.c   |   8 +-
> > > >  .../drm/{ => nouveau/dispnv04}/i2c/ch7006_priv.h   |  11 ++-
> > > >  .../drm/{ => nouveau/dispnv04}/i2c/sil164_drv.c    |  33 ++++---
> > > >  .../dispnv04/nouveau_i2c_encoder.c}                |  85 +++++-----------
> > > >  drivers/gpu/drm/nouveau/dispnv04/tvnv04.c          |  20 ++--
> > > >  drivers/gpu/drm/nouveau/dispnv04/tvnv17.c          |   4 +-
> > > >  .../gpu/drm/nouveau/include}/i2c/ch7006.h          |   4 +-
> > > >  .../gpu/drm/nouveau/include/i2c/encoder_i2c.h      | 109 ++++++++-------------
> > > >  .../gpu/drm/nouveau/include}/i2c/sil164.h          |   4 +-
> > > >  drivers/gpu/drm/nouveau/nouveau_connector.c        |   6 +-
> > > >  drivers/gpu/drm/nouveau/nouveau_encoder.h          |  13 +--
> > > >  22 files changed, 172 insertions(+), 232 deletions(-)
> > > > ---
> > > > base-commit: 4176cf5c5651c33769de83bb61b0287f4ec7719f
> > > > change-id: 20241214-nouveau-encoder-slave-a6dd422fa4a9
> 
> -- 
> Regards,
> 
> Laurent Pinchart

  reply	other threads:[~2024-12-16 12:42 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-15 10:19 [PATCH v2 0/2] drm/nouveau: remove drm_encoder_slave interface Dmitry Baryshkov
2024-12-15 10:19 ` [PATCH v2 1/2] drm/nouveau: incorporate I2C TV encoder drivers Dmitry Baryshkov
2024-12-16 13:43   ` Danilo Krummrich
2024-12-15 10:19 ` [PATCH v2 2/2] drm/nouveau: vendor in drm_encoder_slave API Dmitry Baryshkov
2024-12-16 13:50   ` Danilo Krummrich
2024-12-16 11:45 ` [PATCH v2 0/2] drm/nouveau: remove drm_encoder_slave interface Danilo Krummrich
2024-12-16 12:11   ` Dmitry Baryshkov
2024-12-16 12:16     ` Laurent Pinchart
2024-12-16 12:41       ` Danilo Krummrich [this message]
2024-12-16 12:58         ` Dmitry Baryshkov
2024-12-16 13:30           ` Danilo Krummrich
2024-12-16 14:15             ` Dmitry Baryshkov

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=Z2AgFHV2BaaZYGTx@cassiopeiae \
    --to=dakr@kernel.org \
    --cc=airlied@gmail.com \
    --cc=dmitry.baryshkov@linaro.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=kherbst@redhat.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lyude@redhat.com \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mripard@kernel.org \
    --cc=nouveau@lists.freedesktop.org \
    --cc=simona@ffwll.ch \
    --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