Lines Matching refs:encoder

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