Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux...
[sfrench/cifs-2.6.git] / drivers / cdrom / cdu31a.c
index 378e88d20757aee399f73dd02edfbc041d61bd7b..37bdb0163f0d1b47acf2df88392b318de984480a 100644 (file)
 #include <linux/hdreg.h>
 #include <linux/genhd.h>
 #include <linux/ioport.h>
-#include <linux/devfs_fs_kernel.h>
 #include <linux/string.h>
 #include <linux/slab.h>
 #include <linux/init.h>
@@ -2668,7 +2667,7 @@ static int scd_audio_ioctl(struct cdrom_device_info *cdi,
        return retval;
 }
 
-static int scd_dev_ioctl(struct cdrom_device_info *cdi,
+static int scd_read_audio(struct cdrom_device_info *cdi,
                         unsigned int cmd, unsigned long arg)
 {
        void __user *argp = (void __user *)arg;
@@ -2894,11 +2893,10 @@ static struct cdrom_device_ops scd_dops = {
        .get_mcn                = scd_get_mcn,
        .reset                  = scd_reset,
        .audio_ioctl            = scd_audio_ioctl,
-       .dev_ioctl              = scd_dev_ioctl,
        .capability             = CDC_OPEN_TRAY | CDC_CLOSE_TRAY | CDC_LOCK |
                                  CDC_SELECT_SPEED | CDC_MULTI_SESSION |
                                  CDC_MCN | CDC_MEDIA_CHANGED | CDC_PLAY_AUDIO |
-                                 CDC_RESET | CDC_IOCTLS | CDC_DRIVE_STATUS,
+                                 CDC_RESET | CDC_DRIVE_STATUS,
        .n_minors               = 1,
 };
 
@@ -2936,6 +2934,9 @@ static int scd_block_ioctl(struct inode *inode, struct file *file,
                case CDROMCLOSETRAY:
                        retval = scd_tray_move(&scd_info, 0);
                        break;
+               case CDROMREADAUDIO:
+                       retval = scd_read_audio(&scd_info, CDROMREADAUDIO, arg);
+                       break;
                default:
                        retval = cdrom_ioctl(file, &scd_info, inode, cmd, arg);
        }
@@ -3140,7 +3141,7 @@ int __init cdu31a_init(void)
 
        if (cdu31a_irq > 0) {
                if (request_irq
-                   (cdu31a_irq, cdu31a_interrupt, SA_INTERRUPT,
+                   (cdu31a_irq, cdu31a_interrupt, IRQF_DISABLED,
                     "cdu31a", NULL)) {
                        printk(KERN_WARNING PFX "Unable to grab IRQ%d for "
                                        "the CDU31A driver\n", cdu31a_irq);