diff mbox series

drm/panel: himax-hx83102: Adjust power and gamma to optimize brightness

Message ID 20241011020819.1254157-1-yangcong5@huaqin.corp-partner.google.com (mailing list archive)
State New, archived
Headers show
Series drm/panel: himax-hx83102: Adjust power and gamma to optimize brightness | expand

Commit Message

cong yang Oct. 11, 2024, 2:08 a.m. UTC
The current panel brightness is only 360 nit. Adjust the power and gamma to
optimize the panel brightness. The brightness after adjustment is 390 nit.

Fixes: 3179338750d8 ("drm/panel: Support for IVO t109nw41 MIPI-DSI panel")
Signed-off-by: Cong Yang <yangcong5@huaqin.corp-partner.google.com>
---
 drivers/gpu/drm/panel/panel-himax-hx83102.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

Comments

Linus Walleij Oct. 11, 2024, 7:03 a.m. UTC | #1
On Fri, Oct 11, 2024 at 4:08 AM Cong Yang
<yangcong5@huaqin.corp-partner.google.com> wrote:

> The current panel brightness is only 360 nit. Adjust the power and gamma to
> optimize the panel brightness. The brightness after adjustment is 390 nit.
>
> Fixes: 3179338750d8 ("drm/panel: Support for IVO t109nw41 MIPI-DSI panel")
> Signed-off-by: Cong Yang <yangcong5@huaqin.corp-partner.google.com>

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

If you look in panel-samsung-s6e63m0.c you can see how that driver actually
uses a set of gamma+power (ACL) settings to regulate the "backlight",
i.e. the brightness of the OLED display. You might want to implement
something similar in your driver to actually provide the user with a
brightness setting.

It's a bit unfortunate that this is for historical reasons called "backlight"
but the usecase is definitely the same.

Yours,
Linus Walleij
cong yang Oct. 11, 2024, 7:18 a.m. UTC | #2
Hi,

Linus Walleij <linus.walleij@linaro.org> 于2024年10月11日周五 15:03写道:
>
> On Fri, Oct 11, 2024 at 4:08 AM Cong Yang
> <yangcong5@huaqin.corp-partner.google.com> wrote:
>
> > The current panel brightness is only 360 nit. Adjust the power and gamma to
> > optimize the panel brightness. The brightness after adjustment is 390 nit.
> >
> > Fixes: 3179338750d8 ("drm/panel: Support for IVO t109nw41 MIPI-DSI panel")
> > Signed-off-by: Cong Yang <yangcong5@huaqin.corp-partner.google.com>
>
> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
>
> If you look in panel-samsung-s6e63m0.c you can see how that driver actually
> uses a set of gamma+power (ACL) settings to regulate the "backlight",
> i.e. the brightness of the OLED display. You might want to implement
> something similar in your driver to actually provide the user with a
> brightness setting.
>
> It's a bit unfortunate that this is for historical reasons called "backlight"
> but the usecase is definitely the same.

Thank you for your suggestion. As far as I know, there are some differences
between OLED panel and our current panel. OLED emits light through the
panel itself.
while the panel we are using now actually drives the LED lights in the
panel through PWM
control of the driver IC.

Usually the brightness is controlled by PWM and exposed to the user space.
Modifying gama here is more about optimizing the gama curve to further improve
the contrast, brightness and detail presentation.

>
> Yours,
> Linus Walleij
Doug Anderson Oct. 11, 2024, 2:20 p.m. UTC | #3
Hi,

On Thu, Oct 10, 2024 at 7:08 PM Cong Yang
<yangcong5@huaqin.corp-partner.google.com> wrote:
>
> The current panel brightness is only 360 nit. Adjust the power and gamma to
> optimize the panel brightness. The brightness after adjustment is 390 nit.
>
> Fixes: 3179338750d8 ("drm/panel: Support for IVO t109nw41 MIPI-DSI panel")
> Signed-off-by: Cong Yang <yangcong5@huaqin.corp-partner.google.com>
> ---
>  drivers/gpu/drm/panel/panel-himax-hx83102.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)

No objection on my part. This is just modification of some constants,
is well described, and is to a panel that you added so I don't think
it needs a long bake time on the list. I'll plan to apply this on
Monday unless there are comments or someone beats me to applying.

Reviewed-by: Douglas Anderson <dianders@chromium.org>


Thanks!

-Doug
Doug Anderson Oct. 14, 2024, 5:03 p.m. UTC | #4
Hi,

