ALSA: hwdep - Make open callback optional

Don't require the open callback as mandatory.
Now all hwdeps ops can be optional.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Takashi Iwai 2009-02-05 09:10:20 +01:00
parent 18e352e4a7
commit 345d0b1964

View file

@ -99,9 +99,6 @@ static int snd_hwdep_open(struct inode *inode, struct file * file)
if (hw == NULL) if (hw == NULL)
return -ENODEV; return -ENODEV;
if (!hw->ops.open)
return -ENXIO;
if (!try_module_get(hw->card->module)) if (!try_module_get(hw->card->module))
return -EFAULT; return -EFAULT;
@ -113,6 +110,10 @@ static int snd_hwdep_open(struct inode *inode, struct file * file)
err = -EBUSY; err = -EBUSY;
break; break;
} }
if (!hw->ops.open) {
err = 0;
break;
}
err = hw->ops.open(hw, file); err = hw->ops.open(hw, file);
if (err >= 0) if (err >= 0)
break; break;
@ -151,7 +152,7 @@ static int snd_hwdep_open(struct inode *inode, struct file * file)
static int snd_hwdep_release(struct inode *inode, struct file * file) static int snd_hwdep_release(struct inode *inode, struct file * file)
{ {
int err = -ENXIO; int err = 0;
struct snd_hwdep *hw = file->private_data; struct snd_hwdep *hw = file->private_data;
struct module *mod = hw->card->module; struct module *mod = hw->card->module;