struct input_dev *dev = &adi->dev; 
struct input_dev *dev = adi->dev; 
static int adi_decode(struct adi *adi){	struct input_dev *dev = &adi->dev;	char *abs = adi->abs;	short *key = adi->key;	int i, t;	if (adi->ret < adi->length || adi->id != (adi_get_bits(adi, 4) | (adi_get_bits(adi, 4) << 4)))		return -1;	for (i = 0; i < adi->axes10; i++)		input_report_abs(dev, *abs++, adi_get_bits(adi, 10));	for (i = 0; i < adi->axes8; i++)		input_report_abs(dev, *abs++, adi_get_bits(adi, 8));	for (i = 0; i < adi->buttons && i < 63; i++) {		if (i == adi->pad) {			t = adi_get_bits(adi, 4);			input_report_abs(dev, *abs++, ((t >> 2) & 1) - ( t       & 1));			input_report_abs(dev, *abs++, ((t >> 1) & 1) - ((t >> 3) & 1));		}		input_report_key(dev, *key++, adi_get_bits(adi, 1));	}	for (i = 0; i < adi->hats; i++) {		if ((t = adi_get_bits(adi, 4)) > 8) t = 0;		input_report_abs(dev, *abs++, adi_hat_to_axis[t].x);		input_report_abs(dev, *abs++, adi_hat_to_axis[t].y);	}	for (i = 63; i < adi->buttons; i++)		input_report_key(dev, *key++, adi_get_bits(adi, 1));	input_sync(dev);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/17dd3f0f7aa729a042af5d3318ff9b3e7781b45b/adi.c/clean/drivers/input/joystick/adi.c