Skip to content

Commit 7b6cf6c

Browse files
lumagrobertfoss
authored andcommitted
drm/bridge: lt9611uxc: drop support for !DRM_BRIDGE_ATTACH_NO_CONNECTOR
Having no in-kernel devices that use !DRM_BRIDGE_ATTACH_NO_CONNECTOR mode for the Lontium LT9611UXC bridge, drop the in-bridge implementation of the drm_connector. Signed-off-by: Dmitry Baryshkov <[email protected]> Reviewed-by: Robert Foss <[email protected]> Signed-off-by: Robert Foss <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
1 parent 7c5537c commit 7b6cf6c

File tree

1 file changed

+9
-95
lines changed

1 file changed

+9
-95
lines changed

drivers/gpu/drm/bridge/lontium-lt9611uxc.c

Lines changed: 9 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ struct lt9611uxc {
3636
struct device *dev;
3737
struct drm_bridge bridge;
3838
struct drm_bridge *next_bridge;
39-
struct drm_connector connector;
4039

4140
struct regmap *regmap;
4241
/* Protects all accesses to registers by stopping the on-chip MCU */
@@ -122,11 +121,6 @@ static struct lt9611uxc *bridge_to_lt9611uxc(struct drm_bridge *bridge)
122121
return container_of(bridge, struct lt9611uxc, bridge);
123122
}
124123

125-
static struct lt9611uxc *connector_to_lt9611uxc(struct drm_connector *connector)
126-
{
127-
return container_of(connector, struct lt9611uxc, connector);
128-
}
129-
130124
static void lt9611uxc_lock(struct lt9611uxc *lt9611uxc)
131125
{
132126
mutex_lock(&lt9611uxc->ocm_lock);
@@ -173,20 +167,14 @@ static void lt9611uxc_hpd_work(struct work_struct *work)
173167
struct lt9611uxc *lt9611uxc = container_of(work, struct lt9611uxc, work);
174168
bool connected;
175169

176-
if (lt9611uxc->connector.dev) {
177-
if (lt9611uxc->connector.dev->mode_config.funcs)
178-
drm_kms_helper_hotplug_event(lt9611uxc->connector.dev);
179-
} else {
180-
181-
mutex_lock(&lt9611uxc->ocm_lock);
182-
connected = lt9611uxc->hdmi_connected;
183-
mutex_unlock(&lt9611uxc->ocm_lock);
170+
mutex_lock(&lt9611uxc->ocm_lock);
171+
connected = lt9611uxc->hdmi_connected;
172+
mutex_unlock(&lt9611uxc->ocm_lock);
184173

185-
drm_bridge_hpd_notify(&lt9611uxc->bridge,
186-
connected ?
187-
connector_status_connected :
188-
connector_status_disconnected);
189-
}
174+
drm_bridge_hpd_notify(&lt9611uxc->bridge,
175+
connected ?
176+
connector_status_connected :
177+
connector_status_disconnected);
190178
}
191179

192180
static void lt9611uxc_reset(struct lt9611uxc *lt9611uxc)
@@ -291,87 +279,13 @@ static struct mipi_dsi_device *lt9611uxc_attach_dsi(struct lt9611uxc *lt9611uxc,
291279
return dsi;
292280
}
293281

294-
static int lt9611uxc_connector_get_modes(struct drm_connector *connector)
295-
{
296-
struct lt9611uxc *lt9611uxc = connector_to_lt9611uxc(connector);
297-
const struct drm_edid *drm_edid;
298-
int count;
299-
300-
drm_edid = drm_bridge_edid_read(&lt9611uxc->bridge, connector);
301-
drm_edid_connector_update(connector, drm_edid);
302-
count = drm_edid_connector_add_modes(connector);
303-
drm_edid_free(drm_edid);
304-
305-
return count;
306-
}
307-
308-
static enum drm_connector_status lt9611uxc_connector_detect(struct drm_connector *connector,
309-
bool force)
310-
{
311-
struct lt9611uxc *lt9611uxc = connector_to_lt9611uxc(connector);
312-
313-
return lt9611uxc->bridge.funcs->detect(&lt9611uxc->bridge);
314-
}
315-
316-
static enum drm_mode_status lt9611uxc_connector_mode_valid(struct drm_connector *connector,
317-
struct drm_display_mode *mode)
318-
{
319-
struct lt9611uxc_mode *lt9611uxc_mode = lt9611uxc_find_mode(mode);
320-
321-
return lt9611uxc_mode ? MODE_OK : MODE_BAD;
322-
}
323-
324-
static const struct drm_connector_helper_funcs lt9611uxc_bridge_connector_helper_funcs = {
325-
.get_modes = lt9611uxc_connector_get_modes,
326-
.mode_valid = lt9611uxc_connector_mode_valid,
327-
};
328-
329-
static const struct drm_connector_funcs lt9611uxc_bridge_connector_funcs = {
330-
.fill_modes = drm_helper_probe_single_connector_modes,
331-
.detect = lt9611uxc_connector_detect,
332-
.destroy = drm_connector_cleanup,
333-
.reset = drm_atomic_helper_connector_reset,
334-
.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
335-
.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
336-
};
337-
338-
static int lt9611uxc_connector_init(struct drm_bridge *bridge, struct lt9611uxc *lt9611uxc)
339-
{
340-
int ret;
341-
342-
lt9611uxc->connector.polled = DRM_CONNECTOR_POLL_HPD;
343-
344-
drm_connector_helper_add(&lt9611uxc->connector,
345-
&lt9611uxc_bridge_connector_helper_funcs);
346-
ret = drm_connector_init(bridge->dev, &lt9611uxc->connector,
347-
&lt9611uxc_bridge_connector_funcs,
348-
DRM_MODE_CONNECTOR_HDMIA);
349-
if (ret) {
350-
DRM_ERROR("Failed to initialize connector with drm\n");
351-
return ret;
352-
}
353-
354-
return drm_connector_attach_encoder(&lt9611uxc->connector, bridge->encoder);
355-
}
356-
357282
static int lt9611uxc_bridge_attach(struct drm_bridge *bridge,
358283
enum drm_bridge_attach_flags flags)
359284
{
360285
struct lt9611uxc *lt9611uxc = bridge_to_lt9611uxc(bridge);
361-
int ret;
362-
363-
ret = drm_bridge_attach(bridge->encoder, lt9611uxc->next_bridge,
364-
bridge, flags | DRM_BRIDGE_ATTACH_NO_CONNECTOR);
365-
if (ret)
366-
return ret;
367286

368-
if (!(flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR)) {
369-
ret = lt9611uxc_connector_init(bridge, lt9611uxc);
370-
if (ret < 0)
371-
return ret;
372-
}
373-
374-
return 0;
287+
return drm_bridge_attach(bridge->encoder, lt9611uxc->next_bridge,
288+
bridge, flags);
375289
}
376290

377291
static enum drm_mode_status

0 commit comments

Comments
 (0)