]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/media/dvb/dm1105/dm1105.c
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / drivers / media / dvb / dm1105 / dm1105.c
index 5d404f1bf03653c844c88c6efa850f0ef2ecbef9..2d8b4044be36b0ab0436f9f9dde08b487763f90b 100644 (file)
@@ -26,9 +26,8 @@
 #include <linux/proc_fs.h>
 #include <linux/pci.h>
 #include <linux/dma-mapping.h>
-#include <linux/input.h>
 #include <linux/slab.h>
-#include <media/ir-core.h>
+#include <media/rc-core.h>
 
 #include "demux.h"
 #include "dmxdev.h"
@@ -266,7 +265,7 @@ static void dm1105_card_list(struct pci_dev *pci)
 
 /* infrared remote control */
 struct infrared {
-       struct input_dev        *input_dev;
+       struct rc_dev           *dev;
        char                    input_phys[32];
        struct work_struct      work;
        u32                     ir_command;
@@ -532,7 +531,7 @@ static void dm1105_emit_key(struct work_struct *work)
 
        data = (ircom >> 8) & 0x7f;
 
-       ir_keydown(ir->input_dev, data, 0);
+       rc_keydown(ir->dev, data, 0);
 }
 
 /* work handler */
@@ -593,46 +592,47 @@ static irqreturn_t dm1105_irq(int irq, void *dev_id)
 
 int __devinit dm1105_ir_init(struct dm1105_dev *dm1105)
 {
-       struct input_dev *input_dev;
-       char *ir_codes = RC_MAP_DM1105_NEC;
+       struct rc_dev *dev;
        int err = -ENOMEM;
 
-       input_dev = input_allocate_device();
-       if (!input_dev)
+       dev = rc_allocate_device();
+       if (!dev)
                return -ENOMEM;
 
-       dm1105->ir.input_dev = input_dev;
        snprintf(dm1105->ir.input_phys, sizeof(dm1105->ir.input_phys),
                "pci-%s/ir0", pci_name(dm1105->pdev));
 
-       input_dev->name = "DVB on-card IR receiver";
-       input_dev->phys = dm1105->ir.input_phys;
-       input_dev->id.bustype = BUS_PCI;
-       input_dev->id.version = 1;
+       dev->driver_name = MODULE_NAME;
+       dev->map_name = RC_MAP_DM1105_NEC;
+       dev->driver_type = RC_DRIVER_SCANCODE;
+       dev->input_name = "DVB on-card IR receiver";
+       dev->input_phys = dm1105->ir.input_phys;
+       dev->input_id.bustype = BUS_PCI;
+       dev->input_id.version = 1;
        if (dm1105->pdev->subsystem_vendor) {
-               input_dev->id.vendor = dm1105->pdev->subsystem_vendor;
-               input_dev->id.product = dm1105->pdev->subsystem_device;
+               dev->input_id.vendor = dm1105->pdev->subsystem_vendor;
+               dev->input_id.product = dm1105->pdev->subsystem_device;
        } else {
-               input_dev->id.vendor = dm1105->pdev->vendor;
-               input_dev->id.product = dm1105->pdev->device;
+               dev->input_id.vendor = dm1105->pdev->vendor;
+               dev->input_id.product = dm1105->pdev->device;
        }
-
-       input_dev->dev.parent = &dm1105->pdev->dev;
+       dev->dev.parent = &dm1105->pdev->dev;
 
        INIT_WORK(&dm1105->ir.work, dm1105_emit_key);
 
-       err = ir_input_register(input_dev, ir_codes, NULL, MODULE_NAME);
+       err = rc_register_device(dev);
        if (err < 0) {
-               input_free_device(input_dev);
+               rc_free_device(dev);
                return err;
        }
 
+       dm1105->ir.dev = dev;
        return 0;
 }
 
 void __devexit dm1105_ir_exit(struct dm1105_dev *dm1105)
 {
-       ir_input_unregister(dm1105->ir.input_dev);
+       rc_unregister_device(dm1105->ir.dev);
 }
 
 static int __devinit dm1105_hw_init(struct dm1105_dev *dev)