mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (250 commits) ALSA: hda: Storage class should be before const qualifier ASoC: tpa6130a2: Remove CPVSS and HPVdd supplies ASoC: tpa6130a2: Define output pins with SND_SOC_DAPM_OUTPUT ASoC: sdp4430 - add sdp4430 pcm ops to DAI. ASoC: TWL6040: Enable earphone path in codec ASoC: SDP4430: Add support for Earphone speaker ASoC: SDP4430: Add sdp4430 machine driver ASoC: tlv320dac33: Avoid powering off while in BIAS_OFF ASoC: tlv320dac33: Use dev_dbg in dac33_hard_power function ALSA: sound/pci/asihpi: Use kzalloc ALSA: hdmi - dont fail on extra nodes ALSA: intelhdmi - add id for the CougarPoint chipset ALSA: intelhdmi - user friendly codec name ALSA: intelhdmi - add dependency on SND_DYNAMIC_MINORS ALSA: asihpi: incorrect range check ALSA: asihpi: testing the wrong variable ALSA: es1688: add pedantic range checks ARM: McBSP: Add support for omap4 in McBSP driver ARM: McBSP: Fix request for irq in OMAP4 OMAP: McBSP: Add 32-bit mode support ...
This commit is contained in:
commit
7f06a8b26a
248 changed files with 36676 additions and 8523 deletions
|
|
@ -49,77 +49,45 @@ static int snd_opl4_mem_proc_release(struct snd_info_entry *entry,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static long snd_opl4_mem_proc_read(struct snd_info_entry *entry, void *file_private_data,
|
||||
struct file *file, char __user *_buf,
|
||||
unsigned long count, unsigned long pos)
|
||||
static ssize_t snd_opl4_mem_proc_read(struct snd_info_entry *entry,
|
||||
void *file_private_data,
|
||||
struct file *file, char __user *_buf,
|
||||
size_t count, loff_t pos)
|
||||
{
|
||||
struct snd_opl4 *opl4 = entry->private_data;
|
||||
long size;
|
||||
char* buf;
|
||||
|
||||
size = count;
|
||||
if (pos + size > entry->size)
|
||||
size = entry->size - pos;
|
||||
if (size > 0) {
|
||||
buf = vmalloc(size);
|
||||
if (!buf)
|
||||
return -ENOMEM;
|
||||
snd_opl4_read_memory(opl4, buf, pos, size);
|
||||
if (copy_to_user(_buf, buf, size)) {
|
||||
vfree(buf);
|
||||
return -EFAULT;
|
||||
}
|
||||
buf = vmalloc(count);
|
||||
if (!buf)
|
||||
return -ENOMEM;
|
||||
snd_opl4_read_memory(opl4, buf, pos, count);
|
||||
if (copy_to_user(_buf, buf, count)) {
|
||||
vfree(buf);
|
||||
return size;
|
||||
return -EFAULT;
|
||||
}
|
||||
return 0;
|
||||
vfree(buf);
|
||||
return count;
|
||||
}
|
||||
|
||||
static long snd_opl4_mem_proc_write(struct snd_info_entry *entry, void *file_private_data,
|
||||
struct file *file, const char __user *_buf,
|
||||
unsigned long count, unsigned long pos)
|
||||
static ssize_t snd_opl4_mem_proc_write(struct snd_info_entry *entry,
|
||||
void *file_private_data,
|
||||
struct file *file,
|
||||
const char __user *_buf,
|
||||
size_t count, loff_t pos)
|
||||
{
|
||||
struct snd_opl4 *opl4 = entry->private_data;
|
||||
long size;
|
||||
char *buf;
|
||||
|
||||
size = count;
|
||||
if (pos + size > entry->size)
|
||||
size = entry->size - pos;
|
||||
if (size > 0) {
|
||||
buf = vmalloc(size);
|
||||
if (!buf)
|
||||
return -ENOMEM;
|
||||
if (copy_from_user(buf, _buf, size)) {
|
||||
vfree(buf);
|
||||
return -EFAULT;
|
||||
}
|
||||
snd_opl4_write_memory(opl4, buf, pos, size);
|
||||
buf = vmalloc(count);
|
||||
if (!buf)
|
||||
return -ENOMEM;
|
||||
if (copy_from_user(buf, _buf, count)) {
|
||||
vfree(buf);
|
||||
return size;
|
||||
return -EFAULT;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static long long snd_opl4_mem_proc_llseek(struct snd_info_entry *entry, void *file_private_data,
|
||||
struct file *file, long long offset, int orig)
|
||||
{
|
||||
switch (orig) {
|
||||
case SEEK_SET:
|
||||
file->f_pos = offset;
|
||||
break;
|
||||
case SEEK_CUR:
|
||||
file->f_pos += offset;
|
||||
break;
|
||||
case SEEK_END: /* offset is negative */
|
||||
file->f_pos = entry->size + offset;
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
if (file->f_pos > entry->size)
|
||||
file->f_pos = entry->size;
|
||||
return file->f_pos;
|
||||
snd_opl4_write_memory(opl4, buf, pos, count);
|
||||
vfree(buf);
|
||||
return count;
|
||||
}
|
||||
|
||||
static struct snd_info_entry_ops snd_opl4_mem_proc_ops = {
|
||||
|
|
@ -127,7 +95,6 @@ static struct snd_info_entry_ops snd_opl4_mem_proc_ops = {
|
|||
.release = snd_opl4_mem_proc_release,
|
||||
.read = snd_opl4_mem_proc_read,
|
||||
.write = snd_opl4_mem_proc_write,
|
||||
.llseek = snd_opl4_mem_proc_llseek,
|
||||
};
|
||||
|
||||
int snd_opl4_create_proc(struct snd_opl4 *opl4)
|
||||
|
|
|
|||
Loading…
Reference in a new issue