drm/armada: only enable HSMOOTH if scaling horizontally
Only enable the HSMOOTH control bit if we are scaling horizontally, otherwise it makes no sense to enable the horizontal scaler. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
This commit is contained in:
parent
214612f9b7
commit
73c51abd9d
|
@ -583,7 +583,8 @@ static void armada_drm_primary_set(struct drm_crtc *crtc,
|
|||
armada_reg_queue_mod(regs, i, ctrl0, CFG_GRAFORMAT |
|
||||
CFG_GRA_MOD(CFG_SWAPRB | CFG_SWAPUV |
|
||||
CFG_SWAPYU | CFG_YUV2RGB) |
|
||||
CFG_PALETTE_ENA | CFG_GRA_FTOGGLE,
|
||||
CFG_PALETTE_ENA | CFG_GRA_FTOGGLE |
|
||||
CFG_GRA_HSMOOTH | CFG_GRA_ENA,
|
||||
LCD_SPU_DMA_CTRL0);
|
||||
armada_reg_queue_end(regs, i);
|
||||
armada_drm_crtc_update_regs(dcrtc, regs);
|
||||
|
@ -605,7 +606,7 @@ static int armada_drm_crtc_mode_set(struct drm_crtc *crtc,
|
|||
|
||||
interlaced = !!(adj->flags & DRM_MODE_FLAG_INTERLACE);
|
||||
|
||||
val = CFG_GRA_ENA | CFG_GRA_HSMOOTH;
|
||||
val = CFG_GRA_ENA;
|
||||
val |= CFG_GRA_FMT(drm_fb_to_armada_fb(dcrtc->crtc.primary->fb)->fmt);
|
||||
val |= CFG_GRA_MOD(drm_fb_to_armada_fb(dcrtc->crtc.primary->fb)->mod);
|
||||
|
||||
|
|
|
@ -120,11 +120,11 @@ armada_ovl_plane_update(struct drm_plane *plane, struct drm_crtc *crtc,
|
|||
|
||||
ctrl0 = CFG_DMA_FMT(drm_fb_to_armada_fb(fb)->fmt) |
|
||||
CFG_DMA_MOD(drm_fb_to_armada_fb(fb)->mod) |
|
||||
CFG_CBSH_ENA | CFG_DMA_HSMOOTH | CFG_DMA_ENA;
|
||||
|
||||
/* Does the position/size result in nothing to display? */
|
||||
if (!visible)
|
||||
ctrl0 &= ~CFG_DMA_ENA;
|
||||
CFG_CBSH_ENA;
|
||||
if (visible)
|
||||
ctrl0 |= CFG_DMA_ENA;
|
||||
if (drm_rect_width(&src) >> 16 != drm_rect_width(&dest))
|
||||
ctrl0 |= CFG_DMA_HSMOOTH;
|
||||
|
||||
/*
|
||||
* Shifting a YUV packed format image by one pixel causes the U/V
|
||||
|
|
Loading…
Reference in New Issue