]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/cdrom/viocd.c
[PATCH] switch cdrom_{open,release,ioctl} to sane APIs
[linux-2.6-omap-h63xx.git] / drivers / cdrom / viocd.c
index 9d0dfe6e0d63ac7829473ec32afbd58fbc478d72..abc4079c3f419c9a0455008a0ba36816b3bb204e 100644 (file)
@@ -154,20 +154,22 @@ static const struct file_operations proc_viocd_operations = {
 static int viocd_blk_open(struct inode *inode, struct file *file)
 {
        struct disk_info *di = inode->i_bdev->bd_disk->private_data;
-       return cdrom_open(&di->viocd_info, inode, file);
+       return cdrom_open(&di->viocd_info, inode->i_bdev, file->f_mode);
 }
 
 static int viocd_blk_release(struct inode *inode, struct file *file)
 {
        struct disk_info *di = inode->i_bdev->bd_disk->private_data;
-       return cdrom_release(&di->viocd_info, file);
+       cdrom_release(&di->viocd_info, file ? file->f_mode : 0);
+       return 0;
 }
 
 static int viocd_blk_ioctl(struct inode *inode, struct file *file,
                unsigned cmd, unsigned long arg)
 {
        struct disk_info *di = inode->i_bdev->bd_disk->private_data;
-       return cdrom_ioctl(file, &di->viocd_info, inode, cmd, arg);
+       return cdrom_ioctl(&di->viocd_info, inode->i_bdev,
+                          file ? file->f_mode : 0, cmd, arg);
 }
 
 static int viocd_blk_media_changed(struct gendisk *disk)
@@ -550,12 +552,19 @@ return_complete:
        }
 }
 
+static int viocd_audio_ioctl(struct cdrom_device_info *cdi, unsigned int cmd,
+                            void *arg)
+{
+       return -EINVAL;
+}
+
 static struct cdrom_device_ops viocd_dops = {
        .open = viocd_open,
        .release = viocd_release,
        .media_changed = viocd_media_changed,
        .lock_door = viocd_lock_door,
        .generic_packet = viocd_packet,
+       .audio_ioctl = viocd_audio_ioctl,
        .capability = CDC_CLOSE_TRAY | CDC_OPEN_TRAY | CDC_LOCK | CDC_SELECT_SPEED | CDC_SELECT_DISC | CDC_MULTI_SESSION | CDC_MCN | CDC_MEDIA_CHANGED | CDC_PLAY_AUDIO | CDC_RESET | CDC_DRIVE_STATUS | CDC_GENERIC_PACKET | CDC_CD_R | CDC_CD_RW | CDC_DVD | CDC_DVD_R | CDC_DVD_RAM | CDC_RAM
 };