|
@@ -161,17 +161,13 @@ void radeon_crtc_fb_gamma_get(struct drm_crtc *crtc, u16 *red, u16 *green,
|
|
|
}
|
|
|
|
|
|
static void radeon_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
|
|
|
- u16 *blue, uint32_t size)
|
|
|
+ u16 *blue, uint32_t start, uint32_t size)
|
|
|
{
|
|
|
struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc);
|
|
|
- int i;
|
|
|
-
|
|
|
- if (size != 256) {
|
|
|
- return;
|
|
|
- }
|
|
|
+ int end = (start + size > 256) ? 256 : start + size, i;
|
|
|
|
|
|
/* userspace palettes are always correct as is */
|
|
|
- for (i = 0; i < 256; i++) {
|
|
|
+ for (i = start; i < end; i++) {
|
|
|
radeon_crtc->lut_r[i] = red[i] >> 6;
|
|
|
radeon_crtc->lut_g[i] = green[i] >> 6;
|
|
|
radeon_crtc->lut_b[i] = blue[i] >> 6;
|