]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - android-sdk/kernel-video.git/commitdiff
OMAPDSS: OMAPLFB: add rotation check to pass the correct stride
authorJack Yen <jyen@ti.com>
Thu, 3 Jan 2013 14:43:21 +0000 (16:43 +0200)
committerPraneeth Bajjuri <praneeth@ti.com>
Fri, 12 Jul 2013 22:45:11 +0000 (17:45 -0500)
The patch fixed the stride calculation based on rotation angle.

Ported from k3.0, commit Id 6da9df431be5b [Jack Yen <jyen@ti.com>]

Change-Id: I7bb5e798568004e7429a5aff870ac9c5b64f87c6
Signed-off-by: Jack Yen <jyen@ti.com>
Signed-off-by: Volodymyr Mieshkov <volodymyr.mieshkov@ti.com>
drivers/video/omap2/omaplfb/omaplfb_bv.c
drivers/video/omap2/omaplfb/omaplfb_linux.c

index 67b7bba725c899b176abcd25a1081aa0c39ffa6b..0e3b15d91234dfb57fd858522c495c7db00ccc3d 100644 (file)
@@ -391,7 +391,10 @@ static void OMAPLFBSetNV12Params(struct bvsurfgeom *geom, struct bvbuffdesc *des
                return;
 
        /* Fixup stride for NV12 format */
-       geom->virtstride = (desc->length * 2) / (geom->height * 3);
+       if (geom->orientation % 180 == 0)
+               geom->virtstride = (desc->length * 2) / (geom->height * 3);
+       else
+               geom->virtstride = (desc->length * 2) / (geom->width * 3);
 }
 
 void OMAPLFBDoBlits(OMAPLFB_DEVINFO *psDevInfo, PDC_MEM_INFO *ppsMemInfos, struct omap_hwc_blit_data *blit_data, IMG_UINT32 ui32NumMemInfos)
@@ -428,6 +431,7 @@ void OMAPLFBDoBlits(OMAPLFB_DEVINFO *psDevInfo, PDC_MEM_INFO *ppsMemInfos, struc
                        entry->bp.src1geom->virtstride = OMAPLFB_CLRBUFF_SZ;
                        entry->bp.src1.desc = &entry->src1desc;
                        entry->bp.src1.desc->virtaddr = psPVRFBInfo->pvClearBuffer;
+                       entry->bp.src1.desc->length = OMAPLFB_CLRBUFF_SZ;
                }
                else if (meminfo_ix & HWC_BLT_DESC_FLAG)
                {
index 594a6b84751733b14bb98f38c5ebb7a10c7e3afe..235689fa9e8d342899f19c4482fb3c388e6f32c5 100644 (file)
@@ -404,7 +404,6 @@ static OMAPLFB_BOOL OMAPLFBValidateUpdateMode(OMAPLFB_UPDATE_MODE eMode)
        return OMAPLFB_FALSE;
 }
 
-#if !defined(OMAP_FB_UPDATE_MODE)
 static enum OMAP_UPDATE_MODE OMAPLFBToUpdateMode(OMAPLFB_UPDATE_MODE eMode)
 {
        switch(eMode)
@@ -421,7 +420,6 @@ static enum OMAP_UPDATE_MODE OMAPLFBToUpdateMode(OMAPLFB_UPDATE_MODE eMode)
 
        return -1;
 }
-#endif
 
 #if defined(DEBUG)
 static const char *OMAPLFBUpdateModeToString(OMAPLFB_UPDATE_MODE eMode)
@@ -443,7 +441,6 @@ static const char *OMAPLFBUpdateModeToString(OMAPLFB_UPDATE_MODE eMode)
        return "Unknown Update Mode";
 }
 
-#if !defined(OMAP_FB_UPDATE_MODE)
 static const char *OMAPLFBDSSUpdateModeToString(enum OMAP_UPDATE_MODE eMode)
 {
        if (!OMAPLFBValidUpdateMode(eMode))
@@ -453,7 +450,6 @@ static const char *OMAPLFBDSSUpdateModeToString(enum OMAP_UPDATE_MODE eMode)
 
        return OMAPLFBUpdateModeToString(OMAPLFBFromUpdateMode(eMode));
 }
-#endif
 
 void OMAPLFBPrintInfo(OMAPLFB_DEVINFO *psDevInfo)
 {
@@ -601,6 +597,7 @@ OMAPLFB_UPDATE_MODE OMAPLFBGetUpdateMode(OMAPLFB_DEVINFO *psDevInfo)
 
 OMAPLFB_BOOL OMAPLFBSetUpdateMode(OMAPLFB_DEVINFO *psDevInfo, OMAPLFB_UPDATE_MODE eMode)
 {
+       enum OMAP_UPDATE_MODE eUpdateMode;
        int res;
 
        if (!OMAPLFBValidateUpdateMode(eMode))
@@ -609,11 +606,14 @@ OMAPLFB_BOOL OMAPLFBSetUpdateMode(OMAPLFB_DEVINFO *psDevInfo, OMAPLFB_UPDATE_MOD
                        return OMAPLFB_FALSE;
        }
 
-       res = omapfb_set_update_mode(psDevInfo->psLINFBInfo, eMode);
+       res = omapfb_set_update_mode(psDevInfo->psLINFBInfo, eUpdateMode);
 
        if (res != 0)
        {
-               DEBUG_PRINTK((KERN_WARNING DRIVER_PREFIX ": %s: Device %u: set_update_mode (%s) failed (%d)\n", __FUNCTION__, psDevInfo->uiFBDevID, OMAPLFBUpdateModeToString(eMode), res));
+               DEBUG_PRINTK((KERN_WARNING DRIVER_PREFIX \
+               ": %s: Device %u: set_update_mode (%s) failed (%d)\n", __func__,
+                               psDevInfo->uiFBDevID,
+                               OMAPLFBUpdateModeToString(eUpdateMode), res));
        }
 
        return (res == 0);