hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/drivers/media/rc/ite-cir.c
....@@ -1,17 +1,8 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*
23 * Driver for ITE Tech Inc. IT8712F/IT8512 CIR
34 *
45 * Copyright (C) 2010 Juan Jesús García de Soria <skandalfo@gmail.com>
5
- *
6
- * This program is free software; you can redistribute it and/or
7
- * modify it under the terms of the GNU General Public License as
8
- * published by the Free Software Foundation; either version 2 of the
9
- * License, or (at your option) any later version.
10
- *
11
- * This program is distributed in the hope that it will be useful, but
12
- * WITHOUT ANY WARRANTY; without even the implied warranty of
13
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
- * General Public License for more details.
156 *
167 * Inspired by the original lirc_it87 and lirc_ite8709 drivers, on top of the
178 * skeleton provided by the nuvoton-cir driver.
....@@ -173,7 +164,7 @@
173164 u32 sample_period;
174165 unsigned long *ldata;
175166 unsigned int next_one, next_zero, size;
176
- DEFINE_IR_RAW_EVENT(ev);
167
+ struct ir_raw_event ev = {};
177168
178169 if (length == 0)
179170 return;
....@@ -185,14 +176,14 @@
185176 if (next_one > 0) {
186177 ev.pulse = true;
187178 ev.duration =
188
- ITE_BITS_TO_NS(next_one, sample_period);
179
+ ITE_BITS_TO_US(next_one, sample_period);
189180 ir_raw_event_store_with_filter(dev->rdev, &ev);
190181 }
191182
192183 while (next_one < size) {
193184 next_zero = find_next_zero_bit_le(ldata, size, next_one + 1);
194185 ev.pulse = false;
195
- ev.duration = ITE_BITS_TO_NS(next_zero - next_one, sample_period);
186
+ ev.duration = ITE_BITS_TO_US(next_zero - next_one, sample_period);
196187 ir_raw_event_store_with_filter(dev->rdev, &ev);
197188
198189 if (next_zero < size) {
....@@ -202,7 +193,7 @@
202193 next_zero + 1);
203194 ev.pulse = true;
204195 ev.duration =
205
- ITE_BITS_TO_NS(next_one - next_zero,
196
+ ITE_BITS_TO_US(next_one - next_zero,
206197 sample_period);
207198 ir_raw_event_store_with_filter
208199 (dev->rdev, &ev);
....@@ -397,7 +388,7 @@
397388 ite_dbg("%s called", __func__);
398389
399390 /* clear the array just in case */
400
- memset(last_sent, 0, ARRAY_SIZE(last_sent));
391
+ memset(last_sent, 0, sizeof(last_sent));
401392
402393 spin_lock_irqsave(&dev->lock, flags);
403394
....@@ -521,7 +512,7 @@
521512 /* and set the carrier values for reception */
522513 ite_set_carrier_params(dev);
523514
524
- /* reenable the receiver */
515
+ /* re-enable the receiver */
525516 if (dev->in_use)
526517 dev->params.enable_rx(dev);
527518
....@@ -1513,9 +1504,6 @@
15131504 /* initialize spinlocks */
15141505 spin_lock_init(&itdev->lock);
15151506
1516
- /* initialize raw event */
1517
- init_ir_raw_event(&itdev->rawir);
1518
-
15191507 /* set driver data into the pnp device */
15201508 pnp_set_drvdata(pdev, itdev);
15211509 itdev->pdev = pdev;
....@@ -1569,13 +1557,13 @@
15691557 rdev->s_rx_carrier_range = ite_set_rx_carrier_range;
15701558 /* FIFO threshold is 17 bytes, so 17 * 8 samples minimum */
15711559 rdev->min_timeout = 17 * 8 * ITE_BAUDRATE_DIVISOR *
1572
- itdev->params.sample_period;
1560
+ itdev->params.sample_period / 1000;
15731561 rdev->timeout = IR_DEFAULT_TIMEOUT;
15741562 rdev->max_timeout = 10 * IR_DEFAULT_TIMEOUT;
15751563 rdev->rx_resolution = ITE_BAUDRATE_DIVISOR *
1576
- itdev->params.sample_period;
1564
+ itdev->params.sample_period / 1000;
15771565 rdev->tx_resolution = ITE_BAUDRATE_DIVISOR *
1578
- itdev->params.sample_period;
1566
+ itdev->params.sample_period / 1000;
15791567
15801568 /* set up transmitter related values if needed */
15811569 if (itdev->params.hw_tx_capable) {