aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/udl
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/udl')
-rw-r--r--drivers/gpu/drm/udl/udl_connector.c3
-rw-r--r--drivers/gpu/drm/udl/udl_encoder.c2
-rw-r--r--drivers/gpu/drm/udl/udl_fb.c26
-rw-r--r--drivers/gpu/drm/udl/udl_gem.c7
-rw-r--r--drivers/gpu/drm/udl/udl_main.c7
-rw-r--r--drivers/gpu/drm/udl/udl_modeset.c2
-rw-r--r--drivers/gpu/drm/udl/udl_transfer.c8
7 files changed, 30 insertions, 25 deletions
diff --git a/drivers/gpu/drm/udl/udl_connector.c b/drivers/gpu/drm/udl/udl_connector.c
index 8d9dc44f1f94..d568aa4b10d1 100644
--- a/drivers/gpu/drm/udl/udl_connector.c
+++ b/drivers/gpu/drm/udl/udl_connector.c
@@ -57,11 +57,8 @@ static int udl_get_modes(struct drm_connector *connector)
57 57
58 edid = (struct edid *)udl_get_edid(udl); 58 edid = (struct edid *)udl_get_edid(udl);
59 59
60 connector->display_info.raw_edid = (char *)edid;
61
62 drm_mode_connector_update_edid_property(connector, edid); 60 drm_mode_connector_update_edid_property(connector, edid);
63 ret = drm_add_edid_modes(connector, edid); 61 ret = drm_add_edid_modes(connector, edid);
64 connector->display_info.raw_edid = NULL;
65 kfree(edid); 62 kfree(edid);
66 return ret; 63 return ret;
67} 64}
diff --git a/drivers/gpu/drm/udl/udl_encoder.c b/drivers/gpu/drm/udl/udl_encoder.c
index 0731ab2e6c06..0476bfe06d14 100644
--- a/drivers/gpu/drm/udl/udl_encoder.c
+++ b/drivers/gpu/drm/udl/udl_encoder.c
@@ -16,7 +16,7 @@
16#include "udl_drv.h" 16#include "udl_drv.h"
17 17
18/* dummy encoder */ 18/* dummy encoder */
19void udl_enc_destroy(struct drm_encoder *encoder) 19static void udl_enc_destroy(struct drm_encoder *encoder)
20{ 20{
21 drm_encoder_cleanup(encoder); 21 drm_encoder_cleanup(encoder);
22 kfree(encoder); 22 kfree(encoder);
diff --git a/drivers/gpu/drm/udl/udl_fb.c b/drivers/gpu/drm/udl/udl_fb.c
index ce9a61179925..0e47e9614b78 100644
--- a/drivers/gpu/drm/udl/udl_fb.c
+++ b/drivers/gpu/drm/udl/udl_fb.c
@@ -13,6 +13,7 @@
13#include <linux/module.h> 13#include <linux/module.h>
14#include <linux/slab.h> 14#include <linux/slab.h>
15#include <linux/fb.h> 15#include <linux/fb.h>
16#include <linux/dma-buf.h>
16 17
17#include "drmP.h" 18#include "drmP.h"
18#include "drm.h" 19#include "drm.h"
@@ -356,12 +357,12 @@ static struct fb_ops udlfb_ops = {
356 .fb_release = udl_fb_release, 357 .fb_release = udl_fb_release,
357}; 358};
358 359
359void udl_crtc_fb_gamma_set(struct drm_crtc *crtc, u16 red, u16 green, 360static void udl_crtc_fb_gamma_set(struct drm_crtc *crtc, u16 red, u16 green,
360 u16 blue, int regno) 361 u16 blue, int regno)
361{ 362{
362} 363}
363 364
364void udl_crtc_fb_gamma_get(struct drm_crtc *crtc, u16 *red, u16 *green, 365static void udl_crtc_fb_gamma_get(struct drm_crtc *crtc, u16 *red, u16 *green,
365 u16 *blue, int regno) 366 u16 *blue, int regno)
366{ 367{
367 *red = 0; 368 *red = 0;
@@ -377,16 +378,33 @@ static int udl_user_framebuffer_dirty(struct drm_framebuffer *fb,
377{ 378{
378 struct udl_framebuffer *ufb = to_udl_fb(fb); 379 struct udl_framebuffer *ufb = to_udl_fb(fb);
379 int i; 380 int i;
381 int ret = 0;
380 382
381 if (!ufb->active_16) 383 if (!ufb->active_16)
382 return 0; 384 return 0;
383 385
386 if (ufb->obj->base.import_attach) {
387 ret = dma_buf_begin_cpu_access(ufb->obj->base.import_attach->dmabuf,
388 0, ufb->obj->base.size,
389 DMA_FROM_DEVICE);
390 if (ret)
391 return ret;
392 }
393
384 for (i = 0; i < num_clips; i++) { 394 for (i = 0; i < num_clips; i++) {
385 udl_handle_damage(ufb, clips[i].x1, clips[i].y1, 395 ret = udl_handle_damage(ufb, clips[i].x1, clips[i].y1,
386 clips[i].x2 - clips[i].x1, 396 clips[i].x2 - clips[i].x1,
387 clips[i].y2 - clips[i].y1); 397 clips[i].y2 - clips[i].y1);
398 if (ret)
399 break;
388 } 400 }
389 return 0; 401
402 if (ufb->obj->base.import_attach) {
403 dma_buf_end_cpu_access(ufb->obj->base.import_attach->dmabuf,
404 0, ufb->obj->base.size,
405 DMA_FROM_DEVICE);
406 }
407 return ret;
390} 408}
391 409
392static void udl_user_framebuffer_destroy(struct drm_framebuffer *fb) 410static void udl_user_framebuffer_destroy(struct drm_framebuffer *fb)
diff --git a/drivers/gpu/drm/udl/udl_gem.c b/drivers/gpu/drm/udl/udl_gem.c
index 291ecc145585..47b256375831 100644
--- a/drivers/gpu/drm/udl/udl_gem.c
+++ b/drivers/gpu/drm/udl/udl_gem.c
@@ -181,11 +181,6 @@ int udl_gem_vmap(struct udl_gem_object *obj)
181 int ret; 181 int ret;
182 182
183 if (obj->base.import_attach) { 183 if (obj->base.import_attach) {
184 ret = dma_buf_begin_cpu_access(obj->base.import_attach->dmabuf,
185 0, obj->base.size, DMA_BIDIRECTIONAL);
186 if (ret)
187 return -EINVAL;
188
189 obj->vmapping = dma_buf_vmap(obj->base.import_attach->dmabuf); 184 obj->vmapping = dma_buf_vmap(obj->base.import_attach->dmabuf);
190 if (!obj->vmapping) 185 if (!obj->vmapping)
191 return -ENOMEM; 186 return -ENOMEM;
@@ -206,8 +201,6 @@ void udl_gem_vunmap(struct udl_gem_object *obj)
206{ 201{
207 if (obj->base.import_attach) { 202 if (obj->base.import_attach) {
208 dma_buf_vunmap(obj->base.import_attach->dmabuf, obj->vmapping); 203 dma_buf_vunmap(obj->base.import_attach->dmabuf, obj->vmapping);
209 dma_buf_end_cpu_access(obj->base.import_attach->dmabuf, 0,
210 obj->base.size, DMA_BIDIRECTIONAL);
211 return; 204 return;
212 } 205 }
213 206
diff --git a/drivers/gpu/drm/udl/udl_main.c b/drivers/gpu/drm/udl/udl_main.c
index 4c2d836a0893..40bf468c46c2 100644
--- a/drivers/gpu/drm/udl/udl_main.c
+++ b/drivers/gpu/drm/udl/udl_main.c
@@ -41,11 +41,8 @@ static int udl_parse_vendor_descriptor(struct drm_device *dev,
41 total_len = usb_get_descriptor(usbdev, 0x5f, /* vendor specific */ 41 total_len = usb_get_descriptor(usbdev, 0x5f, /* vendor specific */
42 0, desc, MAX_VENDOR_DESCRIPTOR_SIZE); 42 0, desc, MAX_VENDOR_DESCRIPTOR_SIZE);
43 if (total_len > 5) { 43 if (total_len > 5) {
44 DRM_INFO("vendor descriptor length:%x data:%02x %02x %02x %02x" \ 44 DRM_INFO("vendor descriptor length:%x data:%*ph\n",
45 "%02x %02x %02x %02x %02x %02x %02x\n", 45 total_len, 11, desc);
46 total_len, desc[0],
47 desc[1], desc[2], desc[3], desc[4], desc[5], desc[6],
48 desc[7], desc[8], desc[9], desc[10]);
49 46
50 if ((desc[0] != total_len) || /* descriptor length */ 47 if ((desc[0] != total_len) || /* descriptor length */
51 (desc[1] != 0x5f) || /* vendor descriptor type */ 48 (desc[1] != 0x5f) || /* vendor descriptor type */
diff --git a/drivers/gpu/drm/udl/udl_modeset.c b/drivers/gpu/drm/udl/udl_modeset.c
index 9159d48d1dfd..8f258158c1fe 100644
--- a/drivers/gpu/drm/udl/udl_modeset.c
+++ b/drivers/gpu/drm/udl/udl_modeset.c
@@ -391,7 +391,7 @@ static const struct drm_crtc_funcs udl_crtc_funcs = {
391 .destroy = udl_crtc_destroy, 391 .destroy = udl_crtc_destroy,
392}; 392};
393 393
394int udl_crtc_init(struct drm_device *dev) 394static int udl_crtc_init(struct drm_device *dev)
395{ 395{
396 struct drm_crtc *crtc; 396 struct drm_crtc *crtc;
397 397
diff --git a/drivers/gpu/drm/udl/udl_transfer.c b/drivers/gpu/drm/udl/udl_transfer.c
index b9320e2608dd..f9fff657a90b 100644
--- a/drivers/gpu/drm/udl/udl_transfer.c
+++ b/drivers/gpu/drm/udl/udl_transfer.c
@@ -126,10 +126,10 @@ static void udl_compress_hline16(
126 126
127 while ((pixel_end > pixel) && 127 while ((pixel_end > pixel) &&
128 (cmd_buffer_end - MIN_RLX_CMD_BYTES > cmd)) { 128 (cmd_buffer_end - MIN_RLX_CMD_BYTES > cmd)) {
129 uint8_t *raw_pixels_count_byte = 0; 129 uint8_t *raw_pixels_count_byte = NULL;
130 uint8_t *cmd_pixels_count_byte = 0; 130 uint8_t *cmd_pixels_count_byte = NULL;
131 const u8 *raw_pixel_start = 0; 131 const u8 *raw_pixel_start = NULL;
132 const u8 *cmd_pixel_start, *cmd_pixel_end = 0; 132 const u8 *cmd_pixel_start, *cmd_pixel_end = NULL;
133 133
134 prefetchw((void *) cmd); /* pull in one cache line at least */ 134 prefetchw((void *) cmd); /* pull in one cache line at least */
135 135