Applied.  Thanks!

Alex

On Fri, Feb 21, 2025 at 3:48 PM Alex Hung <alex.h...@amd.com> wrote:
>
> Reviewed-by: Alex Hung <alex.h...@amd.com>
>
> On 2/15/25 14:15, Melissa Wen wrote:
> > When switching to drm_edid, we slightly changed how to get edid by
> > removing the possibility of getting them from dc_link when in aux
> > transaction mode. As MST doesn't initialize the connector with
> > `drm_connector_init_with_ddc()`, restore the original behavior to avoid
> > functional changes.
> >
> > v2:
> > - Fix build warning of unchecked dereference (kernel test bot)
> >
> > CC: Alex Hung <alex.h...@amd.com>
> > CC: Mario Limonciello <mario.limoncie...@amd.com>
> > CC: Roman Li <roman...@amd.com>
> > CC: Aurabindo Pillai <aurabindo.pil...@amd.com>
> > Fixes: 48edb2a4256e ("drm/amd/display: switch amdgpu_dm_connector to use 
> > struct drm_edid")
> > Signed-off-by: Melissa Wen <m...@igalia.com>
> > ---
> >   .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c   | 17 +++++++++++++++--
> >   1 file changed, 15 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
> > b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> > index a8421c07b160..142d366e3347 100644
> > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> > @@ -7269,8 +7269,14 @@ static void amdgpu_dm_connector_funcs_force(struct 
> > drm_connector *connector)
> >       struct dc_link *dc_link = aconnector->dc_link;
> >       struct dc_sink *dc_em_sink = aconnector->dc_em_sink;
> >       const struct drm_edid *drm_edid;
> > +     struct i2c_adapter *ddc;
> >
> > -     drm_edid = drm_edid_read(connector);
> > +     if (dc_link && dc_link->aux_mode)
> > +             ddc = &aconnector->dm_dp_aux.aux.ddc;
> > +     else
> > +             ddc = &aconnector->i2c->base;
> > +
> > +     drm_edid = drm_edid_read_ddc(connector, ddc);
> >       drm_edid_connector_update(connector, drm_edid);
> >       if (!drm_edid) {
> >               DRM_ERROR("No EDID found on connector: %s.\n", 
> > connector->name);
> > @@ -7315,14 +7321,21 @@ static int get_modes(struct drm_connector 
> > *connector)
> >   static void create_eml_sink(struct amdgpu_dm_connector *aconnector)
> >   {
> >       struct drm_connector *connector = &aconnector->base;
> > +     struct dc_link *dc_link = aconnector->dc_link;
> >       struct dc_sink_init_data init_params = {
> >                       .link = aconnector->dc_link,
> >                       .sink_signal = SIGNAL_TYPE_VIRTUAL
> >       };
> >       const struct drm_edid *drm_edid;
> >       const struct edid *edid;
> > +     struct i2c_adapter *ddc;
> >
> > -     drm_edid = drm_edid_read(connector);
> > +     if (dc_link && dc_link->aux_mode)
> > +             ddc = &aconnector->dm_dp_aux.aux.ddc;
> > +     else
> > +             ddc = &aconnector->i2c->base;
> > +
> > +     drm_edid = drm_edid_read_ddc(connector, ddc);
> >       drm_edid_connector_update(connector, drm_edid);
> >       if (!drm_edid) {
> >               DRM_ERROR("No EDID found on connector: %s.\n", 
> > connector->name);
>

Reply via email to