158,10 → 158,43 |
return ret; |
} |
|
static void radeon_encoder_add_backlight(struct radeon_encoder *radeon_encoder, |
struct drm_connector *connector) |
{ |
struct drm_device *dev = radeon_encoder->base.dev; |
struct radeon_device *rdev = dev->dev_private; |
bool use_bl = false; |
|
if (!(radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT))) |
return; |
|
if (radeon_backlight == 0) { |
return; |
} else if (radeon_backlight == 1) { |
use_bl = true; |
} else if (radeon_backlight == -1) { |
/* Quirks */ |
/* Amilo Xi 2550 only works with acpi bl */ |
if ((rdev->pdev->device == 0x9583) && |
(rdev->pdev->subsystem_vendor == 0x1734) && |
(rdev->pdev->subsystem_device == 0x1107)) |
use_bl = false; |
else |
use_bl = true; |
} |
|
if (use_bl) { |
if (rdev->is_atom_bios) |
radeon_atom_backlight_init(radeon_encoder, connector); |
else |
radeon_legacy_backlight_init(radeon_encoder, connector); |
rdev->mode_info.bl_encoder = radeon_encoder; |
} |
} |
|
void |
radeon_link_encoder_connector(struct drm_device *dev) |
{ |
struct radeon_device *rdev = dev->dev_private; |
struct drm_connector *connector; |
struct radeon_connector *radeon_connector; |
struct drm_encoder *encoder; |
174,17 → 207,12 |
radeon_encoder = to_radeon_encoder(encoder); |
if (radeon_encoder->devices & radeon_connector->devices) { |
drm_mode_connector_attach_encoder(connector, encoder); |
if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) { |
if (rdev->is_atom_bios) |
radeon_atom_backlight_init(radeon_encoder, connector); |
else |
radeon_legacy_backlight_init(radeon_encoder, connector); |
rdev->mode_info.bl_encoder = radeon_encoder; |
if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) |
radeon_encoder_add_backlight(radeon_encoder, connector); |
} |
} |
} |
} |
} |
|
void radeon_encoder_set_active_device(struct drm_encoder *encoder) |
{ |