Lines Matching defs:encoder
36 /* DRM encoder functions */
38 static void ch7006_encoder_set_config(struct drm_encoder *encoder,
41 struct ch7006_priv *priv = to_ch7006_priv(encoder);
46 static void ch7006_encoder_destroy(struct drm_encoder *encoder)
48 struct ch7006_priv *priv = to_ch7006_priv(encoder);
50 drm_property_destroy(encoder->dev, priv->scale_property);
53 to_encoder_slave(encoder)->slave_priv = NULL;
55 drm_i2c_encoder_destroy(encoder);
58 static void ch7006_encoder_dpms(struct drm_encoder *encoder, int mode)
60 struct i2c_client *client = drm_i2c_encoder_get_client(encoder);
61 struct ch7006_priv *priv = to_ch7006_priv(encoder);
70 ch7006_setup_power_state(encoder);
75 static void ch7006_encoder_save(struct drm_encoder *encoder)
77 struct i2c_client *client = drm_i2c_encoder_get_client(encoder);
78 struct ch7006_priv *priv = to_ch7006_priv(encoder);
85 static void ch7006_encoder_restore(struct drm_encoder *encoder)
87 struct i2c_client *client = drm_i2c_encoder_get_client(encoder);
88 struct ch7006_priv *priv = to_ch7006_priv(encoder);
95 static bool ch7006_encoder_mode_fixup(struct drm_encoder *encoder,
99 struct ch7006_priv *priv = to_ch7006_priv(encoder);
104 priv->mode = ch7006_lookup_mode(encoder, mode);
109 static int ch7006_encoder_mode_valid(struct drm_encoder *encoder,
112 if (ch7006_lookup_mode(encoder, mode))
118 static void ch7006_encoder_mode_set(struct drm_encoder *encoder,
122 struct i2c_client *client = drm_i2c_encoder_get_client(encoder);
123 struct ch7006_priv *priv = to_ch7006_priv(encoder);
173 ch7006_setup_levels(encoder);
174 ch7006_setup_subcarrier(encoder);
175 ch7006_setup_pll(encoder);
176 ch7006_setup_power_state(encoder);
177 ch7006_setup_properties(encoder);
182 static enum drm_connector_status ch7006_encoder_detect(struct drm_encoder *encoder,
185 struct i2c_client *client = drm_i2c_encoder_get_client(encoder);
186 struct ch7006_priv *priv = to_ch7006_priv(encoder);
223 encoder->dev->mode_config.tv_subconnector_property,
230 static int ch7006_encoder_get_modes(struct drm_encoder *encoder,
233 struct ch7006_priv *priv = to_ch7006_priv(encoder);
243 drm_mode_duplicate(encoder->dev, &mode->mode));
251 static int ch7006_encoder_create_resources(struct drm_encoder *encoder,
254 struct ch7006_priv *priv = to_ch7006_priv(encoder);
255 struct drm_device *dev = encoder->dev;
286 static int ch7006_encoder_set_property(struct drm_encoder *encoder,
291 struct i2c_client *client = drm_i2c_encoder_get_client(encoder);
292 struct ch7006_priv *priv = to_ch7006_priv(encoder);
294 struct drm_mode_config *conf = &encoder->dev->mode_config;
295 struct drm_crtc *crtc = encoder->crtc;
303 ch7006_setup_power_state(encoder);
310 ch7006_setup_properties(encoder);
318 ch7006_setup_properties(encoder);
334 ch7006_setup_levels(encoder);
341 ch7006_setup_properties(encoder);
348 ch7006_setup_properties(encoder);
445 struct drm_encoder_slave *encoder)
456 encoder->slave_priv = priv;
457 encoder->slave_funcs = &ch7006_encoder_funcs;
550 MODULE_DESCRIPTION("Chrontel ch7006 TV encoder driver");