goto err_out_free;
        }
 
-       /* Sets name */
-       snprintf(ir->name, sizeof(ir->name), "i2c IR (%s)", name);
        ir->ir_codes = ir_codes;
 
-       snprintf(ir->phys, sizeof(ir->phys), "%s/%s/ir0",
-                dev_name(&adap->dev),
+       snprintf(ir->phys, sizeof(ir->phys), "%s/%s", dev_name(&adap->dev),
                 dev_name(&client->dev));
 
        /*
         */
        rc->input_id.bustype = BUS_I2C;
        rc->input_phys       = ir->phys;
-       rc->device_name      = ir->name;
+       rc->device_name      = name;
+       rc->dev.parent       = &client->dev;
 
        /*
         * Initialize the other fields of rc_dev
        if (err)
                goto err_out_free;
 
-       printk(MODULE_NAME ": %s detected at %s [%s]\n",
-              ir->name, ir->phys, adap->name);
-
        /* start polling via eventd */
        INIT_DELAYED_WORK(&ir->work, ir_work);
        schedule_delayed_work(&ir->work, 0);
 
        } while (0)
 #define ir_dbg(ir, fmt, arg...) do { \
        if (ir_debug) \
-               printk(KERN_DEBUG pr_fmt("ir %s: " fmt), ir->name, ## arg); \
+               printk(KERN_DEBUG pr_fmt("ir %s: " fmt), ir->rc->device_name, \
+                      ## arg); \
        } while (0)
 
 /* Helper function for raw decoding at GPIO16 or GPIO18 */