]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00233380 IPUv3:Warn on sub-CPMEM EBA0 unalignment case
authorLiu Ying <Ying.liu@freescale.com>
Tue, 13 Nov 2012 06:42:27 +0000 (14:42 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:35:42 +0000 (08:35 +0200)
IPUv3 CPMEM EBA sets buffer start address. EBA should be 8-byte
aligned according to IPUv3 spec. This patch contains code change
only to warn on alternative CPMEM entry's EBA0 unalignment case.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit 1a2f3dc6340d5cf93f2e4bcd5a9d4395fcc18cf1)

drivers/mxc/ipu3/ipu_param_mem.h

index 68c6654b25edb1fa2fdd3513669032e7f0b178cb..1387c494844624f671e75ea6fe36baff3f57413d 100644 (file)
@@ -477,13 +477,17 @@ static inline void _ipu_ch_param_init(struct ipu_soc *ipu, int ch,
        dev_dbg(ipu->dev, "initializing idma ch %d @ %p\n", ch, ipu_ch_param_addr(ipu, ch));
        fill_cpmem(ipu, ch, &params);
        if (addr2) {
-               ipu_ch_param_set_field(&params, 1, 0, 29, addr2 >> 3);
-               ipu_ch_param_set_field(&params, 1, 29, 29, 0);
-
                sub_ch = __ipu_ch_get_third_buf_cpmem_num(ch);
                if (sub_ch <= 0)
                        return;
 
+               ipu_ch_param_set_field(&params, 1, 0, 29, addr2 >> 3);
+               ipu_ch_param_set_field(&params, 1, 29, 29, 0);
+               if (addr2%8)
+                       dev_warn(ipu->dev,
+                                "IDMAC%d's sub-CPMEM entry%d EBA0 is not "
+                                "8-byte aligned\n", ch, sub_ch);
+
                dev_dbg(ipu->dev, "initializing idma ch %d @ %p sub cpmem\n", ch,
                                        ipu_ch_param_addr(ipu, sub_ch));
                fill_cpmem(ipu, sub_ch, &params);