]> rtime.felk.cvut.cz Git - linux-imx.git/blobdiff - drivers/gpu/drm/radeon/radeon_connectors.c
radeon: expose backlight class device for legacy LVDS encoder
[linux-imx.git] / drivers / gpu / drm / radeon / radeon_connectors.c
index 3f3c9aac46ccfd4fb2ff4c58a13ecfbfca4f4501..28c7961cd19bc986540dd0b0413dba2f5bc94ffe 100644 (file)
@@ -40,6 +40,10 @@ radeon_atombios_connected_scratch_regs(struct drm_connector *connector,
                                       struct drm_encoder *encoder,
                                       bool connected);
 
+extern void
+radeon_legacy_backlight_init(struct radeon_encoder *radeon_encoder,
+                            struct drm_connector *drm_connector);
+
 void radeon_connector_hotplug(struct drm_connector *connector)
 {
        struct drm_device *dev = connector->dev;
@@ -1526,6 +1530,17 @@ radeon_add_legacy_connector(struct drm_device *dev,
                connector->polled = DRM_CONNECTOR_POLL_HPD;
        connector->display_info.subpixel_order = subpixel_order;
        drm_sysfs_connector_add(connector);
+       if (connector_type == DRM_MODE_CONNECTOR_LVDS) {
+               struct drm_encoder *drm_encoder;
+
+               list_for_each_entry(drm_encoder, &dev->mode_config.encoder_list, head) {
+                       struct radeon_encoder *radeon_encoder;
+
+                       radeon_encoder = to_radeon_encoder(drm_encoder);
+                       if (radeon_encoder->encoder_id == ENCODER_OBJECT_ID_INTERNAL_LVDS)
+                               radeon_legacy_backlight_init(radeon_encoder, connector);
+               }
+       }
        return;
 
 failed: