projects
/
GitHub
/
LineageOS
/
android_kernel_samsung_universal7580.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
drm: Make the CRTC gamma_set operation optional
[GitHub/LineageOS/android_kernel_samsung_universal7580.git]
/
drivers
/
gpu
/
drm
/
drm_crtc.c
diff --git
a/drivers/gpu/drm/drm_crtc.c
b/drivers/gpu/drm/drm_crtc.c
index a177d0abb8bbcaa0e29f62d257a2ec187999a758..6cb47d9f0ca2603de2d3af1f859419d65151ef1c 100644
(file)
--- a/
drivers/gpu/drm/drm_crtc.c
+++ b/
drivers/gpu/drm/drm_crtc.c
@@
-363,7
+363,7
@@
EXPORT_SYMBOL(drm_framebuffer_cleanup);
* @funcs: callbacks for the new CRTC
*
* LOCKING:
* @funcs: callbacks for the new CRTC
*
* LOCKING:
- *
Caller must hold mode
config lock.
+ *
Takes mode_
config lock.
*
* Inits a new object created as base part of an driver crtc object.
*
*
* Inits a new object created as base part of an driver crtc object.
*
@@
-1829,7
+1829,7
@@
int drm_mode_setcrtc(struct drm_device *dev, void *data,
struct drm_display_mode *mode = NULL;
struct drm_mode_set set;
uint32_t __user *set_connectors_ptr;
struct drm_display_mode *mode = NULL;
struct drm_mode_set set;
uint32_t __user *set_connectors_ptr;
- int ret
= 0
;
+ int ret;
int i;
if (!drm_core_check_feature(dev, DRIVER_MODESET))
int i;
if (!drm_core_check_feature(dev, DRIVER_MODESET))
@@
-2248,7
+2248,7
@@
int drm_mode_addfb2(struct drm_device *dev,
struct drm_mode_fb_cmd2 *r = data;
struct drm_mode_config *config = &dev->mode_config;
struct drm_framebuffer *fb;
struct drm_mode_fb_cmd2 *r = data;
struct drm_mode_config *config = &dev->mode_config;
struct drm_framebuffer *fb;
- int ret
= 0
;
+ int ret;
if (!drm_core_check_feature(dev, DRIVER_MODESET))
return -EINVAL;
if (!drm_core_check_feature(dev, DRIVER_MODESET))
return -EINVAL;
@@
-2403,7
+2403,7
@@
int drm_mode_dirtyfb_ioctl(struct drm_device *dev,
struct drm_framebuffer *fb;
unsigned flags;
int num_clips;
struct drm_framebuffer *fb;
unsigned flags;
int num_clips;
- int ret
= 0
;
+ int ret;
if (!drm_core_check_feature(dev, DRIVER_MODESET))
return -EINVAL;
if (!drm_core_check_feature(dev, DRIVER_MODESET))
return -EINVAL;
@@
-2602,7
+2602,7
@@
int drm_mode_attachmode_ioctl(struct drm_device *dev,
struct drm_display_mode *mode;
struct drm_mode_object *obj;
struct drm_mode_modeinfo *umode = &mode_cmd->mode;
struct drm_display_mode *mode;
struct drm_mode_object *obj;
struct drm_mode_modeinfo *umode = &mode_cmd->mode;
- int ret
= 0
;
+ int ret;
if (!drm_core_check_feature(dev, DRIVER_MODESET))
return -EINVAL;
if (!drm_core_check_feature(dev, DRIVER_MODESET))
return -EINVAL;
@@
-2656,7
+2656,7
@@
int drm_mode_detachmode_ioctl(struct drm_device *dev,
struct drm_connector *connector;
struct drm_display_mode mode;
struct drm_mode_modeinfo *umode = &mode_cmd->mode;
struct drm_connector *connector;
struct drm_display_mode mode;
struct drm_mode_modeinfo *umode = &mode_cmd->mode;
- int ret
= 0
;
+ int ret;
if (!drm_core_check_feature(dev, DRIVER_MODESET))
return -EINVAL;
if (!drm_core_check_feature(dev, DRIVER_MODESET))
return -EINVAL;
@@
-3065,7
+3065,7
@@
int drm_mode_connector_update_edid_property(struct drm_connector *connector,
struct edid *edid)
{
struct drm_device *dev = connector->dev;
struct edid *edid)
{
struct drm_device *dev = connector->dev;
- int ret
= 0
, size;
+ int ret, size;
if (connector->edid_blob_ptr)
drm_property_destroy_blob(dev, connector->edid_blob_ptr);
if (connector->edid_blob_ptr)
drm_property_destroy_blob(dev, connector->edid_blob_ptr);
@@
-3332,6
+3332,11
@@
int drm_mode_gamma_set_ioctl(struct drm_device *dev,
}
crtc = obj_to_crtc(obj);
}
crtc = obj_to_crtc(obj);
+ if (crtc->funcs->gamma_set == NULL) {
+ ret = -ENOSYS;
+ goto out;
+ }
+
/* memcpy into gamma store */
if (crtc_lut->gamma_size != crtc->gamma_size) {
ret = -EINVAL;
/* memcpy into gamma store */
if (crtc_lut->gamma_size != crtc->gamma_size) {
ret = -EINVAL;