2 * Copyright (C) 2012 Russell King
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.
8 #ifndef ARMADA_CONNETOR_H
9 #define ARMADA_CONNETOR_H
11 #define encoder_helper_funcs(encoder) \
12 ((const struct drm_encoder_helper_funcs *)encoder->helper_private)
14 struct armada_output_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
*,
22 struct drm_encoder
*armada_drm_connector_encoder(struct drm_connector
*conn
);
24 void armada_drm_encoder_prepare(struct drm_encoder
*encoder
);
25 void armada_drm_encoder_commit(struct drm_encoder
*encoder
);
27 bool armada_drm_encoder_mode_fixup(struct drm_encoder
*encoder
,
28 const struct drm_display_mode
*mode
, struct drm_display_mode
*adj
);
30 int armada_drm_slave_encoder_mode_valid(struct drm_connector
*conn
,
31 struct drm_display_mode
*mode
);
33 int armada_drm_slave_encoder_set_property(struct drm_connector
*conn
,
34 struct drm_property
*property
, uint64_t value
);
36 int armada_output_create(struct drm_device
*dev
,
37 const struct armada_output_type
*type
, const void *data
);