• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2012 Russell King
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  */
8 #ifndef ARMADA_CONNETOR_H
9 #define ARMADA_CONNETOR_H
10 
11 #define encoder_helper_funcs(encoder) \
12 	((struct drm_encoder_helper_funcs *)encoder->helper_private)
13 
14 struct armada_output_type {
15 	int connector_type;
16 	enum drm_connector_status (*detect)(struct drm_connector *, bool);
17 	int (*create)(struct drm_connector *, const void *);
18 	int (*set_property)(struct drm_connector *, struct drm_property *,
19 			    uint64_t);
20 };
21 
22 struct drm_encoder *armada_drm_connector_encoder(struct drm_connector *conn);
23 
24 void armada_drm_encoder_prepare(struct drm_encoder *encoder);
25 void armada_drm_encoder_commit(struct drm_encoder *encoder);
26 
27 bool armada_drm_encoder_mode_fixup(struct drm_encoder *encoder,
28 	const struct drm_display_mode *mode, struct drm_display_mode *adj);
29 
30 int armada_drm_slave_encoder_mode_valid(struct drm_connector *conn,
31 	struct drm_display_mode *mode);
32 
33 int armada_drm_slave_encoder_set_property(struct drm_connector *conn,
34 	struct drm_property *property, uint64_t value);
35 
36 int armada_output_create(struct drm_device *dev,
37 	const struct armada_output_type *type, const void *data);
38 
39 #endif
40