grip->dev[slot].private = grip; grip->dev[slot].open = grip_open; grip->dev[slot].close = grip_close; grip->dev[slot].name = grip_name[grip->mode[slot]]; grip->dev[slot].id.bustype = BUS_GAMEPORT; grip->dev[slot].id.vendor = GAMEPORT_ID_VENDOR_GRAVIS; grip->dev[slot].id.product = 0x0100 + grip->mode[slot]; grip->dev[slot].id.version = 0x0100; grip->dev[slot].evbit[0] = BIT(EV_KEY) | BIT(EV_ABS); 
port->dev = input_dev = input_allocate_device(); if (!input_dev) return -ENOMEM; 
static void register_slot(int slot, struct grip_mp *grip){	int j, t;	grip->dev[slot].private = grip;	grip->dev[slot].open = grip_open;	grip->dev[slot].close = grip_close;	grip->dev[slot].name = grip_name[grip->mode[slot]];	grip->dev[slot].id.bustype = BUS_GAMEPORT;	grip->dev[slot].id.vendor = GAMEPORT_ID_VENDOR_GRAVIS;	grip->dev[slot].id.product = 0x0100 + grip->mode[slot];	grip->dev[slot].id.version = 0x0100;	grip->dev[slot].evbit[0] = BIT(EV_KEY) | BIT(EV_ABS);	for (j = 0; (t = grip_abs[grip->mode[slot]][j]) >= 0; j++)		input_set_abs_params(&grip->dev[slot], t, -1, 1, 0, 0);	for (j = 0; (t = grip_btn[grip->mode[slot]][j]) >= 0; j++)		if (t > 0)			set_bit(t, grip->dev[slot].keybit);	input_register_device(grip->dev + slot);	grip->registered[slot] = 1;	if (grip->dirty[slot])	            /* report initial state, if any */		report_slot(grip, slot);	printk(KERN_INFO "grip_mp: added %s, slot %d\n",	       grip_name[grip->mode[slot]], slot);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/17dd3f0f7aa729a042af5d3318ff9b3e7781b45b/grip_mp.c/buggy/drivers/input/joystick/grip_mp.c