X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=drivers%2Fcdrom%2Fcm206.c;h=fad27a87ce35af5f4d01fc20df5c3f777f851554;hb=e93252faca2eb1a14b44369705be7c79eba2f037;hp=01f0351733285520f1394d6a86a67b69d8dcab85;hpb=2031d0f586839bc68f35bcf8580b18947f8491d4;p=linux-2.6-omap-h63xx.git diff --git a/drivers/cdrom/cm206.c b/drivers/cdrom/cm206.c index 01f03517332..fad27a87ce3 100644 --- a/drivers/cdrom/cm206.c +++ b/drivers/cdrom/cm206.c @@ -32,7 +32,7 @@ History: 18 mrt 1995: 0.24 Working background read-ahead. (still problems) 26 mrt 1995: 0.25 Multi-session ioctl added (kernel v1.2). Statistics implemented, though separate stats206.h. - Accessible trough ioctl 0x1000 (just a number). + Accessible through ioctl 0x1000 (just a number). Hard to choose between v1.2 development and 1.1.75. Bottom-half doesn't work with 1.2... 0.25a: fixed... typo. Still problems... @@ -1157,32 +1157,6 @@ static int cm206_audio_ioctl(struct cdrom_device_info *cdi, unsigned int cmd, } } -/* Ioctl. These ioctls are specific to the cm206 driver. I have made - some driver statistics accessible through ioctl calls. - */ - -static int cm206_ioctl(struct cdrom_device_info *cdi, unsigned int cmd, - unsigned long arg) -{ - switch (cmd) { -#ifdef STATISTICS - case CM206CTL_GET_STAT: - if (arg >= NR_STATS) - return -EINVAL; - else - return cd->stats[arg]; - case CM206CTL_GET_LAST_STAT: - if (arg >= NR_STATS) - return -EINVAL; - else - return cd->last_stat[arg]; -#endif - default: - debug(("Unknown ioctl call 0x%x\n", cmd)); - return -EINVAL; - } -} - static int cm206_media_changed(struct cdrom_device_info *cdi, int disc_nr) { if (cd != NULL) { @@ -1321,11 +1295,10 @@ static struct cdrom_device_ops cm206_dops = { .get_mcn = cm206_get_upc, .reset = cm206_reset, .audio_ioctl = cm206_audio_ioctl, - .dev_ioctl = cm206_ioctl, .capability = CDC_CLOSE_TRAY | CDC_OPEN_TRAY | CDC_LOCK | CDC_MULTI_SESSION | CDC_MEDIA_CHANGED | CDC_MCN | CDC_PLAY_AUDIO | CDC_SELECT_SPEED | - CDC_IOCTLS | CDC_DRIVE_STATUS, + CDC_DRIVE_STATUS, .n_minors = 1, }; @@ -1350,6 +1323,21 @@ static int cm206_block_release(struct inode *inode, struct file *file) static int cm206_block_ioctl(struct inode *inode, struct file *file, unsigned cmd, unsigned long arg) { + switch (cmd) { +#ifdef STATISTICS + case CM206CTL_GET_STAT: + if (arg >= NR_STATS) + return -EINVAL; + return cd->stats[arg]; + case CM206CTL_GET_LAST_STAT: + if (arg >= NR_STATS) + return -EINVAL; + return cd->last_stat[arg]; +#endif + default: + break; + } + return cdrom_ioctl(file, &cm206_info, inode, cmd, arg); }