Lines Matching full:encoder
33 /* DRM encoder functions */
35 static void ch7006_encoder_set_config(struct drm_encoder *encoder, in ch7006_encoder_set_config() argument
38 struct ch7006_priv *priv = to_ch7006_priv(encoder); in ch7006_encoder_set_config()
43 static void ch7006_encoder_destroy(struct drm_encoder *encoder) in ch7006_encoder_destroy() argument
45 struct ch7006_priv *priv = to_ch7006_priv(encoder); in ch7006_encoder_destroy()
47 drm_property_destroy(encoder->dev, priv->scale_property); in ch7006_encoder_destroy()
50 to_encoder_slave(encoder)->slave_priv = NULL; in ch7006_encoder_destroy()
52 drm_i2c_encoder_destroy(encoder); in ch7006_encoder_destroy()
55 static void ch7006_encoder_dpms(struct drm_encoder *encoder, int mode) in ch7006_encoder_dpms() argument
57 struct i2c_client *client = drm_i2c_encoder_get_client(encoder); in ch7006_encoder_dpms()
58 struct ch7006_priv *priv = to_ch7006_priv(encoder); in ch7006_encoder_dpms()
67 ch7006_setup_power_state(encoder); in ch7006_encoder_dpms()
72 static void ch7006_encoder_save(struct drm_encoder *encoder) in ch7006_encoder_save() argument
74 struct i2c_client *client = drm_i2c_encoder_get_client(encoder); in ch7006_encoder_save()
75 struct ch7006_priv *priv = to_ch7006_priv(encoder); in ch7006_encoder_save()
82 static void ch7006_encoder_restore(struct drm_encoder *encoder) in ch7006_encoder_restore() argument
84 struct i2c_client *client = drm_i2c_encoder_get_client(encoder); in ch7006_encoder_restore()
85 struct ch7006_priv *priv = to_ch7006_priv(encoder); in ch7006_encoder_restore()
92 static bool ch7006_encoder_mode_fixup(struct drm_encoder *encoder, in ch7006_encoder_mode_fixup() argument
96 struct ch7006_priv *priv = to_ch7006_priv(encoder); in ch7006_encoder_mode_fixup()
101 priv->mode = ch7006_lookup_mode(encoder, mode); in ch7006_encoder_mode_fixup()
106 static int ch7006_encoder_mode_valid(struct drm_encoder *encoder, in ch7006_encoder_mode_valid() argument
109 if (ch7006_lookup_mode(encoder, mode)) in ch7006_encoder_mode_valid()
115 static void ch7006_encoder_mode_set(struct drm_encoder *encoder, in ch7006_encoder_mode_set() argument
119 struct i2c_client *client = drm_i2c_encoder_get_client(encoder); in ch7006_encoder_mode_set()
120 struct ch7006_priv *priv = to_ch7006_priv(encoder); in ch7006_encoder_mode_set()
170 ch7006_setup_levels(encoder); in ch7006_encoder_mode_set()
171 ch7006_setup_subcarrier(encoder); in ch7006_encoder_mode_set()
172 ch7006_setup_pll(encoder); in ch7006_encoder_mode_set()
173 ch7006_setup_power_state(encoder); in ch7006_encoder_mode_set()
174 ch7006_setup_properties(encoder); in ch7006_encoder_mode_set()
179 static enum drm_connector_status ch7006_encoder_detect(struct drm_encoder *encoder, in ch7006_encoder_detect() argument
182 struct i2c_client *client = drm_i2c_encoder_get_client(encoder); in ch7006_encoder_detect()
183 struct ch7006_priv *priv = to_ch7006_priv(encoder); in ch7006_encoder_detect()
220 encoder->dev->mode_config.tv_subconnector_property, in ch7006_encoder_detect()
227 static int ch7006_encoder_get_modes(struct drm_encoder *encoder, in ch7006_encoder_get_modes() argument
230 struct ch7006_priv *priv = to_ch7006_priv(encoder); in ch7006_encoder_get_modes()
240 drm_mode_duplicate(encoder->dev, &mode->mode)); in ch7006_encoder_get_modes()
248 static int ch7006_encoder_create_resources(struct drm_encoder *encoder, in ch7006_encoder_create_resources() argument
251 struct ch7006_priv *priv = to_ch7006_priv(encoder); in ch7006_encoder_create_resources()
252 struct drm_device *dev = encoder->dev; in ch7006_encoder_create_resources()
283 static int ch7006_encoder_set_property(struct drm_encoder *encoder, in ch7006_encoder_set_property() argument
288 struct i2c_client *client = drm_i2c_encoder_get_client(encoder); in ch7006_encoder_set_property()
289 struct ch7006_priv *priv = to_ch7006_priv(encoder); in ch7006_encoder_set_property()
291 struct drm_mode_config *conf = &encoder->dev->mode_config; in ch7006_encoder_set_property()
292 struct drm_crtc *crtc = encoder->crtc; in ch7006_encoder_set_property()
300 ch7006_setup_power_state(encoder); in ch7006_encoder_set_property()
307 ch7006_setup_properties(encoder); in ch7006_encoder_set_property()
315 ch7006_setup_properties(encoder); in ch7006_encoder_set_property()
331 ch7006_setup_levels(encoder); in ch7006_encoder_set_property()
338 ch7006_setup_properties(encoder); in ch7006_encoder_set_property()
345 ch7006_setup_properties(encoder); in ch7006_encoder_set_property()
440 struct drm_encoder_slave *encoder) in ch7006_encoder_init() argument
451 encoder->slave_priv = priv; in ch7006_encoder_init()
452 encoder->slave_funcs = &ch7006_encoder_funcs; in ch7006_encoder_init()
545 MODULE_DESCRIPTION("Chrontel ch7006 TV encoder driver");