serial_ir
static struct serial_ir serial_ir;
if (serial_ir.duty_cycle > 50)
pulse = DIV_ROUND_CLOSEST(serial_ir.duty_cycle * (NSEC_PER_SEC / 100),
serial_ir.carrier);
space = DIV_ROUND_CLOSEST((100 - serial_ir.duty_cycle) *
(NSEC_PER_SEC / 100), serial_ir.carrier);
ir_raw_event_store_with_filter(serial_ir.rcdev, &ev);
ir_raw_event_store_with_filter(serial_ir.rcdev, &ev);
ir_raw_event_store_with_filter(serial_ir.rcdev, &ev);
ir_raw_event_store_with_filter(serial_ir.rcdev, &ev);
ir_raw_event_store_with_filter(serial_ir.rcdev, &ev);
dev_err(&serial_ir.pdev->dev, "Trapped in interrupt");
dev_dbg(&serial_ir.pdev->dev,
ktime_to_ns(serial_ir.lastkt));
delkt = ktime_sub(kt, serial_ir.lastkt);
dev_err(&serial_ir.pdev->dev,
ktime_to_ns(serial_ir.lastkt));
serial_ir.lastkt = kt;
mod_timer(&serial_ir.timeout_timer,
jiffies + usecs_to_jiffies(serial_ir.rcdev->timeout));
ir_raw_event_handle(serial_ir.rcdev);
.duration = serial_ir.rcdev->timeout
ir_raw_event_store_with_filter(serial_ir.rcdev, &ev);
ir_raw_event_handle(serial_ir.rcdev);
rcdev->dev.parent = &serial_ir.pdev->dev;
serial_ir.rcdev = rcdev;
timer_setup(&serial_ir.timeout_timer, serial_ir_timeout, 0);
serial_ir.duty_cycle = 50;
serial_ir.carrier = 38000;
serial_ir.lastkt = ktime_get();
serial_ir.duty_cycle = cycle;
serial_ir.carrier = carrier;
serial_ir.lastkt = ktime_get();
serial_ir.pdev = platform_device_alloc("serial_ir", 0);
if (!serial_ir.pdev) {
result = platform_device_add(serial_ir.pdev);
platform_device_put(serial_ir.pdev);
platform_device_unregister(serial_ir.pdev);
timer_delete_sync(&serial_ir.timeout_timer);