[1/2] media: rc-core: rename ir_raw_event_reset to ir_raw_event_overflow
Commit Message
The driver report a reset event when the hardware reports and overflow.
There is no reason to have a generic "reset" event.
Signed-off-by: Sean Young <sean@mess.org>
---
drivers/media/pci/cx23885/cx23885-input.c | 2 +-
drivers/media/rc/fintek-cir.c | 2 +-
drivers/media/rc/igorplugusb.c | 2 +-
drivers/media/rc/iguanair.c | 2 +-
drivers/media/rc/ir-hix5hd2.c | 2 +-
drivers/media/rc/ir-imon-decoder.c | 2 +-
drivers/media/rc/ir-jvc-decoder.c | 2 +-
drivers/media/rc/ir-mce_kbd-decoder.c | 2 +-
drivers/media/rc/ir-nec-decoder.c | 2 +-
drivers/media/rc/ir-rc5-decoder.c | 2 +-
drivers/media/rc/ir-rc6-decoder.c | 2 +-
drivers/media/rc/ir-rcmm-decoder.c | 2 +-
drivers/media/rc/ir-sanyo-decoder.c | 4 ++--
drivers/media/rc/ir-sharp-decoder.c | 2 +-
drivers/media/rc/ir-sony-decoder.c | 2 +-
drivers/media/rc/ir-xmp-decoder.c | 2 +-
drivers/media/rc/ite-cir.c | 2 +-
drivers/media/rc/lirc_dev.c | 8 ++++----
drivers/media/rc/nuvoton-cir.c | 2 +-
drivers/media/rc/rc-core-priv.h | 2 +-
drivers/media/rc/rc-ir-raw.c | 2 --
drivers/media/rc/st_rc.c | 2 +-
drivers/media/rc/sunxi-cir.c | 2 +-
drivers/media/rc/winbond-cir.c | 2 +-
include/media/rc-core.h | 6 +++---
25 files changed, 30 insertions(+), 32 deletions(-)
Comments
Hi Sean,
I love your patch! Yet something to improve:
[auto build test ERROR on media-tree/master]
[also build test ERROR on next-20220121]
[cannot apply to sunxi/sunxi/for-next v5.16]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Sean-Young/media-rc-core-rename-ir_raw_event_reset-to-ir_raw_event_overflow/20220121-001937
base: git://linuxtv.org/media_tree.git master
config: hexagon-randconfig-r041-20220120 (https://download.01.org/0day-ci/archive/20220121/202201211605.1ccb0HNg-lkp@intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project f7b7138a62648f4019c55e4671682af1f851f295)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/5b0115b915832b54ebe085c923d73209b1abb364
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Sean-Young/media-rc-core-rename-ir_raw_event_reset-to-ir_raw_event_overflow/20220121-001937
git checkout 5b0115b915832b54ebe085c923d73209b1abb364
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/media/rc/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> drivers/media/rc/mtk-cir.c:220:2: error: implicit declaration of function 'ir_raw_event_reset' [-Werror,-Wimplicit-function-declaration]
ir_raw_event_reset(ir->rc);
^
drivers/media/rc/mtk-cir.c:220:2: note: did you mean 'ir_raw_event_store'?
include/media/rc-core.h:317:5: note: 'ir_raw_event_store' declared here
int ir_raw_event_store(struct rc_dev *dev, struct ir_raw_event *ev);
^
1 error generated.
vim +/ir_raw_event_reset +220 drivers/media/rc/mtk-cir.c
6691e7b9a57c24 Sean Wang 2017-01-13 202
6691e7b9a57c24 Sean Wang 2017-01-13 203 static irqreturn_t mtk_ir_irq(int irqno, void *dev_id)
6691e7b9a57c24 Sean Wang 2017-01-13 204 {
6691e7b9a57c24 Sean Wang 2017-01-13 205 struct mtk_ir *ir = dev_id;
6691e7b9a57c24 Sean Wang 2017-01-13 206 u8 wid = 0;
6691e7b9a57c24 Sean Wang 2017-01-13 207 u32 i, j, val;
183e19f5b9ee18 Sean Young 2018-08-21 208 struct ir_raw_event rawir = {};
6691e7b9a57c24 Sean Wang 2017-01-13 209
6691e7b9a57c24 Sean Wang 2017-01-13 210 /*
6691e7b9a57c24 Sean Wang 2017-01-13 211 * Reset decoder state machine explicitly is required
6691e7b9a57c24 Sean Wang 2017-01-13 212 * because 1) the longest duration for space MTK IR hardware
6691e7b9a57c24 Sean Wang 2017-01-13 213 * could record is not safely long. e.g 12ms if rx resolution
6691e7b9a57c24 Sean Wang 2017-01-13 214 * is 46us by default. There is still the risk to satisfying
6691e7b9a57c24 Sean Wang 2017-01-13 215 * every decoder to reset themselves through long enough
6691e7b9a57c24 Sean Wang 2017-01-13 216 * trailing spaces and 2) the IRQ handler guarantees that
6691e7b9a57c24 Sean Wang 2017-01-13 217 * start of IR message is always contained in and starting
50c3c1ba171f3f Sean Wang 2017-06-30 218 * from register mtk_chkdata_reg(ir, i).
6691e7b9a57c24 Sean Wang 2017-01-13 219 */
6691e7b9a57c24 Sean Wang 2017-01-13 @220 ir_raw_event_reset(ir->rc);
6691e7b9a57c24 Sean Wang 2017-01-13 221
6691e7b9a57c24 Sean Wang 2017-01-13 222 /* First message must be pulse */
6691e7b9a57c24 Sean Wang 2017-01-13 223 rawir.pulse = false;
6691e7b9a57c24 Sean Wang 2017-01-13 224
6691e7b9a57c24 Sean Wang 2017-01-13 225 /* Handle all pulse and space IR controller captures */
6691e7b9a57c24 Sean Wang 2017-01-13 226 for (i = 0 ; i < MTK_CHKDATA_SZ ; i++) {
50c3c1ba171f3f Sean Wang 2017-06-30 227 val = mtk_r32(ir, mtk_chkdata_reg(ir, i));
6691e7b9a57c24 Sean Wang 2017-01-13 228 dev_dbg(ir->dev, "@reg%d=0x%08x\n", i, val);
6691e7b9a57c24 Sean Wang 2017-01-13 229
6691e7b9a57c24 Sean Wang 2017-01-13 230 for (j = 0 ; j < 4 ; j++) {
6691e7b9a57c24 Sean Wang 2017-01-13 231 wid = (val & (MTK_WIDTH_MASK << j * 8)) >> j * 8;
6691e7b9a57c24 Sean Wang 2017-01-13 232 rawir.pulse = !rawir.pulse;
6691e7b9a57c24 Sean Wang 2017-01-13 233 rawir.duration = wid * (MTK_IR_SAMPLE + 1);
6691e7b9a57c24 Sean Wang 2017-01-13 234 ir_raw_event_store_with_filter(ir->rc, &rawir);
6691e7b9a57c24 Sean Wang 2017-01-13 235 }
6691e7b9a57c24 Sean Wang 2017-01-13 236 }
6691e7b9a57c24 Sean Wang 2017-01-13 237
6691e7b9a57c24 Sean Wang 2017-01-13 238 /*
6691e7b9a57c24 Sean Wang 2017-01-13 239 * The maximum number of edges the IR controller can
6691e7b9a57c24 Sean Wang 2017-01-13 240 * hold is MTK_CHKDATA_SZ * 4. So if received IR messages
6691e7b9a57c24 Sean Wang 2017-01-13 241 * is over the limit, the last incomplete IR message would
6691e7b9a57c24 Sean Wang 2017-01-13 242 * be appended trailing space and still would be sent into
6691e7b9a57c24 Sean Wang 2017-01-13 243 * ir-rc-raw to decode. That helps it is possible that it
6691e7b9a57c24 Sean Wang 2017-01-13 244 * has enough information to decode a scancode even if the
6691e7b9a57c24 Sean Wang 2017-01-13 245 * trailing end of the message is missing.
6691e7b9a57c24 Sean Wang 2017-01-13 246 */
6691e7b9a57c24 Sean Wang 2017-01-13 247 if (!MTK_IR_END(wid, rawir.pulse)) {
6691e7b9a57c24 Sean Wang 2017-01-13 248 rawir.pulse = false;
6691e7b9a57c24 Sean Wang 2017-01-13 249 rawir.duration = MTK_MAX_SAMPLES * (MTK_IR_SAMPLE + 1);
6691e7b9a57c24 Sean Wang 2017-01-13 250 ir_raw_event_store_with_filter(ir->rc, &rawir);
6691e7b9a57c24 Sean Wang 2017-01-13 251 }
6691e7b9a57c24 Sean Wang 2017-01-13 252
6691e7b9a57c24 Sean Wang 2017-01-13 253 ir_raw_event_handle(ir->rc);
6691e7b9a57c24 Sean Wang 2017-01-13 254
6691e7b9a57c24 Sean Wang 2017-01-13 255 /*
6691e7b9a57c24 Sean Wang 2017-01-13 256 * Restart controller for the next receive that would
6691e7b9a57c24 Sean Wang 2017-01-13 257 * clear up all CHKDATA registers
6691e7b9a57c24 Sean Wang 2017-01-13 258 */
50c3c1ba171f3f Sean Wang 2017-06-30 259 mtk_w32_mask(ir, 0x1, MTK_IRCLR, ir->data->regs[MTK_IRCLR_REG]);
6691e7b9a57c24 Sean Wang 2017-01-13 260
6691e7b9a57c24 Sean Wang 2017-01-13 261 /* Clear interrupt status */
50c3c1ba171f3f Sean Wang 2017-06-30 262 mtk_w32_mask(ir, 0x1, MTK_IRINT_CLR,
50c3c1ba171f3f Sean Wang 2017-06-30 263 ir->data->regs[MTK_IRINT_CLR_REG]);
6691e7b9a57c24 Sean Wang 2017-01-13 264
6691e7b9a57c24 Sean Wang 2017-01-13 265 return IRQ_HANDLED;
6691e7b9a57c24 Sean Wang 2017-01-13 266 }
6691e7b9a57c24 Sean Wang 2017-01-13 267
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Hi Bot,
On Fri, Jan 21, 2022 at 04:59:50PM +0800, kernel test robot wrote:
> Hi Sean,
>
> I love your patch! Yet something to improve:
>
> [auto build test ERROR on media-tree/master]
> [also build test ERROR on next-20220121]
> [cannot apply to sunxi/sunxi/for-next v5.16]
> [If your patch is applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in
> https://git-scm.com/docs/git-format-patch]
>
> url: https://github.com/0day-ci/linux/commits/Sean-Young/media-rc-core-rename-ir_raw_event_reset-to-ir_raw_event_overflow/20220121-001937
> base: git://linuxtv.org/media_tree.git master
> config: hexagon-randconfig-r041-20220120 (https://download.01.org/0day-ci/archive/20220121/202201211605.1ccb0HNg-lkp@intel.com/config)
> compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project f7b7138a62648f4019c55e4671682af1f851f295)
> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # https://github.com/0day-ci/linux/commit/5b0115b915832b54ebe085c923d73209b1abb364
> git remote add linux-review https://github.com/0day-ci/linux
> git fetch --no-tags linux-review Sean-Young/media-rc-core-rename-ir_raw_event_reset-to-ir_raw_event_overflow/20220121-001937
> git checkout 5b0115b915832b54ebe085c923d73209b1abb364
> # save the config file to linux build tree
> mkdir build_dir
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/media/rc/
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
> All errors (new ones prefixed by >>):
>
> >> drivers/media/rc/mtk-cir.c:220:2: error: implicit declaration of function 'ir_raw_event_reset' [-Werror,-Wimplicit-function-declaration]
> ir_raw_event_reset(ir->rc);
> ^
> drivers/media/rc/mtk-cir.c:220:2: note: did you mean 'ir_raw_event_store'?
> include/media/rc-core.h:317:5: note: 'ir_raw_event_store' declared here
> int ir_raw_event_store(struct rc_dev *dev, struct ir_raw_event *ev);
> ^
> 1 error generated.
This patch depends on:
https://patchwork.linuxtv.org/project/linux-media/patch/20220114150353.195192-2-sean@mess.org/
With that patch it should build fine.
Sean
Hi Sean,
I love your patch! Yet something to improve:
[auto build test ERROR on media-tree/master]
[also build test ERROR on next-20220121]
[cannot apply to sunxi/sunxi/for-next v5.16]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Sean-Young/media-rc-core-rename-ir_raw_event_reset-to-ir_raw_event_overflow/20220121-001937
base: git://linuxtv.org/media_tree.git master
config: alpha-allyesconfig (https://download.01.org/0day-ci/archive/20220122/202201220241.WSoRnyo3-lkp@intel.com/config)
compiler: alpha-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/5b0115b915832b54ebe085c923d73209b1abb364
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Sean-Young/media-rc-core-rename-ir_raw_event_reset-to-ir_raw_event_overflow/20220121-001937
git checkout 5b0115b915832b54ebe085c923d73209b1abb364
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=alpha SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/media/rc/mtk-cir.c: In function 'mtk_ir_irq':
>> drivers/media/rc/mtk-cir.c:220:9: error: implicit declaration of function 'ir_raw_event_reset'; did you mean 'ir_raw_event_store'? [-Werror=implicit-function-declaration]
220 | ir_raw_event_reset(ir->rc);
| ^~~~~~~~~~~~~~~~~~
| ir_raw_event_store
cc1: some warnings being treated as errors
vim +220 drivers/media/rc/mtk-cir.c
6691e7b9a57c24 Sean Wang 2017-01-13 202
6691e7b9a57c24 Sean Wang 2017-01-13 203 static irqreturn_t mtk_ir_irq(int irqno, void *dev_id)
6691e7b9a57c24 Sean Wang 2017-01-13 204 {
6691e7b9a57c24 Sean Wang 2017-01-13 205 struct mtk_ir *ir = dev_id;
6691e7b9a57c24 Sean Wang 2017-01-13 206 u8 wid = 0;
6691e7b9a57c24 Sean Wang 2017-01-13 207 u32 i, j, val;
183e19f5b9ee18 Sean Young 2018-08-21 208 struct ir_raw_event rawir = {};
6691e7b9a57c24 Sean Wang 2017-01-13 209
6691e7b9a57c24 Sean Wang 2017-01-13 210 /*
6691e7b9a57c24 Sean Wang 2017-01-13 211 * Reset decoder state machine explicitly is required
6691e7b9a57c24 Sean Wang 2017-01-13 212 * because 1) the longest duration for space MTK IR hardware
6691e7b9a57c24 Sean Wang 2017-01-13 213 * could record is not safely long. e.g 12ms if rx resolution
6691e7b9a57c24 Sean Wang 2017-01-13 214 * is 46us by default. There is still the risk to satisfying
6691e7b9a57c24 Sean Wang 2017-01-13 215 * every decoder to reset themselves through long enough
6691e7b9a57c24 Sean Wang 2017-01-13 216 * trailing spaces and 2) the IRQ handler guarantees that
6691e7b9a57c24 Sean Wang 2017-01-13 217 * start of IR message is always contained in and starting
50c3c1ba171f3f Sean Wang 2017-06-30 218 * from register mtk_chkdata_reg(ir, i).
6691e7b9a57c24 Sean Wang 2017-01-13 219 */
6691e7b9a57c24 Sean Wang 2017-01-13 @220 ir_raw_event_reset(ir->rc);
6691e7b9a57c24 Sean Wang 2017-01-13 221
6691e7b9a57c24 Sean Wang 2017-01-13 222 /* First message must be pulse */
6691e7b9a57c24 Sean Wang 2017-01-13 223 rawir.pulse = false;
6691e7b9a57c24 Sean Wang 2017-01-13 224
6691e7b9a57c24 Sean Wang 2017-01-13 225 /* Handle all pulse and space IR controller captures */
6691e7b9a57c24 Sean Wang 2017-01-13 226 for (i = 0 ; i < MTK_CHKDATA_SZ ; i++) {
50c3c1ba171f3f Sean Wang 2017-06-30 227 val = mtk_r32(ir, mtk_chkdata_reg(ir, i));
6691e7b9a57c24 Sean Wang 2017-01-13 228 dev_dbg(ir->dev, "@reg%d=0x%08x\n", i, val);
6691e7b9a57c24 Sean Wang 2017-01-13 229
6691e7b9a57c24 Sean Wang 2017-01-13 230 for (j = 0 ; j < 4 ; j++) {
6691e7b9a57c24 Sean Wang 2017-01-13 231 wid = (val & (MTK_WIDTH_MASK << j * 8)) >> j * 8;
6691e7b9a57c24 Sean Wang 2017-01-13 232 rawir.pulse = !rawir.pulse;
6691e7b9a57c24 Sean Wang 2017-01-13 233 rawir.duration = wid * (MTK_IR_SAMPLE + 1);
6691e7b9a57c24 Sean Wang 2017-01-13 234 ir_raw_event_store_with_filter(ir->rc, &rawir);
6691e7b9a57c24 Sean Wang 2017-01-13 235 }
6691e7b9a57c24 Sean Wang 2017-01-13 236 }
6691e7b9a57c24 Sean Wang 2017-01-13 237
6691e7b9a57c24 Sean Wang 2017-01-13 238 /*
6691e7b9a57c24 Sean Wang 2017-01-13 239 * The maximum number of edges the IR controller can
6691e7b9a57c24 Sean Wang 2017-01-13 240 * hold is MTK_CHKDATA_SZ * 4. So if received IR messages
6691e7b9a57c24 Sean Wang 2017-01-13 241 * is over the limit, the last incomplete IR message would
6691e7b9a57c24 Sean Wang 2017-01-13 242 * be appended trailing space and still would be sent into
6691e7b9a57c24 Sean Wang 2017-01-13 243 * ir-rc-raw to decode. That helps it is possible that it
6691e7b9a57c24 Sean Wang 2017-01-13 244 * has enough information to decode a scancode even if the
6691e7b9a57c24 Sean Wang 2017-01-13 245 * trailing end of the message is missing.
6691e7b9a57c24 Sean Wang 2017-01-13 246 */
6691e7b9a57c24 Sean Wang 2017-01-13 247 if (!MTK_IR_END(wid, rawir.pulse)) {
6691e7b9a57c24 Sean Wang 2017-01-13 248 rawir.pulse = false;
6691e7b9a57c24 Sean Wang 2017-01-13 249 rawir.duration = MTK_MAX_SAMPLES * (MTK_IR_SAMPLE + 1);
6691e7b9a57c24 Sean Wang 2017-01-13 250 ir_raw_event_store_with_filter(ir->rc, &rawir);
6691e7b9a57c24 Sean Wang 2017-01-13 251 }
6691e7b9a57c24 Sean Wang 2017-01-13 252
6691e7b9a57c24 Sean Wang 2017-01-13 253 ir_raw_event_handle(ir->rc);
6691e7b9a57c24 Sean Wang 2017-01-13 254
6691e7b9a57c24 Sean Wang 2017-01-13 255 /*
6691e7b9a57c24 Sean Wang 2017-01-13 256 * Restart controller for the next receive that would
6691e7b9a57c24 Sean Wang 2017-01-13 257 * clear up all CHKDATA registers
6691e7b9a57c24 Sean Wang 2017-01-13 258 */
50c3c1ba171f3f Sean Wang 2017-06-30 259 mtk_w32_mask(ir, 0x1, MTK_IRCLR, ir->data->regs[MTK_IRCLR_REG]);
6691e7b9a57c24 Sean Wang 2017-01-13 260
6691e7b9a57c24 Sean Wang 2017-01-13 261 /* Clear interrupt status */
50c3c1ba171f3f Sean Wang 2017-06-30 262 mtk_w32_mask(ir, 0x1, MTK_IRINT_CLR,
50c3c1ba171f3f Sean Wang 2017-06-30 263 ir->data->regs[MTK_IRINT_CLR_REG]);
6691e7b9a57c24 Sean Wang 2017-01-13 264
6691e7b9a57c24 Sean Wang 2017-01-13 265 return IRQ_HANDLED;
6691e7b9a57c24 Sean Wang 2017-01-13 266 }
6691e7b9a57c24 Sean Wang 2017-01-13 267
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
@@ -55,7 +55,7 @@ static void cx23885_input_process_measurements(struct cx23885_dev *dev,
} while (num != 0);
if (overrun)
- ir_raw_event_reset(kernel_ir->rc);
+ ir_raw_event_overflow(kernel_ir->rc);
else if (handle)
ir_raw_event_handle(kernel_ir->rc);
}
@@ -287,7 +287,7 @@ static void fintek_process_rx_ir_data(struct fintek_dev *fintek)
if (fintek->rem)
fintek->parser_state = PARSE_IRDATA;
else
- ir_raw_event_reset(fintek->rdev);
+ ir_raw_event_overflow(fintek->rdev);
break;
case SUBCMD:
fintek->rem = fintek_cmdsize(fintek->cmd, sample);
@@ -67,7 +67,7 @@ static void igorplugusb_irdata(struct igorplugusb *ir, unsigned len)
if (overflow > 0) {
dev_warn(ir->dev, "receive overflow, at least %u lost",
overflow);
- ir_raw_event_reset(ir->rc);
+ ir_raw_event_overflow(ir->rc);
}
do {
@@ -109,7 +109,7 @@ static void process_ir_data(struct iguanair *ir, unsigned len)
break;
case CMD_RX_OVERFLOW:
dev_warn(ir->dev, "receive overflow\n");
- ir_raw_event_reset(ir->rc);
+ ir_raw_event_overflow(ir->rc);
break;
default:
dev_warn(ir->dev, "control code %02x received\n",
@@ -194,7 +194,7 @@ static irqreturn_t hix5hd2_ir_rx_interrupt(int irq, void *data)
* IR_INTS availably since logic would not clear
* fifo when overflow, drv do the job
*/
- ir_raw_event_reset(priv->rdev);
+ ir_raw_event_overflow(priv->rdev);
symb_num = readl_relaxed(priv->base + IR_DATAH);
for (i = 0; i < symb_num; i++)
readl_relaxed(priv->base + IR_DATAL);
@@ -95,7 +95,7 @@ static int ir_imon_decode(struct rc_dev *dev, struct ir_raw_event ev)
struct imon_dec *data = &dev->raw->imon;
if (!is_timing_event(ev)) {
- if (ev.reset)
+ if (ev.overflow)
data->state = STATE_INACTIVE;
return 0;
}
@@ -40,7 +40,7 @@ static int ir_jvc_decode(struct rc_dev *dev, struct ir_raw_event ev)
struct jvc_dec *data = &dev->raw->jvc;
if (!is_timing_event(ev)) {
- if (ev.reset)
+ if (ev.overflow)
data->state = STATE_INACTIVE;
return 0;
}
@@ -221,7 +221,7 @@ static int ir_mce_kbd_decode(struct rc_dev *dev, struct ir_raw_event ev)
struct lirc_scancode lsc = {};
if (!is_timing_event(ev)) {
- if (ev.reset)
+ if (ev.overflow)
data->state = STATE_INACTIVE;
return 0;
}
@@ -44,7 +44,7 @@ static int ir_nec_decode(struct rc_dev *dev, struct ir_raw_event ev)
u8 address, not_address, command, not_command;
if (!is_timing_event(ev)) {
- if (ev.reset)
+ if (ev.overflow)
data->state = STATE_INACTIVE;
return 0;
}
@@ -45,7 +45,7 @@ static int ir_rc5_decode(struct rc_dev *dev, struct ir_raw_event ev)
enum rc_proto protocol;
if (!is_timing_event(ev)) {
- if (ev.reset)
+ if (ev.overflow)
data->state = STATE_INACTIVE;
return 0;
}
@@ -85,7 +85,7 @@ static int ir_rc6_decode(struct rc_dev *dev, struct ir_raw_event ev)
enum rc_proto protocol;
if (!is_timing_event(ev)) {
- if (ev.reset)
+ if (ev.overflow)
data->state = STATE_INACTIVE;
return 0;
}
@@ -69,7 +69,7 @@ static int ir_rcmm_decode(struct rc_dev *dev, struct ir_raw_event ev)
return 0;
if (!is_timing_event(ev)) {
- if (ev.reset)
+ if (ev.overflow)
data->state = STATE_INACTIVE;
return 0;
}
@@ -51,8 +51,8 @@ static int ir_sanyo_decode(struct rc_dev *dev, struct ir_raw_event ev)
u8 command, not_command;
if (!is_timing_event(ev)) {
- if (ev.reset) {
- dev_dbg(&dev->dev, "SANYO event reset received. reset to state 0\n");
+ if (ev.overflow) {
+ dev_dbg(&dev->dev, "SANYO event overflow received. reset to state 0\n");
data->state = STATE_INACTIVE;
}
return 0;
@@ -41,7 +41,7 @@ static int ir_sharp_decode(struct rc_dev *dev, struct ir_raw_event ev)
u32 msg, echo, address, command, scancode;
if (!is_timing_event(ev)) {
- if (ev.reset)
+ if (ev.overflow)
data->state = STATE_INACTIVE;
return 0;
}
@@ -39,7 +39,7 @@ static int ir_sony_decode(struct rc_dev *dev, struct ir_raw_event ev)
u8 device, subdevice, function;
if (!is_timing_event(ev)) {
- if (ev.reset)
+ if (ev.overflow)
data->state = STATE_INACTIVE;
return 0;
}
@@ -37,7 +37,7 @@ static int ir_xmp_decode(struct rc_dev *dev, struct ir_raw_event ev)
struct xmp_dec *data = &dev->raw->xmp;
if (!is_timing_event(ev)) {
- if (ev.reset)
+ if (ev.overflow)
data->state = STATE_INACTIVE;
return 0;
}
@@ -238,7 +238,7 @@ static irqreturn_t ite_cir_isr(int irq, void *data)
/* Check for RX overflow */
if (iflags & ITE_IRQ_RX_FIFO_OVERRUN) {
dev_warn(&dev->rdev->dev, "receive overflow\n");
- ir_raw_event_reset(dev->rdev);
+ ir_raw_event_overflow(dev->rdev);
}
/* check for the receive interrupt */
@@ -41,17 +41,17 @@ void lirc_raw_event(struct rc_dev *dev, struct ir_raw_event ev)
struct lirc_fh *fh;
int sample;
- /* Packet start */
- if (ev.reset) {
+ /* Receiver overflow, data missing */
+ if (ev.overflow) {
/*
* Userspace expects a long space event before the start of
* the signal to use as a sync. This may be done with repeat
- * packets and normal samples. But if a reset has been sent
+ * packets and normal samples. But if an overflow has been sent
* then we assume that a long time has passed, so we send a
* space with the maximum time value.
*/
sample = LIRC_SPACE(LIRC_VALUE_MASK);
- dev_dbg(&dev->dev, "delivering reset sync space to lirc_dev\n");
+ dev_dbg(&dev->dev, "delivering overflow space to lirc_dev\n");
/* Carrier reports */
} else if (ev.carrier_report) {
@@ -742,7 +742,7 @@ static void nvt_handle_rx_fifo_overrun(struct nvt_dev *nvt)
nvt->pkts = 0;
nvt_clear_cir_fifo(nvt);
- ir_raw_event_reset(nvt->rdev);
+ ir_raw_event_overflow(nvt->rdev);
}
/* copy data from hardware rx fifo into driver buffer */
@@ -190,7 +190,7 @@ static inline void decrease_duration(struct ir_raw_event *ev, unsigned duration)
/* Returns true if event is normal pulse/space event */
static inline bool is_timing_event(struct ir_raw_event ev)
{
- return !ev.carrier_report && !ev.reset;
+ return !ev.carrier_report && !ev.overflow;
}
#define TO_STR(is_pulse) ((is_pulse) ? "pulse" : "space")
@@ -35,8 +35,6 @@ static int ir_raw_event_thread(void *data)
!is_transition(&ev, &raw->prev_ev))
dev_warn_once(&dev->dev, "two consecutive events of type %s",
TO_STR(ev.pulse));
- if (raw->prev_ev.reset && ev.pulse == 0)
- dev_warn_once(&dev->dev, "timing event after reset should be pulse");
}
list_for_each_entry(handler, &ir_raw_handler_list, list)
if (dev->enabled_protocols &
@@ -111,7 +111,7 @@ static irqreturn_t st_rc_rx_interrupt(int irq, void *data)
int_status = readl(dev->rx_base + IRB_RX_INT_STATUS);
if (unlikely(int_status & IRB_RX_OVERRUN_INT)) {
/* discard the entire collection in case of errors! */
- ir_raw_event_reset(dev->rdev);
+ ir_raw_event_overflow(dev->rdev);
dev_info(dev->dev, "IR RX overrun\n");
writel(IRB_RX_OVERRUN_INT,
dev->rx_base + IRB_RX_INT_CLEAR);
@@ -126,7 +126,7 @@ static irqreturn_t sunxi_ir_irq(int irqno, void *dev_id)
}
if (status & REG_RXSTA_ROI) {
- ir_raw_event_reset(ir->rc);
+ ir_raw_event_overflow(ir->rc);
} else if (status & REG_RXSTA_RPE) {
ir_raw_event_set_idle(ir->rc, true);
ir_raw_event_handle(ir->rc);
@@ -470,7 +470,7 @@ wbcir_irq_handler(int irqno, void *cookie)
/* RX overflow? (read clears bit) */
if (inb(data->sbase + WBCIR_REG_SP3_LSR) & WBCIR_RX_OVERRUN) {
data->rxstate = WBCIR_RXSTATE_ERROR;
- ir_raw_event_reset(data->dev);
+ ir_raw_event_overflow(data->dev);
}
/* TX underflow? */
@@ -298,7 +298,7 @@ struct ir_raw_event {
u8 duty_cycle;
unsigned pulse:1;
- unsigned reset:1;
+ unsigned overflow:1;
unsigned timeout:1;
unsigned carrier_report:1;
};
@@ -321,9 +321,9 @@ int ir_raw_encode_scancode(enum rc_proto protocol, u32 scancode,
struct ir_raw_event *events, unsigned int max);
int ir_raw_encode_carrier(enum rc_proto protocol);
-static inline void ir_raw_event_reset(struct rc_dev *dev)
+static inline void ir_raw_event_overflow(struct rc_dev *dev)
{
- ir_raw_event_store(dev, &((struct ir_raw_event) { .reset = true }));
+ ir_raw_event_store(dev, &((struct ir_raw_event) { .overflow = true }));
dev->idle = true;
ir_raw_event_handle(dev);
}