struct input_dev *dev = &interact->dev; 
struct input_dev *dev = interact->dev; 
static void interact_poll(struct gameport *gameport){	struct interact *interact = gameport_get_drvdata(gameport);	struct input_dev *dev = &interact->dev;	u32 data[3];	int i;	interact->reads++;	if (interact_read_packet(interact->gameport, interact->length, data) < interact->length) {		interact->bads++;	} else {		for (i = 0; i < 3; i++)			data[i] <<= INTERACT_MAX_LENGTH - interact->length;		switch (interact->type) {			case INTERACT_TYPE_HHFX:				for (i = 0; i < 4; i++)					input_report_abs(dev, interact_abs_hhfx[i], (data[i & 1] >> ((i >> 1) << 3)) & 0xff);				for (i = 0; i < 2; i++)					input_report_abs(dev, ABS_HAT0Y - i,						((data[1] >> ((i << 1) + 17)) & 1)  - ((data[1] >> ((i << 1) + 16)) & 1));				for (i = 0; i < 8; i++)					input_report_key(dev, interact_btn_hhfx[i], (data[0] >> (i + 16)) & 1);				for (i = 0; i < 4; i++)					input_report_key(dev, interact_btn_hhfx[i + 8], (data[1] >> (i + 20)) & 1);				break;			case INTERACT_TYPE_PP8D:				for (i = 0; i < 2; i++)					input_report_abs(dev, interact_abs_pp8d[i],						((data[0] >> ((i << 1) + 20)) & 1)  - ((data[0] >> ((i << 1) + 21)) & 1));				for (i = 0; i < 8; i++)					input_report_key(dev, interact_btn_pp8d[i], (data[1] >> (i + 16)) & 1);				break;		}	}	input_sync(dev);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/17dd3f0f7aa729a042af5d3318ff9b3e7781b45b/interact.c/clean/drivers/input/joystick/interact.c