Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Sean Young and committed by
Mauro Carvalho Chehab
183e19f5 c5f14af0

+74 -101
+1 -2
drivers/hid/hid-picolcd_cir.c
··· 45 45 { 46 46 unsigned long flags; 47 47 int i, w, sz; 48 - DEFINE_IR_RAW_EVENT(rawir); 48 + struct ir_raw_event rawir = {}; 49 49 50 50 /* ignore if rc_dev is NULL or status is shunned */ 51 51 spin_lock_irqsave(&data->lock, flags); ··· 67 67 */ 68 68 sz = size > 0 ? min((int)raw_data[0], size-1) : 0; 69 69 for (i = 0; i+1 < sz; i += 2) { 70 - init_ir_raw_event(&rawir); 71 70 w = (raw_data[i] << 8) | (raw_data[i+1]); 72 71 rawir.pulse = !!(w & 0x8000); 73 72 rawir.duration = US_TO_NS(rawir.pulse ? (65536 - w) : w);
+4 -4
drivers/media/common/siano/smsir.c
··· 26 26 const s32 *samples = (const void *)buf; 27 27 28 28 for (i = 0; i < len >> 2; i++) { 29 - DEFINE_IR_RAW_EVENT(ev); 30 - 31 - ev.duration = abs(samples[i]) * 1000; /* Convert to ns */ 32 - ev.pulse = (samples[i] > 0) ? false : true; 29 + struct ir_raw_event ev = { 30 + .duration = abs(samples[i]) * 1000, /* Convert to ns */ 31 + .pulse = (samples[i] > 0) ? false : true 32 + }; 33 33 34 34 ir_raw_event_store(coredev->ir.dev, &ev); 35 35 }
+2 -4
drivers/media/i2c/cx25840/cx25840-ir.c
··· 701 701 if (v > IR_MAX_DURATION) 702 702 v = IR_MAX_DURATION; 703 703 704 - init_ir_raw_event(&p->ir_core_data); 705 - p->ir_core_data.pulse = u; 706 - p->ir_core_data.duration = v; 707 - p->ir_core_data.timeout = w; 704 + p->ir_core_data = (struct ir_raw_event) 705 + { .pulse = u, .duration = v, .timeout = w }; 708 706 709 707 v4l2_dbg(2, ir_debug, sd, "rx read: %10u ns %s %s\n", 710 708 v, u ? "mark" : "space", w ? "(timed out)" : "");
+2 -4
drivers/media/pci/cx23885/cx23888-ir.c
··· 696 696 if (v > IR_MAX_DURATION) 697 697 v = IR_MAX_DURATION; 698 698 699 - init_ir_raw_event(&p->ir_core_data); 700 - p->ir_core_data.pulse = u; 701 - p->ir_core_data.duration = v; 702 - p->ir_core_data.timeout = w; 699 + p->ir_core_data = (struct ir_raw_event) 700 + { .pulse = u, .duration = v, .timeout = w }; 703 701 704 702 v4l2_dbg(2, ir_888_debug, sd, "rx read: %10u ns %s %s\n", 705 703 v, u ? "mark" : "space", w ? "(timed out)" : "");
+1 -2
drivers/media/pci/cx88/cx88-input.c
··· 535 535 struct cx88_IR *ir = core->ir; 536 536 u32 samples; 537 537 unsigned int todo, bits; 538 - struct ir_raw_event ev; 538 + struct ir_raw_event ev = {}; 539 539 540 540 if (!ir || !ir->sampling) 541 541 return; ··· 550 550 if (samples == 0xff && ir->dev->idle) 551 551 return; 552 552 553 - init_ir_raw_event(&ev); 554 553 for (todo = 32; todo > 0; todo -= bits) { 555 554 ev.pulse = samples & 0x80000000 ? false : true; 556 555 bits = min(todo, 32U - fls(ev.pulse ? samples : ~samples));
+6 -6
drivers/media/rc/ene_ir.c
··· 326 326 /* Sense current received carrier */ 327 327 static void ene_rx_sense_carrier(struct ene_device *dev) 328 328 { 329 - DEFINE_IR_RAW_EVENT(ev); 330 - 331 329 int carrier, duty_cycle; 332 330 int period = ene_read_reg(dev, ENE_CIRCAR_PRD); 333 331 int hperiod = ene_read_reg(dev, ENE_CIRCAR_HPRD); ··· 346 348 dbg("RX: sensed carrier = %d Hz, duty cycle %d%%", 347 349 carrier, duty_cycle); 348 350 if (dev->carrier_detect_enabled) { 349 - ev.carrier_report = true; 350 - ev.carrier = carrier; 351 - ev.duty_cycle = duty_cycle; 351 + struct ir_raw_event ev = { 352 + .carrier_report = true, 353 + .carrier = carrier, 354 + .duty_cycle = duty_cycle 355 + }; 352 356 ir_raw_event_store(dev->rdev, &ev); 353 357 } 354 358 } ··· 733 733 unsigned long flags; 734 734 irqreturn_t retval = IRQ_NONE; 735 735 struct ene_device *dev = (struct ene_device *)data; 736 - DEFINE_IR_RAW_EVENT(ev); 736 + struct ir_raw_event ev = {}; 737 737 738 738 spin_lock_irqsave(&dev->hw_lock, flags); 739 739
+1 -2
drivers/media/rc/fintek-cir.c
··· 282 282 /* process ir data stored in driver buffer */ 283 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 286 u8 sample; 287 287 bool event = false; 288 288 int i; ··· 314 314 break; 315 315 case PARSE_IRDATA: 316 316 fintek->rem--; 317 - init_ir_raw_event(&rawir); 318 317 rawir.pulse = ((sample & BUF_PULSE_BIT) != 0); 319 318 rawir.duration = US_TO_NS((sample & BUF_SAMPLE_MASK) 320 319 * CIR_SAMPLE_PERIOD);
+1 -1
drivers/media/rc/igorplugusb.c
··· 56 56 57 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 60 unsigned i, start, overflow; 61 61 62 62 dev_dbg(ir->dev, "irdata: %*ph (len=%u)", len, ir->buf_in, len);
+1 -3
drivers/media/rc/iguanair.c
··· 129 129 break; 130 130 } 131 131 } else if (len >= 7) { 132 - DEFINE_IR_RAW_EVENT(rawir); 132 + struct ir_raw_event rawir = {}; 133 133 unsigned i; 134 134 bool event = false; 135 - 136 - init_ir_raw_event(&rawir); 137 135 138 136 for (i = 0; i < 7; i++) { 139 137 if (ir->buf_in[i] == 0x80) {
+1 -1
drivers/media/rc/imon_raw.c
··· 28 28 29 29 static void imon_ir_data(struct imon *imon) 30 30 { 31 - DEFINE_IR_RAW_EVENT(rawir); 31 + struct ir_raw_event rawir = {}; 32 32 int offset = 0, size = 5 * 8; 33 33 int bit; 34 34
+1 -1
drivers/media/rc/ir-hix5hd2.c
··· 175 175 } 176 176 177 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 180 symb_num = readl_relaxed(priv->base + IR_DATAH); 181 181 for (i = 0; i < symb_num; i++) {
+1 -4
drivers/media/rc/ite-cir.c
··· 173 173 u32 sample_period; 174 174 unsigned long *ldata; 175 175 unsigned int next_one, next_zero, size; 176 - DEFINE_IR_RAW_EVENT(ev); 176 + struct ir_raw_event ev = {}; 177 177 178 178 if (length == 0) 179 179 return; ··· 1506 1506 1507 1507 /* initialize spinlocks */ 1508 1508 spin_lock_init(&itdev->lock); 1509 - 1510 - /* initialize raw event */ 1511 - init_ir_raw_event(&itdev->rawir); 1512 1509 1513 1510 /* set driver data into the pnp device */ 1514 1511 pnp_set_drvdata(pdev, itdev);
+8 -7
drivers/media/rc/mceusb.c
··· 1078 1078 */ 1079 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 1082 u8 hi = ir->buf_in[index + 1] & 0xff; 1083 1083 u8 lo = ir->buf_in[index + 2] & 0xff; 1084 1084 u32 carrier_cycles; ··· 1152 1152 1153 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 1156 bool event = false; 1157 1157 int i = 0; 1158 1158 ··· 1175 1175 break; 1176 1176 case PARSE_IRDATA: 1177 1177 ir->rem--; 1178 - init_ir_raw_event(&rawir); 1179 1178 rawir.pulse = ((ir->buf_in[i] & MCE_PULSE_BIT) != 0); 1180 1179 rawir.duration = (ir->buf_in[i] & MCE_PULSE_MASK); 1181 1180 if (unlikely(!rawir.duration)) { ··· 1214 1215 if (ir->rem) { 1215 1216 ir->parser_state = PARSE_IRDATA; 1216 1217 } else { 1217 - init_ir_raw_event(&rawir); 1218 - rawir.timeout = 1; 1219 - rawir.duration = ir->rc->timeout; 1218 + struct ir_raw_event ev = { 1219 + .timeout = 1, 1220 + .duration = ir->rc->timeout 1221 + }; 1222 + 1220 1223 if (ir_raw_event_store_with_filter(ir->rc, 1221 - &rawir)) 1224 + &ev)) 1222 1225 event = true; 1223 1226 ir->pulse_tunit = 0; 1224 1227 ir->pulse_count = 0;
+1 -1
drivers/media/rc/meson-ir.c
··· 86 86 { 87 87 struct meson_ir *ir = dev_id; 88 88 u32 duration, status; 89 - DEFINE_IR_RAW_EVENT(rawir); 89 + struct ir_raw_event rawir = {}; 90 90 91 91 spin_lock(&ir->lock); 92 92
+1 -1
drivers/media/rc/mtk-cir.c
··· 212 212 struct mtk_ir *ir = dev_id; 213 213 u8 wid = 0; 214 214 u32 i, j, val; 215 - DEFINE_IR_RAW_EVENT(rawir); 215 + struct ir_raw_event rawir = {}; 216 216 217 217 /* 218 218 * Reset decoder state machine explicitly is required
+1 -1
drivers/media/rc/nuvoton-cir.c
··· 737 737 */ 738 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 741 u8 sample; 742 742 int i; 743 743
+4 -3
drivers/media/rc/rc-core-priv.h
··· 181 181 unsigned int pulse, 182 182 u32 duration) 183 183 { 184 - init_ir_raw_event(ev); 185 - ev->duration = duration; 186 - ev->pulse = pulse; 184 + *ev = (struct ir_raw_event) { 185 + .duration = duration, 186 + .pulse = pulse 187 + }; 187 188 } 188 189 189 190 /**
+6 -6
drivers/media/rc/rc-ir-raw.c
··· 102 102 int ir_raw_event_store_edge(struct rc_dev *dev, bool pulse) 103 103 { 104 104 ktime_t now; 105 - DEFINE_IR_RAW_EVENT(ev); 105 + struct ir_raw_event ev = {}; 106 106 107 107 if (!dev->raw) 108 108 return -EINVAL; ··· 210 210 if (idle) { 211 211 dev->raw->this_ev.timeout = true; 212 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 216 if (dev->s_idle) ··· 562 562 spin_lock_irqsave(&dev->raw->edge_spinlock, flags); 563 563 interval = ktime_sub(ktime_get(), dev->raw->last_event); 564 564 if (ktime_to_ns(interval) >= dev->timeout) { 565 - DEFINE_IR_RAW_EVENT(ev); 566 - 567 - ev.timeout = true; 568 - ev.duration = ktime_to_ns(interval); 565 + struct ir_raw_event ev = { 566 + .timeout = true, 567 + .duration = ktime_to_ns(interval) 568 + }; 569 569 570 570 ir_raw_event_store(dev, &ev); 571 571 } else {
+1 -1
drivers/media/rc/rc-loopback.c
··· 103 103 struct loopback_dev *lodev = dev->priv; 104 104 u32 rxmask; 105 105 unsigned i; 106 - DEFINE_IR_RAW_EVENT(rawir); 106 + struct ir_raw_event rawir = {}; 107 107 108 108 if (lodev->txcarrier < lodev->rxcarriermin || 109 109 lodev->txcarrier > lodev->rxcarriermax) {
+5 -5
drivers/media/rc/redrat3.c
··· 348 348 349 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 352 struct device *dev; 353 353 unsigned int i, sig_size, single_len, offset, val; 354 354 u32 mod_freq; ··· 358 358 mod_freq = redrat3_val_to_mod_freq(&rr3->irdata); 359 359 dev_dbg(dev, "Got mod_freq of %u\n", mod_freq); 360 360 if (mod_freq && rr3->wideband) { 361 - DEFINE_IR_RAW_EVENT(ev); 362 - 363 - ev.carrier_report = 1; 364 - ev.carrier = mod_freq; 361 + struct ir_raw_event ev = { 362 + .carrier_report = 1, 363 + .carrier = mod_freq 364 + }; 365 365 366 366 ir_raw_event_store(rr3->rc, &ev); 367 367 }
+5 -5
drivers/media/rc/serial_ir.c
··· 273 273 { 274 274 /* simple noise filter */ 275 275 static unsigned int ptr, pulse, space; 276 - DEFINE_IR_RAW_EVENT(ev); 276 + struct ir_raw_event ev = {}; 277 277 278 278 if (ptr > 0 && is_pulse) { 279 279 pulse += l; ··· 472 472 473 473 static void serial_ir_timeout(struct timer_list *unused) 474 474 { 475 - DEFINE_IR_RAW_EVENT(ev); 476 - 477 - ev.timeout = true; 478 - ev.duration = serial_ir.rcdev->timeout; 475 + struct ir_raw_event ev = { 476 + .timeout = true, 477 + .duration = serial_ir.rcdev->timeout 478 + }; 479 479 ir_raw_event_store_with_filter(serial_ir.rcdev, &ev); 480 480 ir_raw_event_handle(serial_ir.rcdev); 481 481 }
+1 -1
drivers/media/rc/sir_ir.c
··· 96 96 97 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 101 pr_debug("add flag %d with val %lu\n", flag, val); 102 102
+2 -3
drivers/media/rc/st_rc.c
··· 67 67 68 68 static void st_rc_send_lirc_timeout(struct rc_dev *rdev) 69 69 { 70 - DEFINE_IR_RAW_EVENT(ev); 71 - ev.timeout = true; 70 + struct ir_raw_event ev = { .timeout = true, .duration = rdev->timeout }; 72 71 ir_raw_event_store(rdev, &ev); 73 72 } 74 73 ··· 100 101 struct st_rc_device *dev = data; 101 102 int last_symbol = 0; 102 103 u32 status, int_status; 103 - DEFINE_IR_RAW_EVENT(ev); 104 + struct ir_raw_event ev = {}; 104 105 105 106 if (dev->irq_wake) 106 107 pm_wakeup_event(dev->dev, 0);
+6 -6
drivers/media/rc/streamzap.c
··· 130 130 static void sz_push_full_pulse(struct streamzap_ir *sz, 131 131 unsigned char value) 132 132 { 133 - DEFINE_IR_RAW_EVENT(rawir); 133 + struct ir_raw_event rawir = {}; 134 134 135 135 if (sz->idle) { 136 136 int delta; ··· 175 175 static void sz_push_full_space(struct streamzap_ir *sz, 176 176 unsigned char value) 177 177 { 178 - DEFINE_IR_RAW_EVENT(rawir); 178 + struct ir_raw_event rawir = {}; 179 179 180 180 rawir.pulse = false; 181 181 rawir.duration = ((int) value) * SZ_RESOLUTION; ··· 249 249 break; 250 250 case FullSpace: 251 251 if (sz->buf_in[i] == SZ_TIMEOUT) { 252 - DEFINE_IR_RAW_EVENT(rawir); 253 - 254 - rawir.pulse = false; 255 - rawir.duration = sz->rdev->timeout; 252 + struct ir_raw_event rawir = { 253 + .pulse = false, 254 + .duration = sz->rdev->timeout 255 + }; 256 256 sz->idle = true; 257 257 if (sz->timeout_enabled) 258 258 sz_push(sz, rawir);
+1 -1
drivers/media/rc/sunxi-cir.c
··· 99 99 unsigned char dt; 100 100 unsigned int cnt, rc; 101 101 struct sunxi_ir *ir = dev_id; 102 - DEFINE_IR_RAW_EVENT(rawir); 102 + struct ir_raw_event rawir = {}; 103 103 104 104 spin_lock(&ir->ir_lock); 105 105
+1 -3
drivers/media/rc/ttusbir.c
··· 117 117 */ 118 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 121 unsigned i, v, b; 122 122 bool event = false; 123 - 124 - init_ir_raw_event(&rawir); 125 123 126 124 for (i = 0; i < 128; i++) { 127 125 v = buf[i] & 0xfe;
+6 -6
drivers/media/rc/winbond-cir.c
··· 322 322 inb(data->ebase + WBCIR_REG_ECEIR_CNT_HI) << 8; 323 323 324 324 if (counter > 0 && counter < 0xffff) { 325 - DEFINE_IR_RAW_EVENT(ev); 326 - 327 - ev.carrier_report = 1; 328 - ev.carrier = DIV_ROUND_CLOSEST(counter * 1000000u, 329 - data->pulse_duration); 325 + struct ir_raw_event ev = { 326 + .carrier_report = 1, 327 + .carrier = DIV_ROUND_CLOSEST(counter * 1000000u, 328 + data->pulse_duration) 329 + }; 330 330 331 331 ir_raw_event_store(data->dev, &ev); 332 332 } ··· 362 362 wbcir_irq_rx(struct wbcir_data *data, struct pnp_dev *device) 363 363 { 364 364 u8 irdata; 365 - DEFINE_IR_RAW_EVENT(rawir); 365 + struct ir_raw_event rawir = {}; 366 366 unsigned duration; 367 367 368 368 /* Since RXHDLEV is set, at least 8 bytes are in the FIFO */
+1 -4
drivers/media/usb/au0828/au0828-input.c
··· 113 113 static int au0828_get_key_au8522(struct au0828_rc *ir) 114 114 { 115 115 unsigned char buf[40]; 116 - DEFINE_IR_RAW_EVENT(rawir); 116 + struct ir_raw_event rawir = {}; 117 117 int i, j, rc; 118 118 int prv_bit, bit, width; 119 119 bool first = true; ··· 167 167 if (first) { 168 168 first = false; 169 169 170 - init_ir_raw_event(&rawir); 171 170 rawir.pulse = true; 172 171 if (width > NEC_START_SPACE - 2 && 173 172 width < NEC_START_SPACE + 2) { ··· 185 186 ir_raw_event_store(ir->rc, &rawir); 186 187 } 187 188 188 - init_ir_raw_event(&rawir); 189 189 rawir.pulse = prv_bit ? false : true; 190 190 rawir.duration = AU8522_UNIT * width; 191 191 dprintk(16, "Storing %s with duration %d", ··· 197 199 } 198 200 } 199 201 200 - init_ir_raw_event(&rawir); 201 202 rawir.pulse = prv_bit ? false : true; 202 203 rawir.duration = AU8522_UNIT * width; 203 204 dprintk(16, "Storing end %s with duration %d",
+1 -3
drivers/media/usb/dvb-usb-v2/rtl28xxu.c
··· 1685 1685 { 1686 1686 int ret, i, len; 1687 1687 struct rtl28xxu_dev *dev = d->priv; 1688 - struct ir_raw_event ev; 1688 + struct ir_raw_event ev = {}; 1689 1689 u8 buf[128]; 1690 1690 static const struct rtl28xxu_reg_val_mask refresh_tab[] = { 1691 1691 {IR_RX_IF, 0x03, 0xff}, ··· 1751 1751 } 1752 1752 1753 1753 /* pass data to Kernel IR decoder */ 1754 - init_ir_raw_event(&ev); 1755 - 1756 1754 for (i = 0; i < len; i++) { 1757 1755 ev.pulse = buf[i] >> 7; 1758 1756 ev.duration = 50800 * (buf[i] & 0x7f);
+1 -10
include/media/rc-core.h
··· 317 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 320 #define IR_DEFAULT_TIMEOUT MS_TO_NS(125) 328 321 #define IR_MAX_DURATION 500000000 /* 500 ms */ 329 322 #define US_TO_NS(usec) ((usec) * 1000) ··· 337 344 338 345 static inline void ir_raw_event_reset(struct rc_dev *dev) 339 346 { 340 - struct ir_raw_event ev = { .reset = true }; 341 - 342 - ir_raw_event_store(dev, &ev); 347 + ir_raw_event_store(dev, &((struct ir_raw_event) { .reset = true })); 343 348 dev->idle = true; 344 349 ir_raw_event_handle(dev); 345 350 }