|
@@ -87,6 +87,8 @@ static ssize_t crc_control_write(struct file *file, const char __user *ubuf,
|
|
struct drm_crtc *crtc = m->private;
|
|
struct drm_crtc *crtc = m->private;
|
|
struct drm_crtc_crc *crc = &crtc->crc;
|
|
struct drm_crtc_crc *crc = &crtc->crc;
|
|
char *source;
|
|
char *source;
|
|
|
|
+ size_t values_cnt;
|
|
|
|
+ int ret;
|
|
|
|
|
|
if (len == 0)
|
|
if (len == 0)
|
|
return 0;
|
|
return 0;
|
|
@@ -104,6 +106,12 @@ static ssize_t crc_control_write(struct file *file, const char __user *ubuf,
|
|
if (source[len] == '\n')
|
|
if (source[len] == '\n')
|
|
source[len] = '\0';
|
|
source[len] = '\0';
|
|
|
|
|
|
|
|
+ if (crtc->funcs->verify_crc_source) {
|
|
|
|
+ ret = crtc->funcs->verify_crc_source(crtc, source, &values_cnt);
|
|
|
|
+ if (ret)
|
|
|
|
+ return ret;
|
|
|
|
+ }
|
|
|
|
+
|
|
spin_lock_irq(&crc->lock);
|
|
spin_lock_irq(&crc->lock);
|
|
|
|
|
|
if (crc->opened) {
|
|
if (crc->opened) {
|