{
int device;
- if (get_user(device, (int *)arg))
+ if (get_user(device, (int __user *)arg))
return -EFAULT;
device = device < 0 ? 0 : device + 1;
while (device < SNDRV_PCM_DEVICES) {
}
if (device == SNDRV_PCM_DEVICES)
device = -1;
- if (put_user(device, (int *)arg))
+ if (put_user(device, (int __user *)arg))
return -EFAULT;
return 0;
}
case SNDRV_CTL_IOCTL_PCM_INFO:
{
- snd_pcm_info_t *info = (snd_pcm_info_t *)arg;
+ snd_pcm_info_t __user *info;
unsigned int device, subdevice;
snd_pcm_stream_t stream;
snd_pcm_t *pcm;
snd_pcm_str_t *pstr;
snd_pcm_substream_t *substream;
+ info = (snd_pcm_info_t __user *)arg;
if (get_user(device, &info->device))
return -EFAULT;
if (device >= SNDRV_PCM_DEVICES)
{
int val;
- if (get_user(val, (int *)arg))
+ if (get_user(val, (int __user *)arg))
return -EFAULT;
control->prefer_pcm_subdevice = val;
return 0;
const char *snd_pcm_stream_name(snd_pcm_stream_t stream)
{
- snd_assert(stream <= SNDRV_PCM_STREAM_LAST, return 0);
+ snd_assert(stream <= SNDRV_PCM_STREAM_LAST, return NULL);
return snd_pcm_stream_names[stream];
}
const char *snd_pcm_access_name(snd_pcm_access_t access)
{
- snd_assert(access <= SNDRV_PCM_ACCESS_LAST, return 0);
+ snd_assert(access <= SNDRV_PCM_ACCESS_LAST, return NULL);
return snd_pcm_access_names[access];
}
const char *snd_pcm_format_name(snd_pcm_format_t format)
{
- snd_assert(format <= SNDRV_PCM_FORMAT_LAST, return 0);
+ snd_assert(format <= SNDRV_PCM_FORMAT_LAST, return NULL);
return snd_pcm_format_names[format];
}
const char *snd_pcm_subformat_name(snd_pcm_subformat_t subformat)
{
- snd_assert(subformat <= SNDRV_PCM_SUBFORMAT_LAST, return 0);
+ snd_assert(subformat <= SNDRV_PCM_SUBFORMAT_LAST, return NULL);
return snd_pcm_subformat_names[subformat];
}
const char *snd_pcm_tstamp_mode_name(snd_pcm_tstamp_t mode)
{
- snd_assert(mode <= SNDRV_PCM_TSTAMP_LAST, return 0);
+ snd_assert(mode <= SNDRV_PCM_TSTAMP_LAST, return NULL);
return snd_pcm_tstamp_mode_names[mode];
}
const char *snd_pcm_state_name(snd_pcm_state_t state)
{
- snd_assert(state <= SNDRV_PCM_STATE_LAST, return 0);
+ snd_assert(state <= SNDRV_PCM_STATE_LAST, return NULL);
return snd_pcm_state_names[state];
}
}
prev = NULL;
for (idx = 0, prev = NULL; idx < substream_count; idx++) {
- substream = snd_magic_kcalloc(snd_pcm_substream_t, 0, GFP_KERNEL);
+ substream = kcalloc(1, sizeof(*substream), GFP_KERNEL);
if (substream == NULL)
return -ENOMEM;
substream->pcm = pcm;
prev->next = substream;
err = snd_pcm_substream_proc_init(substream);
if (err < 0) {
- snd_magic_kfree(substream);
+ kfree(substream);
return err;
}
substream->group = &substream->self_group;
snd_assert(rpcm != NULL, return -EINVAL);
*rpcm = NULL;
snd_assert(card != NULL, return -ENXIO);
- pcm = snd_magic_kcalloc(snd_pcm_t, 0, GFP_KERNEL);
+ pcm = kcalloc(1, sizeof(*pcm), GFP_KERNEL);
if (pcm == NULL)
return -ENOMEM;
pcm->card = card;
while (substream) {
substream_next = substream->next;
snd_pcm_substream_proc_done(substream);
- snd_magic_kfree(substream);
+ kfree(substream);
substream = substream_next;
}
snd_pcm_stream_proc_done(pstr);
snd_pcm_lib_preallocate_free_for_all(pcm);
snd_pcm_free_stream(&pcm->streams[SNDRV_PCM_STREAM_PLAYBACK]);
snd_pcm_free_stream(&pcm->streams[SNDRV_PCM_STREAM_CAPTURE]);
- snd_magic_kfree(pcm);
+ kfree(pcm);
return 0;
}
static int snd_pcm_dev_free(snd_device_t *device)
{
- snd_pcm_t *pcm = snd_magic_cast(snd_pcm_t, device->device_data, return -ENXIO);
+ snd_pcm_t *pcm = device->device_data;
return snd_pcm_free(pcm);
}
if (substream == NULL)
return -EAGAIN;
- runtime = snd_kcalloc(sizeof(snd_pcm_runtime_t), GFP_KERNEL);
+ runtime = kcalloc(1, sizeof(*runtime), GFP_KERNEL);
if (runtime == NULL)
return -ENOMEM;
snd_pcm_substream_t *substream;
struct list_head *list;
char str[16];
- snd_pcm_t *pcm = snd_magic_cast(snd_pcm_t, device->device_data, return -ENXIO);
+ snd_pcm_t *pcm = device->device_data;
snd_assert(pcm != NULL && device != NULL, return -ENXIO);
down(®ister_mutex);
static int snd_pcm_dev_disconnect(snd_device_t *device)
{
- snd_pcm_t *pcm = snd_magic_cast(snd_pcm_t, device->device_data, return -ENXIO);
+ snd_pcm_t *pcm = device->device_data;
struct list_head *list;
snd_pcm_substream_t *substream;
int idx, cidx;
int idx, cidx, devtype;
snd_pcm_substream_t *substream;
struct list_head *list;
- snd_pcm_t *pcm = snd_magic_cast(snd_pcm_t, device->device_data, return -ENXIO);
+ snd_pcm_t *pcm = device->device_data;
snd_assert(pcm != NULL, return -ENXIO);
down(®ister_mutex);
EXPORT_SYMBOL(snd_pcm_playback_poll);
EXPORT_SYMBOL(snd_pcm_capture_poll);
EXPORT_SYMBOL(snd_pcm_mmap_data);
+#if SNDRV_PCM_INFO_MMAP_IOMEM
+EXPORT_SYMBOL(snd_pcm_lib_mmap_iomem);
+#endif
/* pcm_misc.c */
EXPORT_SYMBOL(snd_pcm_format_signed);
EXPORT_SYMBOL(snd_pcm_format_unsigned);