Пример #1
0
static void omap_encoder_destroy(struct drm_encoder *encoder)
{
	struct omap_encoder *omap_encoder = to_omap_encoder(encoder);
	DBG("%s", omap_encoder->mgr->name);
	drm_encoder_cleanup(encoder);
	kfree(omap_encoder);
}
Пример #2
0
static void omap_encoder_prepare(struct drm_encoder *encoder)
{
	struct omap_encoder *omap_encoder = to_omap_encoder(encoder);
	struct drm_encoder_helper_funcs *encoder_funcs =
				encoder->helper_private;
	DBG("%s", omap_encoder->mgr->name);
	encoder_funcs->dpms(encoder, DRM_MODE_DPMS_OFF);
}
Пример #3
0
static bool omap_encoder_mode_fixup(struct drm_encoder *encoder,
				  const struct drm_display_mode *mode,
				  struct drm_display_mode *adjusted_mode)
{
	struct omap_encoder *omap_encoder = to_omap_encoder(encoder);
	DBG("%s", omap_encoder->mgr->name);
	return true;
}
Пример #4
0
static void omap_encoder_commit(struct drm_encoder *encoder)
{
	struct omap_encoder *omap_encoder = to_omap_encoder(encoder);
	struct drm_encoder_helper_funcs *encoder_funcs =
				encoder->helper_private;
	DBG("%s", omap_encoder->mgr->name);
	omap_encoder->mgr->apply(omap_encoder->mgr);
	encoder_funcs->dpms(encoder, DRM_MODE_DPMS_ON);
}
Пример #5
0
static void omap_encoder_dpms(struct drm_encoder *encoder, int mode)
{
	struct omap_encoder *omap_encoder = to_omap_encoder(encoder);
	struct drm_device *dev = encoder->dev;
	struct omap_gpu_private *priv = dev->dev_private;
	int i;

	DBG("%s: %d", omap_encoder->mgr->name, mode);

	/* managers don't need to do anything for DPMS.. but we do
	 * need to propagate to the connector, who is actually going
	 * to enable/disable as needed:
	 */
	for (i = 0; i < priv->num_connectors; i++) {
		struct drm_connector *connector = priv->connectors[i];
		if (connector->encoder == encoder) {
			omap_connector_dpms(connector, mode);
		}
	}
}
Пример #6
0
static void omap_encoder_mode_set(struct drm_encoder *encoder,
				struct drm_display_mode *mode,
				struct drm_display_mode *adjusted_mode)
{
	struct omap_encoder *omap_encoder = to_omap_encoder(encoder);
	struct drm_device *dev = encoder->dev;
	struct omap_drm_private *priv = dev->dev_private;
	int i;

	mode = adjusted_mode;

	DBG("%s: set mode: %dx%d", omap_encoder->mgr->name,
			mode->hdisplay, mode->vdisplay);

	for (i = 0; i < priv->num_connectors; i++) {
		struct drm_connector *connector = priv->connectors[i];
		if (connector->encoder == encoder) {
			omap_connector_mode_set(connector, mode);
		}
	}
}
Пример #7
0
static void omap_encoder_dpms(struct drm_encoder *encoder, int mode)
{
	struct omap_encoder *omap_encoder = to_omap_encoder(encoder);
	DBG("%s: %d", omap_encoder->mgr->name, mode);
}
Пример #8
0
struct omap_overlay_manager *omap_encoder_get_manager(
		struct drm_encoder *encoder)
{
	struct omap_encoder *omap_encoder = to_omap_encoder(encoder);
	return omap_encoder->mgr;
}
Пример #9
0
/* maybe this could go away and we just use drm_vblank_wait()? */
int omap_encoder_wait_for_vsync(struct drm_encoder *encoder)
{
	struct omap_encoder *omap_encoder = to_omap_encoder(encoder);
	DBG("%s", omap_encoder->mgr->name);
	return omap_encoder->mgr->wait_for_vsync(omap_encoder->mgr);
}