void (*wait_for_vblank)(struct radeon_device *rdev, int crtc);
                /* set backlight level */
                void (*set_backlight_level)(struct radeon_encoder *radeon_encoder, u8 level);
+               /* get backlight level */
+               u8 (*get_backlight_level)(struct radeon_encoder *radeon_encoder);
        } display;
        /* copy functions for bo handling */
        struct {
 #define radeon_irq_process(rdev) (rdev)->asic->irq.process((rdev))
 #define radeon_get_vblank_counter(rdev, crtc) (rdev)->asic->display.get_vblank_counter((rdev), (crtc))
 #define radeon_set_backlight_level(rdev, e, l) (rdev)->asic->display.set_backlight_level((e), (l))
+#define radeon_get_backlight_level(rdev, e) (rdev)->asic->display.get_backlight_level((e))
 #define radeon_fence_ring_emit(rdev, r, fence) (rdev)->asic->ring[(r)].emit_fence((rdev), (fence))
 #define radeon_semaphore_ring_emit(rdev, r, cp, semaphore, emit_wait) (rdev)->asic->ring[(r)].emit_semaphore((rdev), (cp), (semaphore), (emit_wait))
 #define radeon_copy_blit(rdev, s, d, np, f) (rdev)->asic->copy.blit((rdev), (s), (d), (np), (f))
 
                .get_vblank_counter = &r100_get_vblank_counter,
                .wait_for_vblank = &r100_wait_for_vblank,
                .set_backlight_level = &radeon_legacy_set_backlight_level,
+               .get_backlight_level = &radeon_legacy_get_backlight_level,
        },
        .copy = {
                .blit = &r100_copy_blit,
                .get_vblank_counter = &r100_get_vblank_counter,
                .wait_for_vblank = &r100_wait_for_vblank,
                .set_backlight_level = &radeon_legacy_set_backlight_level,
+               .get_backlight_level = &radeon_legacy_get_backlight_level,
        },
        .copy = {
                .blit = &r100_copy_blit,
                .get_vblank_counter = &r100_get_vblank_counter,
                .wait_for_vblank = &r100_wait_for_vblank,
                .set_backlight_level = &radeon_legacy_set_backlight_level,
+               .get_backlight_level = &radeon_legacy_get_backlight_level,
        },
        .copy = {
                .blit = &r100_copy_blit,
                .get_vblank_counter = &r100_get_vblank_counter,
                .wait_for_vblank = &r100_wait_for_vblank,
                .set_backlight_level = &radeon_legacy_set_backlight_level,
+               .get_backlight_level = &radeon_legacy_get_backlight_level,
        },
        .copy = {
                .blit = &r100_copy_blit,
                .get_vblank_counter = &r100_get_vblank_counter,
                .wait_for_vblank = &r100_wait_for_vblank,
                .set_backlight_level = &atombios_set_backlight_level,
+               .get_backlight_level = &atombios_get_backlight_level,
        },
        .copy = {
                .blit = &r100_copy_blit,
                .get_vblank_counter = &r100_get_vblank_counter,
                .wait_for_vblank = &r100_wait_for_vblank,
                .set_backlight_level = &radeon_legacy_set_backlight_level,
+               .get_backlight_level = &radeon_legacy_get_backlight_level,
        },
        .copy = {
                .blit = &r100_copy_blit,
                .get_vblank_counter = &rs600_get_vblank_counter,
                .wait_for_vblank = &avivo_wait_for_vblank,
                .set_backlight_level = &atombios_set_backlight_level,
+               .get_backlight_level = &atombios_get_backlight_level,
        },
        .copy = {
                .blit = &r100_copy_blit,
                .bandwidth_update = &rs690_bandwidth_update,
                .wait_for_vblank = &avivo_wait_for_vblank,
                .set_backlight_level = &atombios_set_backlight_level,
+               .get_backlight_level = &atombios_get_backlight_level,
        },
        .copy = {
                .blit = &r100_copy_blit,
                .bandwidth_update = &rv515_bandwidth_update,
                .wait_for_vblank = &avivo_wait_for_vblank,
                .set_backlight_level = &atombios_set_backlight_level,
+               .get_backlight_level = &atombios_get_backlight_level,
        },
        .copy = {
                .blit = &r100_copy_blit,
                .get_vblank_counter = &rs600_get_vblank_counter,
                .wait_for_vblank = &avivo_wait_for_vblank,
                .set_backlight_level = &atombios_set_backlight_level,
+               .get_backlight_level = &atombios_get_backlight_level,
        },
        .copy = {
                .blit = &r100_copy_blit,
                .get_vblank_counter = &rs600_get_vblank_counter,
                .wait_for_vblank = &avivo_wait_for_vblank,
                .set_backlight_level = &atombios_set_backlight_level,
+               .get_backlight_level = &atombios_get_backlight_level,
        },
        .copy = {
                .blit = &r600_copy_blit,
                .get_vblank_counter = &rs600_get_vblank_counter,
                .wait_for_vblank = &avivo_wait_for_vblank,
                .set_backlight_level = &atombios_set_backlight_level,
+               .get_backlight_level = &atombios_get_backlight_level,
        },
        .copy = {
                .blit = &r600_copy_blit,
                .get_vblank_counter = &rs600_get_vblank_counter,
                .wait_for_vblank = &avivo_wait_for_vblank,
                .set_backlight_level = &atombios_set_backlight_level,
+               .get_backlight_level = &atombios_get_backlight_level,
        },
        .copy = {
                .blit = &r600_copy_blit,
                .get_vblank_counter = &evergreen_get_vblank_counter,
                .wait_for_vblank = &dce4_wait_for_vblank,
                .set_backlight_level = &atombios_set_backlight_level,
+               .get_backlight_level = &atombios_get_backlight_level,
        },
        .copy = {
                .blit = &r600_copy_blit,
                .get_vblank_counter = &evergreen_get_vblank_counter,
                .wait_for_vblank = &dce4_wait_for_vblank,
                .set_backlight_level = &atombios_set_backlight_level,
+               .get_backlight_level = &atombios_get_backlight_level,
        },
        .copy = {
                .blit = &r600_copy_blit,
                .get_vblank_counter = &evergreen_get_vblank_counter,
                .wait_for_vblank = &dce4_wait_for_vblank,
                .set_backlight_level = &atombios_set_backlight_level,
+               .get_backlight_level = &atombios_get_backlight_level,
        },
        .copy = {
                .blit = &r600_copy_blit,
                .get_vblank_counter = &evergreen_get_vblank_counter,
                .wait_for_vblank = &dce4_wait_for_vblank,
                .set_backlight_level = &atombios_set_backlight_level,
+               .get_backlight_level = &atombios_get_backlight_level,
        },
        .copy = {
                .blit = &r600_copy_blit,
                .get_vblank_counter = &evergreen_get_vblank_counter,
                .wait_for_vblank = &dce4_wait_for_vblank,
                .set_backlight_level = &atombios_set_backlight_level,
+               .get_backlight_level = &atombios_get_backlight_level,
        },
        .copy = {
                .blit = &r600_copy_blit,
                .get_vblank_counter = &evergreen_get_vblank_counter,
                .wait_for_vblank = &dce4_wait_for_vblank,
                .set_backlight_level = &atombios_set_backlight_level,
+               .get_backlight_level = &atombios_get_backlight_level,
        },
        .copy = {
                .blit = NULL,