On Fri, Oct 11, 2024 at 7:20 AM Doug Anderson <dianders@chromium.org> wrote:
>
> Hi,
>
> On Thu, Oct 10, 2024 at 7:08 PM Cong Yang
> <yangcong5@huaqin.corp-partner.google.com> wrote:
> >
> > The current panel brightness is only 360 nit. Adjust the power and gamma to
> > optimize the panel brightness. The brightness after adjustment is 390 nit.
> >
> > Fixes: 3179338750d8 ("drm/panel: Support for IVO t109nw41 MIPI-DSI panel")

When applying your patch, I got a yell about your "Fixes" line. It
turns out you didn't copy the subject of the patch you're fixing
exactly. The above should be:

Fixes: 3179338750d8 ("drm/panel: himax-hx83102: Support for IVO
t109nw41 MIPI-DSI panel")

I'll fix that when applying. Please make sure you get the commit
subject exactly in the future.


> > Signed-off-by: Cong Yang <yangcong5@huaqin.corp-partner.google.com>
> > ---
> >  drivers/gpu/drm/panel/panel-himax-hx83102.c | 12 ++++++------
> >  1 file changed, 6 insertions(+), 6 deletions(-)
>
> No objection on my part. This is just modification of some constants,
> is well described, and is to a panel that you added so I don't think
> it needs a long bake time on the list. I'll plan to apply this on
> Monday unless there are comments or someone beats me to applying.
>
> Reviewed-by: Douglas Anderson <dianders@chromium.org>

I've applied and pushed to drm-misc-fixes:

[1/1] drm/panel: himax-hx83102: Adjust power and gamma to optimize brightness
      commit: fcf38bc321fbc87dfcd829f42e64e541f17599f7

-Doug
diff mbox series

Patch

diff --git a/drivers/gpu/drm/panel/panel-himax-hx83102.c b/drivers/gpu/drm/panel/panel-himax-hx83102.c
index 6e4b7e4644ce..8b48bba18131 100644
--- a/drivers/gpu/drm/panel/panel-himax-hx83102.c
+++ b/drivers/gpu/drm/panel/panel-himax-hx83102.c
@@ -298,7 +298,7 @@  static int ivo_t109nw41_init(struct hx83102 *ctx)
 	msleep(60);
 
 	hx83102_enable_extended_cmds(&dsi_ctx, true);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, HX83102_SETPOWER, 0x2c, 0xed, 0xed, 0x0f, 0xcf, 0x42,
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, HX83102_SETPOWER, 0x2c, 0xed, 0xed, 0x27, 0xe7, 0x52,
 				     0xf5, 0x39, 0x36, 0x36, 0x36, 0x36, 0x32, 0x8b, 0x11, 0x65, 0x00, 0x88,
 				     0xfa, 0xff, 0xff, 0x8f, 0xff, 0x08, 0xd6, 0x33);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, HX83102_SETDISP, 0x00, 0x47, 0xb0, 0x80, 0x00, 0x12,
@@ -343,11 +343,11 @@  static int ivo_t109nw41_init(struct hx83102 *ctx)
 				     0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 				     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 				     0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, HX83102_SETGMA, 0x04, 0x04, 0x06, 0x0a, 0x0a, 0x05,
-				     0x12, 0x14, 0x17, 0x13, 0x2c, 0x33, 0x39, 0x4b, 0x4c, 0x56, 0x61, 0x78,
-				     0x7a, 0x41, 0x50, 0x68, 0x73, 0x04, 0x04, 0x06, 0x0a, 0x0a, 0x05, 0x12,
-				     0x14, 0x17, 0x13, 0x2c, 0x33, 0x39, 0x4b, 0x4c, 0x56, 0x61, 0x78, 0x7a,
-				     0x41, 0x50, 0x68, 0x73);
+	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, HX83102_SETGMA, 0x00, 0x07, 0x10, 0x17, 0x1c, 0x33,
+				     0x48, 0x50, 0x57, 0x50, 0x68, 0x6e, 0x71, 0x7f, 0x81, 0x8a, 0x8e, 0x9b,
+				     0x9c, 0x4d, 0x56, 0x5d, 0x73, 0x00, 0x07, 0x10, 0x17, 0x1c, 0x33, 0x48,
+				     0x50, 0x57, 0x50, 0x68, 0x6e, 0x71, 0x7f, 0x81, 0x8a, 0x8e, 0x9b, 0x9c,
+				     0x4d, 0x56, 0x5d, 0x73);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, HX83102_SETTP1, 0x07, 0x10, 0x10, 0x1a, 0x26, 0x9e,
 				     0x00, 0x4f, 0xa0, 0x14, 0x14, 0x00, 0x00, 0x00, 0x00, 0x12, 0x0a, 0x02,
 				     0x02, 0x00, 0x33, 0x02, 0x04, 0x18, 0x01);