struct drm_encoder *omap_connector_attached_encoder( struct drm_connector *connector) { int i; struct omap_connector *omap_connector = to_omap_connector(connector); for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++) { struct drm_mode_object *obj; if (connector->encoder_ids[i] == 0) break; obj = drm_mode_object_find(connector->dev, connector->encoder_ids[i], DRM_MODE_OBJECT_ENCODER); if (obj) { struct drm_encoder *encoder = obj_to_encoder(obj); struct omap_overlay_manager *mgr = omap_encoder_get_manager(encoder); DBG("%s: found %s", omap_connector->dssdev->name, mgr->name); return encoder; } } DBG("%s: no encoder", omap_connector->dssdev->name); return NULL; }
struct drm_encoder *udl_best_single_encoder(struct drm_connector *connector) { int enc_id = connector->encoder_ids[0]; struct drm_mode_object *obj; struct drm_encoder *encoder; obj = drm_mode_object_find(connector->dev, enc_id, DRM_MODE_OBJECT_ENCODER); if (!obj) return NULL; encoder = obj_to_encoder(obj); return encoder; }
static struct drm_encoder *CRTConnectorHelperBestEncoder(struct drm_connector *psConnector) { struct drm_mode_object *psObject; /* Pick the first encoder we find */ if (psConnector->encoder_ids[0] != 0) { psObject = drm_mode_object_find(psConnector->dev, psConnector->encoder_ids[0], DRM_MODE_OBJECT_ENCODER); if (psObject != NULL) { return obj_to_encoder(psObject); } } return NULL; }
static struct drm_encoder *cirrus_connector_best_encoder(struct drm_connector *connector) { int enc_id = connector->encoder_ids[0]; struct drm_mode_object *obj; struct drm_encoder *encoder; /* pick the encoder ids */ if (enc_id) { obj = drm_mode_object_find(connector->dev, enc_id, DRM_MODE_OBJECT_ENCODER); if (!obj) return NULL; encoder = obj_to_encoder(obj); return encoder; } return NULL; }
struct drm_encoder *exynos_drm_best_encoder(struct drm_connector *connector) { struct drm_device *dev = connector->dev; struct exynos_drm_connector *exynos_connector = to_exynos_connector(connector); struct drm_mode_object *obj; struct drm_encoder *encoder; obj = drm_mode_object_find(dev, exynos_connector->encoder_id, DRM_MODE_OBJECT_ENCODER); if (!obj) { DRM_DEBUG_KMS("Unknown ENCODER ID %d\n", exynos_connector->encoder_id); return NULL; } encoder = obj_to_encoder(obj); return encoder; }
static struct drm_encoder *vbox_best_single_encoder(struct drm_connector *connector) { int enc_id = connector->encoder_ids[0]; struct drm_mode_object *obj; struct drm_encoder *encoder; LogFunc(("vboxvideo: %d: connector=%p\n", __LINE__, connector)); /* pick the encoder ids */ if (enc_id) { obj = drm_mode_object_find(connector->dev, enc_id, DRM_MODE_OBJECT_ENCODER); if (!obj) return NULL; encoder = obj_to_encoder(obj); LogFunc(("vboxvideo: %d: encoder=%p\n", __LINE__, encoder)); return encoder; } LogFunc(("vboxvideo: %d\n", __LINE__)); return NULL; }