[PATCH] drm/panel: Add prepare_prev_first flag to Visionox VTDR6130

Abhinav Kumar quic_abhinavk at quicinc.com
Thu Aug 10 16:26:42 UTC 2023


Hi Neil

On 8/3/2023 10:19 AM, Jessica Zhang wrote:
> 
> 
> On 7/31/2023 6:00 AM, Neil Armstrong wrote:
>> Hi,
>>
>> On 26/07/2023 00:56, Jessica Zhang wrote:
>>> Due to a recent introduction of the pre_enable_prev_first bridge flag 
>>> [1],
>>> the panel driver will be probed before the DSI is enabled, causing the
>>> DCS commands to fail to send.
>>>
>>> Ensure that DSI is enabled before panel probe by setting the
>>> prepare_prev_first flag for the panel.
>>
>> Well this is specific to MSM DSI driver, it's not related at all to 
>> the panel.
> 

I dont fully agree this is a MSM DSI driver specific thing.

If the panel can send its commands in its enable() callback, then this 
flag need not be set.

When a panel sends its DCS commands in its pre_enable() callback, any 
DSI controller will need to be ON before that otherwise DCS commands 
cannot be sent.

With this in mind, may I know why is this a MSM change and not a panel 
change?

As per my discussion with Dmitry during the last sync up, we were 
aligned on this expectation.

Thanks

Abhinav

> Hi Neil,
> 
> I think there might be some confusion caused by the commit message -- 
> instead of "enabled before panel probe", it should be "enabled before 
> panel pre_enable()" as the panel on commands are sent during prepare(), 
> which is matched to bridge pre_enable().
> 
> IIRC the general rule is that the panel driver should set the 
> prepare_prev_first flag if the on commands are sent during pre_enable(), 
> so I'll keep the code change but correct the commit message if that's ok 
> with you.
> 
> Thanks,
> 

> Jessica Zhang
> 
>>
>> Neil
>>
>>>
>>> [1] commit 4fb912e5e190 ("drm/bridge: Introduce pre_enable_prev_first 
>>> to alter bridge init order")
>>>
>>> Fixes: 2349183d32d8 ("drm/panel: add visionox vtdr6130 DSI panel 
>>> driver")
>>> Signed-off-by: Jessica Zhang <quic_jesszhan at quicinc.com>
>>> ---
>>>   drivers/gpu/drm/panel/panel-visionox-vtdr6130.c | 1 +
>>>   1 file changed, 1 insertion(+)
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-visionox-vtdr6130.c 
>>> b/drivers/gpu/drm/panel/panel-visionox-vtdr6130.c
>>> index bb0dfd86ea67..e1363e128e7e 100644
>>> --- a/drivers/gpu/drm/panel/panel-visionox-vtdr6130.c
>>> +++ b/drivers/gpu/drm/panel/panel-visionox-vtdr6130.c
>>> @@ -296,6 +296,7 @@ static int visionox_vtdr6130_probe(struct 
>>> mipi_dsi_device *dsi)
>>>       dsi->format = MIPI_DSI_FMT_RGB888;
>>>       dsi->mode_flags = MIPI_DSI_MODE_VIDEO | 
>>> MIPI_DSI_MODE_NO_EOT_PACKET |
>>>                 MIPI_DSI_CLOCK_NON_CONTINUOUS;
>>> +    ctx->panel.prepare_prev_first = true;
>>>       drm_panel_init(&ctx->panel, dev, &visionox_vtdr6130_panel_funcs,
>>>                  DRM_MODE_CONNECTOR_DSI);
>>>
>>> ---
>>> base-commit: 28a5c036b05fc5c935cc72d76abd3589825ea9cd
>>> change-id: 20230717-visionox-vtdr-prev-first-e00ae02eec9f
>>>
>>> Best regards,
>>


More information about the dri-devel mailing list