Lines Matching refs:encoder

31 /* DRM encoder functions */
33 static void ch7006_encoder_set_config(struct drm_encoder *encoder,
36 struct ch7006_priv *priv = to_ch7006_priv(encoder);
41 static void ch7006_encoder_destroy(struct drm_encoder *encoder)
43 struct ch7006_priv *priv = to_ch7006_priv(encoder);
45 drm_property_destroy(encoder->dev, priv->scale_property);
48 to_encoder_slave(encoder)->slave_priv = NULL;
50 drm_i2c_encoder_destroy(encoder);
53 static void ch7006_encoder_dpms(struct drm_encoder *encoder, int mode)
55 struct i2c_client *client = drm_i2c_encoder_get_client(encoder);
56 struct ch7006_priv *priv = to_ch7006_priv(encoder);
65 ch7006_setup_power_state(encoder);
70 static void ch7006_encoder_save(struct drm_encoder *encoder)
72 struct i2c_client *client = drm_i2c_encoder_get_client(encoder);
73 struct ch7006_priv *priv = to_ch7006_priv(encoder);
80 static void ch7006_encoder_restore(struct drm_encoder *encoder)
82 struct i2c_client *client = drm_i2c_encoder_get_client(encoder);
83 struct ch7006_priv *priv = to_ch7006_priv(encoder);
90 static bool ch7006_encoder_mode_fixup(struct drm_encoder *encoder,
94 struct ch7006_priv *priv = to_ch7006_priv(encoder);
99 priv->mode = ch7006_lookup_mode(encoder, mode);
104 static int ch7006_encoder_mode_valid(struct drm_encoder *encoder,
107 if (ch7006_lookup_mode(encoder, mode))
113 static void ch7006_encoder_mode_set(struct drm_encoder *encoder,
117 struct i2c_client *client = drm_i2c_encoder_get_client(encoder);
118 struct ch7006_priv *priv = to_ch7006_priv(encoder);
168 ch7006_setup_levels(encoder);
169 ch7006_setup_subcarrier(encoder);
170 ch7006_setup_pll(encoder);
171 ch7006_setup_power_state(encoder);
172 ch7006_setup_properties(encoder);
177 static enum drm_connector_status ch7006_encoder_detect(struct drm_encoder *encoder,
180 struct i2c_client *client = drm_i2c_encoder_get_client(encoder);
181 struct ch7006_priv *priv = to_ch7006_priv(encoder);
218 encoder->dev->mode_config.tv_subconnector_property,
225 static int ch7006_encoder_get_modes(struct drm_encoder *encoder,
228 struct ch7006_priv *priv = to_ch7006_priv(encoder);
238 drm_mode_duplicate(encoder->dev, &mode->mode));
246 static int ch7006_encoder_create_resources(struct drm_encoder *encoder,
249 struct ch7006_priv *priv = to_ch7006_priv(encoder);
250 struct drm_device *dev = encoder->dev;
281 static int ch7006_encoder_set_property(struct drm_encoder *encoder,
286 struct i2c_client *client = drm_i2c_encoder_get_client(encoder);
287 struct ch7006_priv *priv = to_ch7006_priv(encoder);
289 struct drm_mode_config *conf = &encoder->dev->mode_config;
290 struct drm_crtc *crtc = encoder->crtc;
298 ch7006_setup_power_state(encoder);
305 ch7006_setup_properties(encoder);
313 ch7006_setup_properties(encoder);
329 ch7006_setup_levels(encoder);
336 ch7006_setup_properties(encoder);
343 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");