Message ID | 20241014160936.24886-1-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/radeon: Fix encoder->possible_clones | expand |
Applied. Thanks! Alex On Mon, Oct 14, 2024 at 12:09 PM Ville Syrjala <ville.syrjala@linux.intel.com> wrote: > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Include the encoder itself in its possible_clones bitmask. > In the past nothing validated that drivers were populating > possible_clones correctly, but that changed in commit > 74d2aacbe840 ("drm: Validate encoder->possible_clones"). > Looks like radeon never got the memo and is still not > following the rules 100% correctly. > > This results in some warnings during driver initialization: > Bogus possible_clones: [ENCODER:46:TV-46] possible_clones=0x4 (full encoder mask=0x7) > WARNING: CPU: 0 PID: 170 at drivers/gpu/drm/drm_mode_config.c:615 drm_mode_config_validate+0x113/0x39c > ... > > Cc: Alex Deucher <alexander.deucher@amd.com> > Cc: amd-gfx@lists.freedesktop.org > Cc: stable@vger.kernel.org > Fixes: 74d2aacbe840 ("drm: Validate encoder->possible_clones") > Reported-by: Erhard Furtner <erhard_f@mailbox.org> > Closes: https://lore.kernel.org/dri-devel/20241009000321.418e4294@yea/ > Tested-by: Erhard Furtner <erhard_f@mailbox.org> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > drivers/gpu/drm/radeon/radeon_encoders.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c > index 0f723292409e..fafed331e0a0 100644 > --- a/drivers/gpu/drm/radeon/radeon_encoders.c > +++ b/drivers/gpu/drm/radeon/radeon_encoders.c > @@ -43,7 +43,7 @@ static uint32_t radeon_encoder_clones(struct drm_encoder *encoder) > struct radeon_device *rdev = dev->dev_private; > struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); > struct drm_encoder *clone_encoder; > - uint32_t index_mask = 0; > + uint32_t index_mask = drm_encoder_mask(encoder); > int count; > > /* DIG routing gets problematic */ > -- > 2.45.2 >
diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c index 0f723292409e..fafed331e0a0 100644 --- a/drivers/gpu/drm/radeon/radeon_encoders.c +++ b/drivers/gpu/drm/radeon/radeon_encoders.c @@ -43,7 +43,7 @@ static uint32_t radeon_encoder_clones(struct drm_encoder *encoder) struct radeon_device *rdev = dev->dev_private; struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); struct drm_encoder *clone_encoder; - uint32_t index_mask = 0; + uint32_t index_mask = drm_encoder_mask(encoder); int count; /* DIG routing gets problematic */