diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2012-07-26 11:05:22 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2012-09-20 13:10:34 -0400 |
commit | 910308802c528f8afe864b694d5456fedd0bb18f (patch) | |
tree | e957691745999c6192e5caffc3558ab45179ffe8 /drivers | |
parent | af7912e57316caa1b705f06b03592cec0737cb36 (diff) |
drm/radeon: rework legacy backlight control
To better enable sharing with atom backlight control.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_legacy_encoders.c | 19 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_mode.h | 11 |
2 files changed, 17 insertions, 13 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c index 670e9910f869..9910fe494744 100644 --- a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c +++ b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c | |||
@@ -271,13 +271,6 @@ static const struct drm_encoder_helper_funcs radeon_legacy_lvds_helper_funcs = { | |||
271 | 271 | ||
272 | #if defined(CONFIG_BACKLIGHT_CLASS_DEVICE) || defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE) | 272 | #if defined(CONFIG_BACKLIGHT_CLASS_DEVICE) || defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE) |
273 | 273 | ||
274 | #define MAX_RADEON_LEVEL 0xFF | ||
275 | |||
276 | struct radeon_backlight_privdata { | ||
277 | struct radeon_encoder *encoder; | ||
278 | uint8_t negative; | ||
279 | }; | ||
280 | |||
281 | static uint8_t radeon_legacy_lvds_level(struct backlight_device *bd) | 274 | static uint8_t radeon_legacy_lvds_level(struct backlight_device *bd) |
282 | { | 275 | { |
283 | struct radeon_backlight_privdata *pdata = bl_get_data(bd); | 276 | struct radeon_backlight_privdata *pdata = bl_get_data(bd); |
@@ -286,13 +279,13 @@ static uint8_t radeon_legacy_lvds_level(struct backlight_device *bd) | |||
286 | /* Convert brightness to hardware level */ | 279 | /* Convert brightness to hardware level */ |
287 | if (bd->props.brightness < 0) | 280 | if (bd->props.brightness < 0) |
288 | level = 0; | 281 | level = 0; |
289 | else if (bd->props.brightness > MAX_RADEON_LEVEL) | 282 | else if (bd->props.brightness > RADEON_MAX_BL_LEVEL) |
290 | level = MAX_RADEON_LEVEL; | 283 | level = RADEON_MAX_BL_LEVEL; |
291 | else | 284 | else |
292 | level = bd->props.brightness; | 285 | level = bd->props.brightness; |
293 | 286 | ||
294 | if (pdata->negative) | 287 | if (pdata->negative) |
295 | level = MAX_RADEON_LEVEL - level; | 288 | level = RADEON_MAX_BL_LEVEL - level; |
296 | 289 | ||
297 | return level; | 290 | return level; |
298 | } | 291 | } |
@@ -336,7 +329,7 @@ static int radeon_legacy_backlight_get_brightness(struct backlight_device *bd) | |||
336 | backlight_level = (RREG32(RADEON_LVDS_GEN_CNTL) >> | 329 | backlight_level = (RREG32(RADEON_LVDS_GEN_CNTL) >> |
337 | RADEON_LVDS_BL_MOD_LEVEL_SHIFT) & 0xff; | 330 | RADEON_LVDS_BL_MOD_LEVEL_SHIFT) & 0xff; |
338 | 331 | ||
339 | return pdata->negative ? MAX_RADEON_LEVEL - backlight_level : backlight_level; | 332 | return pdata->negative ? RADEON_MAX_BL_LEVEL - backlight_level : backlight_level; |
340 | } | 333 | } |
341 | 334 | ||
342 | static const struct backlight_ops radeon_backlight_ops = { | 335 | static const struct backlight_ops radeon_backlight_ops = { |
@@ -370,7 +363,7 @@ void radeon_legacy_backlight_init(struct radeon_encoder *radeon_encoder, | |||
370 | } | 363 | } |
371 | 364 | ||
372 | memset(&props, 0, sizeof(props)); | 365 | memset(&props, 0, sizeof(props)); |
373 | props.max_brightness = MAX_RADEON_LEVEL; | 366 | props.max_brightness = RADEON_MAX_BL_LEVEL; |
374 | props.type = BACKLIGHT_RAW; | 367 | props.type = BACKLIGHT_RAW; |
375 | bd = backlight_device_register("radeon_bl", &drm_connector->kdev, | 368 | bd = backlight_device_register("radeon_bl", &drm_connector->kdev, |
376 | pdata, &radeon_backlight_ops, &props); | 369 | pdata, &radeon_backlight_ops, &props); |
@@ -449,7 +442,7 @@ static void radeon_legacy_backlight_exit(struct radeon_encoder *radeon_encoder) | |||
449 | } | 442 | } |
450 | 443 | ||
451 | if (bd) { | 444 | if (bd) { |
452 | struct radeon_legacy_backlight_privdata *pdata; | 445 | struct radeon_backlight_privdata *pdata; |
453 | 446 | ||
454 | pdata = bl_get_data(bd); | 447 | pdata = bl_get_data(bd); |
455 | backlight_device_unregister(bd); | 448 | backlight_device_unregister(bd); |
diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h index 806140d32b5d..5005057974b1 100644 --- a/drivers/gpu/drm/radeon/radeon_mode.h +++ b/drivers/gpu/drm/radeon/radeon_mode.h | |||
@@ -256,6 +256,17 @@ struct radeon_mode_info { | |||
256 | u16 firmware_flags; | 256 | u16 firmware_flags; |
257 | }; | 257 | }; |
258 | 258 | ||
259 | #if defined(CONFIG_BACKLIGHT_CLASS_DEVICE) || defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE) | ||
260 | |||
261 | #define RADEON_MAX_BL_LEVEL 0xFF | ||
262 | |||
263 | struct radeon_backlight_privdata { | ||
264 | struct radeon_encoder *encoder; | ||
265 | uint8_t negative; | ||
266 | }; | ||
267 | |||
268 | #endif | ||
269 | |||
259 | #define MAX_H_CODE_TIMING_LEN 32 | 270 | #define MAX_H_CODE_TIMING_LEN 32 |
260 | #define MAX_V_CODE_TIMING_LEN 32 | 271 | #define MAX_V_CODE_TIMING_LEN 32 |
261 | 272 | ||