All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
To: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
Cc: "Kandpal, Suraj" <suraj.kandpal@intel.com>,
	"carsten.haitzler@arm.com" <carsten.haitzler@arm.com>,
	"Nikula, Jani" <jani.nikula@intel.com>,
	"intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>,
	Abhinav Kumar <quic_abhinavk@quicinc.com>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	"Murthy, Arun R" <arun.r.murthy@intel.com>
Subject: Re: [PATCH 5/6] drm/rcar_du: changes to rcar-du driver resulting from drm_writeback_connector structure changes
Date: Mon, 28 Feb 2022 11:07:41 +0300	[thread overview]
Message-ID: <CAA8EJpqkW2FO_G-NTodn9jrAoDtjB+GfvLoZV97Ci9WNsJhAKA@mail.gmail.com> (raw)
In-Reply-To: <YhyBEnI/P5KezATw@pendragon.ideasonboard.com>

On Mon, 28 Feb 2022 at 11:00, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
>
> Hi Suraj,
>
> On Sat, Feb 26, 2022 at 05:10:06AM +0000, Kandpal, Suraj wrote:
> > Hi Abhinav,
> >
> > > Based on the discussion in this thread [1] , it seems like having drm_encoder
> > > as a pointer seems to have merits for both of us and also in agreement with
> > > the folks on this thread and has a better chance of an ack.
> > >
> > > However drm_connector is not.
> > >
> > > I had a brief look at your implementation. Any reason you need to go
> > > through intel_connector here and not drm_writeback_connector directly?
> > >
> > > The reason I ask is that I see you are not using prepare_writeback_job hook.
> > > If you use that, you can use the drm_writeback_connector passed on from
> > > there instead of looping through your list like you are doing in
> > > intel_find_writeback_connector.
> > >
> > > Also, none of the other entries of struct intel_connector are being used for
> > > the writeback implementation. So does the drm_writeback_connector in
> > > your implementation need to be an intel_connector when its anyway not
> > > using other fields? Why cant it be just stored as a drm_writeback_connector
> > > itself in your struct intel_wd.
> >
> > The reason we can't do that is i915 driver always assumes that all connectors
> > present in device list is an intel connector and since drm_writeback_connector
> > even though a faux connector in it's initialization calls drm_connector_init()
> > and gets added to the drm device list and hence the i915 driver also expects
> > a corresponding intel connector to go with it. In case I do try to make writeback
> > connector standalone a lot of checks, a lot will have to be added all around the
> > driver as there could be a chance that one of the drm_connector in the drm device
> > list may not be an intel_connector.
> > Yes right now not all fields of intel_connector are being used but we will be working
> > on filling them as we add more functionality to writeback for example introducing
> > content protection.
> > So even if I do float the patch series with just drm_encoder as pointer it won't help
> > us with our implementation if drm_connector isn't a pointer too.
>
> This is a direct consequence of the decision to use connectors for
> writeback in the userspace API. This disrupts any code that assumes that
> a connector is a connector. The problem isn't limited to kernelspace,
> userspace has the same exact problem, which resulted in a hack to avoid
> breaking everything. Userspace software that needs to deal with
> writeback needs to set the DRM_CLIENT_CAP_WRITEBACK_CONNECTORS
> capability to get the writeback connectors exposed by the kernel, but
> more than that, a large refactoring is then often needed to chase all
> code paths that assume a connector is a connector.
>
> I'm afraid the same applies to the kernel. Drivers that don't use
> writeback are largely unaffected. Drievrs that want to use writeback
> need to be refactored to properly handle the fact that writeback
> connectors are special. i915 will need to go that way.

Laurent, you have frown upon the idea of separating the connector from
the drm_writeback_connector struct. What about the encoder?
The msm code in question can be found at the patchwork:
https://patchwork.freedesktop.org/series/99724/. This series depends
on Intel's patch, but should give you the overall feeling of the code
being shared between to-the-display and writeback pipelines.

-- 
With best wishes
Dmitry

