diff options
| author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-04-22 10:08:40 -0700 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-04-22 10:08:40 -0700 |
| commit | 3eb9992caff10b62cf0ed0bcb1667a58b13188fa (patch) | |
| tree | abe4b4b586978773e2df21898eda611bc6eb822c /drivers/gpu/drm/omapdrm/omap_plane.c | |
| parent | e347fa5f4271769bc31fb462631c213aa3824588 (diff) | |
| parent | a798c10faf62a505d24e5f6213fbaf904a39623f (diff) | |
| download | linux-3eb9992caff10b62cf0ed0bcb1667a58b13188fa.tar.gz linux-3eb9992caff10b62cf0ed0bcb1667a58b13188fa.tar.bz2 linux-3eb9992caff10b62cf0ed0bcb1667a58b13188fa.zip | |
Merge 3.15-rc2 into staging-next
This resolves a bunch of merge errors with other fixes that are already
in Linus's tree.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_plane.c')
| -rw-r--r-- | drivers/gpu/drm/omapdrm/omap_plane.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c index 046d5e660c04..3cf31ee59aac 100644 --- a/drivers/gpu/drm/omapdrm/omap_plane.c +++ b/drivers/gpu/drm/omapdrm/omap_plane.c @@ -225,6 +225,11 @@ int omap_plane_mode_set(struct drm_plane *plane, omap_plane->apply_done_cb.arg = arg; } + if (plane->fb) + drm_framebuffer_unreference(plane->fb); + + drm_framebuffer_reference(fb); + plane->fb = fb; plane->crtc = crtc; @@ -241,10 +246,13 @@ static int omap_plane_update(struct drm_plane *plane, struct omap_plane *omap_plane = to_omap_plane(plane); omap_plane->enabled = true; - if (plane->fb) - drm_framebuffer_unreference(plane->fb); - - drm_framebuffer_reference(fb); + /* omap_plane_mode_set() takes adjusted src */ + switch (omap_plane->win.rotation & 0xf) { + case BIT(DRM_ROTATE_90): + case BIT(DRM_ROTATE_270): + swap(src_w, src_h); + break; + } return omap_plane_mode_set(plane, crtc, fb, crtc_x, crtc_y, crtc_w, crtc_h, |
