cdrom: Move mmc_ioctls above cdrom_ioctl to remove unnecessary prototype
Neaten the spacing too. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
parent
1237d1eecf
commit
2e9aa08a48
@ -337,8 +337,6 @@ do { \
|
|||||||
#define CDROM_DEF_TIMEOUT (7 * HZ)
|
#define CDROM_DEF_TIMEOUT (7 * HZ)
|
||||||
|
|
||||||
/* Not-exported routines. */
|
/* Not-exported routines. */
|
||||||
static int mmc_ioctl(struct cdrom_device_info *cdi, unsigned int cmd,
|
|
||||||
unsigned long arg);
|
|
||||||
|
|
||||||
int cdrom_get_last_written(struct cdrom_device_info *, long *);
|
int cdrom_get_last_written(struct cdrom_device_info *, long *);
|
||||||
static int cdrom_get_next_writable(struct cdrom_device_info *, long *);
|
static int cdrom_get_next_writable(struct cdrom_device_info *, long *);
|
||||||
@ -2713,103 +2711,6 @@ static int cdrom_ioctl_audioctl(struct cdrom_device_info *cdi,
|
|||||||
return cdi->ops->audio_ioctl(cdi, cmd, NULL);
|
return cdi->ops->audio_ioctl(cdi, cmd, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Just about every imaginable ioctl is supported in the Uniform layer
|
|
||||||
* these days.
|
|
||||||
* ATAPI / SCSI specific code now mainly resides in mmc_ioctl().
|
|
||||||
*/
|
|
||||||
int cdrom_ioctl(struct cdrom_device_info *cdi, struct block_device *bdev,
|
|
||||||
fmode_t mode, unsigned int cmd, unsigned long arg)
|
|
||||||
{
|
|
||||||
void __user *argp = (void __user *)arg;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Try the generic SCSI command ioctl's first.
|
|
||||||
*/
|
|
||||||
ret = scsi_cmd_blk_ioctl(bdev, mode, cmd, argp);
|
|
||||||
if (ret != -ENOTTY)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
switch (cmd) {
|
|
||||||
case CDROMMULTISESSION:
|
|
||||||
return cdrom_ioctl_multisession(cdi, argp);
|
|
||||||
case CDROMEJECT:
|
|
||||||
return cdrom_ioctl_eject(cdi);
|
|
||||||
case CDROMCLOSETRAY:
|
|
||||||
return cdrom_ioctl_closetray(cdi);
|
|
||||||
case CDROMEJECT_SW:
|
|
||||||
return cdrom_ioctl_eject_sw(cdi, arg);
|
|
||||||
case CDROM_MEDIA_CHANGED:
|
|
||||||
return cdrom_ioctl_media_changed(cdi, arg);
|
|
||||||
case CDROM_SET_OPTIONS:
|
|
||||||
return cdrom_ioctl_set_options(cdi, arg);
|
|
||||||
case CDROM_CLEAR_OPTIONS:
|
|
||||||
return cdrom_ioctl_clear_options(cdi, arg);
|
|
||||||
case CDROM_SELECT_SPEED:
|
|
||||||
return cdrom_ioctl_select_speed(cdi, arg);
|
|
||||||
case CDROM_SELECT_DISC:
|
|
||||||
return cdrom_ioctl_select_disc(cdi, arg);
|
|
||||||
case CDROMRESET:
|
|
||||||
return cdrom_ioctl_reset(cdi, bdev);
|
|
||||||
case CDROM_LOCKDOOR:
|
|
||||||
return cdrom_ioctl_lock_door(cdi, arg);
|
|
||||||
case CDROM_DEBUG:
|
|
||||||
return cdrom_ioctl_debug(cdi, arg);
|
|
||||||
case CDROM_GET_CAPABILITY:
|
|
||||||
return cdrom_ioctl_get_capability(cdi);
|
|
||||||
case CDROM_GET_MCN:
|
|
||||||
return cdrom_ioctl_get_mcn(cdi, argp);
|
|
||||||
case CDROM_DRIVE_STATUS:
|
|
||||||
return cdrom_ioctl_drive_status(cdi, arg);
|
|
||||||
case CDROM_DISC_STATUS:
|
|
||||||
return cdrom_ioctl_disc_status(cdi);
|
|
||||||
case CDROM_CHANGER_NSLOTS:
|
|
||||||
return cdrom_ioctl_changer_nslots(cdi);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Use the ioctls that are implemented through the generic_packet()
|
|
||||||
* interface. this may look at bit funny, but if -ENOTTY is
|
|
||||||
* returned that particular ioctl is not implemented and we
|
|
||||||
* let it go through the device specific ones.
|
|
||||||
*/
|
|
||||||
if (CDROM_CAN(CDC_GENERIC_PACKET)) {
|
|
||||||
ret = mmc_ioctl(cdi, cmd, arg);
|
|
||||||
if (ret != -ENOTTY)
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Note: most of the cd_dbg() calls are commented out here,
|
|
||||||
* because they fill up the sys log when CD players poll
|
|
||||||
* the drive.
|
|
||||||
*/
|
|
||||||
switch (cmd) {
|
|
||||||
case CDROMSUBCHNL:
|
|
||||||
return cdrom_ioctl_get_subchnl(cdi, argp);
|
|
||||||
case CDROMREADTOCHDR:
|
|
||||||
return cdrom_ioctl_read_tochdr(cdi, argp);
|
|
||||||
case CDROMREADTOCENTRY:
|
|
||||||
return cdrom_ioctl_read_tocentry(cdi, argp);
|
|
||||||
case CDROMPLAYMSF:
|
|
||||||
return cdrom_ioctl_play_msf(cdi, argp);
|
|
||||||
case CDROMPLAYTRKIND:
|
|
||||||
return cdrom_ioctl_play_trkind(cdi, argp);
|
|
||||||
case CDROMVOLCTRL:
|
|
||||||
return cdrom_ioctl_volctrl(cdi, argp);
|
|
||||||
case CDROMVOLREAD:
|
|
||||||
return cdrom_ioctl_volread(cdi, argp);
|
|
||||||
case CDROMSTART:
|
|
||||||
case CDROMSTOP:
|
|
||||||
case CDROMPAUSE:
|
|
||||||
case CDROMRESUME:
|
|
||||||
return cdrom_ioctl_audioctl(cdi, cmd);
|
|
||||||
}
|
|
||||||
|
|
||||||
return -ENOSYS;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Required when we need to use READ_10 to issue other than 2048 block
|
* Required when we need to use READ_10 to issue other than 2048 block
|
||||||
* reads
|
* reads
|
||||||
@ -3212,6 +3113,103 @@ static int mmc_ioctl(struct cdrom_device_info *cdi, unsigned int cmd,
|
|||||||
return -ENOTTY;
|
return -ENOTTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Just about every imaginable ioctl is supported in the Uniform layer
|
||||||
|
* these days.
|
||||||
|
* ATAPI / SCSI specific code now mainly resides in mmc_ioctl().
|
||||||
|
*/
|
||||||
|
int cdrom_ioctl(struct cdrom_device_info *cdi, struct block_device *bdev,
|
||||||
|
fmode_t mode, unsigned int cmd, unsigned long arg)
|
||||||
|
{
|
||||||
|
void __user *argp = (void __user *)arg;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Try the generic SCSI command ioctl's first.
|
||||||
|
*/
|
||||||
|
ret = scsi_cmd_blk_ioctl(bdev, mode, cmd, argp);
|
||||||
|
if (ret != -ENOTTY)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
switch (cmd) {
|
||||||
|
case CDROMMULTISESSION:
|
||||||
|
return cdrom_ioctl_multisession(cdi, argp);
|
||||||
|
case CDROMEJECT:
|
||||||
|
return cdrom_ioctl_eject(cdi);
|
||||||
|
case CDROMCLOSETRAY:
|
||||||
|
return cdrom_ioctl_closetray(cdi);
|
||||||
|
case CDROMEJECT_SW:
|
||||||
|
return cdrom_ioctl_eject_sw(cdi, arg);
|
||||||
|
case CDROM_MEDIA_CHANGED:
|
||||||
|
return cdrom_ioctl_media_changed(cdi, arg);
|
||||||
|
case CDROM_SET_OPTIONS:
|
||||||
|
return cdrom_ioctl_set_options(cdi, arg);
|
||||||
|
case CDROM_CLEAR_OPTIONS:
|
||||||
|
return cdrom_ioctl_clear_options(cdi, arg);
|
||||||
|
case CDROM_SELECT_SPEED:
|
||||||
|
return cdrom_ioctl_select_speed(cdi, arg);
|
||||||
|
case CDROM_SELECT_DISC:
|
||||||
|
return cdrom_ioctl_select_disc(cdi, arg);
|
||||||
|
case CDROMRESET:
|
||||||
|
return cdrom_ioctl_reset(cdi, bdev);
|
||||||
|
case CDROM_LOCKDOOR:
|
||||||
|
return cdrom_ioctl_lock_door(cdi, arg);
|
||||||
|
case CDROM_DEBUG:
|
||||||
|
return cdrom_ioctl_debug(cdi, arg);
|
||||||
|
case CDROM_GET_CAPABILITY:
|
||||||
|
return cdrom_ioctl_get_capability(cdi);
|
||||||
|
case CDROM_GET_MCN:
|
||||||
|
return cdrom_ioctl_get_mcn(cdi, argp);
|
||||||
|
case CDROM_DRIVE_STATUS:
|
||||||
|
return cdrom_ioctl_drive_status(cdi, arg);
|
||||||
|
case CDROM_DISC_STATUS:
|
||||||
|
return cdrom_ioctl_disc_status(cdi);
|
||||||
|
case CDROM_CHANGER_NSLOTS:
|
||||||
|
return cdrom_ioctl_changer_nslots(cdi);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Use the ioctls that are implemented through the generic_packet()
|
||||||
|
* interface. this may look at bit funny, but if -ENOTTY is
|
||||||
|
* returned that particular ioctl is not implemented and we
|
||||||
|
* let it go through the device specific ones.
|
||||||
|
*/
|
||||||
|
if (CDROM_CAN(CDC_GENERIC_PACKET)) {
|
||||||
|
ret = mmc_ioctl(cdi, cmd, arg);
|
||||||
|
if (ret != -ENOTTY)
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Note: most of the cd_dbg() calls are commented out here,
|
||||||
|
* because they fill up the sys log when CD players poll
|
||||||
|
* the drive.
|
||||||
|
*/
|
||||||
|
switch (cmd) {
|
||||||
|
case CDROMSUBCHNL:
|
||||||
|
return cdrom_ioctl_get_subchnl(cdi, argp);
|
||||||
|
case CDROMREADTOCHDR:
|
||||||
|
return cdrom_ioctl_read_tochdr(cdi, argp);
|
||||||
|
case CDROMREADTOCENTRY:
|
||||||
|
return cdrom_ioctl_read_tocentry(cdi, argp);
|
||||||
|
case CDROMPLAYMSF:
|
||||||
|
return cdrom_ioctl_play_msf(cdi, argp);
|
||||||
|
case CDROMPLAYTRKIND:
|
||||||
|
return cdrom_ioctl_play_trkind(cdi, argp);
|
||||||
|
case CDROMVOLCTRL:
|
||||||
|
return cdrom_ioctl_volctrl(cdi, argp);
|
||||||
|
case CDROMVOLREAD:
|
||||||
|
return cdrom_ioctl_volread(cdi, argp);
|
||||||
|
case CDROMSTART:
|
||||||
|
case CDROMSTOP:
|
||||||
|
case CDROMPAUSE:
|
||||||
|
case CDROMRESUME:
|
||||||
|
return cdrom_ioctl_audioctl(cdi, cmd);
|
||||||
|
}
|
||||||
|
|
||||||
|
return -ENOSYS;
|
||||||
|
}
|
||||||
|
|
||||||
static int cdrom_get_track_info(struct cdrom_device_info *cdi, __u16 track, __u8 type,
|
static int cdrom_get_track_info(struct cdrom_device_info *cdi, __u16 track, __u8 type,
|
||||||
track_information *ti)
|
track_information *ti)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user