@ -868,12 +868,13 @@ static int snd_compress_dev_register(struct snd_device *device)
return - EBADFD ;
compr = device - > device_data ;
sprintf ( str , " comprC%iD%i " , compr - > card - > number , compr - > device ) ;
pr_debug ( " reg %s for device %s, direction %d \n " , str , compr - > name ,
compr - > direction ) ;
/* register compressed device */
ret = snd_register_device ( SNDRV_DEVICE_TYPE_COMPRESS , compr - > card ,
compr - > device , & snd_compr_file_ops , compr , str ) ;
ret = snd_register_device_for_dev ( SNDRV_DEVICE_TYPE_COMPRESS ,
compr - > card , compr - > device ,
& snd_compr_file_ops , compr ,
& compr - > dev , NULL , NULL ) ;
if ( ret < 0 ) {
pr_err ( " snd_register_device failed \n %d " , ret ) ;
return ret ;
@ -892,6 +893,15 @@ static int snd_compress_dev_disconnect(struct snd_device *device)
return 0 ;
}
static int snd_compress_dev_free ( struct snd_device * device )
{
struct snd_compr * compr ;
compr = device - > device_data ;
put_device ( & compr - > dev ) ;
return 0 ;
}
/*
* snd_compress_new : create new compress device
* @ card : sound card pointer
@ -903,7 +913,7 @@ int snd_compress_new(struct snd_card *card, int device,
int dirn , struct snd_compr * compr )
{
static struct snd_device_ops ops = {
. dev_free = NULL ,
. dev_free = snd_compress_dev_free ,
. dev_register = snd_compress_dev_register ,
. dev_disconnect = snd_compress_dev_disconnect ,
} ;
@ -911,6 +921,10 @@ int snd_compress_new(struct snd_card *card, int device,
compr - > card = card ;
compr - > device = device ;
compr - > direction = dirn ;
snd_device_initialize ( & compr - > dev , card ) ;
dev_set_name ( & compr - > dev , " comprC%iD%i " , card - > number , device ) ;
return snd_device_new ( card , SNDRV_DEV_COMPRESS , compr , & ops ) ;
}
EXPORT_SYMBOL_GPL ( snd_compress_new ) ;
@ -948,7 +962,7 @@ int snd_compress_register(struct snd_compr *device)
{
int retval ;
if ( device - > name = = NULL | | device - > dev = = NULL | | device - > ops = = NULL )
if ( device - > name = = NULL | | device - > ops = = NULL )
return - EINVAL ;
pr_debug ( " Registering compressed device %s \n " , device - > name ) ;