From: Jason Hu <[email protected]> Set of DSPBCNTR should be triggered by re-enabling planeB.
Signed-off-by: Jason Hu <[email protected]> Signed-off-by: Hitesh K. Patel <[email protected]> --- drivers/staging/mrst/drv/psb_drv.c | 20 ++++++++++++++++++++ 1 files changed, 20 insertions(+), 0 deletions(-) diff --git a/drivers/staging/mrst/drv/psb_drv.c b/drivers/staging/mrst/drv/psb_drv.c index 77acf27..a744e32 100644 --- a/drivers/staging/mrst/drv/psb_drv.c +++ b/drivers/staging/mrst/drv/psb_drv.c @@ -2507,6 +2507,16 @@ static int psb_register_rw_ioctl(struct drm_device *dev, void *data, temp &= ~DISPPLANE_BOTTOM; temp |= DISPPLANE_32BPP; PSB_WVDC32(temp, DSPBCNTR); + + temp = PSB_RVDC32(PIPEBCONF); + temp |= 1 << 19; + PSB_WVDC32(temp, PIPEBCONF); + /*wait for a vlank period.*/ + udelay(20000); + + temp = PSB_RVDC32(PIPEBCONF); + temp &= ~(1 << 19); + PSB_WVDC32(temp, PIPEBCONF); } if ( arg->subpicture_enable_mask & REGRWBITS_DSPCCNTR){ temp = PSB_RVDC32(DSPCCNTR); @@ -2533,6 +2543,16 @@ static int psb_register_rw_ioctl(struct drm_device *dev, void *data, temp &= ~DISPPLANE_PIXFORMAT_MASK; temp |= DISPPLANE_32BPP_NO_ALPHA; PSB_WVDC32(temp, DSPBCNTR); + + temp = PSB_RVDC32(PIPEBCONF); + temp |= 1 << 19; + PSB_WVDC32(temp, PIPEBCONF); + /*wait for a vlank period.*/ + udelay(20000); + + temp = PSB_RVDC32(PIPEBCONF); + temp &= ~(1 << 19); + PSB_WVDC32(temp, PIPEBCONF); } if ( arg->subpicture_disable_mask & REGRWBITS_DSPCCNTR){ temp = PSB_RVDC32(DSPCCNTR); -- 1.7.1 _______________________________________________ MeeGo-kernel mailing list [email protected] http://lists.meego.com/listinfo/meego-kernel
