diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_encoders.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_encoders.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c index 5a1bae3a2426..bd4959ca23aa 100644 --- a/drivers/gpu/drm/radeon/radeon_encoders.c +++ b/drivers/gpu/drm/radeon/radeon_encoders.c | |||
@@ -29,6 +29,14 @@ | |||
29 | #include "radeon.h" | 29 | #include "radeon.h" |
30 | #include "atom.h" | 30 | #include "atom.h" |
31 | 31 | ||
32 | extern void | ||
33 | radeon_legacy_backlight_init(struct radeon_encoder *radeon_encoder, | ||
34 | struct drm_connector *drm_connector); | ||
35 | extern void | ||
36 | radeon_atom_backlight_init(struct radeon_encoder *radeon_encoder, | ||
37 | struct drm_connector *drm_connector); | ||
38 | |||
39 | |||
32 | static uint32_t radeon_encoder_clones(struct drm_encoder *encoder) | 40 | static uint32_t radeon_encoder_clones(struct drm_encoder *encoder) |
33 | { | 41 | { |
34 | struct drm_device *dev = encoder->dev; | 42 | struct drm_device *dev = encoder->dev; |
@@ -153,6 +161,7 @@ radeon_get_encoder_enum(struct drm_device *dev, uint32_t supported_device, uint8 | |||
153 | void | 161 | void |
154 | radeon_link_encoder_connector(struct drm_device *dev) | 162 | radeon_link_encoder_connector(struct drm_device *dev) |
155 | { | 163 | { |
164 | struct radeon_device *rdev = dev->dev_private; | ||
156 | struct drm_connector *connector; | 165 | struct drm_connector *connector; |
157 | struct radeon_connector *radeon_connector; | 166 | struct radeon_connector *radeon_connector; |
158 | struct drm_encoder *encoder; | 167 | struct drm_encoder *encoder; |
@@ -163,8 +172,16 @@ radeon_link_encoder_connector(struct drm_device *dev) | |||
163 | radeon_connector = to_radeon_connector(connector); | 172 | radeon_connector = to_radeon_connector(connector); |
164 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { | 173 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { |
165 | radeon_encoder = to_radeon_encoder(encoder); | 174 | radeon_encoder = to_radeon_encoder(encoder); |
166 | if (radeon_encoder->devices & radeon_connector->devices) | 175 | if (radeon_encoder->devices & radeon_connector->devices) { |
167 | drm_mode_connector_attach_encoder(connector, encoder); | 176 | drm_mode_connector_attach_encoder(connector, encoder); |
177 | if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) { | ||
178 | if (rdev->is_atom_bios) | ||
179 | radeon_atom_backlight_init(radeon_encoder, connector); | ||
180 | else | ||
181 | radeon_legacy_backlight_init(radeon_encoder, connector); | ||
182 | rdev->mode_info.bl_encoder = radeon_encoder; | ||
183 | } | ||
184 | } | ||
168 | } | 185 | } |
169 | } | 186 | } |
170 | } | 187 | } |