diff options
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_fb.c')
-rw-r--r-- | drivers/gpu/drm/omapdrm/omap_fb.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_fb.c b/drivers/gpu/drm/omapdrm/omap_fb.c index 5fc240f3a67e..444bf92c5252 100644 --- a/drivers/gpu/drm/omapdrm/omap_fb.c +++ b/drivers/gpu/drm/omapdrm/omap_fb.c | |||
@@ -74,7 +74,7 @@ struct plane { | |||
74 | struct drm_gem_object *bo; | 74 | struct drm_gem_object *bo; |
75 | uint32_t pitch; | 75 | uint32_t pitch; |
76 | uint32_t offset; | 76 | uint32_t offset; |
77 | dma_addr_t paddr; | 77 | dma_addr_t dma_addr; |
78 | }; | 78 | }; |
79 | 79 | ||
80 | #define to_omap_framebuffer(x) container_of(x, struct omap_framebuffer, base) | 80 | #define to_omap_framebuffer(x) container_of(x, struct omap_framebuffer, base) |
@@ -85,7 +85,7 @@ struct omap_framebuffer { | |||
85 | const struct drm_format_info *format; | 85 | const struct drm_format_info *format; |
86 | enum omap_color_mode dss_format; | 86 | enum omap_color_mode dss_format; |
87 | struct plane planes[2]; | 87 | struct plane planes[2]; |
88 | /* lock for pinning (pin_count and planes.paddr) */ | 88 | /* lock for pinning (pin_count and planes.dma_addr) */ |
89 | struct mutex lock; | 89 | struct mutex lock; |
90 | }; | 90 | }; |
91 | 91 | ||
@@ -130,7 +130,7 @@ static uint32_t get_linear_addr(struct plane *plane, | |||
130 | + (x * format->cpp[n] / (n == 0 ? 1 : format->hsub)) | 130 | + (x * format->cpp[n] / (n == 0 ? 1 : format->hsub)) |
131 | + (y * plane->pitch / (n == 0 ? 1 : format->vsub)); | 131 | + (y * plane->pitch / (n == 0 ? 1 : format->vsub)); |
132 | 132 | ||
133 | return plane->paddr + offset; | 133 | return plane->dma_addr + offset; |
134 | } | 134 | } |
135 | 135 | ||
136 | bool omap_framebuffer_supports_rotation(struct drm_framebuffer *fb) | 136 | bool omap_framebuffer_supports_rotation(struct drm_framebuffer *fb) |
@@ -201,7 +201,8 @@ void omap_framebuffer_update_scanout(struct drm_framebuffer *fb, | |||
201 | if (orient & MASK_X_INVERT) | 201 | if (orient & MASK_X_INVERT) |
202 | x += w - 1; | 202 | x += w - 1; |
203 | 203 | ||
204 | omap_gem_rotated_paddr(plane->bo, orient, x, y, &info->paddr); | 204 | omap_gem_rotated_dma_addr(plane->bo, orient, x, y, |
205 | &info->paddr); | ||
205 | info->rotation_type = OMAP_DSS_ROT_TILER; | 206 | info->rotation_type = OMAP_DSS_ROT_TILER; |
206 | info->screen_width = omap_gem_tiled_stride(plane->bo, orient); | 207 | info->screen_width = omap_gem_tiled_stride(plane->bo, orient); |
207 | } else { | 208 | } else { |
@@ -232,8 +233,8 @@ void omap_framebuffer_update_scanout(struct drm_framebuffer *fb, | |||
232 | 233 | ||
233 | if (info->rotation_type == OMAP_DSS_ROT_TILER) { | 234 | if (info->rotation_type == OMAP_DSS_ROT_TILER) { |
234 | WARN_ON(!(omap_gem_flags(plane->bo) & OMAP_BO_TILED)); | 235 | WARN_ON(!(omap_gem_flags(plane->bo) & OMAP_BO_TILED)); |
235 | omap_gem_rotated_paddr(plane->bo, orient, | 236 | omap_gem_rotated_dma_addr(plane->bo, orient, x/2, y/2, |
236 | x/2, y/2, &info->p_uv_addr); | 237 | &info->p_uv_addr); |
237 | } else { | 238 | } else { |
238 | info->p_uv_addr = get_linear_addr(plane, format, 1, x, y); | 239 | info->p_uv_addr = get_linear_addr(plane, format, 1, x, y); |
239 | } | 240 | } |
@@ -258,7 +259,7 @@ int omap_framebuffer_pin(struct drm_framebuffer *fb) | |||
258 | 259 | ||
259 | for (i = 0; i < n; i++) { | 260 | for (i = 0; i < n; i++) { |
260 | struct plane *plane = &omap_fb->planes[i]; | 261 | struct plane *plane = &omap_fb->planes[i]; |
261 | ret = omap_gem_get_paddr(plane->bo, &plane->paddr); | 262 | ret = omap_gem_get_paddr(plane->bo, &plane->dma_addr); |
262 | if (ret) | 263 | if (ret) |
263 | goto fail; | 264 | goto fail; |
264 | omap_gem_dma_sync(plane->bo, DMA_TO_DEVICE); | 265 | omap_gem_dma_sync(plane->bo, DMA_TO_DEVICE); |
@@ -274,7 +275,7 @@ fail: | |||
274 | for (i--; i >= 0; i--) { | 275 | for (i--; i >= 0; i--) { |
275 | struct plane *plane = &omap_fb->planes[i]; | 276 | struct plane *plane = &omap_fb->planes[i]; |
276 | omap_gem_put_paddr(plane->bo); | 277 | omap_gem_put_paddr(plane->bo); |
277 | plane->paddr = 0; | 278 | plane->dma_addr = 0; |
278 | } | 279 | } |
279 | 280 | ||
280 | mutex_unlock(&omap_fb->lock); | 281 | mutex_unlock(&omap_fb->lock); |
@@ -300,7 +301,7 @@ void omap_framebuffer_unpin(struct drm_framebuffer *fb) | |||
300 | for (i = 0; i < n; i++) { | 301 | for (i = 0; i < n; i++) { |
301 | struct plane *plane = &omap_fb->planes[i]; | 302 | struct plane *plane = &omap_fb->planes[i]; |
302 | omap_gem_put_paddr(plane->bo); | 303 | omap_gem_put_paddr(plane->bo); |
303 | plane->paddr = 0; | 304 | plane->dma_addr = 0; |
304 | } | 305 | } |
305 | 306 | ||
306 | mutex_unlock(&omap_fb->lock); | 307 | mutex_unlock(&omap_fb->lock); |
@@ -458,7 +459,7 @@ struct drm_framebuffer *omap_framebuffer_init(struct drm_device *dev, | |||
458 | plane->bo = bos[i]; | 459 | plane->bo = bos[i]; |
459 | plane->offset = mode_cmd->offsets[i]; | 460 | plane->offset = mode_cmd->offsets[i]; |
460 | plane->pitch = pitch; | 461 | plane->pitch = pitch; |
461 | plane->paddr = 0; | 462 | plane->dma_addr = 0; |
462 | } | 463 | } |
463 | 464 | ||
464 | drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd); | 465 | drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd); |