All of lore.kernel.org
 help / color / mirror / Atom feed
* re: [media] rc: Introduce hix5hd2 IR transmitter driver
@ 2014-09-24 14:26 Dan Carpenter
  0 siblings, 0 replies; only message in thread
From: Dan Carpenter @ 2014-09-24 14:26 UTC (permalink / raw)
  To: yanguoxiong; +Cc: linux-media

Hello Guoxiong Yan,

The patch a84fcdaa9058: "[media] rc: Introduce hix5hd2 IR transmitter
driver" from Aug 30, 2014, leads to the following static checker
warning:

	drivers/media/rc/ir-hix5hd2.c:111 hix5hd2_ir_config()
	warn: odd binop '0x3e80 & 0xffff0000'

drivers/media/rc/ir-hix5hd2.c
   109          /* Now only support raw mode, with symbol start from low to high */
   110          rate = DIV_ROUND_CLOSEST(priv->rate, 1000000);
   111          val = IR_CFG_SYMBOL_MAXWIDTH & IR_CFG_WIDTH_MASK << IR_CFG_WIDTH_SHIFT;
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   112          val |= IR_CFG_SYMBOL_FMT & IR_CFG_FORMAT_MASK << IR_CFG_FORMAT_SHIFT;
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

These seem like precedence bugs.  My guess is that the intent was:

		val =  (IR_CFG_SYMBOL_MAXWIDTH & IR_CFG_WIDTH_MASK) << IR_CFG_WIDTH_SHIFT;
		val |= (IR_CFG_SYMBOL_FMT & IR_CFG_FORMAT_MASK) << IR_CFG_FORMAT_SHIFT;

etc for the rest as well.

   113          val |= (IR_CFG_INT_THRESHOLD - 1) & IR_CFG_INT_LEVEL_MASK
   114                 << IR_CFG_INT_LEVEL_SHIFT;
   115          val |= IR_CFG_MODE_RAW;
   116          val |= (rate - 1) & IR_CFG_FREQ_MASK << IR_CFG_FREQ_SHIFT;
   117          writel_relaxed(val, priv->base + IR_CONFIG);

regards,
dan carpenter

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-09-24 14:26 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-24 14:26 [media] rc: Introduce hix5hd2 IR transmitter driver Dan Carpenter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.