mbox series

[RFC,v2,0/3] Support for Simulated Panels

Message ID 20241008-jz-test-sim-panel-v2-0-d60046470e6c@quicinc.com (mailing list archive)
Headers show
Series Support for Simulated Panels | expand

Message

Jessica Zhang Oct. 8, 2024, 2:17 p.m. UTC
This series introduces a simulated MIPI DSI panel driver.

Currently, the only way to validate DSI connectors is with a physical
panel. Since obtaining physical panels for all possible DSI configurations
is logistically infeasible, introduce a way for DSI drivers to simulate a
panel.

This will be helpful in catching DSI misconfiguration bugs and catching
performance issues for high FPS panels that might not be easily
obtainable.

To configure and bind the sim panel, the user must:

1) modprobe the panel_simulation kernel module after the device boots to
   shell
2) Mount the configfs and create a test panel config group within the
   sim_panel configfs
3) Configure the sim panel
4) Enable the sim panel by writing the DSI device name to the `enable`
   node

Currently, the sim panel driver supports configuring the supported DRM
mode and DSI mode flags. Eventually, we would like to add more
customizations (such as configuring DSC, dual DSI, etc.).

TODOs once a general agreement has been reached on the configfs design:
- Add documentation
- Allow users to specify multiple supported DRM modes

---
Changes in v2:
- Use configfs framework for panel configuration
- Move sim panel framework API calls from MSM DSI driver to
  DRM framework
- Rebased to latest msm-next
- Link to v1: https://lore.kernel.org/r/20240116-jz-test-sim-panel-v1-0-f9511f46c9c7@quicinc.com

---
Jessica Zhang (3):
      drm/panel: add driver for simulated panel
      drm/dsi: Add API to register simulated DSI panel
      drm/panel: Introduce simulated panel bridge API

 MAINTAINERS                              |   5 +
 drivers/gpu/drm/bridge/panel.c           |  28 +++
 drivers/gpu/drm/drm_mipi_dsi.c           |  36 +++
 drivers/gpu/drm/drm_panel.c              |  33 +++
 drivers/gpu/drm/panel/Kconfig            |   9 +
 drivers/gpu/drm/panel/Makefile           |   1 +
 drivers/gpu/drm/panel/panel-simulation.c | 371 +++++++++++++++++++++++++++++++
 include/drm/drm_bridge.h                 |   1 +
 include/drm/drm_panel.h                  |   1 +
 9 files changed, 485 insertions(+)
---
base-commit: 2023aaa11289cab27f69cf7e8111fd233cdf3170
change-id: 20240102-jz-test-sim-panel-71c14a56716e

Best regards,