/*----------------------------------------------------------------------*/
 
+static inline unsigned int dwc_fast_fls(unsigned long long v)
+{
+       /*
+        * We can be a lot more clever here, but this should take care
+        * of the most common optimization.
+        */
+       if (!(v & 7))
+               return 3;
+       else if (!(v & 3))
+               return 2;
+       else if (!(v & 1))
+               return 1;
+       return 0;
+}
+
 static void dwc_dump_chan_regs(struct dw_dma_chan *dwc)
 {
        dev_err(chan2dev(&dwc->chan),
                return NULL;
        }
 
-       /*
-        * We can be a lot more clever here, but this should take care
-        * of the most common optimization.
-        */
-       if (!((src | dest  | len) & 7))
-               src_width = dst_width = 3;
-       else if (!((src | dest  | len) & 3))
-               src_width = dst_width = 2;
-       else if (!((src | dest | len) & 1))
-               src_width = dst_width = 1;
-       else
-               src_width = dst_width = 0;
+       src_width = dst_width = dwc_fast_fls(src | dest | len);
 
        ctllo = DWC_DEFAULT_CTLLO(chan)
                        | DWC_CTLL_DST_WIDTH(dst_width)
                        mem = sg_dma_address(sg);
                        len = sg_dma_len(sg);
 
-                       if (!((mem | len) & 7))
-                               mem_width = 3;
-                       else if (!((mem | len) & 3))
-                               mem_width = 2;
-                       else if (!((mem | len) & 1))
-                               mem_width = 1;
-                       else
-                               mem_width = 0;
+                       mem_width = dwc_fast_fls(mem | len);
 
 slave_sg_todev_fill_desc:
                        desc = dwc_desc_get(dwc);
                        mem = sg_dma_address(sg);
                        len = sg_dma_len(sg);
 
-                       if (!((mem | len) & 7))
-                               mem_width = 3;
-                       else if (!((mem | len) & 3))
-                               mem_width = 2;
-                       else if (!((mem | len) & 1))
-                               mem_width = 1;
-                       else
-                               mem_width = 0;
+                       mem_width = dwc_fast_fls(mem | len);
 
 slave_sg_fromdev_fill_desc:
                        desc = dwc_desc_get(dwc);