Hi Sam,
On 20/08/2019 13:37, Sam Ravnborg wrote:
@@ -123,6 +123,18 @@ static void panel_bridge_post_disable(struct drm_bridge *bridge) drm_panel_unprepare(panel_bridge->panel); }
+static int panel_bridge_get_modes(struct drm_bridge *bridge,
struct drm_connector *connector)
+{
- struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
- /*
* FIXME: drm_panel_get_modes() should take the connector as an
* argument.
*/
Noted, I have patches to fix this. Needs a little testing/polishing before I post them.
Do you have any testable patches for this?
I was testing this series with a Toshiba DPI-2-DSI bridge and a DSI panel, and was hitting a crash as simple-panel couldn't get the connector.
Laurent commented:
panel_bridge_attach() should be modified to call drm_panel_attach() even when flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR, with the connctor parameter set to NULL. That's easy, and drm_panel_attach() won't complain and happily set panel->connector to NULL. The trouble is that the panel drivers rely on panel->connector in their get_modes() implementation. That function needs to be modified to take the connector pointer instead of retrieving it from panel->connector (which can then be removed).
Tomi