diff options
author | Sean Young <sean@mess.org> | 2018-08-21 15:57:52 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab+samsung@kernel.org> | 2018-10-04 14:22:27 -0400 |
commit | 183e19f5b9ee18fc7bc4b3983a91b5d0dd6c7871 (patch) | |
tree | 590ad6faa92cfc230d2a3527f585d7f4d728c217 | |
parent | c5f14af0d8b63a62dfde7ade372da0038507deeb (diff) |
media: rc: Remove init_ir_raw_event and DEFINE_IR_RAW_EVENT macros
This can be done with c99 initializers, which makes the code cleaner
and more transparent. It does require gcc 4.6, because of this bug
in earlier versions:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=10676
Since commit cafa0010cd51 ("Raise the minimum required gcc version to
4.6"), this is the case.
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
30 files changed, 74 insertions, 101 deletions
diff --git a/drivers/hid/hid-picolcd_cir.c b/drivers/hid/hid-picolcd_cir.c index 32747b7f917e..bf6f29ca3315 100644 --- a/drivers/hid/hid-picolcd_cir.c +++ b/drivers/hid/hid-picolcd_cir.c | |||
@@ -45,7 +45,7 @@ int picolcd_raw_cir(struct picolcd_data *data, | |||
45 | { | 45 | { |
46 | unsigned long flags; | 46 | unsigned long flags; |
47 | int i, w, sz; | 47 | int i, w, sz; |
48 | DEFINE_IR_RAW_EVENT(rawir); | 48 | struct ir_raw_event rawir = {}; |
49 | 49 | ||
50 | /* ignore if rc_dev is NULL or status is shunned */ | 50 | /* ignore if rc_dev is NULL or status is shunned */ |
51 | spin_lock_irqsave(&data->lock, flags); | 51 | spin_lock_irqsave(&data->lock, flags); |
@@ -67,7 +67,6 @@ int picolcd_raw_cir(struct picolcd_data *data, | |||
67 | */ | 67 | */ |
68 | sz = size > 0 ? min((int)raw_data[0], size-1) : 0; | 68 | sz = size > 0 ? min((int)raw_data[0], size-1) : 0; |
69 | for (i = 0; i+1 < sz; i += 2) { | 69 | for (i = 0; i+1 < sz; i += 2) { |
70 | init_ir_raw_event(&rawir); | ||
71 | w = (raw_data[i] << 8) | (raw_data[i+1]); | 70 | w = (raw_data[i] << 8) | (raw_data[i+1]); |
72 | rawir.pulse = !!(w & 0x8000); | 71 | rawir.pulse = !!(w & 0x8000); |
73 | rawir.duration = US_TO_NS(rawir.pulse ? (65536 - w) : w); | 72 | rawir.duration = US_TO_NS(rawir.pulse ? (65536 - w) : w); |
diff --git a/drivers/media/common/siano/smsir.c b/drivers/media/common/siano/smsir.c index a1cfafba9b4c..79bd627f84b8 100644 --- a/drivers/media/common/siano/smsir.c +++ b/drivers/media/common/siano/smsir.c | |||
@@ -26,10 +26,10 @@ void sms_ir_event(struct smscore_device_t *coredev, const char *buf, int len) | |||
26 | const s32 *samples = (const void *)buf; | 26 | const s32 *samples = (const void *)buf; |
27 | 27 | ||
28 | for (i = 0; i < len >> 2; i++) { | 28 | for (i = 0; i < len >> 2; i++) { |
29 | DEFINE_IR_RAW_EVENT(ev); | 29 | struct ir_raw_event ev = { |
30 | 30 | .duration = abs(samples[i]) * 1000, /* Convert to ns */ | |
31 | ev.duration = abs(samples[i]) * 1000; /* Convert to ns */ | 31 | .pulse = (samples[i] > 0) ? false : true |
32 | ev.pulse = (samples[i] > 0) ? false : true; | 32 | }; |
33 | 33 | ||
34 | ir_raw_event_store(coredev->ir.dev, &ev); | 34 | ir_raw_event_store(coredev->ir.dev, &ev); |
35 | } | 35 | } |
diff --git a/drivers/media/i2c/cx25840/cx25840-ir.c b/drivers/media/i2c/cx25840/cx25840-ir.c index ad7f66c7aac8..69cdc09981af 100644 --- a/drivers/media/i2c/cx25840/cx25840-ir.c +++ b/drivers/media/i2c/cx25840/cx25840-ir.c | |||
@@ -701,10 +701,8 @@ static int cx25840_ir_rx_read(struct v4l2_subdev *sd, u8 *buf, size_t count, | |||
701 | if (v > IR_MAX_DURATION) | 701 | if (v > IR_MAX_DURATION) |
702 | v = IR_MAX_DURATION; | 702 | v = IR_MAX_DURATION; |
703 | 703 | ||
704 | init_ir_raw_event(&p->ir_core_data); | 704 | p->ir_core_data = (struct ir_raw_event) |
705 | p->ir_core_data.pulse = u; | 705 | { .pulse = u, .duration = v, .timeout = w }; |
706 | p->ir_core_data.duration = v; | ||
707 | p->ir_core_data.timeout = w; | ||
708 | 706 | ||
709 | v4l2_dbg(2, ir_debug, sd, "rx read: %10u ns %s %s\n", | 707 | v4l2_dbg(2, ir_debug, sd, "rx read: %10u ns %s %s\n", |
710 | v, u ? "mark" : "space", w ? "(timed out)" : ""); | 708 | v, u ? "mark" : "space", w ? "(timed out)" : ""); |
diff --git a/drivers/media/pci/cx23885/cx23888-ir.c b/drivers/media/pci/cx23885/cx23888-ir.c index 00329f668b59..1d775c90df51 100644 --- a/drivers/media/pci/cx23885/cx23888-ir.c +++ b/drivers/media/pci/cx23885/cx23888-ir.c | |||
@@ -696,10 +696,8 @@ static int cx23888_ir_rx_read(struct v4l2_subdev *sd, u8 *buf, size_t count, | |||
696 | if (v > IR_MAX_DURATION) | 696 | if (v > IR_MAX_DURATION) |
697 | v = IR_MAX_DURATION; | 697 | v = IR_MAX_DURATION; |
698 | 698 | ||
699 | init_ir_raw_event(&p->ir_core_data); | 699 | p->ir_core_data = (struct ir_raw_event) |
700 | p->ir_core_data.pulse = u; | 700 | { .pulse = u, .duration = v, .timeout = w }; |
701 | p->ir_core_data.duration = v; | ||
702 | p->ir_core_data.timeout = w; | ||
703 | 701 | ||
704 | v4l2_dbg(2, ir_888_debug, sd, "rx read: %10u ns %s %s\n", | 702 | v4l2_dbg(2, ir_888_debug, sd, "rx read: %10u ns %s %s\n", |
705 | v, u ? "mark" : "space", w ? "(timed out)" : ""); | 703 | v, u ? "mark" : "space", w ? "(timed out)" : ""); |
diff --git a/drivers/media/pci/cx88/cx88-input.c b/drivers/media/pci/cx88/cx88-input.c index c5cee71d744d..ca76da04b476 100644 --- a/drivers/media/pci/cx88/cx88-input.c +++ b/drivers/media/pci/cx88/cx88-input.c | |||
@@ -535,7 +535,7 @@ void cx88_ir_irq(struct cx88_core *core) | |||
535 | struct cx88_IR *ir = core->ir; | 535 | struct cx88_IR *ir = core->ir; |
536 | u32 samples; | 536 | u32 samples; |
537 | unsigned int todo, bits; | 537 | unsigned int todo, bits; |
538 | struct ir_raw_event ev; | 538 | struct ir_raw_event ev = {}; |
539 | 539 | ||
540 | if (!ir || !ir->sampling) | 540 | if (!ir || !ir->sampling) |
541 | return; | 541 | return; |
@@ -550,7 +550,6 @@ void cx88_ir_irq(struct cx88_core *core) | |||
550 | if (samples == 0xff && ir->dev->idle) | 550 | if (samples == 0xff && ir->dev->idle) |
551 | return; | 551 | return; |
552 | 552 | ||
553 | init_ir_raw_event(&ev); | ||
554 | for (todo = 32; todo > 0; todo -= bits) { | 553 | for (todo = 32; todo > 0; todo -= bits) { |
555 | ev.pulse = samples & 0x80000000 ? false : true; | 554 | ev.pulse = samples & 0x80000000 ? false : true; |
556 | bits = min(todo, 32U - fls(ev.pulse ? samples : ~samples)); | 555 | bits = min(todo, 32U - fls(ev.pulse ? samples : ~samples)); |
diff --git a/drivers/media/rc/ene_ir.c b/drivers/media/rc/ene_ir.c index 71b8c9bbf6c4..dd2fd307ef85 100644 --- a/drivers/media/rc/ene_ir.c +++ b/drivers/media/rc/ene_ir.c | |||
@@ -326,8 +326,6 @@ static int ene_rx_get_sample_reg(struct ene_device *dev) | |||
326 | /* Sense current received carrier */ | 326 | /* Sense current received carrier */ |
327 | static void ene_rx_sense_carrier(struct ene_device *dev) | 327 | static void ene_rx_sense_carrier(struct ene_device *dev) |
328 | { | 328 | { |
329 | DEFINE_IR_RAW_EVENT(ev); | ||
330 | |||
331 | int carrier, duty_cycle; | 329 | int carrier, duty_cycle; |
332 | int period = ene_read_reg(dev, ENE_CIRCAR_PRD); | 330 | int period = ene_read_reg(dev, ENE_CIRCAR_PRD); |
333 | int hperiod = ene_read_reg(dev, ENE_CIRCAR_HPRD); | 331 | int hperiod = ene_read_reg(dev, ENE_CIRCAR_HPRD); |
@@ -348,9 +346,11 @@ static void ene_rx_sense_carrier(struct ene_device *dev) | |||
348 | dbg("RX: sensed carrier = %d Hz, duty cycle %d%%", | 346 | dbg("RX: sensed carrier = %d Hz, duty cycle %d%%", |
349 | carrier, duty_cycle); | 347 | carrier, duty_cycle); |
350 | if (dev->carrier_detect_enabled) { | 348 | if (dev->carrier_detect_enabled) { |
351 | ev.carrier_report = true; | 349 | struct ir_raw_event ev = { |
352 | ev.carrier = carrier; | 350 | .carrier_report = true, |
353 | ev.duty_cycle = duty_cycle; | 351 | .carrier = carrier, |
352 | .duty_cycle = duty_cycle | ||
353 | }; | ||
354 | ir_raw_event_store(dev->rdev, &ev); | 354 | ir_raw_event_store(dev->rdev, &ev); |
355 | } | 355 | } |
356 | } | 356 | } |
@@ -733,7 +733,7 @@ static irqreturn_t ene_isr(int irq, void *data) | |||
733 | unsigned long flags; | 733 | unsigned long flags; |
734 | irqreturn_t retval = IRQ_NONE; | 734 | irqreturn_t retval = IRQ_NONE; |
735 | struct ene_device *dev = (struct ene_device *)data; | 735 | struct ene_device *dev = (struct ene_device *)data; |
736 | DEFINE_IR_RAW_EVENT(ev); | 736 | struct ir_raw_event ev = {}; |
737 | 737 | ||
738 | spin_lock_irqsave(&dev->hw_lock, flags); | 738 | spin_lock_irqsave(&dev->hw_lock, flags); |
739 | 739 | ||
diff --git a/drivers/media/rc/fintek-cir.c b/drivers/media/rc/fintek-cir.c index f2639d0c2fca..601944666b71 100644 --- a/drivers/media/rc/fintek-cir.c +++ b/drivers/media/rc/fintek-cir.c | |||
@@ -282,7 +282,7 @@ static int fintek_cmdsize(u8 cmd, u8 subcmd) | |||
282 | /* process ir data stored in driver buffer */ | 282 | /* process ir data stored in driver buffer */ |
283 | static void fintek_process_rx_ir_data(struct fintek_dev *fintek) | 283 | static void fintek_process_rx_ir_data(struct fintek_dev *fintek) |
284 | { | 284 | { |
285 | DEFINE_IR_RAW_EVENT(rawir); | 285 | struct ir_raw_event rawir = {}; |
286 | u8 sample; | 286 | u8 sample; |
287 | bool event = false; | 287 | bool event = false; |
288 | int i; | 288 | int i; |
@@ -314,7 +314,6 @@ static void fintek_process_rx_ir_data(struct fintek_dev *fintek) | |||
314 | break; | 314 | break; |
315 | case PARSE_IRDATA: | 315 | case PARSE_IRDATA: |
316 | fintek->rem--; | 316 | fintek->rem--; |
317 | init_ir_raw_event(&rawir); | ||
318 | rawir.pulse = ((sample & BUF_PULSE_BIT) != 0); | 317 | rawir.pulse = ((sample & BUF_PULSE_BIT) != 0); |
319 | rawir.duration = US_TO_NS((sample & BUF_SAMPLE_MASK) | 318 | rawir.duration = US_TO_NS((sample & BUF_SAMPLE_MASK) |
320 | * CIR_SAMPLE_PERIOD); | 319 | * CIR_SAMPLE_PERIOD); |
diff --git a/drivers/media/rc/igorplugusb.c b/drivers/media/rc/igorplugusb.c index f563ddd7f739..ba3f95a97f14 100644 --- a/drivers/media/rc/igorplugusb.c +++ b/drivers/media/rc/igorplugusb.c | |||
@@ -56,7 +56,7 @@ static void igorplugusb_cmd(struct igorplugusb *ir, int cmd); | |||
56 | 56 | ||
57 | static void igorplugusb_irdata(struct igorplugusb *ir, unsigned len) | 57 | static void igorplugusb_irdata(struct igorplugusb *ir, unsigned len) |
58 | { | 58 | { |
59 | DEFINE_IR_RAW_EVENT(rawir); | 59 | struct ir_raw_event rawir = {}; |
60 | unsigned i, start, overflow; | 60 | unsigned i, start, overflow; |
61 | 61 | ||
62 | dev_dbg(ir->dev, "irdata: %*ph (len=%u)", len, ir->buf_in, len); | 62 | dev_dbg(ir->dev, "irdata: %*ph (len=%u)", len, ir->buf_in, len); |
diff --git a/drivers/media/rc/iguanair.c b/drivers/media/rc/iguanair.c index 7daac8bab83b..fbacb13b614b 100644 --- a/drivers/media/rc/iguanair.c +++ b/drivers/media/rc/iguanair.c | |||
@@ -129,12 +129,10 @@ static void process_ir_data(struct iguanair *ir, unsigned len) | |||
129 | break; | 129 | break; |
130 | } | 130 | } |
131 | } else if (len >= 7) { | 131 | } else if (len >= 7) { |
132 | DEFINE_IR_RAW_EVENT(rawir); | 132 | struct ir_raw_event rawir = {}; |
133 | unsigned i; | 133 | unsigned i; |
134 | bool event = false; | 134 | bool event = false; |
135 | 135 | ||
136 | init_ir_raw_event(&rawir); | ||
137 | |||
138 | for (i = 0; i < 7; i++) { | 136 | for (i = 0; i < 7; i++) { |
139 | if (ir->buf_in[i] == 0x80) { | 137 | if (ir->buf_in[i] == 0x80) { |
140 | rawir.pulse = false; | 138 | rawir.pulse = false; |
diff --git a/drivers/media/rc/imon_raw.c b/drivers/media/rc/imon_raw.c index 32709f96de14..7796098d9c30 100644 --- a/drivers/media/rc/imon_raw.c +++ b/drivers/media/rc/imon_raw.c | |||
@@ -28,7 +28,7 @@ static inline int is_bit_set(const u8 *buf, int bit) | |||
28 | 28 | ||
29 | static void imon_ir_data(struct imon *imon) | 29 | static void imon_ir_data(struct imon *imon) |
30 | { | 30 | { |
31 | DEFINE_IR_RAW_EVENT(rawir); | 31 | struct ir_raw_event rawir = {}; |
32 | int offset = 0, size = 5 * 8; | 32 | int offset = 0, size = 5 * 8; |
33 | int bit; | 33 | int bit; |
34 | 34 | ||
diff --git a/drivers/media/rc/ir-hix5hd2.c b/drivers/media/rc/ir-hix5hd2.c index 700ab4c563d0..abc4d6c1b323 100644 --- a/drivers/media/rc/ir-hix5hd2.c +++ b/drivers/media/rc/ir-hix5hd2.c | |||
@@ -175,7 +175,7 @@ static irqreturn_t hix5hd2_ir_rx_interrupt(int irq, void *data) | |||
175 | } | 175 | } |
176 | 176 | ||
177 | if ((irq_sr & INTMS_SYMBRCV) || (irq_sr & INTMS_TIMEOUT)) { | 177 | if ((irq_sr & INTMS_SYMBRCV) || (irq_sr & INTMS_TIMEOUT)) { |
178 | DEFINE_IR_RAW_EVENT(ev); | 178 | struct ir_raw_event ev = {}; |
179 | 179 | ||
180 | symb_num = readl_relaxed(priv->base + IR_DATAH); | 180 | symb_num = readl_relaxed(priv->base + IR_DATAH); |
181 | for (i = 0; i < symb_num; i++) { | 181 | for (i = 0; i < symb_num; i++) { |
diff --git a/drivers/media/rc/ite-cir.c b/drivers/media/rc/ite-cir.c index de77d22c30a7..cd3c60ba8519 100644 --- a/drivers/media/rc/ite-cir.c +++ b/drivers/media/rc/ite-cir.c | |||
@@ -173,7 +173,7 @@ static void ite_decode_bytes(struct ite_dev *dev, const u8 * data, int | |||
173 | u32 sample_period; | 173 | u32 sample_period; |
174 | unsigned long *ldata; | 174 | unsigned long *ldata; |
175 | unsigned int next_one, next_zero, size; | 175 | unsigned int next_one, next_zero, size; |
176 | DEFINE_IR_RAW_EVENT(ev); | 176 | struct ir_raw_event ev = {}; |
177 | 177 | ||
178 | if (length == 0) | 178 | if (length == 0) |
179 | return; | 179 | return; |
@@ -1507,9 +1507,6 @@ static int ite_probe(struct pnp_dev *pdev, const struct pnp_device_id | |||
1507 | /* initialize spinlocks */ | 1507 | /* initialize spinlocks */ |
1508 | spin_lock_init(&itdev->lock); | 1508 | spin_lock_init(&itdev->lock); |
1509 | 1509 | ||
1510 | /* initialize raw event */ | ||
1511 | init_ir_raw_event(&itdev->rawir); | ||
1512 | |||
1513 | /* set driver data into the pnp device */ | 1510 | /* set driver data into the pnp device */ |
1514 | pnp_set_drvdata(pdev, itdev); | 1511 | pnp_set_drvdata(pdev, itdev); |
1515 | itdev->pdev = pdev; | 1512 | itdev->pdev = pdev; |
diff --git a/drivers/media/rc/mceusb.c b/drivers/media/rc/mceusb.c index 7f0fc3e12190..c9293696dc2d 100644 --- a/drivers/media/rc/mceusb.c +++ b/drivers/media/rc/mceusb.c | |||
@@ -1078,7 +1078,7 @@ static int mceusb_set_rx_carrier_report(struct rc_dev *dev, int enable) | |||
1078 | */ | 1078 | */ |
1079 | static void mceusb_handle_command(struct mceusb_dev *ir, int index) | 1079 | static void mceusb_handle_command(struct mceusb_dev *ir, int index) |
1080 | { | 1080 | { |
1081 | DEFINE_IR_RAW_EVENT(rawir); | 1081 | struct ir_raw_event rawir = {}; |
1082 | u8 hi = ir->buf_in[index + 1] & 0xff; | 1082 | u8 hi = ir->buf_in[index + 1] & 0xff; |
1083 | u8 lo = ir->buf_in[index + 2] & 0xff; | 1083 | u8 lo = ir->buf_in[index + 2] & 0xff; |
1084 | u32 carrier_cycles; | 1084 | u32 carrier_cycles; |
@@ -1152,7 +1152,7 @@ static void mceusb_handle_command(struct mceusb_dev *ir, int index) | |||
1152 | 1152 | ||
1153 | static void mceusb_process_ir_data(struct mceusb_dev *ir, int buf_len) | 1153 | static void mceusb_process_ir_data(struct mceusb_dev *ir, int buf_len) |
1154 | { | 1154 | { |
1155 | DEFINE_IR_RAW_EVENT(rawir); | 1155 | struct ir_raw_event rawir = {}; |
1156 | bool event = false; | 1156 | bool event = false; |
1157 | int i = 0; | 1157 | int i = 0; |
1158 | 1158 | ||
@@ -1175,7 +1175,6 @@ static void mceusb_process_ir_data(struct mceusb_dev *ir, int buf_len) | |||
1175 | break; | 1175 | break; |
1176 | case PARSE_IRDATA: | 1176 | case PARSE_IRDATA: |
1177 | ir->rem--; | 1177 | ir->rem--; |
1178 | init_ir_raw_event(&rawir); | ||
1179 | rawir.pulse = ((ir->buf_in[i] & MCE_PULSE_BIT) != 0); | 1178 | rawir.pulse = ((ir->buf_in[i] & MCE_PULSE_BIT) != 0); |
1180 | rawir.duration = (ir->buf_in[i] & MCE_PULSE_MASK); | 1179 | rawir.duration = (ir->buf_in[i] & MCE_PULSE_MASK); |
1181 | if (unlikely(!rawir.duration)) { | 1180 | if (unlikely(!rawir.duration)) { |
@@ -1215,11 +1214,13 @@ static void mceusb_process_ir_data(struct mceusb_dev *ir, int buf_len) | |||
1215 | if (ir->rem) { | 1214 | if (ir->rem) { |
1216 | ir->parser_state = PARSE_IRDATA; | 1215 | ir->parser_state = PARSE_IRDATA; |
1217 | } else { | 1216 | } else { |
1218 | init_ir_raw_event(&rawir); | 1217 | struct ir_raw_event ev = { |
1219 | rawir.timeout = 1; | 1218 | .timeout = 1, |
1220 | rawir.duration = ir->rc->timeout; | 1219 | .duration = ir->rc->timeout |
1220 | }; | ||
1221 | |||
1221 | if (ir_raw_event_store_with_filter(ir->rc, | 1222 | if (ir_raw_event_store_with_filter(ir->rc, |
1222 | &rawir)) | 1223 | &ev)) |
1223 | event = true; | 1224 | event = true; |
1224 | ir->pulse_tunit = 0; | 1225 | ir->pulse_tunit = 0; |
1225 | ir->pulse_count = 0; | 1226 | ir->pulse_count = 0; |
diff --git a/drivers/media/rc/meson-ir.c b/drivers/media/rc/meson-ir.c index f449b35d25e7..9914c83fecb9 100644 --- a/drivers/media/rc/meson-ir.c +++ b/drivers/media/rc/meson-ir.c | |||
@@ -86,7 +86,7 @@ static irqreturn_t meson_ir_irq(int irqno, void *dev_id) | |||
86 | { | 86 | { |
87 | struct meson_ir *ir = dev_id; | 87 | struct meson_ir *ir = dev_id; |
88 | u32 duration, status; | 88 | u32 duration, status; |
89 | DEFINE_IR_RAW_EVENT(rawir); | 89 | struct ir_raw_event rawir = {}; |
90 | 90 | ||
91 | spin_lock(&ir->lock); | 91 | spin_lock(&ir->lock); |
92 | 92 | ||
diff --git a/drivers/media/rc/mtk-cir.c b/drivers/media/rc/mtk-cir.c index e42efd9d382e..31b7bb431497 100644 --- a/drivers/media/rc/mtk-cir.c +++ b/drivers/media/rc/mtk-cir.c | |||
@@ -212,7 +212,7 @@ static irqreturn_t mtk_ir_irq(int irqno, void *dev_id) | |||
212 | struct mtk_ir *ir = dev_id; | 212 | struct mtk_ir *ir = dev_id; |
213 | u8 wid = 0; | 213 | u8 wid = 0; |
214 | u32 i, j, val; | 214 | u32 i, j, val; |
215 | DEFINE_IR_RAW_EVENT(rawir); | 215 | struct ir_raw_event rawir = {}; |
216 | 216 | ||
217 | /* | 217 | /* |
218 | * Reset decoder state machine explicitly is required | 218 | * Reset decoder state machine explicitly is required |
diff --git a/drivers/media/rc/nuvoton-cir.c b/drivers/media/rc/nuvoton-cir.c index b8299c9a9744..5c2cd8d2d155 100644 --- a/drivers/media/rc/nuvoton-cir.c +++ b/drivers/media/rc/nuvoton-cir.c | |||
@@ -737,7 +737,7 @@ static void nvt_dump_rx_buf(struct nvt_dev *nvt) | |||
737 | */ | 737 | */ |
738 | static void nvt_process_rx_ir_data(struct nvt_dev *nvt) | 738 | static void nvt_process_rx_ir_data(struct nvt_dev *nvt) |
739 | { | 739 | { |
740 | DEFINE_IR_RAW_EVENT(rawir); | 740 | struct ir_raw_event rawir = {}; |
741 | u8 sample; | 741 | u8 sample; |
742 | int i; | 742 | int i; |
743 | 743 | ||
diff --git a/drivers/media/rc/rc-core-priv.h b/drivers/media/rc/rc-core-priv.h index e847bdad5c51..22b0ec853acc 100644 --- a/drivers/media/rc/rc-core-priv.h +++ b/drivers/media/rc/rc-core-priv.h | |||
@@ -181,9 +181,10 @@ static inline void init_ir_raw_event_duration(struct ir_raw_event *ev, | |||
181 | unsigned int pulse, | 181 | unsigned int pulse, |
182 | u32 duration) | 182 | u32 duration) |
183 | { | 183 | { |
184 | init_ir_raw_event(ev); | 184 | *ev = (struct ir_raw_event) { |
185 | ev->duration = duration; | 185 | .duration = duration, |
186 | ev->pulse = pulse; | 186 | .pulse = pulse |
187 | }; | ||
187 | } | 188 | } |
188 | 189 | ||
189 | /** | 190 | /** |
diff --git a/drivers/media/rc/rc-ir-raw.c b/drivers/media/rc/rc-ir-raw.c index e7948908e78c..e10b4644a442 100644 --- a/drivers/media/rc/rc-ir-raw.c +++ b/drivers/media/rc/rc-ir-raw.c | |||
@@ -102,7 +102,7 @@ EXPORT_SYMBOL_GPL(ir_raw_event_store); | |||
102 | int ir_raw_event_store_edge(struct rc_dev *dev, bool pulse) | 102 | int ir_raw_event_store_edge(struct rc_dev *dev, bool pulse) |
103 | { | 103 | { |
104 | ktime_t now; | 104 | ktime_t now; |
105 | DEFINE_IR_RAW_EVENT(ev); | 105 | struct ir_raw_event ev = {}; |
106 | 106 | ||
107 | if (!dev->raw) | 107 | if (!dev->raw) |
108 | return -EINVAL; | 108 | return -EINVAL; |
@@ -210,7 +210,7 @@ void ir_raw_event_set_idle(struct rc_dev *dev, bool idle) | |||
210 | if (idle) { | 210 | if (idle) { |
211 | dev->raw->this_ev.timeout = true; | 211 | dev->raw->this_ev.timeout = true; |
212 | ir_raw_event_store(dev, &dev->raw->this_ev); | 212 | ir_raw_event_store(dev, &dev->raw->this_ev); |
213 | init_ir_raw_event(&dev->raw->this_ev); | 213 | dev->raw->this_ev = (struct ir_raw_event) {}; |
214 | } | 214 | } |
215 | 215 | ||
216 | if (dev->s_idle) | 216 | if (dev->s_idle) |
@@ -562,10 +562,10 @@ static void ir_raw_edge_handle(struct timer_list *t) | |||
562 | spin_lock_irqsave(&dev->raw->edge_spinlock, flags); | 562 | spin_lock_irqsave(&dev->raw->edge_spinlock, flags); |
563 | interval = ktime_sub(ktime_get(), dev->raw->last_event); | 563 | interval = ktime_sub(ktime_get(), dev->raw->last_event); |
564 | if (ktime_to_ns(interval) >= dev->timeout) { | 564 | if (ktime_to_ns(interval) >= dev->timeout) { |
565 | DEFINE_IR_RAW_EVENT(ev); | 565 | struct ir_raw_event ev = { |
566 | 566 | .timeout = true, | |
567 | ev.timeout = true; | 567 | .duration = ktime_to_ns(interval) |
568 | ev.duration = ktime_to_ns(interval); | 568 | }; |
569 | 569 | ||
570 | ir_raw_event_store(dev, &ev); | 570 | ir_raw_event_store(dev, &ev); |
571 | } else { | 571 | } else { |
diff --git a/drivers/media/rc/rc-loopback.c b/drivers/media/rc/rc-loopback.c index 3822d9ebcb46..b9f9325b8db1 100644 --- a/drivers/media/rc/rc-loopback.c +++ b/drivers/media/rc/rc-loopback.c | |||
@@ -103,7 +103,7 @@ static int loop_tx_ir(struct rc_dev *dev, unsigned *txbuf, unsigned count) | |||
103 | struct loopback_dev *lodev = dev->priv; | 103 | struct loopback_dev *lodev = dev->priv; |
104 | u32 rxmask; | 104 | u32 rxmask; |
105 | unsigned i; | 105 | unsigned i; |
106 | DEFINE_IR_RAW_EVENT(rawir); | 106 | struct ir_raw_event rawir = {}; |
107 | 107 | ||
108 | if (lodev->txcarrier < lodev->rxcarriermin || | 108 | if (lodev->txcarrier < lodev->rxcarriermin || |
109 | lodev->txcarrier > lodev->rxcarriermax) { | 109 | lodev->txcarrier > lodev->rxcarriermax) { |
diff --git a/drivers/media/rc/redrat3.c b/drivers/media/rc/redrat3.c index 6bfc24885b5c..08c51ffd74a0 100644 --- a/drivers/media/rc/redrat3.c +++ b/drivers/media/rc/redrat3.c | |||
@@ -348,7 +348,7 @@ static u32 redrat3_us_to_len(u32 microsec) | |||
348 | 348 | ||
349 | static void redrat3_process_ir_data(struct redrat3_dev *rr3) | 349 | static void redrat3_process_ir_data(struct redrat3_dev *rr3) |
350 | { | 350 | { |
351 | DEFINE_IR_RAW_EVENT(rawir); | 351 | struct ir_raw_event rawir = {}; |
352 | struct device *dev; | 352 | struct device *dev; |
353 | unsigned int i, sig_size, single_len, offset, val; | 353 | unsigned int i, sig_size, single_len, offset, val; |
354 | u32 mod_freq; | 354 | u32 mod_freq; |
@@ -358,10 +358,10 @@ static void redrat3_process_ir_data(struct redrat3_dev *rr3) | |||
358 | mod_freq = redrat3_val_to_mod_freq(&rr3->irdata); | 358 | mod_freq = redrat3_val_to_mod_freq(&rr3->irdata); |
359 | dev_dbg(dev, "Got mod_freq of %u\n", mod_freq); | 359 | dev_dbg(dev, "Got mod_freq of %u\n", mod_freq); |
360 | if (mod_freq && rr3->wideband) { | 360 | if (mod_freq && rr3->wideband) { |
361 | DEFINE_IR_RAW_EVENT(ev); | 361 | struct ir_raw_event ev = { |
362 | 362 | .carrier_report = 1, | |
363 | ev.carrier_report = 1; | 363 | .carrier = mod_freq |
364 | ev.carrier = mod_freq; | 364 | }; |
365 | 365 | ||
366 | ir_raw_event_store(rr3->rc, &ev); | 366 | ir_raw_event_store(rr3->rc, &ev); |
367 | } | 367 | } |
diff --git a/drivers/media/rc/serial_ir.c b/drivers/media/rc/serial_ir.c index 8bf5637b3a69..ffe2c672d105 100644 --- a/drivers/media/rc/serial_ir.c +++ b/drivers/media/rc/serial_ir.c | |||
@@ -273,7 +273,7 @@ static void frbwrite(unsigned int l, bool is_pulse) | |||
273 | { | 273 | { |
274 | /* simple noise filter */ | 274 | /* simple noise filter */ |
275 | static unsigned int ptr, pulse, space; | 275 | static unsigned int ptr, pulse, space; |
276 | DEFINE_IR_RAW_EVENT(ev); | 276 | struct ir_raw_event ev = {}; |
277 | 277 | ||
278 | if (ptr > 0 && is_pulse) { | 278 | if (ptr > 0 && is_pulse) { |
279 | pulse += l; | 279 | pulse += l; |
@@ -472,10 +472,10 @@ static int hardware_init_port(void) | |||
472 | 472 | ||
473 | static void serial_ir_timeout(struct timer_list *unused) | 473 | static void serial_ir_timeout(struct timer_list *unused) |
474 | { | 474 | { |
475 | DEFINE_IR_RAW_EVENT(ev); | 475 | struct ir_raw_event ev = { |
476 | 476 | .timeout = true, | |
477 | ev.timeout = true; | 477 | .duration = serial_ir.rcdev->timeout |
478 | ev.duration = serial_ir.rcdev->timeout; | 478 | }; |
479 | ir_raw_event_store_with_filter(serial_ir.rcdev, &ev); | 479 | ir_raw_event_store_with_filter(serial_ir.rcdev, &ev); |
480 | ir_raw_event_handle(serial_ir.rcdev); | 480 | ir_raw_event_handle(serial_ir.rcdev); |
481 | } | 481 | } |
diff --git a/drivers/media/rc/sir_ir.c b/drivers/media/rc/sir_ir.c index 9ee2c9196b4d..c8951650a368 100644 --- a/drivers/media/rc/sir_ir.c +++ b/drivers/media/rc/sir_ir.c | |||
@@ -96,7 +96,7 @@ static int sir_tx_ir(struct rc_dev *dev, unsigned int *tx_buf, | |||
96 | 96 | ||
97 | static void add_read_queue(int flag, unsigned long val) | 97 | static void add_read_queue(int flag, unsigned long val) |
98 | { | 98 | { |
99 | DEFINE_IR_RAW_EVENT(ev); | 99 | struct ir_raw_event ev = {}; |
100 | 100 | ||
101 | pr_debug("add flag %d with val %lu\n", flag, val); | 101 | pr_debug("add flag %d with val %lu\n", flag, val); |
102 | 102 | ||
diff --git a/drivers/media/rc/st_rc.c b/drivers/media/rc/st_rc.c index c855b177103c..15de3ae166a2 100644 --- a/drivers/media/rc/st_rc.c +++ b/drivers/media/rc/st_rc.c | |||
@@ -67,8 +67,7 @@ struct st_rc_device { | |||
67 | 67 | ||
68 | static void st_rc_send_lirc_timeout(struct rc_dev *rdev) | 68 | static void st_rc_send_lirc_timeout(struct rc_dev *rdev) |
69 | { | 69 | { |
70 | DEFINE_IR_RAW_EVENT(ev); | 70 | struct ir_raw_event ev = { .timeout = true, .duration = rdev->timeout }; |
71 | ev.timeout = true; | ||
72 | ir_raw_event_store(rdev, &ev); | 71 | ir_raw_event_store(rdev, &ev); |
73 | } | 72 | } |
74 | 73 | ||
@@ -101,7 +100,7 @@ static irqreturn_t st_rc_rx_interrupt(int irq, void *data) | |||
101 | struct st_rc_device *dev = data; | 100 | struct st_rc_device *dev = data; |
102 | int last_symbol = 0; | 101 | int last_symbol = 0; |
103 | u32 status, int_status; | 102 | u32 status, int_status; |
104 | DEFINE_IR_RAW_EVENT(ev); | 103 | struct ir_raw_event ev = {}; |
105 | 104 | ||
106 | if (dev->irq_wake) | 105 | if (dev->irq_wake) |
107 | pm_wakeup_event(dev->dev, 0); | 106 | pm_wakeup_event(dev->dev, 0); |
diff --git a/drivers/media/rc/streamzap.c b/drivers/media/rc/streamzap.c index c3e183aabfbe..a490d26bd170 100644 --- a/drivers/media/rc/streamzap.c +++ b/drivers/media/rc/streamzap.c | |||
@@ -130,7 +130,7 @@ static void sz_push(struct streamzap_ir *sz, struct ir_raw_event rawir) | |||
130 | static void sz_push_full_pulse(struct streamzap_ir *sz, | 130 | static void sz_push_full_pulse(struct streamzap_ir *sz, |
131 | unsigned char value) | 131 | unsigned char value) |
132 | { | 132 | { |
133 | DEFINE_IR_RAW_EVENT(rawir); | 133 | struct ir_raw_event rawir = {}; |
134 | 134 | ||
135 | if (sz->idle) { | 135 | if (sz->idle) { |
136 | int delta; | 136 | int delta; |
@@ -175,7 +175,7 @@ static void sz_push_half_pulse(struct streamzap_ir *sz, | |||
175 | static void sz_push_full_space(struct streamzap_ir *sz, | 175 | static void sz_push_full_space(struct streamzap_ir *sz, |
176 | unsigned char value) | 176 | unsigned char value) |
177 | { | 177 | { |
178 | DEFINE_IR_RAW_EVENT(rawir); | 178 | struct ir_raw_event rawir = {}; |
179 | 179 | ||
180 | rawir.pulse = false; | 180 | rawir.pulse = false; |
181 | rawir.duration = ((int) value) * SZ_RESOLUTION; | 181 | rawir.duration = ((int) value) * SZ_RESOLUTION; |
@@ -249,10 +249,10 @@ static void streamzap_callback(struct urb *urb) | |||
249 | break; | 249 | break; |
250 | case FullSpace: | 250 | case FullSpace: |
251 | if (sz->buf_in[i] == SZ_TIMEOUT) { | 251 | if (sz->buf_in[i] == SZ_TIMEOUT) { |
252 | DEFINE_IR_RAW_EVENT(rawir); | 252 | struct ir_raw_event rawir = { |
253 | 253 | .pulse = false, | |
254 | rawir.pulse = false; | 254 | .duration = sz->rdev->timeout |
255 | rawir.duration = sz->rdev->timeout; | 255 | }; |
256 | sz->idle = true; | 256 | sz->idle = true; |
257 | if (sz->timeout_enabled) | 257 | if (sz->timeout_enabled) |
258 | sz_push(sz, rawir); | 258 | sz_push(sz, rawir); |
diff --git a/drivers/media/rc/sunxi-cir.c b/drivers/media/rc/sunxi-cir.c index f500cea228a9..307e44714ea0 100644 --- a/drivers/media/rc/sunxi-cir.c +++ b/drivers/media/rc/sunxi-cir.c | |||
@@ -99,7 +99,7 @@ static irqreturn_t sunxi_ir_irq(int irqno, void *dev_id) | |||
99 | unsigned char dt; | 99 | unsigned char dt; |
100 | unsigned int cnt, rc; | 100 | unsigned int cnt, rc; |
101 | struct sunxi_ir *ir = dev_id; | 101 | struct sunxi_ir *ir = dev_id; |
102 | DEFINE_IR_RAW_EVENT(rawir); | 102 | struct ir_raw_event rawir = {}; |
103 | 103 | ||
104 | spin_lock(&ir->ir_lock); | 104 | spin_lock(&ir->ir_lock); |
105 | 105 | ||
diff --git a/drivers/media/rc/ttusbir.c b/drivers/media/rc/ttusbir.c index aafea3c5170b..8d4b56d057ae 100644 --- a/drivers/media/rc/ttusbir.c +++ b/drivers/media/rc/ttusbir.c | |||
@@ -117,12 +117,10 @@ static void ttusbir_bulk_complete(struct urb *urb) | |||
117 | */ | 117 | */ |
118 | static void ttusbir_process_ir_data(struct ttusbir *tt, uint8_t *buf) | 118 | static void ttusbir_process_ir_data(struct ttusbir *tt, uint8_t *buf) |
119 | { | 119 | { |
120 | struct ir_raw_event rawir; | 120 | struct ir_raw_event rawir = {}; |
121 | unsigned i, v, b; | 121 | unsigned i, v, b; |
122 | bool event = false; | 122 | bool event = false; |
123 | 123 | ||
124 | init_ir_raw_event(&rawir); | ||
125 | |||
126 | for (i = 0; i < 128; i++) { | 124 | for (i = 0; i < 128; i++) { |
127 | v = buf[i] & 0xfe; | 125 | v = buf[i] & 0xfe; |
128 | switch (v) { | 126 | switch (v) { |
diff --git a/drivers/media/rc/winbond-cir.c b/drivers/media/rc/winbond-cir.c index 851acba9b436..0f07a2c384fa 100644 --- a/drivers/media/rc/winbond-cir.c +++ b/drivers/media/rc/winbond-cir.c | |||
@@ -322,11 +322,11 @@ wbcir_carrier_report(struct wbcir_data *data) | |||
322 | inb(data->ebase + WBCIR_REG_ECEIR_CNT_HI) << 8; | 322 | inb(data->ebase + WBCIR_REG_ECEIR_CNT_HI) << 8; |
323 | 323 | ||
324 | if (counter > 0 && counter < 0xffff) { | 324 | if (counter > 0 && counter < 0xffff) { |
325 | DEFINE_IR_RAW_EVENT(ev); | 325 | struct ir_raw_event ev = { |
326 | 326 | .carrier_report = 1, | |
327 | ev.carrier_report = 1; | 327 | .carrier = DIV_ROUND_CLOSEST(counter * 1000000u, |
328 | ev.carrier = DIV_ROUND_CLOSEST(counter * 1000000u, | 328 | data->pulse_duration) |
329 | data->pulse_duration); | 329 | }; |
330 | 330 | ||
331 | ir_raw_event_store(data->dev, &ev); | 331 | ir_raw_event_store(data->dev, &ev); |
332 | } | 332 | } |
@@ -362,7 +362,7 @@ static void | |||
362 | wbcir_irq_rx(struct wbcir_data *data, struct pnp_dev *device) | 362 | wbcir_irq_rx(struct wbcir_data *data, struct pnp_dev *device) |
363 | { | 363 | { |
364 | u8 irdata; | 364 | u8 irdata; |
365 | DEFINE_IR_RAW_EVENT(rawir); | 365 | struct ir_raw_event rawir = {}; |
366 | unsigned duration; | 366 | unsigned duration; |
367 | 367 | ||
368 | /* Since RXHDLEV is set, at least 8 bytes are in the FIFO */ | 368 | /* Since RXHDLEV is set, at least 8 bytes are in the FIFO */ |
diff --git a/drivers/media/usb/au0828/au0828-input.c b/drivers/media/usb/au0828/au0828-input.c index 832ed9f25784..4befa920246c 100644 --- a/drivers/media/usb/au0828/au0828-input.c +++ b/drivers/media/usb/au0828/au0828-input.c | |||
@@ -113,7 +113,7 @@ static int au8522_rc_andor(struct au0828_rc *ir, u16 reg, u8 mask, u8 value) | |||
113 | static int au0828_get_key_au8522(struct au0828_rc *ir) | 113 | static int au0828_get_key_au8522(struct au0828_rc *ir) |
114 | { | 114 | { |
115 | unsigned char buf[40]; | 115 | unsigned char buf[40]; |
116 | DEFINE_IR_RAW_EVENT(rawir); | 116 | struct ir_raw_event rawir = {}; |
117 | int i, j, rc; | 117 | int i, j, rc; |
118 | int prv_bit, bit, width; | 118 | int prv_bit, bit, width; |
119 | bool first = true; | 119 | bool first = true; |
@@ -167,7 +167,6 @@ static int au0828_get_key_au8522(struct au0828_rc *ir) | |||
167 | if (first) { | 167 | if (first) { |
168 | first = false; | 168 | first = false; |
169 | 169 | ||
170 | init_ir_raw_event(&rawir); | ||
171 | rawir.pulse = true; | 170 | rawir.pulse = true; |
172 | if (width > NEC_START_SPACE - 2 && | 171 | if (width > NEC_START_SPACE - 2 && |
173 | width < NEC_START_SPACE + 2) { | 172 | width < NEC_START_SPACE + 2) { |
@@ -186,7 +185,6 @@ static int au0828_get_key_au8522(struct au0828_rc *ir) | |||
186 | ir_raw_event_store(ir->rc, &rawir); | 185 | ir_raw_event_store(ir->rc, &rawir); |
187 | } | 186 | } |
188 | 187 | ||
189 | init_ir_raw_event(&rawir); | ||
190 | rawir.pulse = prv_bit ? false : true; | 188 | rawir.pulse = prv_bit ? false : true; |
191 | rawir.duration = AU8522_UNIT * width; | 189 | rawir.duration = AU8522_UNIT * width; |
192 | dprintk(16, "Storing %s with duration %d", | 190 | dprintk(16, "Storing %s with duration %d", |
@@ -199,7 +197,6 @@ static int au0828_get_key_au8522(struct au0828_rc *ir) | |||
199 | } | 197 | } |
200 | } | 198 | } |
201 | 199 | ||
202 | init_ir_raw_event(&rawir); | ||
203 | rawir.pulse = prv_bit ? false : true; | 200 | rawir.pulse = prv_bit ? false : true; |
204 | rawir.duration = AU8522_UNIT * width; | 201 | rawir.duration = AU8522_UNIT * width; |
205 | dprintk(16, "Storing end %s with duration %d", | 202 | dprintk(16, "Storing end %s with duration %d", |
diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c index 33f76a347baa..8a83b10e50e0 100644 --- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c +++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c | |||
@@ -1685,7 +1685,7 @@ static int rtl2832u_rc_query(struct dvb_usb_device *d) | |||
1685 | { | 1685 | { |
1686 | int ret, i, len; | 1686 | int ret, i, len; |
1687 | struct rtl28xxu_dev *dev = d->priv; | 1687 | struct rtl28xxu_dev *dev = d->priv; |
1688 | struct ir_raw_event ev; | 1688 | struct ir_raw_event ev = {}; |
1689 | u8 buf[128]; | 1689 | u8 buf[128]; |
1690 | static const struct rtl28xxu_reg_val_mask refresh_tab[] = { | 1690 | static const struct rtl28xxu_reg_val_mask refresh_tab[] = { |
1691 | {IR_RX_IF, 0x03, 0xff}, | 1691 | {IR_RX_IF, 0x03, 0xff}, |
@@ -1751,8 +1751,6 @@ static int rtl2832u_rc_query(struct dvb_usb_device *d) | |||
1751 | } | 1751 | } |
1752 | 1752 | ||
1753 | /* pass data to Kernel IR decoder */ | 1753 | /* pass data to Kernel IR decoder */ |
1754 | init_ir_raw_event(&ev); | ||
1755 | |||
1756 | for (i = 0; i < len; i++) { | 1754 | for (i = 0; i < len; i++) { |
1757 | ev.pulse = buf[i] >> 7; | 1755 | ev.pulse = buf[i] >> 7; |
1758 | ev.duration = 50800 * (buf[i] & 0x7f); | 1756 | ev.duration = 50800 * (buf[i] & 0x7f); |
diff --git a/include/media/rc-core.h b/include/media/rc-core.h index 61571773a98d..c0cfbe16a854 100644 --- a/include/media/rc-core.h +++ b/include/media/rc-core.h | |||
@@ -317,13 +317,6 @@ struct ir_raw_event { | |||
317 | unsigned carrier_report:1; | 317 | unsigned carrier_report:1; |
318 | }; | 318 | }; |
319 | 319 | ||
320 | #define DEFINE_IR_RAW_EVENT(event) struct ir_raw_event event = {} | ||
321 | |||
322 | static inline void init_ir_raw_event(struct ir_raw_event *ev) | ||
323 | { | ||
324 | memset(ev, 0, sizeof(*ev)); | ||
325 | } | ||
326 | |||
327 | #define IR_DEFAULT_TIMEOUT MS_TO_NS(125) | 320 | #define IR_DEFAULT_TIMEOUT MS_TO_NS(125) |
328 | #define IR_MAX_DURATION 500000000 /* 500 ms */ | 321 | #define IR_MAX_DURATION 500000000 /* 500 ms */ |
329 | #define US_TO_NS(usec) ((usec) * 1000) | 322 | #define US_TO_NS(usec) ((usec) * 1000) |
@@ -344,9 +337,7 @@ int ir_raw_encode_carrier(enum rc_proto protocol); | |||
344 | 337 | ||
345 | static inline void ir_raw_event_reset(struct rc_dev *dev) | 338 | static inline void ir_raw_event_reset(struct rc_dev *dev) |
346 | { | 339 | { |
347 | struct ir_raw_event ev = { .reset = true }; | 340 | ir_raw_event_store(dev, &((struct ir_raw_event) { .reset = true })); |
348 | |||
349 | ir_raw_event_store(dev, &ev); | ||
350 | dev->idle = true; | 341 | dev->idle = true; |
351 | ir_raw_event_handle(dev); | 342 | ir_raw_event_handle(dev); |
352 | } | 343 | } |