diff options
Diffstat (limited to 'drivers/gpu/drm/i2c/ch7006_drv.c')
| -rw-r--r-- | drivers/gpu/drm/i2c/ch7006_drv.c | 47 |
1 files changed, 22 insertions, 25 deletions
diff --git a/drivers/gpu/drm/i2c/ch7006_drv.c b/drivers/gpu/drm/i2c/ch7006_drv.c index 08792a740f1..51fa3239202 100644 --- a/drivers/gpu/drm/i2c/ch7006_drv.c +++ b/drivers/gpu/drm/i2c/ch7006_drv.c @@ -24,6 +24,8 @@ * */ +#include <linux/module.h> + #include "ch7006_priv.h" /* DRM encoder functions */ @@ -86,7 +88,7 @@ static void ch7006_encoder_restore(struct drm_encoder *encoder) } static bool ch7006_encoder_mode_fixup(struct drm_encoder *encoder, - struct drm_display_mode *mode, + const struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode) { struct ch7006_priv *priv = to_ch7006_priv(encoder); @@ -212,7 +214,7 @@ static enum drm_connector_status ch7006_encoder_detect(struct drm_encoder *encod else priv->subconnector = DRM_MODE_SUBCONNECTOR_Unknown; - drm_connector_property_set_value(connector, + drm_object_property_set_value(&connector->base, encoder->dev->mode_config.tv_subconnector_property, priv->subconnector); @@ -250,28 +252,25 @@ static int ch7006_encoder_create_resources(struct drm_encoder *encoder, drm_mode_create_tv_properties(dev, NUM_TV_NORMS, ch7006_tv_norm_names); - priv->scale_property = drm_property_create(dev, DRM_MODE_PROP_RANGE, - "scale", 2); - priv->scale_property->values[0] = 0; - priv->scale_property->values[1] = 2; + priv->scale_property = drm_property_create_range(dev, 0, "scale", 0, 2); - drm_connector_attach_property(connector, conf->tv_select_subconnector_property, + drm_object_attach_property(&connector->base, conf->tv_select_subconnector_property, priv->select_subconnector); - drm_connector_attach_property(connector, conf->tv_subconnector_property, + drm_object_attach_property(&connector->base, conf->tv_subconnector_property, priv->subconnector); - drm_connector_attach_property(connector, conf->tv_left_margin_property, + drm_object_attach_property(&connector->base, conf->tv_left_margin_property, priv->hmargin); - drm_connector_attach_property(connector, conf->tv_bottom_margin_property, + drm_object_attach_property(&connector->base, conf->tv_bottom_margin_property, priv->vmargin); - drm_connector_attach_property(connector, conf->tv_mode_property, + drm_object_attach_property(&connector->base, conf->tv_mode_property, priv->norm); - drm_connector_attach_property(connector, conf->tv_brightness_property, + drm_object_attach_property(&connector->base, conf->tv_brightness_property, priv->brightness); - drm_connector_attach_property(connector, conf->tv_contrast_property, + drm_object_attach_property(&connector->base, conf->tv_contrast_property, priv->contrast); - drm_connector_attach_property(connector, conf->tv_flicker_reduction_property, + drm_object_attach_property(&connector->base, conf->tv_flicker_reduction_property, priv->flicker); - drm_connector_attach_property(connector, priv->scale_property, + drm_object_attach_property(&connector->base, priv->scale_property, priv->scale); return 0; @@ -365,7 +364,7 @@ static int ch7006_encoder_set_property(struct drm_encoder *encoder, .crtc = crtc, }; - crtc->funcs->set_config(&modeset); + drm_mode_set_config_internal(&modeset); } } @@ -428,15 +427,10 @@ static int ch7006_remove(struct i2c_client *client) return 0; } -static int ch7006_suspend(struct i2c_client *client, pm_message_t mesg) +static int ch7006_resume(struct device *dev) { - ch7006_dbg(client, "\n"); - - return 0; -} + struct i2c_client *client = to_i2c_client(dev); -static int ch7006_resume(struct i2c_client *client) -{ ch7006_dbg(client, "\n"); ch7006_write(client, 0x3d, 0x0); @@ -500,15 +494,18 @@ static struct i2c_device_id ch7006_ids[] = { }; MODULE_DEVICE_TABLE(i2c, ch7006_ids); +static const struct dev_pm_ops ch7006_pm_ops = { + .resume = ch7006_resume, +}; + static struct drm_i2c_encoder_driver ch7006_driver = { .i2c_driver = { .probe = ch7006_probe, .remove = ch7006_remove, - .suspend = ch7006_suspend, - .resume = ch7006_resume, .driver = { .name = "ch7006", + .pm = &ch7006_pm_ops, }, .id_table = ch7006_ids, |
