static unsigned int pl08x_decode_widthbits(unsigned int coded) { if (coded < 3) return 1 << coded; dev_err(&pd.dmac->dev, "%s - illegal width bits 0x%08x\n", __func__, coded); return PL08X_CODING_ERR; }
根据设置的值,解码出实际位的宽度
根据datasheet中的解释:
图 1.2. Souce Transfer Width
图 1.3. Souce or Destination Transfer Width
所以,目前只支持8.,16,32字节,位域的值分别是0,1, 2
所以此处判断小于3,才是有效的
然后1<<coded,得到的结果分别是1,2,4个字节。