From: Nikhil Devshatwar <nikhil.nd@ti.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>,
Sekhar Nori <nsekhar@ti.com>, Yuti Amonkar <yamonkar@cadence.com>,
dri-devel@lists.freedesktop.org,
Swapnil Jakhade <sjakhade@cadence.com>
Subject: Re: [PATCH v3 4/6] drm/tidss: Set bus_format correctly from bridge/connector
Date: Tue, 1 Dec 2020 16:22:55 +0530 [thread overview]
Message-ID: <20201201105255.kl2dn6hjneo4gtld@NiksLab> (raw)
In-Reply-To: <20201130094527.GD4141@pendragon.ideasonboard.com>
On 11:45-20201130, Laurent Pinchart wrote:
> Hi Nikhil,
>
> Thank you for the patch.
>
> On Thu, Nov 19, 2020 at 09:31:32PM +0530, Nikhil Devshatwar wrote:
> > Remove the old code to iterate over the bridge chain, as this is
> > already done by the framework.
> > The bridge state should have the negotiated bus format and flags.
> > Use these from the bridge's state.
> > If the bridge does not support format negotiation, error out
> > and fail.
> >
> > Signed-off-by: Nikhil Devshatwar <nikhil.nd@ti.com>
> > Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
> > ---
> >
> > Notes:
> > changes from v2:
> > * Remove the old code and use the flags from the bridge state
> >
> > drivers/gpu/drm/tidss/tidss_encoder.c | 36 +++++++++++----------------
> > 1 file changed, 14 insertions(+), 22 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/tidss/tidss_encoder.c b/drivers/gpu/drm/tidss/tidss_encoder.c
> > index e278a9c89476..08d5083c5508 100644
> > --- a/drivers/gpu/drm/tidss/tidss_encoder.c
> > +++ b/drivers/gpu/drm/tidss/tidss_encoder.c
> > @@ -21,37 +21,29 @@ static int tidss_encoder_atomic_check(struct drm_encoder *encoder,
> > {
> > struct drm_device *ddev = encoder->dev;
> > struct tidss_crtc_state *tcrtc_state = to_tidss_crtc_state(crtc_state);
> > - struct drm_display_info *di = &conn_state->connector->display_info;
> > + struct drm_bridge_state *bstate;
> > struct drm_bridge *bridge;
> > - bool bus_flags_set = false;
> >
> > dev_dbg(ddev->dev, "%s\n", __func__);
> >
> > - /*
> > - * Take the bus_flags from the first bridge that defines
> > - * bridge timings, or from the connector's display_info if no
> > - * bridge defines the timings.
> > - */
> > - drm_for_each_bridge_in_chain(encoder, bridge) {
> > - if (!bridge->timings)
> > - continue;
> > -
> > - tcrtc_state->bus_flags = bridge->timings->input_bus_flags;
> > - bus_flags_set = true;
> > - break;
> > + /* Copy the bus_format and flags from the first bridge's state */
> > + bridge = drm_bridge_chain_get_first_bridge(encoder);
> > + bstate = drm_atomic_get_new_bridge_state(crtc_state->state, bridge);
> > + if (bstate) {
> > + tcrtc_state->bus_format = bstate->input_bus_cfg.format;
> > + tcrtc_state->bus_flags = bstate->input_bus_cfg.flags;
> > + } else {
> > + dev_err(ddev->dev, "Could not get the bridge state\n");
> > + return -EINVAL;
> > }
>
> I'd write this
>
> bstate = drm_atomic_get_new_bridge_state(crtc_state->state, bridge);
> if (!bstate) {
> dev_err(ddev->dev, "Could not get the bridge state\n");
> return -EINVAL;
> }
>
> tcrtc_state->bus_format = bstate->input_bus_cfg.format;
> tcrtc_state->bus_flags = bstate->input_bus_cfg.flags;
Looks better this way. I'll update
Nikhil Devshatwar
> >
> > - if (!di->bus_formats || di->num_bus_formats == 0) {
> > - dev_err(ddev->dev, "%s: No bus_formats in connected display\n",
> > - __func__);
> > + if (tcrtc_state->bus_format == 0 ||
> > + tcrtc_state->bus_format == MEDIA_BUS_FMT_FIXED) {
> > +
> > + dev_err(ddev->dev, "Bridge connected to the encoder did not specify media bus format\n");
> > return -EINVAL;
> > }
> >
> > - // XXX any cleaner way to set bus format and flags?
> > - tcrtc_state->bus_format = di->bus_formats[0];
> > - if (!bus_flags_set)
> > - tcrtc_state->bus_flags = di->bus_flags;
> > -
> > return 0;
> > }
> >
>
> --
> Regards,
>
> Laurent Pinchart
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2020-12-01 10:53 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-19 16:01 [PATCH v3 0/6] drm/tidss: Use new connector model for tidss Nikhil Devshatwar
2020-11-19 16:01 ` [PATCH v3 1/6] drm: bridge: Propagate the bus flags from bridge->timings Nikhil Devshatwar
2020-11-30 9:36 ` Laurent Pinchart
2020-11-30 9:46 ` Tomi Valkeinen
2020-11-30 9:47 ` Laurent Pinchart
2020-11-30 10:02 ` Tomi Valkeinen
2020-11-30 10:04 ` Tomi Valkeinen
2020-11-30 18:59 ` Laurent Pinchart
2020-12-01 10:52 ` Nikhil Devshatwar
2020-11-19 16:01 ` [PATCH v3 2/6] drm/bridge: tfp410: Support format negotiation hooks Nikhil Devshatwar
2020-11-30 9:40 ` Laurent Pinchart
2020-11-19 16:01 ` [PATCH v3 3/6] drm/bridge: mhdp8546: Add minimal format negotiation Nikhil Devshatwar
2020-11-19 16:01 ` [PATCH v3 4/6] drm/tidss: Set bus_format correctly from bridge/connector Nikhil Devshatwar
2020-11-25 12:51 ` Tomi Valkeinen
2020-11-30 6:35 ` Nikhil Devshatwar
2020-11-30 9:46 ` Laurent Pinchart
2020-12-01 10:57 ` Nikhil Devshatwar
2020-12-01 15:53 ` Tomi Valkeinen
2020-11-30 9:45 ` Laurent Pinchart
2020-12-01 10:52 ` Nikhil Devshatwar [this message]
2020-11-19 16:01 ` [PATCH v3 5/6] drm/tidss: Move to newer connector model Nikhil Devshatwar
2020-11-19 16:01 ` [PATCH v3 6/6] drm/bridge: cdns-mhdp8546: Fix the interrupt enable/disable Nikhil Devshatwar
2020-11-23 14:54 ` Tomi Valkeinen
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=20201201105255.kl2dn6hjneo4gtld@NiksLab \
--to=nikhil.nd@ti.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=nsekhar@ti.com \
--cc=sjakhade@cadence.com \
--cc=tomi.valkeinen@ti.com \
--cc=yamonkar@cadence.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox