int psb_gamma_set(struct drm_device *dev, void *data) { uint16_t * lut_arg = data; // struct drm_mode_object *obj; struct drm_crtc *crtc; struct drm_connector *connector; struct psb_intel_crtc *psb_intel_crtc; struct drm_psb_private *dev_priv = dev->dev_private; int i = 0; // int32_t obj_id; // obj_id = lut_arg->output_id; // obj = drm_mode_object_find(dev, obj_id, DRM_MODE_OBJECT_CONNECTOR); // if (!obj) { // printk(KERN_ERR "Invalid Connector object, id = %d\n", obj_id); // DRM_DEBUG("Invalid Connector object.\n"); // return -EINVAL; // } connector = dev_priv->dpst_connector; //= obj_to_connector(obj); crtc = connector->encoder->crtc; psb_intel_crtc = to_psb_intel_crtc(crtc); for (i = 0; i < 256; i++) { psb_intel_crtc->lut_adj[i] = lut_arg[i]; } psb_intel_crtc_load_lut(crtc); return 0; }
int psb_gamma_set(struct drm_device *dev, void *data) { uint16_t *lut_arg = data; struct drm_crtc *crtc; struct drm_connector *connector; struct psb_intel_crtc *psb_intel_crtc; struct drm_psb_private *dev_priv = dev->dev_private; int i = 0; connector = dev_priv->dpst_lvds_connector; crtc = connector->encoder->crtc; psb_intel_crtc = to_psb_intel_crtc(crtc); for (i = 0; i < 256; i++) psb_intel_crtc->lut_adj[i] = lut_arg[i]; psb_intel_crtc_load_lut(crtc); return 0; }