Re: [PATCH v2] drm/panel: nt35510: Make new commands optional

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Sep 08, 2024 at 11:50:30PM GMT, Linus Walleij wrote:
> The commit introducing the Frida display started to write the
> SETVCMOFF registers unconditionally, and some (not all!) Hydis
> display seem to be affected by ghosting after the commit.
> 
> Make SETVCMOFF optional and only send these commands on the
> Frida display for now.
> 
> Reported-by: Stefan Hansson <newbyte@xxxxxxxxxxxxxxxx>
> Fixes: 219a1f49094f ("drm/panel: nt35510: support FRIDA FRD400B25025-A-CTK")
> Acked-by: Jessica Zhang <quic_jesszhan@xxxxxxxxxxx>
> Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
> ---
> Changes in v2:
> - After Stefan's testing conclude that we only need to make
>   SETVCMOFF optional.
> - Link to v1: https://lore.kernel.org/r/20240906-fix-nt35510-v1-1-1971f3af7dda@xxxxxxxxxx
> ---
>  drivers/gpu/drm/panel/panel-novatek-nt35510.c | 18 ++++++++++++------
>  1 file changed, 12 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/panel/panel-novatek-nt35510.c b/drivers/gpu/drm/panel/panel-novatek-nt35510.c
> index d3bfdfc9cff6..a3460ed38cc4 100644
> --- a/drivers/gpu/drm/panel/panel-novatek-nt35510.c
> +++ b/drivers/gpu/drm/panel/panel-novatek-nt35510.c
> @@ -38,6 +38,7 @@
>  
>  #define NT35510_CMD_CORRECT_GAMMA BIT(0)
>  #define NT35510_CMD_CONTROL_DISPLAY BIT(1)
> +#define NT35510_CMD_SETVCMOFF BIT(2)
>  
>  #define MCS_CMD_MAUCCTR		0xF0 /* Manufacturer command enable */
>  #define MCS_CMD_READ_ID1	0xDA
> @@ -675,16 +676,19 @@ static int nt35510_setup_power(struct nt35510 *nt)
>  				nt->conf->bt2ctr);
>  	if (ret)
>  		return ret;
> +
>  	ret = nt35510_send_long(nt, dsi, NT35510_P1_SETVCL,
>  				NT35510_P1_VCL_LEN,
>  				nt->conf->vcl);
>  	if (ret)
>  		return ret;
> +
>  	ret = nt35510_send_long(nt, dsi, NT35510_P1_BT3CTR,
>  				NT35510_P1_BT3CTR_LEN,
>  				nt->conf->bt3ctr);
>  	if (ret)
>  		return ret;
> +
>  	ret = nt35510_send_long(nt, dsi, NT35510_P1_SETVGH,
>  				NT35510_P1_VGH_LEN,
>  				nt->conf->vgh);

I think this part is unrelted and should go in as a separate commit.
Other than that LGTM.

> @@ -721,11 +725,13 @@ static int nt35510_setup_power(struct nt35510 *nt)
>  	if (ret)
>  		return ret;
>  
> -	ret = nt35510_send_long(nt, dsi, NT35510_P1_SETVCMOFF,
> -				NT35510_P1_VCMOFF_LEN,
> -				nt->conf->vcmoff);
> -	if (ret)
> -		return ret;
> +	if (nt->conf->cmds & NT35510_CMD_SETVCMOFF) {
> +		ret = nt35510_send_long(nt, dsi, NT35510_P1_SETVCMOFF,
> +					NT35510_P1_VCMOFF_LEN,
> +					nt->conf->vcmoff);
> +		if (ret)
> +			return ret;
> +	}
>  
>  	/* Typically 10 ms */
>  	usleep_range(10000, 20000);
> @@ -1319,7 +1325,7 @@ static const struct nt35510_config nt35510_frida_frd400b25025 = {
>  	},
>  	.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
>  			MIPI_DSI_MODE_LPM,
> -	.cmds = NT35510_CMD_CONTROL_DISPLAY,
> +	.cmds = NT35510_CMD_CONTROL_DISPLAY | NT35510_CMD_SETVCMOFF,
>  	/* 0x03: AVDD = 6.2V */
>  	.avdd = { 0x03, 0x03, 0x03 },
>  	/* 0x46: PCK = 2 x Hsync, BTP = 2.5 x VDDB */
> 
> ---
> base-commit: 8400291e289ee6b2bf9779ff1c83a291501f017b
> change-id: 20240906-fix-nt35510-a8ec6e47e036
> 
> Best regards,
> -- 
> Linus Walleij <linus.walleij@xxxxxxxxxx>
> 

-- 
With best wishes
Dmitry



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux