drm/radeon: rework the backlight control to be an asic callback

This cleans up the interface a bit as well.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
diff --git a/drivers/gpu/drm/radeon/radeon_acpi.c b/drivers/gpu/drm/radeon/radeon_acpi.c
index cae895b..c3976eb 100644
--- a/drivers/gpu/drm/radeon/radeon_acpi.c
+++ b/drivers/gpu/drm/radeon/radeon_acpi.c
@@ -364,19 +364,23 @@
 	DRM_DEBUG_DRIVER("ATIF: %d pending SBIOS requests\n", count);
 
 	if (req.pending & ATIF_PANEL_BRIGHTNESS_CHANGE_REQUEST) {
-		struct radeon_encoder *enc = atif->backlight_ctl;
+		struct radeon_encoder *enc = atif->encoder_for_bl;
 
 		if (enc) {
-			struct radeon_encoder_atom_dig *dig = enc->enc_priv;
-			dig->backlight_level = req.backlight_level;
-
 			DRM_DEBUG_DRIVER("Changing brightness to %d\n",
 					req.backlight_level);
 
-			atombios_set_panel_brightness(enc);
+			radeon_set_backlight_level(rdev, enc, req.backlight_level);
 
-			backlight_force_update(dig->bl_dev,
-					BACKLIGHT_UPDATE_HOTKEY);
+			if (rdev->is_atom_bios) {
+				struct radeon_encoder_atom_dig *dig = enc->enc_priv;
+				backlight_force_update(dig->bl_dev,
+						       BACKLIGHT_UPDATE_HOTKEY);
+			} else {
+				struct radeon_encoder_lvds *dig = enc->enc_priv;
+				backlight_force_update(dig->bl_dev,
+						       BACKLIGHT_UPDATE_HOTKEY);
+			}
 		}
 	}
 	/* TODO: check other events */
@@ -577,16 +581,26 @@
 		list_for_each_entry(tmp, &rdev->ddev->mode_config.encoder_list,
 				head) {
 			struct radeon_encoder *enc = to_radeon_encoder(tmp);
-			struct radeon_encoder_atom_dig *dig = enc->enc_priv;
 
 			if ((enc->devices & (ATOM_DEVICE_LCD_SUPPORT)) &&
-					dig->bl_dev != NULL) {
-				target = enc;
-				break;
+			    enc->enc_priv) {
+				if (rdev->is_atom_bios) {
+					struct radeon_encoder_atom_dig *dig = enc->enc_priv;
+					if (dig->bl_dev) {
+						target = enc;
+						break;
+					}
+				} else {
+					struct radeon_encoder_lvds *dig = enc->enc_priv;
+					if (dig->bl_dev) {
+						target = enc;
+						break;
+					}
+				}
 			}
 		}
 
-		atif->backlight_ctl = target;
+		atif->encoder_for_bl = target;
 		if (!target) {
 			/* Brightness change notification is enabled, but we
 			 * didn't find a backlight controller, this should