WARNING: multiple messages have this Message-ID (diff)
From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
To: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
Cc: "carsten.haitzler@arm.com" <carsten.haitzler@arm.com>,
	"Nikula, Jani" <jani.nikula@intel.com>,
	"intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>,
	Abhinav Kumar <quic_abhinavk@quicinc.com>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>
Subject: Re: [Intel-gfx] [PATCH 5/6] drm/rcar_du: changes to rcar-du driver resulting from drm_writeback_connector structure changes
Date: Mon, 28 Feb 2022 11:07:41 +0300	[thread overview]
Message-ID: <CAA8EJpqkW2FO_G-NTodn9jrAoDtjB+GfvLoZV97Ci9WNsJhAKA@mail.gmail.com> (raw)
In-Reply-To: <YhyBEnI/P5KezATw@pendragon.ideasonboard.com>

On Mon, 28 Feb 2022 at 11:00, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
>
> Hi Suraj,
>
> On Sat, Feb 26, 2022 at 05:10:06AM +0000, Kandpal, Suraj wrote:
> > Hi Abhinav,
> >
> > > Based on the discussion in this thread [1] , it seems like having drm_encoder
> > > as a pointer seems to have merits for both of us and also in agreement with
> > > the folks on this thread and has a better chance of an ack.
> > >
> > > However drm_connector is not.
> > >
> > > I had a brief look at your implementation. Any reason you need to go
> > > through intel_connector here and not drm_writeback_connector directly?
> > >
> > > The reason I ask is that I see you are not using prepare_writeback_job hook.
> > > If you use that, you can use the drm_writeback_connector passed on from
> > > there instead of looping through your list like you are doing in
> > > intel_find_writeback_connector.
> > >
> > > Also, none of the other entries of struct intel_connector are being used for
> > > the writeback implementation. So does the drm_writeback_connector in
> > > your implementation need to be an intel_connector when its anyway not
> > > using other fields? Why cant it be just stored as a drm_writeback_connector
> > > itself in your struct intel_wd.
> >
> > The reason we can't do that is i915 driver always assumes that all connectors
> > present in device list is an intel connector and since drm_writeback_connector
> > even though a faux connector in it's initialization calls drm_connector_init()
> > and gets added to the drm device list and hence the i915 driver also expects
> > a corresponding intel connector to go with it. In case I do try to make writeback
> > connector standalone a lot of checks, a lot will have to be added all around the
> > driver as there could be a chance that one of the drm_connector in the drm device
> > list may not be an intel_connector.
> > Yes right now not all fields of intel_connector are being used but we will be working
> > on filling them as we add more functionality to writeback for example introducing
> > content protection.
> > So even if I do float the patch series with just drm_encoder as pointer it won't help
> > us with our implementation if drm_connector isn't a pointer too.
>
> This is a direct consequence of the decision to use connectors for
> writeback in the userspace API. This disrupts any code that assumes that
> a connector is a connector. The problem isn't limited to kernelspace,
> userspace has the same exact problem, which resulted in a hack to avoid
> breaking everything. Userspace software that needs to deal with
> writeback needs to set the DRM_CLIENT_CAP_WRITEBACK_CONNECTORS
> capability to get the writeback connectors exposed by the kernel, but
> more than that, a large refactoring is then often needed to chase all
> code paths that assume a connector is a connector.
>
> I'm afraid the same applies to the kernel. Drivers that don't use
> writeback are largely unaffected. Drievrs that want to use writeback
> need to be refactored to properly handle the fact that writeback
> connectors are special. i915 will need to go that way.

Laurent, you have frown upon the idea of separating the connector from
the drm_writeback_connector struct. What about the encoder?
The msm code in question can be found at the patchwork:
https://patchwork.freedesktop.org/series/99724/. This series depends
on Intel's patch, but should give you the overall feeling of the code
being shared between to-the-display and writeback pipelines.

-- 
With best wishes
Dmitry

  reply	other threads:[~2022-02-28  8:07 UTC|newest]

