From: Lyude Paul <lyude@redhat.com>
To: "Lin, Wayne" <Wayne.Lin@amd.com>,
"dri-devel@lists.freedesktop.org"
<dri-devel@lists.freedesktop.org>,
"nouveau@lists.freedesktop.org" <nouveau@lists.freedesktop.org>,
"amd-gfx@lists.freedesktop.org" <amd-gfx@lists.freedesktop.org>
Cc: "Chen, Ian" <Ian.Chen@amd.com>,
"Karol Herbst" <kherbst@redhat.com>,
"David Airlie" <airlied@linux.ie>,
"Daniel Vetter" <daniel.vetter@ffwll.ch>,
"José Roberto de Souza" <jose.souza@intel.com>,
"open list" <linux-kernel@vger.kernel.org>,
"Lei, Jun" <Jun.Lei@amd.com>,
"Lakha, Bhawanpreet" <Bhawanpreet.Lakha@amd.com>,
"Siqueira, Rodrigo" <Rodrigo.Siqueira@amd.com>,
"Javier Martinez Canillas" <javierm@redhat.com>,
"Li, Sun peng (Leo)" <Sunpeng.Li@amd.com>,
"Zuo, Jerry" <Jerry.Zuo@amd.com>,
"Shih, Jude" <Jude.Shih@amd.com>,
"Ben Skeggs" <bskeggs@redhat.com>,
"Andi Shyti" <andi.shyti@linux.intel.com>,
"Strauss, Michael" <Michael.Strauss@amd.com>,
"Juston Li" <juston.li@intel.com>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"Jani Nikula" <jani.nikula@intel.com>,
"Anshuman Gupta" <anshuman.gupta@intel.com>,
"open list:INTEL DRM DRIVERS" <intel-gfx@lists.freedesktop.org>,
"Luo Jiaxing" <luojiaxing@huawei.com>,
"Liu, Wenjing" <Wenjing.Liu@amd.com>,
"Wu, Hersen" <hersenxs.wu@amd.com>,
"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
"Ma, Leo" <Hanghong.Ma@amd.com>,
"Mikita Lipski" <mikita.lipski@amd.com>,
"Sean Paul" <sean@poorly.run>, "He Ying" <heying24@huawei.com>,
"Tvrtko Ursulin" <tvrtko.ursulin@linux.intel.com>,
"Pan, Xinhui" <Xinhui.Pan@amd.com>,
"Li, Roman" <Roman.Li@amd.com>,
"Koenig, Christian" <Christian.Koenig@amd.com>,
"Ashutosh Dixit" <ashutosh.dixit@intel.com>,
"Claudio Suarez" <cssk@net-c.es>,
"Deucher, Alexander" <Alexander.Deucher@amd.com>,
"Sean Paul" <seanpaul@chromium.org>,
"Colin Ian King" <colin.king@intel.com>,
"Kazlauskas, Nicholas" <Nicholas.Kazlauskas@amd.com>,
"Fernando Ramos" <greenfoo@u92.eu>
Subject: Re: [RESEND RFC 18/18] drm/display/dp_mst: Move all payload info into the atomic state
Date: Mon, 08 Aug 2022 18:53:13 -0400 [thread overview]
Message-ID: <4ea5f21ea66446ad7924bc883af30b136fa0ca22.camel@redhat.com> (raw)
In-Reply-To: <CO6PR12MB54896ECA603462858C9AFBA2FC639@CO6PR12MB5489.namprd12.prod.outlook.com>
On Mon, 2022-08-08 at 10:02 +0000, Lin, Wayne wrote:
> [Public]
>
>
>
> > -----Original Message-----
> > From: Lyude Paul <lyude@redhat.com>
> > Sent: Thursday, August 4, 2022 4:28 AM
> > To: Lin, Wayne <Wayne.Lin@amd.com>; dri-devel@lists.freedesktop.org;
> > nouveau@lists.freedesktop.org; amd-gfx@lists.freedesktop.org
> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>; Zuo, Jerry
> > <Jerry.Zuo@amd.com>; Jani Nikula <jani.nikula@intel.com>; Imre Deak
> > <imre.deak@intel.com>; Daniel Vetter <daniel.vetter@ffwll.ch>; Sean Paul
> > <sean@poorly.run>; Wentland, Harry <Harry.Wentland@amd.com>; Li, Sun
> > peng (Leo) <Sunpeng.Li@amd.com>; Siqueira, Rodrigo
> > <Rodrigo.Siqueira@amd.com>; Deucher, Alexander
> > <Alexander.Deucher@amd.com>; Koenig, Christian
> > <Christian.Koenig@amd.com>; Pan, Xinhui <Xinhui.Pan@amd.com>; David
> > Airlie <airlied@linux.ie>; Daniel Vetter <daniel@ffwll.ch>; Jani Nikula
> > <jani.nikula@linux.intel.com>; Joonas Lahtinen
> > <joonas.lahtinen@linux.intel.com>; Rodrigo Vivi <rodrigo.vivi@intel.com>;
> > Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>; Ben Skeggs
> > <bskeggs@redhat.com>; Karol Herbst <kherbst@redhat.com>; Kazlauskas,
> > Nicholas <Nicholas.Kazlauskas@amd.com>; Li, Roman
> > <Roman.Li@amd.com>; Shih, Jude <Jude.Shih@amd.com>; Simon Ser
> > <contact@emersion.fr>; Lakha, Bhawanpreet
> > <Bhawanpreet.Lakha@amd.com>; Mikita Lipski <mikita.lipski@amd.com>;
> > Claudio Suarez <cssk@net-c.es>; Chen, Ian <Ian.Chen@amd.com>; Colin Ian
> > King <colin.king@intel.com>; Wu, Hersen <hersenxs.wu@amd.com>; Liu,
> > Wenjing <Wenjing.Liu@amd.com>; Lei, Jun <Jun.Lei@amd.com>; Strauss,
> > Michael <Michael.Strauss@amd.com>; Ma, Leo <Hanghong.Ma@amd.com>;
> > Thomas Zimmermann <tzimmermann@suse.de>; José Roberto de Souza
> > <jose.souza@intel.com>; He Ying <heying24@huawei.com>; Anshuman
> > Gupta <anshuman.gupta@intel.com>; Andi Shyti
> > <andi.shyti@linux.intel.com>; Ashutosh Dixit <ashutosh.dixit@intel.com>;
> > Juston Li <juston.li@intel.com>; Sean Paul <seanpaul@chromium.org>;
> > Fernando Ramos <greenfoo@u92.eu>; Luo Jiaxing
> > <luojiaxing@huawei.com>; Javier Martinez Canillas <javierm@redhat.com>;
> > open list <linux-kernel@vger.kernel.org>; open list:INTEL DRM DRIVERS
> > <intel-gfx@lists.freedesktop.org>
> > Subject: Re: [RESEND RFC 18/18] drm/display/dp_mst: Move all payload info
> > into the atomic state
> >
> > On Tue, 2022-07-05 at 09:10 +0000, Lin, Wayne wrote:
> > > > +struct drm_dp_mst_port;
> > > > +
> > > > /* DP MST stream allocation (payload bandwidth number) */
> > > > struct dc_dp_mst_stream_allocation {
> > > > uint8_t vcp_id;
> > > > /* number of slots required for the DP stream in
> > > > * transport packet */
> > > > uint8_t slot_count;
> > > > + /* The MST port this is on, this is used to associate DC MST
> > > > + payloads
> > > > with their
> > > > + * respective DRM payloads allocations, and can be ignored on non-
> > > > Linux.
> > > > + */
> > >
> > > Is it necessary for adding this new member? Since this is for setting
> > > the DC HW and not relating to drm.
> >
> > I don't entirely know, honestly. The reasons I did it:
> >
> > * Mapping things from DRM to DC and from DC to DRM is really confusing for
> > outside contributors like myself, so it wasn't even really clear to me if
> > there was another way to reconstruct the DRM context from the spots
> > where
> > we call from DC up to DM (not a typo, see next point).
> > * These DC structs for MST are already layer mixing as far as I can tell,
> > just not in an immediately obvious way. While this struct itself is for DC,
> > there's multiple spots where we pass the DC payload structs down from
> > DM to
> > DC, then pass them back up from DC to DM and have to figure out how to
> > reconstruct the DRM context that we actually need to use the MST helpers
> > from that. So, that kind of further complicates the confusion of where
> > layers should be separated.
> > * As far as I'm aware with C there shouldn't be any issue with adding a
> > pointer to a struct whose contents are undefined. IMHO, this is also
> > preferable to just using void* because then at least you get some hint as
> > to the actual type of the data and avoid the possibility of casting it to
> > the wrong type. So tl;dr, on any platform even outside of Linux with a
> > reasonably compliant compiler this should still build just fine. It'll even
> > give you the added bonus of warning people if they try to access the
> > contents of this member in DC on non-Linux platforms. If void* is preferred
> > though I'm fine with switching it to that.
> >
> > --
> > Cheers, Lyude Paul (she/her) Software Engineer at Red Hat
>
> Hi Lyude,
>
> Thanks for your time!
> I was thinking that our DC just mainly takes care of HW related programming.
> Struct dc_dp_mst_stream_allocation is only used to construct a copy of the virtual
> channel payload ID and slots count of payload allocation table determined by
> dm/drm. ID and slots are only things required for programming HW registers.
> I think there shouldn't be any spots to try to construct the DRM context from
> this dc struct since there is no such concept in HW level. Our HW should only
> take care of local DP link and it doesn't have overall topology info.
Looking at the code I wrote again and realizing I slightly misspoke, looking
at the code again I think I probably can drop this. It's likely I just got
totally lost with the DC codebase and thought this was necessary when it
wasn't. Will drop in the respin
>
> Thanks!
>
> Regards,
> Wayne
--
Cheers,
Lyude Paul (she/her)
Software Engineer at Red Hat
next prev parent reply other threads:[~2022-08-08 22:53 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-07 19:29 [RESEND RFC 00/18] drm/display/dp_mst: Drop Radeon MST support, make MST atomic-only Lyude Paul
2022-06-07 19:29 ` [RESEND RFC 01/18] drm/amdgpu/dc/mst: Rename dp_mst_stream_allocation(_table) Lyude Paul
2022-06-07 19:29 ` [RESEND RFC 02/18] drm/amdgpu/dm/mst: Rename get_payload_table() Lyude Paul
2022-06-07 19:29 ` [RESEND RFC 03/18] drm/display/dp_mst: Rename drm_dp_mst_vcpi_allocation Lyude Paul
2022-06-07 19:29 ` [RESEND RFC 04/18] drm/display/dp_mst: Call them time slots, not VCPI slots Lyude Paul
2022-06-15 4:28 ` Lin, Wayne
2022-08-02 21:29 ` Lyude Paul
2022-06-07 19:29 ` [RESEND RFC 05/18] drm/display/dp_mst: Fix confusing docs for drm_dp_atomic_release_time_slots() Lyude Paul
2022-06-07 19:29 ` [RESEND RFC 06/18] drm/display/dp_mst: Add some missing kdocs for atomic MST structs Lyude Paul
2022-06-15 4:43 ` Lin, Wayne
2022-08-08 23:07 ` Lyude Paul
2022-06-07 19:29 ` [RESEND RFC 07/18] drm/display/dp_mst: Add helper for finding payloads in atomic MST state Lyude Paul
2022-06-29 13:22 ` Jani Nikula
2022-06-07 19:29 ` [RESEND RFC 08/18] drm/display/dp_mst: Add nonblocking helpers for DP MST Lyude Paul
2022-06-29 13:30 ` Jani Nikula
2022-06-07 19:29 ` [RESEND RFC 09/18] drm/display/dp_mst: Don't open code modeset checks for releasing time slots Lyude Paul
2022-06-07 19:29 ` [RESEND RFC 10/18] drm/display/dp_mst: Fix modeset tracking in drm_dp_atomic_release_vcpi_slots() Lyude Paul
2022-06-07 19:29 ` [RESEND RFC 11/18] drm/nouveau/kms: Cache DP encoders in nouveau_connector Lyude Paul
2022-06-07 19:29 ` [RESEND RFC 12/18] drm/nouveau/kms: Pull mst state in for all modesets Lyude Paul
2022-06-07 19:29 ` [RESEND RFC 13/18] drm/display/dp_mst: Add helpers for serializing SST <-> MST transitions Lyude Paul
2022-06-07 19:29 ` [RESEND RFC 14/18] drm/display/dp_mst: Drop all ports from topology on CSNs before queueing link address work Lyude Paul
2022-06-07 19:29 ` [RESEND RFC 15/18] drm/display/dp_mst: Skip releasing payloads if last connected port isn't connected Lyude Paul
2022-07-05 8:45 ` Lin, Wayne
2022-08-02 22:12 ` Lyude Paul
2022-08-10 3:28 ` Lin, Wayne
2022-08-10 22:13 ` Lyude Paul
2022-06-07 19:29 ` [RESEND RFC 16/18] drm/display/dp_mst: Maintain time slot allocations when deleting payloads Lyude Paul
2022-06-07 19:29 ` [RESEND RFC 17/18] drm/radeon: Drop legacy MST support Lyude Paul
2022-06-07 20:48 ` Alex Deucher
2022-06-07 19:29 ` [RESEND RFC 18/18] drm/display/dp_mst: Move all payload info into the atomic state Lyude Paul
2022-07-05 9:10 ` Lin, Wayne
2022-07-06 21:57 ` Lyude Paul
2022-08-03 20:27 ` Lyude Paul
2022-08-08 10:02 ` Lin, Wayne
2022-08-08 22:53 ` Lyude Paul [this message]
2022-06-29 13:33 ` [RESEND RFC 00/18] drm/display/dp_mst: Drop Radeon MST support, make MST atomic-only Jani Nikula
2022-07-28 22:21 ` Lyude Paul
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=4ea5f21ea66446ad7924bc883af30b136fa0ca22.camel@redhat.com \
--to=lyude@redhat.com \
--cc=Alexander.Deucher@amd.com \
--cc=Bhawanpreet.Lakha@amd.com \
--cc=Christian.Koenig@amd.com \
--cc=Hanghong.Ma@amd.com \
--cc=Ian.Chen@amd.com \
--cc=Jerry.Zuo@amd.com \
--cc=Jude.Shih@amd.com \
--cc=Jun.Lei@amd.com \
--cc=Michael.Strauss@amd.com \
--cc=Nicholas.Kazlauskas@amd.com \
--cc=Rodrigo.Siqueira@amd.com \
--cc=Roman.Li@amd.com \
--cc=Sunpeng.Li@amd.com \
--cc=Wayne.Lin@amd.com \
--cc=Wenjing.Liu@amd.com \
--cc=Xinhui.Pan@amd.com \
--cc=airlied@linux.ie \
--cc=amd-gfx@lists.freedesktop.org \
--cc=andi.shyti@linux.intel.com \
--cc=anshuman.gupta@intel.com \
--cc=ashutosh.dixit@intel.com \
--cc=bskeggs@redhat.com \
--cc=colin.king@intel.com \
--cc=cssk@net-c.es \
--cc=daniel.vetter@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=greenfoo@u92.eu \
--cc=hersenxs.wu@amd.com \
--cc=heying24@huawei.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@intel.com \
--cc=javierm@redhat.com \
--cc=jose.souza@intel.com \
--cc=juston.li@intel.com \
--cc=kherbst@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luojiaxing@huawei.com \
--cc=mikita.lipski@amd.com \
--cc=nouveau@lists.freedesktop.org \
--cc=rodrigo.vivi@intel.com \
--cc=sean@poorly.run \
--cc=seanpaul@chromium.org \
--cc=tvrtko.ursulin@linux.intel.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;
as well as URLs for NNTP newsgroup(s).