mirror of
https://github.com/torvalds/linux.git
synced 2024-11-19 18:41:48 +00:00
drm/radeon: rework legacy backlight control
To better enable sharing with atom backlight control. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
af7912e573
commit
910308802c
@ -271,13 +271,6 @@ static const struct drm_encoder_helper_funcs radeon_legacy_lvds_helper_funcs = {
|
||||
|
||||
#if defined(CONFIG_BACKLIGHT_CLASS_DEVICE) || defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE)
|
||||
|
||||
#define MAX_RADEON_LEVEL 0xFF
|
||||
|
||||
struct radeon_backlight_privdata {
|
||||
struct radeon_encoder *encoder;
|
||||
uint8_t negative;
|
||||
};
|
||||
|
||||
static uint8_t radeon_legacy_lvds_level(struct backlight_device *bd)
|
||||
{
|
||||
struct radeon_backlight_privdata *pdata = bl_get_data(bd);
|
||||
@ -286,13 +279,13 @@ static uint8_t radeon_legacy_lvds_level(struct backlight_device *bd)
|
||||
/* Convert brightness to hardware level */
|
||||
if (bd->props.brightness < 0)
|
||||
level = 0;
|
||||
else if (bd->props.brightness > MAX_RADEON_LEVEL)
|
||||
level = MAX_RADEON_LEVEL;
|
||||
else if (bd->props.brightness > RADEON_MAX_BL_LEVEL)
|
||||
level = RADEON_MAX_BL_LEVEL;
|
||||
else
|
||||
level = bd->props.brightness;
|
||||
|
||||
if (pdata->negative)
|
||||
level = MAX_RADEON_LEVEL - level;
|
||||
level = RADEON_MAX_BL_LEVEL - level;
|
||||
|
||||
return level;
|
||||
}
|
||||
@ -336,7 +329,7 @@ static int radeon_legacy_backlight_get_brightness(struct backlight_device *bd)
|
||||
backlight_level = (RREG32(RADEON_LVDS_GEN_CNTL) >>
|
||||
RADEON_LVDS_BL_MOD_LEVEL_SHIFT) & 0xff;
|
||||
|
||||
return pdata->negative ? MAX_RADEON_LEVEL - backlight_level : backlight_level;
|
||||
return pdata->negative ? RADEON_MAX_BL_LEVEL - backlight_level : backlight_level;
|
||||
}
|
||||
|
||||
static const struct backlight_ops radeon_backlight_ops = {
|
||||
@ -370,7 +363,7 @@ void radeon_legacy_backlight_init(struct radeon_encoder *radeon_encoder,
|
||||
}
|
||||
|
||||
memset(&props, 0, sizeof(props));
|
||||
props.max_brightness = MAX_RADEON_LEVEL;
|
||||
props.max_brightness = RADEON_MAX_BL_LEVEL;
|
||||
props.type = BACKLIGHT_RAW;
|
||||
bd = backlight_device_register("radeon_bl", &drm_connector->kdev,
|
||||
pdata, &radeon_backlight_ops, &props);
|
||||
@ -449,7 +442,7 @@ static void radeon_legacy_backlight_exit(struct radeon_encoder *radeon_encoder)
|
||||
}
|
||||
|
||||
if (bd) {
|
||||
struct radeon_legacy_backlight_privdata *pdata;
|
||||
struct radeon_backlight_privdata *pdata;
|
||||
|
||||
pdata = bl_get_data(bd);
|
||||
backlight_device_unregister(bd);
|
||||
|
@ -256,6 +256,17 @@ struct radeon_mode_info {
|
||||
u16 firmware_flags;
|
||||
};
|
||||
|
||||
#if defined(CONFIG_BACKLIGHT_CLASS_DEVICE) || defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE)
|
||||
|
||||
#define RADEON_MAX_BL_LEVEL 0xFF
|
||||
|
||||
struct radeon_backlight_privdata {
|
||||
struct radeon_encoder *encoder;
|
||||
uint8_t negative;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#define MAX_H_CODE_TIMING_LEN 32
|
||||
#define MAX_V_CODE_TIMING_LEN 32
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user