diff --git a/drivers/gpu/drm/drm_mipi_dsi.c b/drivers/gpu/drm/drm_mipi_dsi.c index 3d0aebf9fefa..6f11627e5f8b 100644 --- a/drivers/gpu/drm/drm_mipi_dsi.c +++ b/drivers/gpu/drm/drm_mipi_dsi.c @@ -1133,6 +1133,29 @@ int mipi_dsi_dcs_set_display_brightness_2bytes(struct mipi_dsi_device *dsi, } EXPORT_SYMBOL(mipi_dsi_dcs_set_display_brightness_2bytes); +/** + * mipi_dsi_dcs_set_display_brightness_2bytes_2th_low4bit() - sets the brightness value of + * the display with 2bytes and low 4bit at 2th byte value + * @dsi: DSI peripheral device + * @brightness: brightness value + * + * Return: 0 on success or a negative error code on failure. + */ +int mipi_dsi_dcs_set_display_brightness_2bytes_2th_low4bit(struct mipi_dsi_device *dsi, + u16 brightness) +{ + u8 payload[2] = { brightness >> 0x04, brightness & 0x0f }; + ssize_t err; + + err = mipi_dsi_dcs_write(dsi, MIPI_DCS_SET_DISPLAY_BRIGHTNESS, + payload, sizeof(payload)); + if (err < 0) + return err; + + return 0; +} +EXPORT_SYMBOL(mipi_dsi_dcs_set_display_brightness_2bytes_2th_low4bit); + /** * mipi_dsi_dcs_set_display_brightness_large() - sets the 16-bit brightness value * of the display diff --git a/include/drm/drm_mipi_dsi.h b/include/drm/drm_mipi_dsi.h index 008e4bb28762..138f5932bda2 100644 --- a/include/drm/drm_mipi_dsi.h +++ b/include/drm/drm_mipi_dsi.h @@ -292,6 +292,8 @@ int mipi_dsi_dcs_get_display_brightness(struct mipi_dsi_device *dsi, u16 *brightness); int mipi_dsi_dcs_set_display_brightness_2bytes(struct mipi_dsi_device *dsi, u16 brightness); +int mipi_dsi_dcs_set_display_brightness_2bytes_2th_low4bit(struct mipi_dsi_device *dsi, + u16 brightness); int mipi_dsi_dcs_set_display_brightness_large(struct mipi_dsi_device *dsi, u16 brightness); int mipi_dsi_dcs_get_display_brightness_large(struct mipi_dsi_device *dsi,