i2c_clientname(client)); 
client->name); 
static int tvmixer_clients(struct i2c_client *client){	struct video_audio va;	int i,minor;#ifdef I2C_CLASS_TV_ANALOG	if (!(client->adapter->class & I2C_CLASS_TV_ANALOG))		return -1;#else	/* TV card ??? */	switch (client->adapter->id) {	case I2C_HW_SMBUS_VOODOO3:	case I2C_HW_B_BT848:	case I2C_HW_B_RIVA:		/* ok, have a look ... */		break;	default:		/* ignore that one */		return -1;	}#endif	/* unregister ?? */	for (i = 0; i < DEV_MAX; i++) {		if (devices[i].dev == client) {			/* unregister */			unregister_sound_mixer(devices[i].minor);			devices[i].dev = NULL;			devices[i].minor = -1;			printk("tvmixer: %s unregistered (#1)\n",			       i2c_clientname(client));			return 0;		}	}	/* look for a free slot */	for (i = 0; i < DEV_MAX; i++)		if (NULL == devices[i].dev)			break;	if (i == DEV_MAX) {		printk(KERN_WARNING "tvmixer: DEV_MAX too small\n");		return -1;	}	/* audio chip with mixer ??? */	if (NULL == client->driver->command)		return -1;	memset(&va,0,sizeof(va));	if (0 != client->driver->command(client,VIDIOCGAUDIO,&va))		return -1;	if (0 == (va.flags & VIDEO_AUDIO_VOLUME))		return -1;	/* everything is fine, register */	if ((minor = register_sound_mixer(&tvmixer_fops,devnr)) < 0) {		printk(KERN_ERR "tvmixer: cannot allocate mixer device\n");		return -1;	}	devices[i].minor = minor;	devices[i].count = 0;	devices[i].dev   = client;	printk("tvmixer: %s (%s) registered with minor %d\n",	       client->name,client->adapter->name,minor);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/fae91e72b79ba9a21f0ce7551a1fd7e8984c85a6/tvmixer.c/buggy/drivers/media/video/tvmixer.c