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@xxxxxxxxxxx>
---
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,