Thread overview: 98+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-02  8:54 [PATCH 0/6] drm writeback connector changes Kandpal Suraj
2022-02-02  8:54 ` [Intel-gfx] " Kandpal Suraj
2022-02-02  8:54 ` [PATCH 1/6] drm: add writeback pointers to drm_connector Kandpal Suraj
2022-02-02  8:54   ` [Intel-gfx] " Kandpal Suraj
2022-02-02 10:28   ` Dmitry Baryshkov
2022-02-02 10:28     ` [Intel-gfx] " Dmitry Baryshkov
2022-02-03  8:46     ` Kandpal, Suraj
2022-02-03  8:46       ` [Intel-gfx] " Kandpal, Suraj
2022-02-02 11:17   ` kernel test robot
2022-02-02 11:17     ` kernel test robot
2022-02-02 20:07   ` kernel test robot
2022-02-02 20:07     ` kernel test robot
2022-02-02 20:07     ` kernel test robot
2022-02-02  8:54 ` [PATCH 2/6] drm/arm/komeda : change driver to use drm_writeback_connector.base pointer Kandpal Suraj
2022-02-02  8:54   ` [Intel-gfx] " Kandpal Suraj
2022-02-02  8:54 ` [PATCH 3/6] drm/vkms: change vkms " Kandpal Suraj
2022-02-02  8:54   ` [Intel-gfx] " Kandpal Suraj
2022-02-02  8:54 ` [PATCH 4/6] drm/vc4: vc4 driver changes to accommodate changes done in drm_writeback_connector structure Kandpal Suraj
2022-02-02  8:54   ` [Intel-gfx] " Kandpal Suraj
2022-02-02  8:54 ` [PATCH 5/6] drm/rcar_du: changes to rcar-du driver resulting from drm_writeback_connector structure changes Kandpal Suraj
2022-02-02  8:54   ` [Intel-gfx] " Kandpal Suraj
2022-02-02 12:42   ` Laurent Pinchart
2022-02-02 12:42     ` [Intel-gfx] " Laurent Pinchart
2022-02-02 13:15     ` Jani Nikula
2022-02-02 13:15       ` [Intel-gfx] " Jani Nikula
2022-02-02 13:26       ` Laurent Pinchart
2022-02-02 13:26         ` [Intel-gfx] " Laurent Pinchart
2022-02-02 15:38         ` Jani Nikula
2022-02-02 15:38           ` [Intel-gfx] " Jani Nikula
2022-02-26 18:27           ` Rob Clark
2022-02-26 18:27             ` [Intel-gfx] " Rob Clark
2022-02-28  8:03             ` Laurent Pinchart
2022-02-28  8:03               ` [Intel-gfx] " Laurent Pinchart
2022-02-28 12:09               ` Jani Nikula
2022-02-28 12:09                 ` [Intel-gfx] " Jani Nikula
2022-02-28 12:28                 ` Laurent Pinchart
2022-02-28 12:28                   ` [Intel-gfx] " Laurent Pinchart
2022-02-28 13:42                   ` Laurent Pinchart
2022-02-28 13:42                     ` [Intel-gfx] " Laurent Pinchart
2022-03-02 18:28                     ` Abhinav Kumar
2022-03-02 18:28                       ` [Intel-gfx] " Abhinav Kumar
2022-03-02 18:31                       ` Laurent Pinchart
2022-03-02 18:31                         ` [Intel-gfx] " Laurent Pinchart
2022-03-03 17:32                         ` Abhinav Kumar
2022-03-03 17:32                           ` [Intel-gfx] " Abhinav Kumar
2022-03-04  9:56                           ` Kandpal, Suraj
2022-03-04  9:56                             ` [Intel-gfx] " Kandpal, Suraj
2022-03-04 10:39                             ` Dmitry Baryshkov
2022-03-04 10:39                               ` [Intel-gfx] " Dmitry Baryshkov
2022-03-04 10:47                               ` Kandpal, Suraj
2022-03-04 10:47                                 ` [Intel-gfx] " Kandpal, Suraj
2022-03-04 11:25                                 ` Dmitry Baryshkov
2022-03-04 11:25                                   ` [Intel-gfx] " Dmitry Baryshkov
2022-03-04 14:16                                   ` Kandpal, Suraj
2022-03-04 14:16                                     ` [Intel-gfx] " Kandpal, Suraj
2022-03-04 20:47                                     ` Abhinav Kumar
2022-03-04 20:47                                       ` [Intel-gfx] " Abhinav Kumar
2022-03-08 14:30                                       ` Kandpal, Suraj
2022-03-08 14:30                                         ` [Intel-gfx] " Kandpal, Suraj
2022-03-08 19:44                                         ` Abhinav Kumar
2022-03-08 19:44                                           ` [Intel-gfx] " Abhinav Kumar
2022-02-06 23:32         ` Dmitry Baryshkov
2022-02-06 23:32           ` [Intel-gfx] " Dmitry Baryshkov
2022-02-07  7:20           ` Abhinav Kumar
2022-02-07  7:20             ` [Intel-gfx] " Abhinav Kumar
2022-02-10  1:40             ` Abhinav Kumar
2022-02-10  1:40               ` [Intel-gfx] " Abhinav Kumar
2022-02-10  4:58               ` Laurent Pinchart
2022-02-10  4:58                 ` [Intel-gfx] " Laurent Pinchart
2022-02-22  3:32                 ` Dmitry Baryshkov
2022-02-22  3:32                   ` [Intel-gfx] " Dmitry Baryshkov
2022-02-22  7:34                   ` Laurent Pinchart
2022-02-22  7:34                     ` [Intel-gfx] " Laurent Pinchart
2022-02-24  0:27                     ` Abhinav Kumar
2022-02-24  0:27                       ` [Intel-gfx] " Abhinav Kumar
2022-02-02 13:34       ` Ville Syrjälä
2022-02-02 13:34         ` [Intel-gfx] " Ville Syrjälä
2022-02-02 13:40       ` Dmitry Baryshkov
2022-02-02 13:40         ` [Intel-gfx] " Dmitry Baryshkov
2022-02-02 15:57         ` Jani Nikula
2022-02-02 15:57           ` [Intel-gfx] " Jani Nikula
2022-02-23  6:17           ` Kandpal, Suraj
2022-02-23  6:17             ` [Intel-gfx] " Kandpal, Suraj
2022-02-25 23:26             ` Abhinav Kumar
2022-02-25 23:26               ` [Intel-gfx] " Abhinav Kumar
2022-02-26  5:10               ` Kandpal, Suraj
2022-02-26  5:10                 ` [Intel-gfx] " Kandpal, Suraj
2022-02-28  8:00                 ` Laurent Pinchart
2022-02-28  8:00                   ` [Intel-gfx] " Laurent Pinchart
2022-02-28  8:07                   ` Dmitry Baryshkov [this message]
2022-02-28  8:07                     ` Dmitry Baryshkov
2022-02-28  8:28                     ` Laurent Pinchart
2022-02-28  8:28                       ` [Intel-gfx] " Laurent Pinchart
2022-02-02  8:54 ` [PATCH 6/6] drm/arm: changes to malidp " Kandpal Suraj
2022-02-02  8:54   ` [Intel-gfx] " Kandpal Suraj
2022-02-02 10:01 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm writeback connector changes Patchwork
2022-02-02 10:27 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-02-02 12:22 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork

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=CAA8EJpqkW2FO_G-NTodn9jrAoDtjB+GfvLoZV97Ci9WNsJhAKA@mail.gmail.com \
    --to=dmitry.baryshkov@linaro.org \
    --cc=Laurent.pinchart@ideasonboard.com \
    --cc=arun.r.murthy@intel.com \
    --cc=carsten.haitzler@arm.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jani.nikula@intel.com \
    --cc=quic_abhinavk@quicinc.com \
    --cc=suraj.kandpal@intel.com \
    /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 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.