armada_output.h 1.3 KB
Newer Older
R
Russell King 已提交
1 2 3 4 5 6 7 8 9 10 11
/*
 * Copyright (C) 2012 Russell King
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */
#ifndef ARMADA_CONNETOR_H
#define ARMADA_CONNETOR_H

#define encoder_helper_funcs(encoder) \
12
	((const struct drm_encoder_helper_funcs *)encoder->helper_private)
R
Russell King 已提交
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

struct armada_output_type {
	int connector_type;
	enum drm_connector_status (*detect)(struct drm_connector *, bool);
	int (*create)(struct drm_connector *, const void *);
	int (*set_property)(struct drm_connector *, struct drm_property *,
			    uint64_t);
};

struct drm_encoder *armada_drm_connector_encoder(struct drm_connector *conn);

void armada_drm_encoder_prepare(struct drm_encoder *encoder);
void armada_drm_encoder_commit(struct drm_encoder *encoder);

bool armada_drm_encoder_mode_fixup(struct drm_encoder *encoder,
	const struct drm_display_mode *mode, struct drm_display_mode *adj);

int armada_drm_slave_encoder_mode_valid(struct drm_connector *conn,
	struct drm_display_mode *mode);

int armada_drm_slave_encoder_set_property(struct drm_connector *conn,
	struct drm_property *property, uint64_t value);

int armada_output_create(struct drm_device *dev,
	const struct armada_output_type *type, const void *data);

#endif