[PATCH v4 07/11] drm/bridge: cdns-dsi: Reset the DCS write FIFO
Tomi Valkeinen
tomi.valkeinen at ideasonboard.com
Wed Jun 26 11:03:01 UTC 2024
On 22/06/2024 14:09, Aradhya Bhatia wrote:
> If any normal DCS write command has already been transmitted prior to
> transmitting any Zero-Parameter DCS command, then it is necessary to
> clear the TX FIFO by resetting it. Otherwise, the FIFO points to another
> location, and the DCS command transmits unnecessary data causing the
> panel to not work[0].
>
> Allow the DCS Write FIFO in the cdns-dsi controller to reset as a rule,
> before any DCS packet is transmitted to the DSI peripheral.
>
> [0]: Section 12.6.5.7.5.2: "Command Mode Settings" in TDA4VM Technical
> Reference Manual: https://www.ti.com/lit/zip/spruil1
Hmm so if I read the doc right, it says: if sending zero-parameter dcs
command, clear the FIFO and write zero to direct_cmd_wrdat.
Your patch seems to always clear the FIFO, not only for zero-parameter
commands. Is that a problem (I don't think so, but...)?
Also, is the direct_cmd_wrdat written at all when sending zero-parameter
dcs command?
Tomi
>
> Signed-off-by: Aradhya Bhatia <a-bhatia1 at ti.com>
> ---
> drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c b/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c
> index 126e4bccd868..cad0c1478ef0 100644
> --- a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c
> +++ b/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c
> @@ -1018,6 +1018,9 @@ static ssize_t cdns_dsi_transfer(struct mipi_dsi_host *host,
>
> cdns_dsi_init_link(dsi);
>
> + /* Reset the DCS Write FIFO */
> + writel(0x00, dsi->regs + DIRECT_CMD_FIFO_RST);
> +
> ret = mipi_dsi_create_packet(&packet, msg);
> if (ret)
> goto out;
More information about the dri-devel
mailing list