/* * The core can pass us a set of gamma values to program. We actually only * use this for 8-bit mode so can't perform smooth fades on deeper modes, * but it's a requirement that we provide the function */ static int cirrus_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green, u16 *blue, uint32_t size, struct drm_modeset_acquire_ctx *ctx) { cirrus_crtc_load_lut(crtc); return 0; }
/* * The core can pass us a set of gamma values to program. We actually only * use this for 8-bit mode so can't perform smooth fades on deeper modes, * but it's a requirement that we provide the function */ static void cirrus_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green, u16 *blue, uint32_t start, uint32_t size) { struct cirrus_crtc *cirrus_crtc = to_cirrus_crtc(crtc); int i; if (size != CIRRUS_LUT_SIZE) return; for (i = 0; i < CIRRUS_LUT_SIZE; i++) { cirrus_crtc->lut_r[i] = red[i]; cirrus_crtc->lut_g[i] = green[i]; cirrus_crtc->lut_b[i] = blue[i]; } cirrus_crtc_load_lut(crtc); }
/* * This is called after a mode is programmed. It should reverse anything done * by the prepare function */ static void cirrus_crtc_commit(struct drm_crtc *crtc) { cirrus_crtc_load_lut(crtc); }