Message ID | 20230510085451.226546-1-jfalempe@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/mgag200: Fix gamma lut not initialized. | expand |
Hi, oh great! Thank you for fixing this bug. And sorry that I broke it. Am 10.05.23 um 10:54 schrieb Jocelyn Falempe: > When mgag200 switched from simple KMS to regular atomic helpers, > the initialization of the gamma settings was lost. > This leads to a black screen, if the bios/uefi doesn't use the same > pixel color depth. > > Link: https://bugzilla.redhat.com/show_bug.cgi?id=2171155 > Fixes: 1baf9127c482 ("drm/mgag200: Replace simple-KMS with regular atomic helpers") > Tested-by: Phil Oester <kernel@linuxace.com> > Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> Also needs: Cc: <stable@vger.kernel.org> # v6.1+ In terms of what it does: Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> but the patch is apparently for against an old version. (v6.1?) The code in mgag200_crtc_helper_atomic_enable has changed quite a bit. Best regards Thomas > --- > drivers/gpu/drm/mgag200/mgag200_mode.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/gpu/drm/mgag200/mgag200_mode.c b/drivers/gpu/drm/mgag200/mgag200_mode.c > index 461da1409fdf..911d46741e40 100644 > --- a/drivers/gpu/drm/mgag200/mgag200_mode.c > +++ b/drivers/gpu/drm/mgag200/mgag200_mode.c > @@ -819,6 +819,11 @@ static void mgag200_crtc_helper_atomic_enable(struct drm_crtc *crtc, > else if (mdev->type == G200_EV) > mgag200_g200ev_set_hiprilvl(mdev); > > + if (crtc_state->gamma_lut) > + mgag200_crtc_set_gamma(mdev, format, crtc_state->gamma_lut->data); > + else > + mgag200_crtc_set_gamma_linear(mdev, format); > + > mgag200_enable_display(mdev); > > if (mdev->type == G200_WB || mdev->type == G200_EW3) > > base-commit: 1baf9127c482a3a58aef81d92ae751798e2db202
On 10/05/2023 11:15, Thomas Zimmermann wrote: > Hi, > > oh great! Thank you for fixing this bug. And sorry that I broke it. > > Am 10.05.23 um 10:54 schrieb Jocelyn Falempe: >> When mgag200 switched from simple KMS to regular atomic helpers, >> the initialization of the gamma settings was lost. >> This leads to a black screen, if the bios/uefi doesn't use the same >> pixel color depth. >> >> Link: https://bugzilla.redhat.com/show_bug.cgi?id=2171155 >> Fixes: 1baf9127c482 ("drm/mgag200: Replace simple-KMS with regular >> atomic helpers") >> Tested-by: Phil Oester <kernel@linuxace.com> >> Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> > > Also needs: > > Cc: <stable@vger.kernel.org> # v6.1+ Should I send a v2 with this added ? > > In terms of what it does: > > Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> > > but the patch is apparently for against an old version. (v6.1?) The code > in mgag200_crtc_helper_atomic_enable has changed quite a bit. Yes, I based it on the culprit commit 1baf9127c482, but it applies cleanly with git am -3 on top of v6.3 > > Best regards > Thomas > >> --- >> drivers/gpu/drm/mgag200/mgag200_mode.c | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/drivers/gpu/drm/mgag200/mgag200_mode.c >> b/drivers/gpu/drm/mgag200/mgag200_mode.c >> index 461da1409fdf..911d46741e40 100644 >> --- a/drivers/gpu/drm/mgag200/mgag200_mode.c >> +++ b/drivers/gpu/drm/mgag200/mgag200_mode.c >> @@ -819,6 +819,11 @@ static void >> mgag200_crtc_helper_atomic_enable(struct drm_crtc *crtc, >> else if (mdev->type == G200_EV) >> mgag200_g200ev_set_hiprilvl(mdev); >> + if (crtc_state->gamma_lut) >> + mgag200_crtc_set_gamma(mdev, format, >> crtc_state->gamma_lut->data); >> + else >> + mgag200_crtc_set_gamma_linear(mdev, format); >> + >> mgag200_enable_display(mdev); >> if (mdev->type == G200_WB || mdev->type == G200_EW3) >> >> base-commit: 1baf9127c482a3a58aef81d92ae751798e2db202 >
Hi Am 10.05.23 um 11:29 schrieb Jocelyn Falempe: > On 10/05/2023 11:15, Thomas Zimmermann wrote: >> Hi, >> >> oh great! Thank you for fixing this bug. And sorry that I broke it. >> >> Am 10.05.23 um 10:54 schrieb Jocelyn Falempe: >>> When mgag200 switched from simple KMS to regular atomic helpers, >>> the initialization of the gamma settings was lost. >>> This leads to a black screen, if the bios/uefi doesn't use the same >>> pixel color depth. >>> >>> Link: https://bugzilla.redhat.com/show_bug.cgi?id=2171155 >>> Fixes: 1baf9127c482 ("drm/mgag200: Replace simple-KMS with regular >>> atomic helpers") >>> Tested-by: Phil Oester <kernel@linuxace.com> >>> Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> >> >> Also needs: >> >> Cc: <stable@vger.kernel.org> # v6.1+ > > Should I send a v2 with this added ? Yes, please. >> >> In terms of what it does: >> >> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> >> >> but the patch is apparently for against an old version. (v6.1?) The >> code in mgag200_crtc_helper_atomic_enable has changed quite a bit. > > Yes, I based it on the culprit commit 1baf9127c482, but it applies > cleanly with git am -3 on top of v6.3 Rather send a patch against drm-misc-fixes and let backporters sort it out. That's current practice AFAIK. You could also reply to your v2 patch mail with a link to the v1 patch. Best regards Thomas > >> >> Best regards >> Thomas >> >>> --- >>> drivers/gpu/drm/mgag200/mgag200_mode.c | 5 +++++ >>> 1 file changed, 5 insertions(+) >>> >>> diff --git a/drivers/gpu/drm/mgag200/mgag200_mode.c >>> b/drivers/gpu/drm/mgag200/mgag200_mode.c >>> index 461da1409fdf..911d46741e40 100644 >>> --- a/drivers/gpu/drm/mgag200/mgag200_mode.c >>> +++ b/drivers/gpu/drm/mgag200/mgag200_mode.c >>> @@ -819,6 +819,11 @@ static void >>> mgag200_crtc_helper_atomic_enable(struct drm_crtc *crtc, >>> else if (mdev->type == G200_EV) >>> mgag200_g200ev_set_hiprilvl(mdev); >>> + if (crtc_state->gamma_lut) >>> + mgag200_crtc_set_gamma(mdev, format, >>> crtc_state->gamma_lut->data); >>> + else >>> + mgag200_crtc_set_gamma_linear(mdev, format); >>> + >>> mgag200_enable_display(mdev); >>> if (mdev->type == G200_WB || mdev->type == G200_EW3) >>> >>> base-commit: 1baf9127c482a3a58aef81d92ae751798e2db202 >> >
diff --git a/drivers/gpu/drm/mgag200/mgag200_mode.c b/drivers/gpu/drm/mgag200/mgag200_mode.c index 461da1409fdf..911d46741e40 100644 --- a/drivers/gpu/drm/mgag200/mgag200_mode.c +++ b/drivers/gpu/drm/mgag200/mgag200_mode.c @@ -819,6 +819,11 @@ static void mgag200_crtc_helper_atomic_enable(struct drm_crtc *crtc, else if (mdev->type == G200_EV) mgag200_g200ev_set_hiprilvl(mdev); + if (crtc_state->gamma_lut) + mgag200_crtc_set_gamma(mdev, format, crtc_state->gamma_lut->data); + else + mgag200_crtc_set_gamma_linear(mdev, format); + mgag200_enable_display(mdev); if (mdev->type == G200_WB || mdev->type == G200_EW3)