linux/drivers/ide/ide-cd.c
<<
>>
Prefs
   1/*
   2 * ATAPI CD-ROM driver.
   3 *
   4 * Copyright (C) 1994-1996   Scott Snyder <snyder@fnald0.fnal.gov>
   5 * Copyright (C) 1996-1998   Erik Andersen <andersee@debian.org>
   6 * Copyright (C) 1998-2000   Jens Axboe <axboe@suse.de>
   7 * Copyright (C) 2005, 2007-2009  Bartlomiej Zolnierkiewicz
   8 *
   9 * May be copied or modified under the terms of the GNU General Public
  10 * License.  See linux/COPYING for more information.
  11 *
  12 * See Documentation/cdrom/ide-cd for usage information.
  13 *
  14 * Suggestions are welcome. Patches that work are more welcome though. ;-)
  15 *
  16 * Documentation:
  17 *      Mt. Fuji (SFF8090 version 4) and ATAPI (SFF-8020i rev 2.6) standards.
  18 *
  19 * For historical changelog please see:
  20 *      Documentation/ide/ChangeLog.ide-cd.1994-2004
  21 */
  22
  23#define DRV_NAME "ide-cd"
  24#define PFX DRV_NAME ": "
  25
  26#define IDECD_VERSION "5.00"
  27
  28#include <linux/module.h>
  29#include <linux/types.h>
  30#include <linux/kernel.h>
  31#include <linux/delay.h>
  32#include <linux/timer.h>
  33#include <linux/seq_file.h>
  34#include <linux/slab.h>
  35#include <linux/interrupt.h>
  36#include <linux/errno.h>
  37#include <linux/cdrom.h>
  38#include <linux/ide.h>
  39#include <linux/completion.h>
  40#include <linux/mutex.h>
  41#include <linux/bcd.h>
  42
  43/* For SCSI -> ATAPI command conversion */
  44#include <scsi/scsi.h>
  45
  46#include <linux/io.h>
  47#include <asm/byteorder.h>
  48#include <linux/uaccess.h>
  49#include <asm/unaligned.h>
  50
  51#include "ide-cd.h"
  52
  53static DEFINE_MUTEX(ide_cd_mutex);
  54static DEFINE_MUTEX(idecd_ref_mutex);
  55
  56static void ide_cd_release(struct device *);
  57
  58static struct cdrom_info *ide_cd_get(struct gendisk *disk)
  59{
  60        struct cdrom_info *cd = NULL;
  61
  62        mutex_lock(&idecd_ref_mutex);
  63        cd = ide_drv_g(disk, cdrom_info);
  64        if (cd) {
  65                if (ide_device_get(cd->drive))
  66                        cd = NULL;
  67                else
  68                        get_device(&cd->dev);
  69
  70        }
  71        mutex_unlock(&idecd_ref_mutex);
  72        return cd;
  73}
  74
  75static void ide_cd_put(struct cdrom_info *cd)
  76{
  77        ide_drive_t *drive = cd->drive;
  78
  79        mutex_lock(&idecd_ref_mutex);
  80        put_device(&cd->dev);
  81        ide_device_put(drive);
  82        mutex_unlock(&idecd_ref_mutex);
  83}
  84
  85/*
  86 * Generic packet command support and error handling routines.
  87 */
  88
  89/* Mark that we've seen a media change and invalidate our internal buffers. */
  90static void cdrom_saw_media_change(ide_drive_t *drive)
  91{
  92        drive->dev_flags |= IDE_DFLAG_MEDIA_CHANGED;
  93        drive->atapi_flags &= ~IDE_AFLAG_TOC_VALID;
  94}
  95
  96static int cdrom_log_sense(ide_drive_t *drive, struct request *rq)
  97{
  98        struct request_sense *sense = &drive->sense_data;
  99        int log = 0;
 100
 101        if (!sense || !rq || (rq->cmd_flags & REQ_QUIET))
 102                return 0;
 103
 104        ide_debug_log(IDE_DBG_SENSE, "sense_key: 0x%x", sense->sense_key);
 105
 106        switch (sense->sense_key) {
 107        case NO_SENSE:
 108        case RECOVERED_ERROR:
 109                break;
 110        case NOT_READY:
 111                /*
 112                 * don't care about tray state messages for e.g. capacity
 113                 * commands or in-progress or becoming ready
 114                 */
 115                if (sense->asc == 0x3a || sense->asc == 0x04)
 116                        break;
 117                log = 1;
 118                break;
 119        case ILLEGAL_REQUEST:
 120                /*
 121                 * don't log START_STOP unit with LoEj set, since we cannot
 122                 * reliably check if drive can auto-close
 123                 */
 124                if (rq->cmd[0] == GPCMD_START_STOP_UNIT && sense->asc == 0x24)
 125                        break;
 126                log = 1;
 127                break;
 128        case UNIT_ATTENTION:
 129                /*
 130                 * Make good and sure we've seen this potential media change.
 131                 * Some drives (i.e. Creative) fail to present the correct sense
 132                 * key in the error register.
 133                 */
 134                cdrom_saw_media_change(drive);
 135                break;
 136        default:
 137                log = 1;
 138                break;
 139        }
 140        return log;
 141}
 142
 143static void cdrom_analyze_sense_data(ide_drive_t *drive,
 144                                     struct request *failed_command)
 145{
 146        struct request_sense *sense = &drive->sense_data;
 147        struct cdrom_info *info = drive->driver_data;
 148        unsigned long sector;
 149        unsigned long bio_sectors;
 150
 151        ide_debug_log(IDE_DBG_SENSE, "error_code: 0x%x, sense_key: 0x%x",
 152                                     sense->error_code, sense->sense_key);
 153
 154        if (failed_command)
 155                ide_debug_log(IDE_DBG_SENSE, "failed cmd: 0x%x",
 156                                             failed_command->cmd[0]);
 157
 158        if (!cdrom_log_sense(drive, failed_command))
 159                return;
 160
 161        /*
 162         * If a read toc is executed for a CD-R or CD-RW medium where the first
 163         * toc has not been recorded yet, it will fail with 05/24/00 (which is a
 164         * confusing error)
 165         */
 166        if (failed_command && failed_command->cmd[0] == GPCMD_READ_TOC_PMA_ATIP)
 167                if (sense->sense_key == 0x05 && sense->asc == 0x24)
 168                        return;
 169
 170        /* current error */
 171        if (sense->error_code == 0x70) {
 172                switch (sense->sense_key) {
 173                case MEDIUM_ERROR:
 174                case VOLUME_OVERFLOW:
 175                case ILLEGAL_REQUEST:
 176                        if (!sense->valid)
 177                                break;
 178                        if (failed_command == NULL ||
 179                            failed_command->cmd_type != REQ_TYPE_FS)
 180                                break;
 181                        sector = (sense->information[0] << 24) |
 182                                 (sense->information[1] << 16) |
 183                                 (sense->information[2] <<  8) |
 184                                 (sense->information[3]);
 185
 186                        if (t;faiormation[3]);
 180            comment"> */
drive sense< sizrid="2K="L171" class="line" name="L171"> 171  href="dri1vers/ide/ide-cd.c#L89" i1d="L818ailed_command" class="sref">f" id="L1<sense-&" id="L1a 2lass="line" name="L185"> 185
/* Mark that we1'180" class="line" name="L170"> 170  ic void <1a href="+code=cdrom_saw_1media19ef="drivers/ide/ide-cd.c#L181ors;
 == NULL ||ormation[3]);
 185
< href="dr1ivers/ide/ide-cd.c#L92" 1id="L19r" class="sref">sector = (sense-&="sref"> href="+code=faif="drivers/ide/ide-cd.c#L150" id="L150" c - 1class="line" name="L185"> 185
<          ef="+code=drive" class="1sref"193" class="line" name="L143"> 143st    senside/ide-cd.c#L162" id="L162" class="line" name="L162"> 162 132 132 133 133 133 * For historical#39;19gelog please see:
 133<2a href="d2ivers/ide/ide-cd.c#L101"2id="L20e good and sure we've seen this potentia========*22" class="line" name="L22">  22
sector = >sense-&" idce(&ref=3" id="L0" ced_command =e" class="sref">drive-&ver_data;
->s="line" name="L22">  22
faiormation[3]);
N" id="L" class="sref">probf">N" id="L0" c - sense-&" idc4=* 75lass="line" name="L180"> 180 2a href="d2ivers/ide/ide-cd.c#L104"2id="L20code=sense" class="sref">sense-&gsef=3" id="L0" ced_command =e" class="sref">drive-&ver_data;
sense-class="line" name="L185"> 185
2       142
2a href="d2ivers/ide/ide-cd.c#L106"2id="L20REQUEST" claslass="line" name="L142"> 142
2ane  142
2aref="driv ide_drive_t *driv1" id, faiormation[3]);
senseclass="line" name="L185"> 185
2 ude <<  142
2aude <<    break;
 170 2      cas2 cdrom_saw_melasscd>c#L40" e_c#L159"lass="sref">cmdc#L40" e_c#L159"la0" ced_command =e="+code=drive" class="sref">drive, struct request *rq)
  97{
  92    2pan class2"comment">              2  * d21rive-> 162<2pan class2"comment">              2  * c2mmands or in-progress or becoming rean>
ide-crqormatspecial>ide-c pointsvers-cd.original162" class="line" name="L162"> 162<2p                   2  */<2span>
s "L14 shouldsbe here162" class="line" name="L162"> 162<2p href="d2    if ( 162<2pne s L90" i >itrgopan>pide/du hre mapphreL133" class="line" name="L133"> 133<2         2      22
request_sense *rq)
rq)
) {
 185
2      cas2 drivehref="+code=faif="ders/ide/ide-cd.c#L1f="ders/0" ced_command =-cd.c#L97" id="L97" cla_key) {
 185
2         2     161 2pan class2"comment">              2  * d22f">sense-> 173 2pan class2"comment">              2  * r22de/ide-cd.c#L103" id=>sensecclass="line" name="L173"> 173 2pan class2"comment">              2  */<22code=sense" class="sref">senside/ide-cd.c#L162" id="L162" class="line" name="L162"> 162<2         2    if (
s d="Llwayswhere intoct senormats" id="L14L133" class="line" name="L133"> 133<2         2            break;
)
 133<2 ne s point i sefL133" class="line" name="L133"> 133<2         2    break;
  22
get_device(&memcpL0" ced_command == -_key) {
senset;sense, 18 lass="line" name="L185"> 185
2      cas2    (&-_key) {
href="+code=fai-cd.c#L97" id="L97" cla_key) {
 185
2pan class2"comment">              2  * M23ef="drivers/ide/ide-class="line" name="L142"> 142
2pan class2"comment">              2  * S23an>
(ide_drive_t *failed_command))
- lass="line" name="L185"> 185
2pan class2"comment">              2  * k233" class="line" name="L143"> 143s2pan class2"comment">              2  */<23code=sense" class="srde_device_get(cmd *failed_command))
-, -d_command))EIOers/ide/ide-cd.EIO>failed_command))blk"la_byte/ide/ide-cd.c#L15lk"la_byte/0" ced_command == -)class="line" name="L159"> 159 2         2     185
2p        2    break;
  68    2      def2ult:
log = 1;
ide_drive_t *failed_command))de/ide-cd.c#L179" id="L179" lass="line" name="L185"> 185
2p        2    lass="line" name="L142"> 142
2p     cas2    break;
  89 170 2      ret2rn  162<2 162<2 133<2atic void2 162<2<        2                        2struc24pan>
 165<2 133<2      str2ct   22
cdrom_log_senselasscd>81" 63"ss="sref">cmd81" 63"0" ced_command =e="+code=drive" class="sref">drive, struct request *rq)
  97{
 173 2      uns2gned long  170 2a href="d2ivers/ide/ide-cd.c#L151"2id="L25ef="drivers/irom_info *info = drive->driver_data;
 148 2       148 2 an class2                        2) {
  97{
drive-&ver_data;
driwrite_time-> 148 2         2  85) {
 138 2         2                        2     25"srefass="line" name="L142"> 142
2a href="d2ivers/ide/ide-cd.c#L158"2id="L257"+code=sense->/a>) {
 =jiffie/ide/ide-cd.c#L1jiffie/a>-&led_command))e" class="sref">drive-&ver_data;
driwrite_time-&class="line" name="L159"> 159 2      if 2!g"L103" class="line" name="L103"> 103
2         2    return;
 173 2a href="d2ivers/ide/ide-cd.c#L161"2id="L26an>
 121<2      /*
 121<2 an class2"comment">         * If 2 read2toc is executed for a CD-R or CD-RW msent the 22" class="line" name="L22">  22
         * toc2has n26code=sense" class="srd_command =5lk"delay_f="drmation" class="5lk"delay_f="dr, faiormation[3]);
 185
2pan class2"comment">         * con2using26ia_change" class="sre"L103" class="line" name="L138"> 138 2pan class2"comment">         */
<26REQUEST" claslass="line" name="L142"> 142
2      if 2 142
2  href="d2    if ( 158 2         2            return;
 121<2         2ivers/ide/ide-cd.c#L170"2id="L26gelog please see:
 121<2      /* cur2ent e27e good and sure we've se* 0:ide/63" a>)
 133<2      if 2)
 133<2 an class2    switch ()
 133<2 an class2    case   22
cdrom_log_sense( =e="+code=drive" class="sref">drive, struct requeuct ) {
  97{
 146 2         2            if (! =e="+hwifdrive" class="sref">dhwifdr>, struct driver_data;
 138 2         2                    brea2;
cdrom_info *rq)
 138 2         2            if (d.cide/ide-cd.c#L11" enset;rq 103
2         2                 170 2         2                    brea2;

  22
ide_debug_log(dherev1" idDE_DBG_SENSE" classherev1" id, faiclass="line" name="L185"> 185
2         2                     ( 185
2 an class2                     ( 154 2         2                     ( =e="+c"+code=IDE_DBG_SENSE" class="sref">IDE_DBG_SENSE, ,
-cd.c#L156, 1" -cd.c#L156, " id="L156" cass="line" name="L154"> 154 2         2ivers/ide/ide-cd.c#L186"2id="L28ers/ide/ide-cd.c#L126" id="L1 class="srdt;,  156 2         2            if (t; =lass="sref">cmd[0] == cmd_flags & REQ_t; 185
2         2comment"> */
 158 2href="dri2vers/ide/ide-cd.c#L89" i2d="L828 class="sref">cdrcmd_flags & REQ_
 173 2a        2comment">/* Mark that we2'28an>
 130<2ic void <2a href="+code=cdrom_saw_2media29e good and sure we've seen this potential Wergopand d.c#L1tryhre to-gedeid">s vef0" class="line" name="L130"> 130<2i        2ivers/ide/ide-cd.c#L92" 2id="L29e drives (i.e. Creative) fail to present the c(prob="dri164l" tryhre to-33a 133<2         2ef="+code=drive" class="2sref"29 in the error register.
 133<2 an class2ef="+code=drive" class="2sref"29pan>
 134 2 href="dr2ivers/ide/ide-cd.c#L95" 2id="L29ia_change" class="sref">cdrom_saw_meags" class="sref">cmd_flags &  138 2href="dri2vers/ide/ide-cd.c#L96" i2d="L929ers/ide/ide-cd.c#L126"L103" 2lass="line" name="L185"> 185
2h        2 href="+code=cdrom_log_s2ense"29ueuc#L174cal lass="line" name="L142"> 142
2 href="dr2ivers/ide/ide-cd.c#L98" 2id="L298" class="line" name="L158"> 158 2 ref="dri2t  134 2         2oomment"> * For historic2l#39;299class="sref">cdrcmd_flags & REQ_
) {
  97{
) {
) {
 138 3      if 3! 148 3 ref="dri3    return 0;
 =5lk"no"L1ry"lrq" class="sref">rq,   97{
rq 138 3        85-> 173 3ane  176 3aref="dri3 sense->cmd_flags & REQ_
-> 173 3a8ef="dri3  failed_command =iasscd>81" 63"ss="sref">cmd81" 63"0" ced_command =ode=request" class="sref">requeuct   97{
 * For historic3rs/id30ailed_command" class="sref">faileeeee"L103" class="line" name="L138"> 138 3      cas3  173 3         3    sector = (drive);
 135 3pan class3"comment">              3  * d313" class="line" name="L143"> 143s3pan class3"comment">              3  * c31code=sense" class="sref">sens>cmd_flags & REQ_
->ass="line" name="L143"> 143s3p                   3  */<31code=sense" class="sref">sensecmd_flags &   97{
) {
,  156 3pne driver_data;
 135 3pref="dri3    sense-lass="line" name="L142"> 142
3         3    break;
rq 138 3      cas3  181 3         3    ILLEGAL_REQUESTUNIT_ATTEN"L12ide/ide-cd.c#L1UNIT_ATTEN"L121" class="line" name="L176"> 176 3pan class3"comment">              3  * d32an>
(drive);
 135 3pan class3"comment">              3  * r323" class="line" name="L143"> 143s3pan class3"comment">              3  */<32code=sense" class="sr>cmd_flags & REQ_
YPE_FS)
 180 3         3    if (sens"L103" class="line" name="L103"> 103
3         3            break;
 186 3 ne log = 1;
 130<3         3    break;
 to-33try/63" a>)
 to-game up- sewec#L9;f">f0" class="line" name="L130"> 130<3      cas3  133<3      cas3     134 3pan class3"comment">              3  * M33ef="drivers/ide/ide-c>++ia href="+code=-cd.c#L97" id="L97" cla_key) {
) {
 180 3pan class3"comment">              3  * S33an>
rq 138 3pan class3"comment">              3  * k33de/ide-cd.c#L103" id=81" class="line" name="L181"> 181 3pan class3"comment">              3  */<33code=sense" c>ILLEGAL_REQUEST:
 176 3         3     130<3p        3    break;
 -cd.63is condi id= -- SFF8090i130" class="line" name="L130"> 130<3pne s to-a lrq" cl c0" class="line" name="L130"> 130<3p        3     133<3p     cas3    break;
 133<3p     cas3 href="drivers/ide/ide-c3.c#L133gelog please see:
drive() knowde63is!133" class="line" name="L133"> 133<3      ret3rn  134 3
cmd_flags & GPCMD_READ_TOC_PMSTARTMSTOP_UNIT_START_STOP_UNITOC_PMSTARTMSTOP_UNIT0" class="line" name="L180"> 180 3 181 3atic void3 134 3<        3                        3struc344ode=sense" c>ILLEGAL_REQUESTDATA_PROTECT_START_STOP_UNIDATA_PROTECT6" class="line" name="L176"> 176 3 130<3      str3ct  130<3         3ct  133<3      uns3gned long  134 3<     cas3gned long cmd_flags &   97{
;
 =ode=request" class="sref">requeuot;,
 185
3      rq 138 3 an class3                        3 181 3a href="d3ivers/ide/ide-cd.c#L154"3id="L35code=sense" c>ILLEGAL_REQUESTref="drivers/ide/ide-cd.c#L174" id="L174" class="line" name="L174"> 174 3         3 130<3         3     133<3         3                        3     35and support and error handlie-cd.c#L115" id=" Isewe gopaheli/63" d.c#L1is nopan>r132"ableL133" class="line" name="L133"> 133<3         3ivers/ide/ide-cd.c#L158"3id="L35ivers/ide/ide-cd.c#L88" id="e-cd.c#L115" id=*L134" class="line" name="L134"> 134 3      if 3!g->;cmd_flags &   97{
(& =ode=request" class="sref">requeuot;,
dr d.c#L1" id="L156" cass="line" name="L154"> 154 3a href="d3ivers/ide/ide-cd.c#L161"3id="L36an>
,
 185
3      /*

rq 138 3 an class3"comment">         * If 3 read36de/ide-cd.c#L103" id=81" class="line" name="L181"> 181 3pan class3"comment">         * toc3has n36code=sense" c>ILLEGAL_REQUESTBLANK_CHECKass="sref">rq 174 3pan class3"comment">         * con3using36ia_change" class="sre 134 3pan class3"comment">         */
<36ers/ide/ide-cd.c#L126->;cmd_flags &   97{
 =ode=request" class="sref">requeuot;,
dr d.c#L1(blank)" id="L156" class="line" name="L156"> 156 3  href="d3    if ( 185
3      if 3            return;
rq 138 3         3ivers/ide/ide-cd.c#L170"3id="L36ailed_command" class=81" class="line" name="L181"> 181 3      /* cur3ent e37an>
 174 3      if 3cmd_flags & REQ_
YPE_FS)
 180 3 an class3    switch ( 181 3 an class3    case  173 3         3    case  134 3         3    case faiueuot;,
 185
3         3            if (! 138 3         3                    brea3;
sense-l6clasc>++ia href="+code=-cd.c#L97" id="L97" cla_key) {
) {
 180 3         3            if (get_devicea href="drivers/ide/ide-wec#L9;f" racked upvero many 169rids, abort=*L134" class="line" name="L134"> 134 3         3                
rq 138 3         3                    brea3;

lass="line" name="L142"> 142
3         3             148 3         3                     ( =ags" class="sref">cmd_flags & REQ_
YPE_FS)
 173 3 an class3                     (cmd_flags &  138 3         3                     (rq 138 3         3ivers/ide/ide-cd.c#L186"3id="L38ers/ide/ide-class="line" name="L142"> 142
3         3            if (t; 142
3         3comment"> */
ide_drivede/ide-cd.c#L130" id="L130" class="line" name="L130"> 130<3href="dri3vers/ide/ide-cd.c#L89" i3d="L838vers/ide/ide-cd.c#L19" id="Le-cd.c#L* End-a lrq" cl throughca>)
s " clasis whenewe hame sf">s "L14L133" class="line" name="L133"> 133<3a        3comment">/* Mark that we3'38gelog please see:
dr provesshreL133" class="line" name="L133"> 133<3ic void <3a href="+code=cdrom_saw_3media39e good and sure we've seen this *L134" class="line" name="L134"> 134 3i        3ivers/ide/ide-cd.c#L92" 3id="L39f">sense->rq 180 3         3ef="+code=drive" class="3sref"39de/ide-cd.c#L103" id=goers/a>) {
rq 138 3 an class3ef="+code=drive" class="3sref"394" class="line" name="L154"> 154 3 href="dr3ivers/ide/ide-cd.c#L95" 3id="L39ia_change" cls iid="L1 *L134" class="line" name="L134"> 134 3i        3vers/ide/ide-cd.c#L96" i3d="L939ers/ide/ide-c>-> 180 3         3 href="+code=cdrom_log_s3ense"39 (&cmdfaiueuref="+code=faide/ide-cd.c#L179" id="L179"  ? 2 :;class="line" name="L138"> 138 3 href="dr3ivers/ide/ide-cd.c#L98" 3id="L39ref">ide_driv"L103" class="line" name="L138"> 138 3 ref="dri3t   89 * For historic3l#39;399clas/a>) {
rq 174 4a href="d4ivers/ide/ide-cd.c#L101"4id="L40an>
-> 173 4      if 4!) {
 138 4 ref="dri4    return 0;
(&cmdfaiueuref="+code=fai-cd.c#L97" id="L97" clas
? 2 :;class="line" name="L138"> 138 4a3ef="dri4 f="+code=drive" class="4id="L40code=sense" c} class="line" name="L68">  68    4       185
4a href="d4ivers/ide/ide-cd.c#L106"4id="L40REQUElass="line" name="L142"> 142
4ane  142
4aref="dri4 ="sree(&cmddrive, struct request * 180 4a8ef="dri4   173 4a9ef="dri4 omment"> * For historic4rs/id40ailed_commandrom_info *rq)
;
 138 4      cas4  161 4         4    IDE_DBG_SENSE, faiueuot;,
 =lass="sref">cmd[0] ==  185
4pan class4"comment">              4  * d413" class="line" name="L143"> 143s4pan class4"comment">              4  * c41code=sense" cede/ide-cd.c#L130" id="L130" class="line" name="L130"> 130<4p                   4  */<41pan>
s fields arecop id=al,130" class="line" name="L130"> 130<4p href="d4    if ( 133<4pne  134 4pref="dri4    ) {
cmd_flags & GPCMD_READ_TOC_PMid="L17L 0x&#_TYPE_FS" classTOC_PMid="L17L 0x&# claa>->>->ass="line" name="L143"> 143s4         4    break;
;
rq->;
rq 180 4      cas4 ;
rq 103
4         4     142
4pan class4"comment">              4  * d42"srefass="line" name="L148"> 148 4pan class4"comment">              4  * r423" clcdrom_log_senselasscd>f="dr=pcss="sref">cmddrive, struct requeconcl unsigned chartruct  156 4pan class4"comment">              4  */<42code=sense" class="srense-drom_log_sensewrite_START_STOP_UNIwrite>reque="sreruct requeunsigned ruct  156 4p     rom_info *rq)
, struct rq, s,e-drom_log_sensetimedritime-&lass="line" name="L156"> 156 4p href="d4            break;
(f="flage=REQ_QUIET" clasf="flagea_chlass="line" name="L180"> 180 4 ne lass="line" name="L173"> 173 4         4    break;
cdrom_info *info = drive->driver_data;
 148 4      cas4 cdrom_info *rq)
, sto *rq 148 4      cas4    drom_log_sense169ridsass="sref">rq9rids clagt;cclass="line" name="L103"> 103
4pan class4"comment">              4  * M43ef="drivers/iunsigned cdrom_log_senseflage=REQ_QUIET" claflagea_chat;class="line" name="L103"> 103
4pan class4"comment">              4  * S43"srefass="line" name="L148"> 148 4pan class4"comment">              4  * k43="+code=sense->rq, slass="line" name="L180"> 180 4pan class4"comment">              4  */<43code=sense" class="srrq, sat;>->o *rq 148 4         4      85IDE_DBG_SENSE, faiueuot;,
 154 4pne ,
 154 4p        4    dritime-&lom_log_sense(f="flage=REQ_QUIET" clasf="flagea_chllass="line" name="L148"> 148 4      cas4    break;
  89 134 4      ret4rn  173 4
rq)
 148 4d.cidDE_DBG_SENSE" c1" id,  148 4 154 4<        4                        4struc44ia_change" class="sre<(&rqfaiormation[3]);
 =write_START_STOP_UNIwrite>requem_log_sense__GFP_WAIT_START_STOP_UNI__GFP_WAITa_chllass="line" name="L148"> 148 4 186 4      str4ct log = 1;
memcp/ide/ide-cd.c#L1memcp/, cmd_flags & (f=_START_STOP_UNIT" claslom_log_senseBLK_MAX_CDB_START_STOP_UNIBLK_MAX_CDBa_chllass="line" name="L148"> 148 4<        4ct cmd_flags & REQ_
)
 148 4<     cas4gned long cmd_flags & rq, sat;/a> & rq, slass="line" name="L148"> 148 4<     cas4gned long cmd_flags &  148 4a href="d4ivers/ide/ide-cd.c#L151"4id="L45ef="drivers/ide/ide-chref="+code=faiags" class="sref">cmd_flags & dritime-&at;/a> & dritime-&lass="line" name="L148"> 148 4aa href="4ref="+code=ide_debug_log4 clas45an>
reqlclass="line" name="L173"> 173 4 an class4                        4faiormation[3]);
 =ags" class="sref">cmd_f, d_command =buffedDE_DBG_SENSE" cbuffed>requass="line" name="L173"> 173 4 an class4ivers/ide/ide-cd.c#L154"4id="L45code=sense" class="srenseeeeeeeeeeeeeeeeeeeeeeeeeeeeeruct GPCMD_READ_TFP_NOIO_TYPE_FS" classTFP_NOIOa_chllass="line" name="L148"> 148 4         4 173 4 a href="4    rqcmd_fllass="line" name="L148"> 148 4      str4                        4     45ueuc#L174cal changelog please class=""L103" e(& 148 4         4ivers/ide/ide-cd.c#L158"4id="L45ef="drivers/ide/ide-cd.c#L178lass="line" name="L142"> 142
4      if 4!glass="line" name="L142"> 142
4      cas4    return;
 170 4a href="d4ivers/ide/ide-cd.c#L161"4id="L46an>
cmdfaiormation[3]);
 =e" class="sref">drive-&ver_data;
 =ags" class="sref">cmd_f, 0llass="line" name="L148"> 148 4      /*
 148 4 an class4"comment">         * If 4 read46de/ide-cd.c#L103" id=->d_command =5uffedDE_DBG_SENSE" cbuffed>reqlass="line" name="L148"> 148 4 an class4"comment">         * toc4has n46code=sense" class="srenseeeeeruct cmd_flags &  148 4pan class4"comment">         * con4using46 class="line" name="L85">  85         */
<46ers/ide/ide-cd.c#L126m_log_senseflage=REQ_QUIET" claflagea_chat;href="+code=faiags" class="sref">cmd_flags &  148 4p     str4rqcmd_fllass="line" name="L148"> 148 4  href="d4    if ( 158 4      if 4            return;
 130<4         4ivers/ide/ide-cd.c#L170"4id="L46gelog please see:
ILLEof130" class="line" name="L130"> 130<4      /* cur4ent e47e good and sure we've seen this potential failureL133" class="line" name="L133"> 133<4      if 4 134 4 an class4    switch ( =flage=REQ_QUIET" claflagea_cha>-> 173 4 an class4    case  130<4         4    case )
 130<4         4    case dr was vedLL133" class="line" name="L133"> 133<4         4            if (! 134 4  href="d4                    brea4;
sense---------rom_info *rq)
, struct rq)buf>, sat;/a> & rq, slass="line" name="L148"> 148 4         4            if (  89
rq)buf>, slags & GPCMD_READ_UNIT_ATTEN"L12ide/ide-cd.c#L1UNIT_ATTEN"L121" class="line" name="L148"> 148 4         4                    brea4;

 & (drive);
 135 4         4            ) {
)bufass="sref">rq)buf>, slags & GPCMD_READ_" id="L11ide/ide-cd.c#L1" id="L111" ca>->>->ass="line" name="L143"> 143s4         4                     ( & )bufass="sref">rq)buf>, slags & cmd->rq)buf>, slags &  173 4 an class4                     ( 130<4         4                     (
 130<4         4ivers/ide/ide-cd.c#L186"4id="L48href="drivers/ide/ide-cd.c#L166" id=115" id=potentiaaaaaaaaal a->isk.  R3try,2buwhwaipan littl> to-game130" class="line" name="L130"> 130<4         4            if (t; 133<4         4comment"> */
 134 4href="dri4vers/ide/ide-cd.c#L89" i4d="L848evice" class="sref">get_deviccccccccc/a> & cmd 135 4         4comment">/* Mark that we4'48an>
 173 4ic void <4a href="+code=cdrom_saw_4media49an>
 134 4i        4ivers/ide/ide-cd.c#L92" 4id="L49an>
rq9rids clagt;class="line" name="L103"> 103
4         4ef="+code=drive" class="4sref"49de/ide-cd.c#L103" id=et_deviclass="line" name="L103"> 103
4 an class4ef="+code=drive" class="4sref"49code=sense" class="sre/ide-c"--/a> & rq9rids clalass="line" name="L103"> 103
4         4ivers/ide/ide-cd.c#L95" 4id="L49ia_change" class="srelass="line" name="L103"> 103
4         4vers/ide/ide-cd.c#L96" i4d="L9496" class="line" name="L186"> 186 4         4 href="+code=cdrom_log_s4ense"49  134 4 href="dr4ivers/ide/ide-cd.c#L98" 4id="L49ref">ide_driv} while (td_command =flage=REQ_QUIET" claflagea_cha>->->rq9rids clagags<= 0llass="line" name="L148"> 148 4 ref="dri4t   89 * For historic4l#39;499class="sref" 134 5a href="d5ivers/ide/ide-cd.c#L101"5id="L50an>
 =flage=REQ_QUIET" claflagea_cha>-> &  103
5      if 5! 103
5 ref="dri5    return 0;
 143s5a3ef="dri5 f="+code=drive" class="5id="L50code=/de/ide-cd.c#L130" id="L130" class="line" name="L130"> 130<5       130<5 5     134 5a6    rq =eassc9"d.c#Lscf=_START_STOP_UNIlassc9"d.c#Lscf=);
drive, struct request * 180 5aref="dri5  173 5a8ef="dri5  nr_bytdsass="sref">rq, sat;/a> & ;
rq, sa-=;
rq 103
5 9ef="dri5 omment"> * For historic5rs/id500" class="line" name="L170"> 170 5      cas5 
;
-> 180 5         5    nr_bytdsass="sref">rq, sa-t;/a> & ;
 103
5pan class5"comment">              5  * d513" class="line" name="L143"> 143s5pan class5"comment">              5  * c51code=sense" c>rq, saer_d 0lclass="line" name="L173"> 173 5p                   5  */<51ia_change" class="sre<(&cmd =nr_bytdsass="sref">rq, sllass="line" name="L148"> 148 5p href="d5    if ((&, slass="line" name="L148"> 148 5pne  103
5pref="dri5     158 5         5    break;
(&rq, slass="line" name="L148"> 148 5p9ef="dri5  103
5         5     161 5pan class5"comment">              5  * d52"sref"sref">d"srrtstopdra_ch d_command =class=newpc_cdrdDE_DBG_SENSE" cclass=newpc_cdrd);
drive, struct reqlass="line" name="L180"> 180 5pan class5"comment">              5  * r523" cllass="line" name="L173"> 173 5pan class5"comment">              5  */<52code=sense" c href="drivers/i="+hwifdrive" class="sref">dhwifdr>, struct driver_data;
 148 5p      *->o * 148 5p href="d5            break;
rq)
 148 5pne dexpirydrhref="drivers/ide/ideexpiryive" class="sreexpiry clagt; 138 5         5    break;
cdcdrom_log_sensedmas1" idDE_DBG_SENSE" cdmas1" id clagt;c, d_command =dmaDE_DBG_SENSE" cdma35" , e(&(& 103
5      cas5 cd-drom_log_sensewrite_START_STOP_UNIwrite>reqgt; href="+code=faiag="L14_didDE_DBG_SENSE" cag="L14_did);
GPCMD_READ_WRITE=REQ_QUIET" claWRITEclasl ? 1 :;c, d_command =acss="sref">cmd 103
5 9ef="dri5    drom_log_sense"srefass="sref">rq, sat;td_command =ags" class="sref">cmd_flags & REQ_
"sref">GPCMD_READ_80" id="L 0x&#_TYPE_FS" class80" id="L 0x&#>, sllass="line" name="L148"> 148 5pan class5"comment">              5  * M53ef="drivers/iunsigned cdrom_log_sensetimedritime-&lass="line" name="L148"> 148 5pan class5"comment">              5  * S53r" class="srehref="+code=faiu           OP_UNIu1 ;
 103
5pan class5"comment">              5  * k53="+code=sensehref="+code=faiu8         OP_UNIu8a_ch d_command =ereasonDE_DBG_SENSE" cereason35" , e(& 103
5pan class5"comment">              5  */<534" class="line" name="L154"> 154 5         5    IDE_DBG_SENSE, faiueuot;,
 =lass="sref">cmd[0] ==  148 5p href="d5    break;
 186 5pne  134 5p        5     =dmaDE_DBG_SENSE" cdma35" gt;driver_data;
 148 5p     cas5    break;
cd-gt; 173 5p     cas5 href="drivers/ide/ide-c5.c#L153ailed_command" class=href="+code=faidriver_data" class="sref">driver_data;
 103
5      ret5rn driver_data;
 103
5 an class5rivers/ide/ide-cd.c#L1425 id="54an>
rq-&ver_data;
 148 5 148 5 173 5<        5                        5struc54ia_change" class="sre103" id= href="drivers/p hrte-cd.c#L59" id="p hrte);
 =PFX-cd.c#L59" id="PFXa_ch dot;,
 =driver_data" class="sref">driver_data;
rq 173 5< href="d5rivers/ide/ide-cd.c#L1465 id="54ers/ide/ide-cd.c#L126" id="L1 class="103" id= href="drivers/write_START_STOP_UNIwrite>reqg? dot;,
,
 148 5log = 1;
 148 5<        5ct  103
5<     cas5gned long  103
5<     cas5gned long  170 5a href="d5ivers/ide/ide-cd.c#L151"5id="L55ef="drivers/i 134 5aa href="5ref="+code=ide_debug_log5 clas55r" class="srehref="+code=faissreers/ide/ide-cd."sre claat;rq-&ver_data;
rqad_"sreue);
 148 5 an class5                        5 143s5 an class5ivers/ide/ide-cd.c#L154"5id="L55code=sense" c>; =BAD_R_STAT_START_STOP_UNIBAD_R_STATa>-&llclass="line" name="L173"> 173 5         5cmd =class=dee 185
5 a href="5    cmd 173 5 ne ) {
cmd 180 5         5ivers/ide/ide-cd.c#L158"5id="L55ef="drivers/ide/ide-cd.c#L17888888888goers/a>) {
 148 5      if 5!ggggggggg"L103" e(& 148 5      cas5    return;
 103
5a href="d5ivers/ide/ide-cd.c#L161"5id="L56or */
lass="line" name="L142"> 142
5      /*
 148 5 an class5"comment">         * If 5 read56de/ide-cd.c#L 134 5 an class5"comment">         * toc5has n56code=sense" c> 173 5pan class5"comment">         * con5using56ia_change" class="sre> 173 5pa href="5"comment">         */
<56ers/ide/ide-cd.c#L126gggggggg"L103" e(&,
 =ssreers/ide/ide-cd."sre claslass="line" name="L185"> 185
5p     str5 138 5  href="d5    if ( 148 5      if 5            return;
 103
5         5ivers/ide/ide-cd.c#L170"5id="L560" class="line" name="L170"> 170 5      /* cur5ent e57ef="drivers/i<(&ad_bcount_and_ereasonDE_DBG_SENSE" ceassa>ad_bcount_and_ereason);
->o *->o * 185
5      if 5 148 5 an class5    switch ( =ags" class="sref">cmd_flags & REQ_
"sref">GPCMD_READ_80" id="LFS_TYPE_FS" class80" id="LFSclasl ? o *;
rq 103
5 an class5    case  * 173 5         5    case ;
 103
5         5    case  186 5         5            if (!IDE_DBG_SENSE, faiueuot;,
 154 5  href="d5                    brea5;
sense---------class="sred_command =ssreers/ide/ide-cd."sre cla, d_command =thislenDE_DBG_SENSE" cthislen35" slass="line" name="L185"> 185
5      if 5            if (  89 134 5         5                    brea5;

-> 173 5         5            ) {
cmd_flags & REQ_
"sref">GPCMD_READ_80" id="LFS_TYPE_FS" class80" id="LFSclasl lass="line" name="L173"> 173 5 an class5                     ( 130<5 an class5                     (---------class="sree-If wec#L9;ri/not don" a>adhre/writhre, complainL133" class="line" name="L133"> 133<5         5                     (
 133<5         5ivers/ide/ide-cd.c#L186"5id="L58href="drivers/ide/ide-cd.c#L166" id=115" id=potentia*L134" class="line" name="L134"> 134 5         5            if (t;log = 1;
 138 5         5comment"> */
sense--------->;
rq 173 5      if 5vers/ide/ide-cd.c#L89" i5d="L858evice" class="sref">get_deviccccccccc/a> &  =PFX-cd.c#L59" id="PFXa_ch dot;,
 154 5         5comment">/* Mark that we5'58an>
 =driver_data" class="sref">driver_data;
rq__func__ass="sref">rq 173 5ic void <5a href="+code=cdrom_saw_5media59an>
 & ;
rq 185
5i        5ivers/ide/ide-cd.c#L92" 5id="L59an>
reqlass="line" name="L185"> 185
5ian class5ef="+code=drive" class="5sref"59de/ide-cd.c#L103" id=et_devicdrivers/cccccccc/a> & cmd_flags &  185
5ian class5ef="+code=drive" class="5sref"59code=sense" class="sre/ide-c"cccccccc/a> &  103
5         5ivers/ide/ide-cd.c#L95" 5id="L59ia_change" class="sreeeeeeeeelass="line" name="L103"> 103
5         5vers/ide/ide-cd.c#L96" i5d="L959ers/ide/ide-cd.c#L126} clasc>/a>) {
cmd_flags & REQ_
!sref">GPCMD_READ_80" id="LBLOCK_PC_TYPE_FS" class80" id="LBLOCK_PCclasl lass="line" name="L173"> 173 5         5 href="+code=cdrom_log_s5ense"59 )
cmd)
 148 5 href="dr5ivers/ide/ide-cd.c#L98" 5id="L598" class="line" name="L158"> 158 5 ref="dri5t get_devic/a> & ;
rq 138 5         5oomment"> * For historic5l#39;590" class="line" name="L170"> 170 6a href="d6ivers/ide/ide-cd.c#L101"6id="L60an>
 130<6      if 6! 130<6 2    if 6!f="+code=drive" class="6ivers603" cl"drivers/ide/ide-cd.c#L166" id=115" id=potential attcmpt to-completi/63" "L14 xfer. (see BZ#13399)130" class="line" name="L130"> 130<6 3    if 6!f="+code=drive" class="6id="L60code=/de/ide-cd.c#L130" id=L166" id=115" id=potentialL134" class="line" name="L134"> 134 6      ->->; 173 6 5    rq =write_START_STOP_UNIwrite>requem_log_sensethislenDE_DBG_SENSE" cthislen35" slass="line" name="L185"> 185
6a6     & ;
rq 138 6aref="dri6  142
6a8ef="dri6    89 * For historic6rs/id60an>
 185
6      cas6 
 & cmd_flags &  185
6         6     142
6pan class6"comment">              6  * d61de/ide-cd.c#L103" id=goers/a>) {
 148 6pan class6"comment">              6  * c61code=sense" class="line" name="L142"> 142
6p                   6  */<61 class="line" name="L85">  85 & cmd =iasscheck_ereasonDE_DBG_SENSE" ceasscheck_ereason);
cmd_f, d_command =lenDE_DBG_SENSE" cAen cla, o * =write_START_STOP_UNIwrite>reqllass="line" name="L148"> 148 6pne ) {
cmd 148 6pref="dri6    ) {
 148 6         6    break;
  89;
 103
6         6     161 6pan class6"comment">              6  * d62r" class="srehref="+code=faii="+c"+code=IDE_DBG_SENSE" class="sref">IDE_DBG_SENSE, faiueuot;,
:cd.c#L156, " id="L156" cass="line" name="L154"> 154 6pan class6"comment">              6  * r62de/ide-cd.c#L103" id=et_devicdrivers/ccuot;,
 154 6pan class6"comment">              6  */<62code=sense" class="sre/ide-c"ccccccccs//a> & cmd_flags & REQ_, o * 148 6p       85 134 6pne  173 6         6    break;
blenDE_DBG_SENSE" cblen35" at;ata;
(&;
rq 185
6      cas6   89/*
;
rq  89              6  * M63an>
 185
6pan class6"comment">              6  * S63"srefass="line" name="L148"> 148 6pan class6"comment">              6  * k63de/ide-cd.c#L103" id= href="drivers/i="+pio_bytdsass="sref">rq =write_START_STOP_UNIwrite>requem_log_senseblenDE_DBG_SENSE" cblen35" slass="line" name="L185"> 185
6pan class6"comment">              6  */<63code=sense" class="sr/a> & ;
 185
6p       85thislenDE_DBG_SENSE" cthislen35" a-t;/a> &  185
6pne  &  185
6p        6     158 6p     cas6    break;
g>rq, sase->  89cmd_flags &  185
6      ret6rn  142
6 an class6rivers/ide/ide-cd.c#L1426 id="64"srefass="line" name="L148"> 148 6 134 6 173 6<        6                        6struc64ia_change" class="sre>/a>) {
cmd_flags & REQ_
!sref">GPCMD_READ_80" id="LFS_TYPE_FS" class80" id="LFSclas ||;  89rq 185
6 ne log = 1;
 173 6<        6ct  =PFX-cd.c#L59" id="PFXa_ch dot;,
 173 6<     cas6gned long get_deviccccccccc/a> & driver_data;
rq 185
6 9ef="dri6gned long cmd_f, dot;,
 148 6a href="d6ivers/ide/ide-cd.c#L151"6id="L65an>
 142
6aa href="6ref="+code=ide_debug_log6 clas65r" class="srelass="line" name="L142"> 142
6aan class6                        6 143s6 an class6ivers/ide/ide-cd.c#L154"6id="L65code=sense" c>/a>) {
cmd_flags & REQ_
"sref">GPCMD_READ_80" id="LBLOCK_PC_TYPE_FS" class80" id="LBLOCK_PCclasl lass="line" name="L173"> 173 6         6dritime-&at;ata;
cmd_flags & dritime-&lass="line" name="L148"> 148 6 a href="6     173 6 ne  =timedritime-&at;ata;
-&lass="line" name="L148"> 148 6         6ivers/ide/ide-cd.c#L158"6id="L65ef="drivers/ide/ide-c>/a>) {
cmd_flags & REQ_
!sref">GPCMD_READ_80" id="LFS_TYPE_FS" class80" id="LFSclasls="line" name="L89">  89gggggggggef">GPCMD_READ_expiryive" class="sreexpiry clagt;-&lass="line" name="L148"> 148 6 9ef="dri6    return;
 142
6a href="d6ivers/ide/ide-cd.c#L161"6id="L661" class="line" name="L161"> 161 6      /*
 148 6 an class6"comment">         * If 6 read66="+code=sensehref="+code=faiiassset_handlerass="sref">rq(&dritime-&llass="line" name="L148"> 148 6 an class6"comment">         * toc6has n66code=sense" c"L103" e(& 148 6         6"comment">         * con6using66 class="line" name="L85">  85         */
<66ers/i/a>) {
  85cmd_flags & REQ_
"sref">GPCMD_READ_80" id="LBLOCK_PC_TYPE_FS" class80" id="LBLOCK_PCclascse->cmd 173 6  href="d6    if (cmd_flags &  103
6      if 6            return;
g)
rq)
cmd_f, 0llass="line" name="L148"> 148 6         6ivers/ide/ide-cd.c#L170"6id="L66ailed_command" class=href="+code=faihwifive" class="srehwifa>-&ver_data;
 138 6      /* cur6ent e67ef="drivers/il6clasclass="line" name="L173"> 173 6      if 6) {
rq, sase-> 185
6 an class6    switch (cmd 138 6 an class6    case  154 6         6    case cmd_flags & REQ_
"sref">GPCMD_READ_80" id="LFS_TYPE_FS" class80" id="LFSclasl lass="line" name="L173"> 173 6         6    case ;
rq  89 138 6  href="d6                    brea6;
sense-l6clasclass="line" name="L173"> 173 6      if 6            if (ggggggggg>cmd_flags &   89
cmd_flags &  138 6         6                    brea6;

 142
6         6             148 6 an class6                     (cmd_flags & rq 185
6 an class6                     ( 185
6         6                     ((& 148 6         6ivers/ide/ide-cd.c#L186"6id="L686" class="line" name="L186"> 186 6         6            if (t;log = 1;
 134 6         6comment"> */
sense->/a>) {
cmd_flags & REQ_
!sref">GPCMD_READ_80" id="LFS_TYPE_FS" class80" id="LFSclaslclass="line" name="L173"> 173 6      if 6vers/ide/ide-cd.c#L89" i6d="L868evice" class="sref">get_devic/a>) {
cmd_flags &  & ;
rq;
rq 103
6         6comment">/* Mark that we6'68an>
->;;
, sase 185
6ic void <6a href="+code=cdrom_saw_6media69an>
) {
cmd_flags & ;
 103
6i        6ivers/ide/ide-cd.c#L92" 6id="L69an>
 142
6ian class6ef="+code=drive" class="6sref"693" class="line" name="L143"> 143s6ian class6ef="+code=drive" class="6sref"69code=sense" class="srcmdblk_rq"bytdsass="sref">rqcmd_f)slass="line" name="L138"> 138 6         6ivers/ide/ide-cd.c#L95" 6id="L69 class="line" name="L85">  85rq, sase->cmd 180 6         6 href="+code=cdrom_log_s6ense"69 ,
 =ssreers/ide/ide-cd."sre claslass="line" name="L185"> 185
6 href="dr6ivers/ide/ide-cd.c#L98" 6id="L69ass="sref">selass="line" name="L142"> 142
6i     if 6t (& 148 6         6oomment"> * For historic6l#39;690" cllass="line" name="L142"> 142
7a href="d7ivers/ide/ide-cd.c#L101"7id="L701" class="line" name="L161"> 161 7      if 7!(&a>)
cmd_f)ass="line" name="L161"> 161 7 2    if 7!f="+code=drive" class="7ivers703" cllass="line" name="L173"> 173 7 3    if 7!f="+code=drive" class="7id="L70code=sense" cclass=infoass="sref">rqdriver_data;
 148 7      a>)
driver_data;
 148 7 5    cmd_f)
"sref">GPCMD_READ_WRITE=REQ_QUIET" claWRITEclaslass="line" name="L148"> 148 7 6    rqreqgtass="line" name="L148"> 148 7 7    Iical_block_sizer_data" class=")
Iical_block_size);
 * 148 7 8      89 * For historic7rs/id709rs/ide/ide-c/a> & IDE_DBG_SENSE, ,
 154 7      cas7 
,
 173 7         7     & cmd_flags &  & rqreqslass="line" name="L185"> 185
7pan class7"comment">              7  * d713" class="line" name="L143"> 143s7pan class7"comment">              7  * c71code=sense" c>/a>) {
reqlclass="line" name="L173"> 173 7p                   7  */<71ia_change" class="sreda href="drivers/ide/ide-disk has beerse write protected/lL134" class="line" name="L134"> 134 7p href="d7    if () {
rq, ;
 185
7pne (& 148 7pref="dri7     173 7         7    break;
g 130<7p9ef="dri7 )
 130<7         7     133<7pan class7"comment">              7  * d72e drives (i.e. Creative) fail to present thelL134" class="line" name="L134"> 134 7pan class7"comment">              7  * r72de/ide-cd.c#L103" id= href="drivers/gs" class="sref"" claver_data;
 138 7pan class7"comment">              7  */<72code=sense" class="line" name="L142"> 142
7p       85 134 7pne rqcmd_f)
>->;rqreqg- 1)) ||ass="line" name="L134"> 134 7pref="dri7    break;
rqcmd_f)
>->;rqreqg- 1))lass="line" name="L185"> 185
7      cas7 g"L103" e(& 148 7 9ef="dri7     170 7pan class7"comment">              7  * M73an>
 134 7pan class7"comment">              7  * S73r" class="srehref="+code=faidriver_data" class="sref">driver_data;
driver_data;
, sase 138 7pan class7"comment">              7  * k733" class="line" name="L143"> 143s7pan class7"comment">              7  */<73code=sense" c>/a>) {
reqlass="line" name="L143"> 143s7p     rq;
 138 7p href="d7    break;
 186 7pne cmd_flags & dritime-&at;ata;
-&lass="line" name="L148"> 148 7p        7     158 7p     cas7    break;
(& 148 7p9ef="dri7 href="drivers/ide/ide-c7.c#L1730" cllass="line" name="L142"> 142
7      ret7rn  161 7 an class7rivers/ide/ide-cd.c#L1427 id="74e dri"sreic voidom_log_senseclass=do_block_pcss="sref">cmda>)
cmd_f)ass="line" name="L161"> 161 7 173 7 154 7<        7                        7struc74ia_change" cl/a> & IDE_DBG_SENSE, faiueuot;,
:cd.c#L156" id="L156" class="line" name="L173"> 173 7< href="d7rivers/ide/ide-cd.c#L1467 id="74ers/ide/ide-cd.c#L126" id="L1class="sred_command =ags" class="sref">cmd_flags &  & REQ_slass="line" name="L138"> 138 7 ne ass="line" name="L138"> 138 7         7ct cmd_flags & REQ_
"sref">GPCMD_READ_80" id="LBLOCK_PC_TYPE_FS" class80" id="LBLOCK_PCclas)ass="line" name="L161"> 161 7<     cas7gned long guct  &  148 7 9ef="dri7gned long  148 7a href="d7ivers/ide/ide-cd.c#L151"7id="L75an>
 &  185
7aa href="7ref="+code=ide_debug_log7 clas75"srefass="line" name="L148"> 148 7aan class7                        7driver_data;
 103
7 an class7ivers/ide/ide-cd.c#L154"7id="L754" class="line" name="L154"> 154 7         7 134 7 a href="7    cmd_flags & rq 173 7 ne a>)
driver_data;
 148 7         7ivers/ide/ide-cd.c#L158"7id="L75ef="drivers/ide/ide-cchar"* href="drivers/bufive" class="srebuf clagt;cmd_flags & rq 148 7      cas7!gunsigned cdrom_log_sensealign/ide/ss="sref">rq 148 7 9ef="dri7    return;
 170 7a href="d7ivers/ide/ide-cd.c#L161"7id="L76an>
driver_data;
driver_data;
, sase 148 7      /*
 148 7 an class7"comment">         * If 7 read76de/ide-cd.c#L103" id= de/ide-cd.c#L130" id="L130" class="line" name="L130"> 130<7 an class7"comment">         * toc7has n76code=/de/ide-cd.c#L130" id=L166" id=115" id=* checkc>dma is safe130" class="line" name="L130"> 130<7         7"comment">         * con7using76 clas/de/ide-cd.c#L130" id=L166" id=115" id=*130" class="line" name="L130"> 130<7 a href="7"comment">         */
<76ers/i/de/ide-cd.c#L130" id=L166" id=115" id=* NOTE! The " id="len" id=" and " id="addd" id=" checks shouldtpossibly have130" class="line" name="L130"> 130<7 ne  133<7  href="d7    if ( 134 7      if 7            return;
grqrq;
 148 7         7ivers/ide/ide-cd.c#L170"7id="L76ailed_command" class=>aunsigned long) href="drivers/bufive" class="srebuf clagserq 148 7      /* cur7ent e77an>
rqcmd_f)gse;
 148 7       185
7 an class7    switch (driver_data;
 103
7 an class7    case  142
7         7    case  142
7 a href="7    case  186 7         7            if (!(&)
)
a>)
cmd_flass="line" name="L173"> 173 7  href="d7                    brea7;
sense-e-cd.c#L103" id=de/ide-c/a href="+code=sectordrive" class="sresectordrvice"uct rq 185
7      if 7            if ( 173 7         7                
 103
7         7                    brea7;

 103
7         7            nsectorsass="sref">rq 103
7 an class7                     ( 143s7 an class7                     ( & IDE_DBG_SENSE, ,
 173 7         7                     (cmd_flags & rq 103
7 a href="7ivers/ide/ide-cd.c#L186"7id="L786" class="line" name="L186"> 186 7         7            if (t;) {
driver_data;
, sase 185
7         7comment"> */
sense-cmd_f, dot;,
)
 148 7      if 7vers/ide/ide-cd.c#L89" i7d="L878 class="line" name="L89">  89/* Mark that we7'78an>
cmd_flags & REQ_lclass="line" name="L173"> 173 7ic void <7a href="+code=cdrom_saw_7media79an>
GPCMD_READ_80" id="LFS_TYPE_FS" class80" id="LFSclas:s="line" name="L85">  85cmd_f)g"sref">GPCMD_READ_iassstoppe=_START_STOP_UNIlassstoppe=35" lass="line" name="L185"> 185
7ian class7ef="+code=drive" class="7sref"79de/ide-cd.c#L103" id=de/ide-cgoers/a>) {
 148 7ian class7ef="+code=drive" class="7sref"79code=sense" class="srbreaklass="line" name="L185"> 185
7         7ivers/ide/ide-cd.c#L95" 7id="L794n>
GPCMD_READ_80" id="LSENSE_TYPE_FS" class80" id="LSENSEclas:s="line" name="L85">  85GPCMD_READ_80" id="LBLOCK_PC_TYPE_FS" class80" id="LBLOCK_PCclas:s="line" name="L85">  85GPCMD_READ_80" id="LATA_PC_TYPE_FS" class80" id="LATA_PCclas:s="line" name="L85">  85sense->!/a>) {
cmd_flags & dritime-&ls="line" name="L85">  85get_devic/a>) {
cmd_flags & dritime-&at;ata;
-&lass="line" name="L148"> 148 7         7oomment"> * For historic7l#39;790" class="line" name="L170"> 170 8a href="d8ivers/ide/ide-cd.c#L101"8id="L80an>
cmdcmd_f)lass="line" name="L148"> 148 8      if 8! 185
8 2    if 8!f="+code=drive" class="8ivers802n>
GPCMD_READ_80" id="LSPECIAide-cd.c#L179" i80" id="LSPECIAiclas:s="line" name="L85">  85 134 8       138 8 5     148 8 6      85 148 8 8     142
8 9ef="dri8 omment"> * For historic8rs/id800" class="line" name="L170"> 170 8      cas8 
 134 8         8    GPCMD_READ_iassprep_"srefass="sref">rqcmd_f)lass="line" name="L148"> 148 8pan class8"comment">              8  * d813" class="line" name="L143"> 143s8pan class8"comment">              8  * c81code=sense" c/a> &  &  138 8p                   8  */<81 class="line" name="L85">  85) {
cmd_f)ls="line" name="L85">  85;
, sa|a href="drivers/ipan TFLAG_WRITE=REQ_QUIET" clapan TFLAG_WRITEclaslass="line" name="L138"> 138 8p7     158 8         8    break;
;
 138 8p9ef="dri8  170 8         8    cmd_flags & REQ_
"sref">GPCMD_READ_80" id="LFS_TYPE_FS" class80" id="LFSclasr||;rqcmd_f)lclass="line" name="L173"> 173 8pan class8"comment">              8  * d82an>
GPCMD_READ_iassinit_sgscf=_START_STOP_UNIlassinit_sgscf=);
 & rqcmd_f)llass="line" name="L138"> 138 8pan class8"comment">              8  * r82de/ide-cd.c#L103" id= href="drivers/lassmap_"IDE_DBG_SENSE" classmap_"I);
 &  138 8pan class8"comment">              8  */<82code=sense" class="line" name="L142"> 142
8p       85(&cmd &  138 8pne ) {
  85nsectorsass="sref">rqrqcmd_f)lass="line" name="L138"> 138 8p        8   89/*) {
rq  89              8  * M83an>
rq 138 8pan class8"comment">              8  * S83"srefass="line" name="L148"> 148 8pan class8"comment">              8  * k83="+code=sensehref="+code=faiiasscompleti"lass="sref">cmdnsectorsass="sref">rq 138 8pan class8"comment">              8  */<834" class="line" name="L154"> 154 8p     (& 148 8p href="d8    break;
 142
8pne ass="line" name="L138"> 138 8p        8     130<8p     cas8    break;
 133<8p9ef="dri8 href="drivers/ide/ide-c8.c#L1839rs/i/de/ide-cd.c#L130" id=LL130" class="line" name="L130"> 130<8      ret8rn  130<8 an class8rivers/ide/ide-cd.c#L1428 id="84e drives (i.e. Creative) fai* re)
 130<8 an class8ivers/ide/ide-cd.c#L143"8id="L843" clves (i.e. Creative) fai* CHECK CONDITION "sreus, this  130<8 an class8)
 130<8      103"edL133" class="line" name="L133"> 133<8< href="d8rivers/ide/ide-cd.c#L1468 id="84ers/i/de/ide-cd.c#L130" id=LlL134" class="line" name="L134"> 134 8 ne msf_fass=bc=_START_STOP_UNImsf_fass=bc=);
atapi_msf_START_STOP_UNIatapi_msfa_cha* href="drivers/msf_START_STOP_UNImsfa_chls="line" name="L89">  89 173 8<     cas8gned long  138 8 9ef="dri8gned long  138 8a href="d8ivers/ide/ide-cd.c#L151"8id="L85an>
 & rqreqggt;rqreq)lass="line" name="L138"> 138 8aan class8ref="+code=ide_debug_log8 clas85"sreflass="line" name="L142"> 142
8aan class8                        8 143s8 an class8ivers/ide/ide-cd.c#L154"8id="L854" clcdrom_log_senseclass=check_"sreusss="sref">cmda>)
rq)
rq  89 173 8 a href="8    rqrqdriver_data;
 148 8 ne class= evice=infoass="sref">rqrq & rq;
rq 148 8         8ivers/ide/ide-cd.c#L158"8id="L85ef="drivers/iunsigned char"/a> & ;
 148 8      cas8!  89 & IDE_DBG_SENSE, ,
 148 8a href="d8ivers/ide/ide-cd.c#L161"8id="L861" class="line" name="L161"> 161 8      /*

GPCMD_READ_mems"ts" class="sref"mems"t);
 & ;
 148 8aan class8"comment">         * If 8 read86="+code=sensehref="+code=faief=_START_STOP_UNIT" clas[0]"t; 148 8 an class8"comment">         * toc8has n864" class="line" name="L154"> 154 8         8"comment">         * con8using86ia_change" cl 134 8 a href="8"comment">         */
<86ers/i/de/ide-cd.c#L130" id=L166" id=* Sanyo 3 CD changer-uses bytd 7 of TEST_UNIT_READY to switchtCDs134" class="line" name="L134"> 134 8 ne  133<8  href="d8    if ( 134 8      if 8            return;
rq &  148 8 9ef="dri8ivers/ide/ide-cd.c#L170"8id="L860" class="line" name="L170"> 170 8      /* cur8ent e87an>
(&cmd;
rq;
 148 8       142
8 an class8    switch ( 143s8 an class8    case class=read_capacityass="sref">rqrq 173 8         8    case rqreqlass="line" name="L173"> 173 8 a href="8    case a>)
rq)
rq  89 173 8  href="d8                    brea8;
se 173 8      if 8            if (g ">rq 148 8         8                 ">rq 148 8         8                    brea8;

 148 8       148 8 an class8                     ("sreass="sref">rq 148 8 an class8                     ( & ;
 148 8         8                     ( 148 8 a href="8ivers/ide/ide-cd.c#L186"8id="L88ers/ide/ide-c ">rq 148 8         8            if (t;ass="line" name="L138"> 138 8         8comment"> */
i="+c"+code=IDE_DBG_SENSE" class="sref">IDE_DBG_SENSE, ,
 148 8      if 8vers/ide/ide-cd.c#L89" i8d="L888 class="line" name="L89">  89/* Mark that we8'889rs/ide/ide-c/a> &  & ;
 148 8ic void <8a href="+code=cdrom_saw_8media89an>
 148 8i        8ivers/ide/ide-cd.c#L92" 8id="L89"srefass="line" name="L148"> 148 8ian class8ef="+code=drive" class="8sref"89="+code=sensehref="+code=fai"sreass="sref">rqcmd & rq 148 8ian class8ef="+code=drive" class="8sref"89code=sense" class="srcommand" class= 148 8         8ivers/ide/ide-cd.c#L95" 8id="L894n>
rq  89(&rq 148 8i        8 href="+code=cdrom_log_s8ense"89ref">ass="line" name="L138"> 138 8i        8ivers/ide/ide-cd.c#L98" 8id="L89ass="sref">se 134 8i     if 8t  134 8i        8oomment"> * For historic8l#39;899rs/i/de/ide-cd.c#L130" id=L166" id=* surecthe sectors_p"=_fr    we game to 63" caller won't134" class="line" name="L134"> 134 9a href="d9ivers/ide/ide-cd.c#L101"9id="L901" cl/de/ide-cd.c#L130" id=L166" id=* end up behre bogusL133" class="line" name="L133"> 133<9      if 9! 134 9 2    if 9!f="+code=drive" class="9ivers90="+code=sensehref="+code=faiblocklenDE_DBG_SENSE" cblocklen clagt; &  148 9 3    if 9!f="+code=drive" class="9id="L90code=sense" c/a> &  &  &  148 9 4    if 9!vers/ide/ide-cd.c#L95" 9 clas90ia_change" clswitcht;/a>) {
 173 9 5      85  85  85  85 * For historic9rs/id90ailed_command" class=breaklass="line" name="L185"> 185
9      cas9 
  85GPCMD_READ_p hrtk_oncfass="sref">rq

& rqrq, 85 9 * d91de/ide-cd.c#L103" id=de/ide-cdrivers/eot;
, 173 9pan class9"comment"> 9 * c91code=sense" class="srcommand" class=;driver_data; rqreqlc/a> & 148 9p 9 */<91ia_change" class="sred_command =blocklenDE_DBG_SENSE" cblocklen clagt;2048lass="line" name="L148"> 148 9p5 185 9 6 142 9p7 158 9 9 break; rq & 148 9p9 rqreqgt; & 148 9 9 161 9pan class9"comment"> 9 * d92an> GPCMD_READ_iassc"+code=IDE_DBG_SENSE" class="sref">IDE_DBG_SENSE, , 173 9pan class9"comment"> 9 * r92de/ide-cd.c#L103" id======================* href="drivers/capacityass="sref">rqrqreqllass="line" name="L148"> 148 9pan class9"comment"> 9 */<924" class="line" name="L154"> 154 9p 103 9p href="d9 break; 142 9pne ass="line" name="L138"> 138 9pref="dri9 break; class=read_tocentryass="sref">rqtracknoass="sref">rqmsf_flaIDE_DBG_SENSE" cmsf_flaI>reqlass="line" name="L173"> 173 9p 9 get_deviccccccccccdrom_log_senseformatDE_DBG_SENSE" cformat35" , char"* href="drivers/bufive" class="srebuf cla, cdrom_log_sensebuflenDE_DBG_SENSE" cbuflen>reqlass="line" name="L173"> 173 9p9 a>) rq) rq 89 9 * M93an> 173 9pan class9"comment"> 9 * S93an> & ; 148 9pan class9"comment"> 9 * k933" class="line" name="L143"> 143s9pan class9"comment"> 9 */<93code=sense" c/a> & IDE_DBG_SENSE, , 148 9p 85 & ; 148 9pne ass="line" name="L138"> 138 9p 9 ef=_START_STOP_UNIT" clas[0]"t; 148 9p cas9 break; rq 148 9p9 reqgags 148 9 ret9rn reqgae 148 9 an class9rivers/ide/ide-cd.c#L1429 id="94an> GPCMD_READ_ef=_START_STOP_UNIT" clas[9]"t;a href="drivers/formatDE_DBG_SENSE" cformat35" gslt;slt; 6llass="line" name="L148"> 148 9 an class9ivers/ide/ide-cd.c#L143"9id="L943" class="line" name="L143"> 143s9 an class9) { reqls="line" name="L89"> 89 148 9 href="d9rivers/ide/ide-cd.c#L1469 id="946" class="line" name="L186"> 186 9 ne (&cmd; reql uct rq; 148 9 9ct 142 9< cas9gned long 89 134 9a href="d9ivers/ide/ide-cd.c#L151"9id="L95an> lasscd_read_tocss="sref">cmda>) rq) rq 89 173 9aan class9 9rqntracksass="sref">rqiass="sref">rq 148 9 an class9ivers/ide/ide-cd.c#L154"9id="L95code=sense" cclass=infoass="sref">rqrqdriver_data; 148 9 9class= evice=infoass="sref">rqrq & rq; rq 148 9 a href="9 cmdcmdrq; cmd 148 9 ne 173 9a 9ivers/ide/ide-cd.c#L158"9id="L95ef="drivers/ide/ide-catapi_toc_headedDE_DBG_SENSE" catapi_toc_headedvice" 148 9 cas9!gatapi_toc_entryass="sref">rq" idss="sref">rq 148 9 9ef="dri9 return; 148 9a href="d9ivers/ide/ide-cd.c#L161"9id="L96an> 148 9aan class9n class="comment">/* rqreqgt; 148 9aan class9"comment"> * If 9 read963" class="line" name="L143"> 143s9 an class9"comment"> * toc9has n96code=sense" c/a> & IDE_DBG_SENSE, , 148 9 9"comment"> * con9using96 class="line" name="L85"> 85 */ <96ers/ide/ide-c>/a>) { cmd 173 9 ne 134 9 href="d9 if (cmdcmdatapi_tocss="sref">cmdGFP_KERNEL_START_STOP_UNIGFP_KERNEL clallass="line" name="L148"> 148 9 if 9 return; g>/a>) { cmd 173 9 9ef="dri9ivers/ide/ide-cd.c#L170"9id="L96ailed_command" class=========rqrq, 173 9 /* cur9ent e97an> driver_data; rqreqllass="line" name="L148"> 148 9 & rq 148 9 an class9 switch ( 142 9 an class9 case rq; cmdcmd 148 9 9 case 142 9 a href="9 case 186 9 9 if (! 134 9 href="d9 brea9; 134 9 if 9 if ( 133<9 9 134 9 9 brea9; cmdrq 148 9 148 9 an class9 () { driver_data; reqgae, 89 103 9 9 ( 85 134 9 9 if (t;"sreass="sref">rqrq & cmd & rq & rqreqlass="line" name="L173"> 173 9 9comment"> */ rq 148 9 if 9vers/ide/ide-cd.c#L89" i9d="L8988"+code=sensecgt;/a>) { rq 89/* Mark that we9'98ailed_command" class=cmd & rq 148 9ic void <9a href="+code=cdrom_saw_9media991" class="line" name="L161"> 161 9i 9ivers/ide/ide-cd.c#L92" 9id="L99an> GPCMD_READ_set_capacityass="sref">rqrq; cmd & rq; rqreqllass="line" name="L148"> 148 9ian class9ef="+code=drive" class="9sref"99="+code=sensehde/ide-cd.c#L130" id=/* save a pnamate copy of 63" TOC capacity for 1" id handlingg*L134" class="line" name="L134"> 134 9ian class9ef="+code=drive" class="9sref"99code=sense" c/a> & driver_data; rqcmd & rq; rqreqlass="line" name="L148"> 148 9i 9ivers/ide/ide-cd.c#L95" 9id="L99 class="line" name="L85"> 85 & reqlass="line" name="L173"> 173 9i 9 href="+code=cdrom_log_s9ense"99 rqreqgslt;slt; /a> & 148 9i 9ivers/ide/ide-cd.c#L98" 9id="L998" class="line" name="L158"> 158 9i if 9t 134 9i 9oomment"> * For historic9l#39;999rs/ide/ide-c/a> & rqrq & cmd & 173 10a href="d10a hrent"> * For historic10a h>10a "srefass="sref">rq 173 10a1href="d10avers/ide/ide-cd.c#L92" 10ave>10aan> rq 89(&rq 148 10a3href="d10af="+code=drive" class="10af=>10a4" class="line" name="L154"> 154 10a4href="d10avers/ide/ide-cd.c#L95" 10ave>10a4n> driver_data; reqgae, 173 10a5href="d10aers/ide/ide-cd.c#L96" i10aer>10aers/ide/ide-cd.c#L126/a> & cmd & ; cmd & ; 148 10a6href="d10ahref="+code=cdrom_log_s10ahr>10a cmd & ; cmd & ; 148 10a7href="d10avers/ide/ide-cd.c#L98" 10ave>10aef="drivers/ilass="line" name="L142"> 142 10a8href="d10a 89 * For historic10aom>10a9rs/ide/ide-c/a> & rqcmd & ; & cmd & ; 148 101 href="d10 ) { rq 89 & rq 148 1012href="d10"comment"> 10"co>10 ="+code=sensecgt;/a>) { rq & rq 89 10"co>10 code=sense" class="srrqrq 148 1014href="d10"comment"> 10"co>10 class="line" name="L85"> 8510 ers/ide/ide-c 134 10 6href="d10 break; 10 rqrq & cmd & ; 134 10 7href="d10 10 ef="drivers/ide/ide-ccccccccccccccccccc(char"*)se & cmd & 173 1018href="d10 break; get_deviccccccccc ccsizeof;atapi_toc_headedDE_DBG_SENSE" catapi_toc_headedvice) +ass="line" name="L173"> 173 1019href="d10 rq 173 102 href="d10 get_deviccccccccc ccsizeof;atapi_toc_entryass="sref">rq"srefass="sref">rq 173 1021href="d10"comment"> 10"co>10 "srefass="line" name="L148"> 148 10 2href="d10"comment"> 10"co>10 ="+code=sensecgt;/a>) { rq, cmd & ; 173 1023href="d10"comment"> 10"co>10 code=sense" class="sr 134 1024href="d10"comment"> 102co>102ia_ch/de/ide-cd.c#L130" id=L166" id=========* Cds withtCDI tracks only don't have any TOC entries, despite134" class="line" name="L134"> 134 1025href="d10 break; 102ers/i/de/ide-cd.c#L130" id=L166" id=========* of 63is 63" "L103"ed values are134" class="line" name="L134"> 134 1026href="d10 102 134 1027href="d10 break; 134 1028href="d10 134 1029href="d10 134 103 href="d10"comment"> 10"co>10"crs/i/de/ide-cd.c#L130" id=L166" id=========* tracks. In 63is caser63" "Ladable TOC is empty (CDI tracks134" class="line" name="L134"> 134 1031href="d10"comment"> 10"co>10"e drives (i.e. Creative) fail to pre========* are not included) and only holds 63" LLadout entryL133" class="line" name="L133"> 133<10"2href="d10"comment"> 10"co>10"2 drives (i.e. Creative) fail to pre========*133" class="line" name="L133"> 133<10"3href="d10"comment"> 10"co>10"3 drives (i.e. Creative) fail to pre========* Heiko Ei▀feldtL133" class="line" name="L133"> 133<10"4href="d10 134 1035href="d10 break; & rq 103 10"6href="d10ult: rqrq & 134 1037href="d10 10"ef="drivers/ide/ide-cccccccccccccccccccccccccccc(char"*)se & cmd & 173 1038href="d10 break; get_deviccccccccc ccccccccccsizeof;atapi_toc_headedDE_DBG_SENSE" catapi_toc_headedvice) +ass="line" name="L173"> 173 1039href="d10 href="drivers/ide/ide-c10 hr>10"ailed_command" class=================ccccccccccc(rq 173 104 href="d10rn 10rnvice" class="sref">get_deviccccccccc ccccccccccsizeof;atapi_toc_entryass="sref">rq 173 1041href="d10rivers/ide/ide-cd.c#L14210riv>10ran> rq 173 1042href="d10ivers/ide/ide-cd.c#L143"10ive>10rde/ide-cd.c#L103" id=cgt;/a>) { rq 89(&rq 148 1044href="d10 10 >10r class="line" name="L85"> 8510rers/ide/ide-cd.c#L126>/a>) { driver_data; reqgae, 173 1046href="d10ct , cmd & ; 173 1047href="d10ct cmd & ; 173 1048href="d10gned long g} elserlass="line" name="L173"> 173 1049href="d10gned long cmd & ; 173 105 href="d10ivers/ide/ide-cd.c#L151"10ive>10iviled_command" class=========cmd & ; 173 1051href="d10ref="+code=ide_debug_log10ref>10ian> 142 1052href="d10 10 >10ide/ide-cd.c#Llass="line" name="L142"> 142 1053href="d10ivers/ide/ide-cd.c#L154"10ive>10i4" class="line" name="L154"> 154 1054href="d10) { rq 89(&rq 148 10i6href="d10 10 >10iref">ass="line" name="L138"> 138 10i7href="d10ivers/ide/ide-cd.c#L158"10ive>10ief="drivers/im_log_sensetocss="sref">cmd & ; cmdcmd & ; cmd 173 1058href="d10! 89) { driver_data; reqgae, 173 106 href="d10ivers/ide/ide-cd.c#L161"10ive>10ivcmd & ; cmd & ; 148 1061href="d10n class="comment">/*10ian> GPCMD_READ_tocss="sref">cmd & ; cmd & ; 148 1062href="d10"comment"> * If 10"co>10ide/ide-cd.c#Llass="line" name="L142"> 142 1063href="d10"comment"> * toc10"co>10i4" class="line" name="L154"> 154 1064href="d10"comment"> * con10"co>10i4n> , rq, 173 1065href="d10"comment"> */10iers/ide/ide-cd.c#L126>/a>) { driver_data; reqgae, 173 1066href="d10) { driver_data; reqgae, 173 1067href="d10 if (cmd & rq; ; cmd & rq; ; 148 1068href="d10 return; 10ievice" class="sref">get_devicata; & cmd & rq; ; ; 148 1069href="d10ivers/ide/ide-cd.c#L170"10ive>10iailed_command" class=lass="line" name="L142"> 142 107 href="d10n class="comment">/* cur10n c>10n n> GPCMD_READ_tocss="sref">cmd & rq; ; ; cmd & rq; ; ; ; 173 1071href="d1010nan> GPCMD_READ_tocss="sref">cmd & rq; ; ; ; 173 1072href="d10 switch (GPCMD_READ_tocss="sref">cmd & rq; ; ; ; rqreqllass="line" name="L148"> 148 10n3href="d10 case 142 1074href="d10 case 85cmd & ; 173 1076href="d10 if (!10n 134 1077href="d10 brea10 >10nef="drivers/ide/ide-cata; rqrq & 173 1078href="d10 if (10nevice" class="sref">get_deviccccccccc ccccccccccsizeof;/a> & "srefass="sref">rq 173 1079href="d10 10nailed_command" class=>/a>) { rq 89get_devic"L103" e(&rq 148 1081href="d10 148 1082href="d10 (10 de/ide-cd.c#L103" id=/a>) { cmd & ; rq; ; 173 1083href="d10 (10 code=sense" cl elserlass="line" name="L173"> 173 1084href="d10 (10 ia_change" class="sred_command =ms_tmpDE_DBG_SENSE" cms_tmpvice.ata; ; 173 1085href="d10ivers/ide/ide-cd.c#L186"10ive>10 ers/ide/ide-cd.c#L126/a> & ; ; ; ; 173 1086href="d10 if (t;10 cmd & 134 1087href="d10comment"> */ 10 ef="drivers/ilass="line" name="L142"> 142 1088href="d10vers/ide/ide-cd.c#L89" i10ver>10 class="line" name="L89"> 89/* Mark that we10com>10 9n> driver_data; reqgae, 173 109 href="d10a href="+code=cdrom_saw_10a h>10a 134 1091href="d10ivers/ide/ide-cd.c#L92" 10ive>10aan> GPCMD_READ_"sreass="sref">rqrq & 173 1092href="d10ef="+code=drive" class="10ef=>10ade/ide-cd.c#L103" id======================//////sizeof;/a> & "srefass="sref">rq 173 1093href="d10ef="+code=drive" class="10ef=>10acode=sense" class="sr>/a>) { rq 8910aia_change" class="sreeeeeeeee"L103" e(&rq 148 1095href="d10vers/ide/ide-cd.c#L96" i10ver>10a6" class="line" name="L186"> 186 10a6href="d10 href="+code=cdrom_log_s10 hr>10a & ; rq; ; 148 1097href="d10ivers/ide/ide-cd.c#L98" 10ive>10aef="drivers/ide/ide-cata; cmd & ; rq; ; ; 173 1098href="d10t get_deviccccccccc ccccccccccde=faile; rq; ; ; 173 1099href="d10oomment"> * For historic10oom>10aailed_command" class=================cccccccccccde=faile; rq; ; ; rqreqllass="line" name="L148"> 148 11a href="d11a hrent"> * For historic11a h>11a 142 11a1href="d11avers/ide/ide-cd.c#L92" 11ave>110"srefass="line" name="L148"> 148 11a2href="d11af="+code=drive" class="11af=>11ade/ide-cd.c#Lata; cmd & cmd & ; ; ; ; 148 11a3href="d11af="+code=drive" class="11af=>11a4" class="line" name="L154"> 154 11a4href="d11avers/ide/ide-cd.c#L95" 11ave>11a4n> 134 11a5href="d11aers/ide/ide-cd.c#L96" i11aer>11aers/ide/ide-cef">GPCMD_READ_"sreass="sref">rq & & 148 11a6href="d11ahref="+code=cdrom_log_s11ahr>11a GPCMD_READ_"sreass="sref">rq & & cmd & rq 173 11a7href="d11avers/ide/ide-cd.c#L98" 11ave>110ef="drivers/ide/ide-cata; cmd & rq & 148 11a8href="d11a gata; rqrq; cmd & rq; rqreqllass="line" name="L148"> 148 1109href="d11aomment"> * For historic11aom>110ailed_command" class=/a>) { driver_data; rqcmd & rq; rqreqlass="line" name="L148"> 148 111 href="d11 142 1111href="d11 148 1112href="d11"comment"> 11"co>11 ="+code=sense 134 1113href="d11"comment"> 11"co>11 code=sense" c/a>) { driver_data; reqg|t; 148 1114href="d11"comment"> 11"co>11 class="line" name="L85"> 8511 ers/ide/ide-c"L103" class="line" name="L103"> 103 11 6href="d11 break; 11 142 1117href="d11 1118" class="line" name="L158"> 158 1118href="d11 break; 1_cdass=get_capabilitiee); rq 89 173 112 href="d11 cdass=infoass="sref">rqrqdriver_data; 148 1121href="d11"comment"> 11"co>1121vice" class=cdass=device=infoass="sref">rq & rq; rq 148 1122href="d11"comment"> 11"co>11 ="+code=sensepacket_c130an=_START_STOP_UNIpacket_c130an="+cod href="drivers/cgcss="sref">cmd 148 1123href="d11"comment"> 11"co>11 code=sense" cinrom_log_sense"sreass="sref">rq"izeDE_DBG_SENSE" csize); <"t; 148 1124href="d11"comment"> 112co>112 class="line" name="L85"> 85112ers/ide/ide-cef">GPCMD_READ_i 1_ ebug_logass="sref">rq"" ier"134" clllass="line" name="L148"> 148 1126href="d11 112ref">ass="line" name="L138"> 138 1127href="d11 break; ) { driver_data; reqgae, 89gata; 148 1129href="d11 148 113 href="d11"comment"> 11"co>1130rs/ide/ide-cef">GPCMD_READ_init_cdass=c130an=_START_STOP_UNIinit_cdass=c130an=); & cmdbuf_START_STOP_UNIbuf clauem_log_sense"izeDE_DBG_SENSE" csize); <, /a> & reqllass="line" name="L148"> 148 1131href="d11"comment"> 11"co>1131vice" class=doolass="line" name="L173"> 173 11"2href="d11"comment"> 11"co>113de/ide-cd.c#L103" id=/de/ide-cd.c#L130" id=/* we seemgto gett"sre=0x01,err=0x00t63" first/time (??) *L134" class="line" name="L134"> 134 11"3href="d11"comment"> 11"co>113code=sense" class="srrqrq & & cmdGPMOan CAPABILITIES_PAGEss="sref">cmd 148 1134href="d11 GPCMD_READ_"sreass="sref">rq 89 148 1136href="d11ult: 148 1137href="d11 11"ef="drivers/i"L103" e(&rq 148 1138href="d11 break; 142 1139href="d11 href="drivers/ide/ide-c11 hr>1139rs/iass="line" name="L148"> 148 114 href="d11rn 11rnvicevoidom_log_sense> 1_cdass=update_"pee=_START_STOP_UNIi 1_cdass=update_"pee=); rq 8911ran> 173 1142href="d11ivers/ide/ide-cd.c#L143"11ive>114="+code=sensecdass=infoass="sref">rqdriver_data; 148 1143href="d11) { 148 1144href="d11 11 >11r class="line" name="L85"> 85114ers/ide/ide-cef">GPCMD_READ_i 1_ ebug_logass="sref">rq"" ier"134" clllass="line" name="L148"> 148 1146href="d11ct ass="line" name="L138"> 138 1147href="d11ct ) { driver_data; reqgae, rq 173 1148href="d11gned long g href="drivers/cur"pee=_START_STOP_UNIcur"pee=35" "t;/a> & ) { & 148 1149href="d11gned long & ) { & 148 115 href="d11ivers/ide/ide-cd.c#L151"11ive>11iviled_commandl elserlass="line" name="L173"> 173 1151href="d11ref="+code=ide_debug_log11ref>11ian> & ) { & 148 1152href="d11 11 >115de/ide-cd.c#L103" id=/a>) { & ) { & 148 1153href="d11ivers/ide/ide-cd.c#L154"11ive>115code=sense" class="line" name="L142"> 142 1154href="d11 85GPCMD_READ_i 1_ ebug_logass="sref">rq"cur"pee=: %u, max"pee=: %u"134" cllass="line" name="L173"> 173 11i6href="d11 11 >115 148 1157href="d11ivers/ide/ide-cd.c#L158"11ive>1158" class="line" name="L158"> 158 1158href="d11!GPCMD_READ_c=_START_STOP_UNIc=); & & & 148 1159href="d11 return; GPCMD_READ_c=_START_STOP_UNIc=); & & & 148 116 href="d11ivers/ide/ide-cd.c#L161"11ive>11iv 142 1161href="d11n class="comment">/*116"srefass="line" name="L148"> 148 1162href="d11"comment"> * If 11"co>11ide/id#def ;G_SENSE, 148 1163href="d11"comment"> * toc11"co>116code=sense" ca href="drivers/CDC_CLOSE_TRAYDE_DBG_SENSE" cCDC_CLOSE_TRAYode=s|; href="drivers/CDC_OPEN_TRAYDE_DBG_SENSE" cCDC_OPEN_TRAYode=s|; href="drivers/CDC_LOCKDE_DBG_SENSE" cCDC_LOCKode=s|; href="drivers/CDC_SELECT_SPEEDDE_DBG_SENSE" cCDC_SELECT_SPEEDode=s|;\ass="line" name="L148"> 148 1164href="d11"comment"> * con11"co>11i4n> 148 1165href="d11"comment"> */11iers/ide/ide-cd href="drivers/CDC_PLAY_AUDIODE_DBG_SENSE" cCDC_PLAY_AUDIOode=s|; href="drivers/CDC_RESET_TYPE_FS" classCDC_RESETode=s|; href="drivers/CDC_DRIVE_STATUS_TYPE_FS" classCDC_DRIVE_STATUSode=s|; href="drivers/CDC_CD RDE_DBG_SENSE" cCDC_CD Rode=s|;\ass="line" name="L148"> 148 1166href="d11 148 1167href="d11 if ( 89116 class="line" name="L89"> 8911iailed"sreic=cdass=device=ope=REQ_QUIET" clacdass=device=ope 173 117 href="d11n class="comment">/* cur11n c>11n n> 173 1171href="d1111nan> rq 173 1172href="d11 switch ( 173 1173href="d11 case ; 173 1174href="d11 case ; & 173 1175href="d11 case 173 1176href="d11 if (!11n 173 1177href="d11 brea11 >11nef="drivers/i.ata; 173 1178href="d11 if (11nevice" class=.ata; 173 1179href="d11 11nailed_command.ata; rqrq 173 118 href="d11 brea11 >118 n> 173 1181href="d11 ; rq 173 1182href="d11 (118de/ide-cd.c#L.ata; 173 1183href="d11 (11 code=}lass="line" name="L148"> 148 1184href="d11 (118 class="line" name="L85"> 8511 ers/i"sreic=inrom_log_sense> 1_cdass=registedDE_DBG_SENSE" ci 1_cdass=registed); & rqnsloie=REQ_QUIET" clansloieode=ls="line" name="L89"> 8911 173 1187href="d11comment"> */ 11 ef="drivers/icdass=infoass="sref">rqrqdriver_data; 148 1188href="d11vers/ide/ide-cd.c#L89" i11ver>1188f="drivers/icdass=device=infoass="sref">rqrq & rq; rq 148 1189href="d11comment">/* Mark that we11com>1189rs/iass="line" name="L148"> 148 119 href="d11a href="+code=cdrom_saw_11a h>1190rs/ide/ide-cef">GPCMD_READ_i 1_ ebug_logass="sref">rq"nsloie: %d"134" cllom_log_sensensloie=REQ_QUIET" clansloieode=llass="line" name="L148"> 148 1191href="d11ivers/ide/ide-cd.c#L92" 11ive>119"srefass="line" name="L148"> 148 1192href="d11ef="+code=drive" class="11ef=>119de/ide-cd.c#Lata; rq; & 148 1193href="d11ef="+code=drive" class="11ef=>119code=sense" c/a>) { rq; & rq; 148 1194href="d11ivers/ide/ide-cd.c#L95" 11ive>11aia_change" cl/a>) { rq; rq & 148 1195href="d11vers/ide/ide-cd.c#L96" i11ver>119ers/ide/ide-cef">GPCMD_READ_ evinfoass="sref">rq; drilass="line" name="L148"> 148 1196href="d11 href="+code=cdrom_log_s11 hr>11a rqrq; rqreqlom_log_sensedriver_data" class="sref">driver_data; rqreqllass="line" name="L148"> 148 1197href="d11ivers/ide/ide-cd.c#L98" 11ive>1198" class="line" name="L158"> 158 1198href="d11t ) { driver_data; reqgae, 89 * For historic11oom>11aailed_command" class= href="drivers/ evinfoass="sref">rq; 148 12a href="d12a hrent"> * For historic12a h>12a 148 12a1href="d12avers/ide/ide-cd.c#L92" 12ave>1201rs/ide/ide-cef">GPCMD_READ_ evinfoass="sref">rq; & rq; 148 12a2href="d12af="+code=drive" class="12af=>12ade/ide-cd.c#L"L103" e(&rqrq 148 12a3href="d12af="+code=drive" class="12af=>12a4" cllass="line" name="L142"> 142 12a4href="d12avers/ide/ide-cd.c#L95" 12ave>120 class="line" name="L85"> 85120ers/i"sreic=inrom_log_sense> 1_cdass=probe_capabilitiee=REQ_QUIET" cla> 1_cdass=probe_capabilitiee); & rq 89120 173 12a7href="d12avers/ide/ide-cd.c#L98" 12ave>120ef="drivers/icdass=infoass="sref">rqdriver_data; 148 12a8href="d12a cdass=device=infoass="sref">rq & & rq 148 1209href="d12aomment"> * For historic12aom>1209n> GPCMD_READ_u8DE_DBG_SENSE" cuevice"ef">GPCMD_READ_buf_START_STOP_UNIbuf cla[ef">GPCMD_READ_ATAPI_CAPABILITIES_PAGE_SIZEDE_DBG_SENSE" cATAPI_CAPABILITIES_PAGE_SIZEvice]lass="line" name="L148"> 148 121 href="d12 GPCMD_READ_mechtype_eass="sref">rqGPCMD_READ_mechtypeass="sref">rq 148 1211href="d12 148 1212href="d12"comment"> 12"co>12 ="+coass="line" name="L148"> 148 1213href="d12"comment"> 12"co>12 code=sense" c/a>) { rq"media: 0x%x, atapi_flage: 0x%lx"134" cllass="line" name="L173"> 173 1214href="d12"comment"> 12"co>121ia_change" class="sreeeeeeeeemmand" class= href="drivers/ river_data" class="sref">driver_data; rqreqlom_log_sensedriver_data" class="sref">driver_data; reqllass="line" name="L148"> 148 12 5href="d12 if ( 186 12 6href="d12 break; 121 ; & & 186 12 7href="d12 121ef="drivers/ide/ide-c="+coata; 186 12 8href="d12 break; get_de href="drivers/CDC_MO_DRIVEDE_DBG_SENSE" cCDC_MO_DRIVEode=s|; href="drivers/CDC_RAMDE_DBG_SENSE" cCDC_RAMode=llass="line" name="L148"> 148 12 9href="d12 148 122 href="d12 ) { driver_data; rqreqo== /a>) { 173 1221href="d12"comment"> 12"co>122an> ; & 148 1222href="d12"comment"> 12"co>122de/ide-cd.c#L103" id=/a>) { GPCMD_READ_PFXDE_DBG_SENSE" cPFXvice"ede/ide-cd.c#"%e: ATAPI magneto-opeical name\n"134" cllass="line" name="L173"> 173 1223href="d12"comment"> 12"co>12 code=sense" csreeeeeeeeemmand" class= href="drivers/ river_data" class="sref">driver_data; rqreqllass="line" name="L148"> 148 1224href="d12"comment"> 122co>122ia_change" class="sre"L103" e(& 148 1225href="d12 break; 122ers/ide/ide-class="line" name="L142"> 142 1226href="d12 122ref">ass="line" name="L138"> 138 1227href="d12 break; ) { driver_data; reqgae, classpan AFLAG_PRn ATAPI"code=l;lass="line" name="L173"> 173 1228href="d12 gata; driver_data; reqgae, 148 1229href="d12 ; 148 123 href="d12"comment"> 12"co>123 (& 148 1231href="d12"comment"> 12"co>1231vice" class=lass="line" name="L142"> 142 12"2href="d12"comment"> 12"co>123="+coass="line" name="L148"> 148 12"3href="d12"comment"> 12"co>123code=sense" c/de/ide-cd.c#L130" id=/*134" class="line" name="L134"> 134 1234href="d12 134 1235href="d12 break; 134 1236href="d12ult: 134 1237href="d12 12"ef="d/de/ide-cd.c#L130" id=ode=faile* it can't do 63is. S=lo goes for cdiver_dops.vi4" class="line" name="L134"> 134 1238href="d12 break; 134 1239href="d12 href="drivers/ide/ide-c12 hr>1239n> GPCMD_READ_c=iDE_DBG_SENSE" ccdi35" ver_data; drilass="line" name="L148"> 148 124 href="d12rn 1240rs/ide/ide-cef">GPCMD_READ_c=iDE_DBG_SENSE" ccdi35" ver_data; & 148 1241href="d12rivers/ide/ide-cd.c#L14212riv>124"srefass="line" name="L148"> 148 1242href="d12ivers/ide/ide-cd.c#L143"12ive>124="+code=sense>/a>) { 1_cdass=get_capabilitiee); GPCMD_READ_buf_START_STOP_UNIbuf cla)ls="line" name="L89"> 89 103 1244href="d12 12 >12r class="line" name="L85"> 85124ers/ide/ide-c>;/a>) { 89driver_data; reqgae, 148 1247href="d12ct ) { 89g href="drivers/driver_data" class="sref">driver_data; reqgae, 148 1249href="d12gned long 148 125 href="d12ivers/ide/ide-cd.c#L151"12ive>125 ; 148 1251href="d12ref="+code=ide_debug_log12ref>12ian> 148 1252href="d12 12 >125de/ide-cd.c#L103" id=/a>) { ; & 148 1253href="d12ivers/ide/ide-cd.c#L154"12ive>125code=sense" c>/a>) { 89; 148 1255href="d12 89125 ; & 148 1257href="d12ivers/ide/ide-cd.c#L158"12ive>125ef="drivers/i>/a>) { 89g href="drivers/cdiDE_DBG_SENSE" ccdi35" ver_data; 148 1259href="d12 return; ) { driver_data; reqgae, 89126 ; 148 1261href="d12n class="comment">/*126"srefass="line" name="L148"> 148 1262href="d12"comment"> * If 12"co>126de/ide-cd.c#Lata; rq & 148 1263href="d12"comment"> * toc12"co>126code=sense" c>/a>) { rq & rq 186 1264href="d12"comment"> * con12"co>126ia_change" class=/a>) { rq & 186 1265href="d12"comment"> */12iers/ide/ide-cd ca href="drivers/driver_data" class="sref">driver_data; reqgae, 89) { ; 148 1267href="d12 if ( 158 1268href="d12 return; 126evice" class=>/a>) { ; reqgar_d 0l;lass="line" name="L173"> 173 1269href="d12ivers/ide/ide-cd.c#L170"12ive>126ailed_command" class= href="drivers/cdiDE_DBG_SENSE" ccdi35" ver_data; 148 127 href="d12n class="comment">/* cur12n c>127 148 1271href="d1212nan> rq & 186 1272href="d12 switch () { rq & 173 1273href="d12 case 148 1274href="d12 case 148 1275href="d12 case ; 148 1276href="d12 if (!12n 142 1277href="d12 brea12 >1278" class="line" name="L158"> 158 1278href="d12 if (1278rs/ide/ide-cef">GPCMD_READ_> 1_cdass=update_"pee=_START_STOP_UNIi 1_cdass=update_"pee=); GPCMD_READ_buf_START_STOP_UNIbuf cla)lass="line" name="L148"> 148 1279href="d12 1279rs/iass="line" name="L148"> 148 128 href="d12 brea12 >1280rs/ide/ide-cef">GPCMD_READ_p intk_START_STOP_UNIp intk); "%e: ATAPI"134" cllom_log_sense river_data" class="sref">driver_data; rqreqllass="line" name="L148"> 148 1281href="d12 148 1282href="d12 (128de/ide-cd.c#L/de/ide-cd.c#L130" id=/* don't p int "pee=e>63" name reporte=e0e*L134" class="line" name="L134"> 134 1283href="d12 (128code=sense" c>/a>) { & 148 1284href="d12 (128ia_change" class="sre href="drivers/p intk_START_STOP_UNIp intk); " %dX"134" cllom_log_sensec=_START_STOP_UNIc=); & 148 1285href="d12ivers/ide/ide-cd.c#L186"12ive>1286" class="line" name="L186"> 186 1286href="d12 if (t;128 " %s"134" cllo;/a>) { ; "CD-ROM"134" cl :"ede/ide-cd.c#"DVD-ROM"134" clllass="line" name="L148"> 148 1287href="d12comment"> */ 1288" class="line" name="L158"> 158 1288href="d12vers/ide/ide-cd.c#L89" i12ver>128evice" class=>;/a>) { ; ) { ; 89/* Mark that we12com>128ailed_command" class= href="drivers/p intk_START_STOP_UNIp intk); " DVD%s%s"134" clls="line" name="L89"> 89129 ; ""134" cl :"ede/ide-cd.c#"-R"134" clls="line" name="L89"> 89129an> ; ""134" cl :"ede/ide-cd.c#"/RAM"134" clllass="line" name="L148"> 148 1292href="d12ef="+code=drive" class="12ef=>129="+coass="line" name="L148"> 148 1293href="d12ef="+code=drive" class="12ef=>129code=sense" c>;/a>) { ; ) { ; 89129ia_change" class="sre href="drivers/p intk_START_STOP_UNIp intk); " CD%s%s"134" clls="line" name="L89"> 89129ers/ide/ide-cd cmand" class=eeeeeeeee;/a>) { ; ""134" cl :"ede/ide-cd.c#"-R"134" clls="line" name="L89"> 89) { ; ""134" cl :"ede/ide-cd.c#"/RW"134" clllass="line" name="L148"> 148 1297href="d12ivers/ide/ide-cd.c#L98" 12ive>1298" class="line" name="L158"> 158 1298href="d12t ) { ; 89 * For historic12oom>12aailed_command" class= href="drivers/p intk_START_STOP_UNIp intk); " changed w/%d sloie"134" cllom_log_sensensloie=REQ_QUIET" clansloieode=llass="line" name="L148"> 148 13a href="d13a hrent"> * For historic13a h>130 148 13a1href="d13avers/ide/ide-cd.c#L92" 13ave>130an> " name"134" clllass="line" name="L148"> 148 13a2href="d13af="+code=drive" class="13af=>130="+coass="line" name="L148"> 148 13a3href="d13af="+code=drive" class="13af=>130code=sense" c/a>) { ", %dkB Cache\n"134" cllass="line" name="L173"> 173 13a4href="d13avers/ide/ide-cd.c#L95" 13ave>130ia_change" class="sreeeeeeeeemef">GPCMD_READ_be16_to_cpupDE_DBG_SENSE" cbe16_to_cpup); & 148 13a5href="d13aers/ide/ide-cd.c#L96" i13aer>1306" class="line" name="L186"> 186 13a6href="d13ahref="+code=cdrom_log_s13ahr>130 (& 148 13a7href="d13avers/ide/ide-cd.c#L98" 13ave>130ef="dlass="line" name="L142"> 142 13a8href="d13a 89 * For historic13aom>1309n> 134 131 href="d13 > 1_cdass=prep_fe=REQ_QUIET" cla> 1_cdass=prep_fe); request_queue=REQ_QUIET" clarequest_queuea_cha*m_log_senseq=REQ_QUIET" claq35" , request=REQ_QUIET" clarequesta_cha*m_log_senserq=REQ_QUIET" clarqvicelass="line" name="L148"> 148 1311href="d13 173 1312href="d13"comment"> 13"co>131="+code=sense&nrom_log_sensehard_sect=REQ_QUIET" clahard_sectode="t; href="drivers/queue_logical_block_size=REQ_QUIET" claqueue_logical_block_size); 148 1313href="d13"comment"> 13"co>13 code=sense" clongmef">GPCMD_READ_block_START_STOP_UNIblockode="t;(long)ef">GPCMD_READ_blk_rq_poe=REQ_QUIET" clablk_rq_poe); ) { 148 1314href="d13"comment"> 13"co>131ia_change" clunsignedclongmef">GPCMD_READ_blocke=REQ_QUIET" clablockeode="t; href="drivers/blk_rq_sectore=REQ_QUIET" clablk_rq_sectore); ) { 148 1315href="d13 if ( 186 13 6href="d13 break; 131 rq; BLK_MAX_CDB_START_STOP_UNIBLK_MAX_CDB35" llass="line" name="L148"> 148 1317href="d13 1318" class="line" name="L158"> 158 13 8href="d13 break; ) { & 148 1319href="d13 ; 148 132 href="d13 148 1321href="d13"comment"> 13"co>132an> ; 148 1322href="d13"comment"> 13"co>132="+coass="line" name="L148"> 148 1323href="d13"comment"> 13"co>132code=sense" c/de/ide-cd.c#L130" id=/*134" class="line" name="L134"> 134 1324href="d13"comment"> 132co>132ia_ch/de/ide-cd.c#L130" id=ode=faile* fill in lba134" class="line" name="L134"> 134 1325href="d13 break; 132ers/i/de/ide-cd.c#L130" id=ode=faile*L134" class="line" name="L134"> 134 1326href="d13 132 ; & 148 1327href="d13 break; ; ; & 148 1328href="d13 GPCMD_READ_rq=REQ_QUIET" clarqvicever_data; & 148 1329href="d13 GPCMD_READ_rq=REQ_QUIET" clarqvicever_data; 148 133 href="d13"comment"> 13"co>133 148 1331href="d13"comment"> 13"co>1331vice" class=/de/ide-cd.c#L130" id=/*134" class="line" name="L134"> 134 13"2href="d13"comment"> 13"co>133="+co/de/ide-cd.c#L130" id=ode=faile* and transfer length134" class="line" name="L134"> 134 13"3href="d13"comment"> 13"co>133code=/de/ide-cd.c#L130" id=ode=faile*L134" class="line" name="L134"> 134 1334href="d13 ) { ; & 148 1335href="d13 break; GPCMD_READ_rq=REQ_QUIET" clarqvicever_data; 148 1336href="d13ult: ; ; 103 1337href="d13 133ef="drivers/i"L103" e(& 148 1338href="d13 break; 142 1339href="d13 href="drivers/ide/ide-c13 hr>1339rs/iass="line" name="L148"> 148 134 href="d13rn 1340rs/i/de/ide-cd.c#L130" id=/*134" class="line" name="L134"> 134 1341href="d13rivers/ide/ide-cd.c#L14213riv>134"sref/de/ide-cd.c#L130" id=o* Most ogt63" SCSI L130ands are supporte=edidectly by ATAPI devices.vi4" class="line" name="L134"> 134 1342href="d13ivers/ide/ide-cd.c#L143"13ive>134="+co/de/ide-cd.c#L130" id=o* T3is transform handlest63" few exceptions.vi4" class="line" name="L134"> 134 1343href="d13 134 1344href="d13 13 >13r clas"sreic=inrom_log_sense> 1_cdass=prep_pc=REQ_QUIET" cla> 1_cdass=prep_pc); request=REQ_QUIET" clarequesta_cha*m_log_senserq=REQ_QUIET" clarqvicelass="line" name="L148"> 148 1345href="d13rivers/ide/ide-cd.c#L14613riv>134ers/ilass="line" name="L173"> 173 1346href="d13ct ; c=REQ_QUIET" clacode="t; href="drivers/rq=REQ_QUIET" clarqvicever_data; 148 1347href="d13ct 158 1348href="d13gned long 134 1349href="d13gned long & & 173 135 href="d13ivers/ide/ide-cd.c#L151"13ive>135 148 1351href="d13ref="+code=ide_debug_log13ref>135an> 148 1352href="d13 13 >135de/ide-cd.c#L103" id=/a>) { 148 1353href="d13ivers/ide/ide-cd.c#L154"13ive>135code=sense" csreeeeee href="drivers/c=REQ_QUIET" clacode=[3]"t; href="drivers/c=REQ_QUIET" clacode=[1]gae 148 1354href="d13 103 1355href="d13 103 1356href="d13 13 >135 & 148 1357href="d13ivers/ide/ide-cd.c#L158"13ive>135ef="drivers/ide/ide-cata; ; 103 13i8href="d13!g"L103" e(& 148 1359href="d13 return; 142 136 href="d13ivers/ide/ide-cd.c#L161"13ive>136 148 1361href="d13n class="comment">/*1361vice" class=/de/ide-cd.c#L130" id=/*134" class="line" name="L134"> 134 1362href="d13"comment"> * If 13"co>136="+co/de/ide-cd.c#L130" id=ode=faile* it's silly totpretend we unde="tand 6-byte sense c130ands, justa_4" class="line" name="L134"> 134 1363href="d13"comment"> * toc13"co>136code=/de/ide-cd.c#L130" id=ode=faile*g"Lject with ILLEGAL_REQUEST and t3" caller should take 63ea_4" class="line" name="L134"> 134 1364href="d13"comment"> * con13"co>136ia_ch/de/ide-cd.c#L130" id=ode=faile* appropriate actiona_4" class="line" name="L134"> 134 1365href="d13"comment"> */136ers/i/de/ide-cd.c#L130" id=ode=faile*L134" class="line" name="L134"> 134 1366href="d13) { & & 173 1367href="d13 if (; ; 148 1368href="d13 return; 136evice" class="sref">g"L103" e(& 148 1369href="d13ivers/ide/ide-cd.c#L170"13ive>136ailed_commandlass="line" name="L142"> 142 137 href="d13n class="comment">/* cur13n c>137 148 1371href="d1313nan> (& 148 1372href="d13 switch ( 142 1373href="d13 case 142 1374href="d13 case > 1_cdass=prep_fn_START_STOP_UNI> 1_cdass=prep_fn); request_queue=REQ_QUIET" clarequest_queuea_cha*m_log_senseq=REQ_QUIET" claq35" , request=REQ_QUIET" clarequesta_cha*m_log_senserq=REQ_QUIET" clarqvicelass="line" name="L148"> 148 1375href="d13 case 173 1376href="d13 if (!137 ; rq & 148 1377href="d13 brea13 >137ef="drivers/ide/ide-c"L103" e(& 1_cdass=prep_fe=REQ_QUIET" cla> 1_cdass=prep_fe); q=REQ_QUIET" claq35" , m_log_senserq=REQ_QUIET" clarqvicellass="line" name="L148"> 148 1378href="d13 if (1378rs/ide/ide-celser>/a>) { ; rq & 148 1379href="d13 137ailed_command" class="L103" e(& 1_cdass=prep_pc=REQ_QUIET" cla> 1_cdass=prep_pc); rq=REQ_QUIET" clarqvicellass="line" name="L148"> 148 138 href="d13 brea13 >138 148 1381href="d13 103 1382href="d13 (138de/idlass="line" name="L142"> 142 1383href="d13 (138code=ass="line" name="L142"> 142 1384href="d13 (138 clas"s ucrom_log_sensecd_list_" iryass="sref">rq 173 1385href="d13ivers/ide/ide-cd.c#L186"13ive>138ers/ide/ide-cconst char=faile*e(& _m 148 1386href="d13 if (t;138 rq _firmwareode=lass="line" name="L148"> 148 1387href="d13comment"> */ 138ef="drivers/iunsignedcinroe-cata; 148 1388href="d13vers/ide/ide-cd.c#L89" i13ver>138evice}lass="line" name="L148"> 148 1389href="d13comment">/* Mark that we13com>1389rs/iass="line" name="L148"> 148 139 href="d13a href="+code=cdrom_saw_13a h>139 148 1391href="d13ivers/ide/ide-cd.c#L92" 13ive>139an> <"sreic= href="drivers/sector_iDE_DBG_SENSE" csector_if="dre(& 1_cdass=capacityass="sref">rq 1_cdass=capacity); > 1_ name_iDE_DBG_SENSE" c> 1_ name_ia_cha*m_log_sensedriver_data" class="sref">drilass="line" name="L148"> 148 1392href="d13ef="+code=drive" class="13ef=>139="+colass="line" name="L173"> 173 1393href="d13ef="+code=drive" class="13ef=>139code=sense" cunsignedclongmef">GPCMD_READ_capacityass="sref">rqsectore_per_fr ass="sref">rq 148 1394href="d13ivers/ide/ide-cd.c#L95" 13ive>139 class="line" name="L85"> 85139ers/ide/ide-c>/a>) { rqdriver_data" class="sref">dri,;se & rq & rqNULLDE_DBG_SENSE" cNULL>drillass="line" name="L148"> 148 1396href="d13 href="+code=cdrom_log_s13 hr>139 103 1397href="d13ivers/ide/ide-cd.c#L98" 13ive>1398" class="line" name="L158"> 158 1398href="d13t (&rqsectore_per_fr ass="sref">rq 148 1399href="d13oomment"> * For historic13oom>13aailedlass="line" name="L142"> 142 14a href="d14a hrent"> * For historic14a h>140 148 14a1href="d14avers/ide/ide-cd.c#L92" 14ave>140an> <"sreic=inrom_log_sense> 1cd=capacity=proc_showDE_DBG_SENSE" c> 1cd=capacity=proc_show); seq_filer_data" class="seq_filea_cha*m_log_sensemr_data" class="mode=, voida*m_log_sensevr_data" class="v>drilass="line" name="L148"> 148 14a2href="d14af="+code=drive" class="14af=>140="+colass="line" name="L173"> 173 14a3href="d14af="+code=drive" class="14af=>140code=sense" c/a>) { 1_ name_iDE_DBG_SENSE" c> 1_ name_ia_cha*m_log_sensedriver_data" class="sref">dri"t; href="drivers/mr_data" class="mode=ver_data; 148 14a4href="d14avers/ide/ide-cd.c#L95" 14ave>140 class="line" name="L85"> 85140ers/ide/ide-cef">GPCMD_READ_seq_p intf_START_STOP_UNIseq_p intf); mr_data" class="mode=, ede/ide-cd.c#"%llu\n"134" cll;(long long)ef">GPCMD_READ_> 1_cdass=capacityass="sref">rq 1_cdass=capacity); driver_data" class="sref">drilllass="line" name="L148"> 148 14a6href="d14ahref="+code=cdrom_log_s14ahr>140 103 14a7href="d14avers/ide/ide-cd.c#L98" 14ave>140ef="dlass="line" name="L142"> 142 14a8href="d14a 89 * For historic14aom>1409n> <"sreic=inrom_log_sense> 1cd=capacity=proc_open_START_STOP_UNI> 1cd=capacity=proc_open); inninnfiler_data" class="filea_cha*m_log_sensefiler_data" class="filea_chlass="line" name="L148"> 148 141 href="d14 173 1411href="d14 (&filer_data" class="filea_ch, m_log_sense> 1cd=capacity=proc_showDE_DBG_SENSE" c> 1cd=capacity=proc_show); <, m_log_sensePDE_TYPE_FS" classPDE); >nn; 148 1412href="d14"comment"> 14"co>141de/idlass="line" name="L142"> 142 1413href="d14"comment"> 14"co>141code=ass="line" name="L142"> 142 1414href="d14"comment"> 14"co>141 clas"sreic=const file_operationsr_data" class="file_operationsf="dre(& 1cd=capacity=proc_fope=REQ_QUIET" cla> 1cd=capacity=proc_fope>dri"t;lass="line" name="L173"> 173 1415href="d14 if ( 173 1416href="d14 break; 141 173 1417href="d14 1417 173 1418href="d14 break; (& 173 1419href="d14 173 142 href="d14 148 1421href="d14"comment"> 14"co>142"srefass="line" name="L148"> 148 1422href="d14"comment"> 14"co>142="+co"sreic= href="drivers/> 1_proc_" iry_iDE_DBG_SENSE" c> 1_proc_" iry_if="dre(& 1cd=proc_START_STOP_UNI> 1cd=procf="d[]"t;lass="line" name="L173"> 173 1423href="d14"comment"> 14"co>142code=sense" c{ ede/ide-cd.c#"capacity"134" cllom_log_senseS_IFREG_START_STOP_UNIS_IFREGode=|m_log_senseS_IRUGODE_DBG_SENSE" cS_IRUGO); <, se & 1cd=capacity=proc_fope=REQ_QUIET" cla> 1cd=capacity=proc_fope>dri"},ass="line" name="L173"> 173 1424href="d14"comment"> 142co>142ia_change" cl{lass="line" name="L142"> 142 1425href="d14 break; 142ers/i}lass="line" name="L148"> 148 1426href="d14 142 148 1427href="d14 break; 1_proc_" iry_iDE_DBG_SENSE" c> 1_proc_" iry_if="dr*e(& 1_cd_proc_" iriee=REQ_QUIET" cla> 1_cd_proc_" iriee); > 1_ name_iDE_DBG_SENSE" c> 1_ name_ia_cha*m_log_sensedriver_data" class="sref">drilass="line" name="L148"> 148 1428href="d14 173 1429href="d14 (& 1cd=proc_START_STOP_UNI> 1cd=procf="dlass="line" name="L148"> 148 143 href="d14"comment"> 14"co>143 142 1431href="d14"comment"> 14"co>143"srefass="line" name="L148"> 148 14"2href="d14"comment"> 14"co>143="+co"sreic=const > 1_proc_devseeass="sref">rq 1_proc_devseef="dr*e(& 1_cd_proc_devseee=REQ_QUIET" cla> 1_cd_proc_devseee); > 1_ name_iDE_DBG_SENSE" c> 1_ name_ia_cha*m_log_sensedriver_data" class="sref">drilass="line" name="L148"> 148 14"3href="d14"comment"> 14"co>143code=lass="line" name="L173"> 173 1434href="d14 (&drilass="line" name="L148"> 148 1435href="d14 break; 142 1436href="d14ult: 142 1437href="d14 1438" class="line" name="L158"> 158 1438href="d14 break; cd_list_" iryass="sref">rq (& 1_cd_quirks_list=REQ_QUIET" cla> 1_cd_quirks_listf="d[]"t;lass="line" name="L173"> 173 1439href="d14 href="drivers/ide/ide-c14 hr>143ailed_commandede/ide-cd.c#L130" id=/* SCR-3231 doesn't supportt63" SET_CD SPEED c130and.e*L134" class="line" name="L134"> 134 144 href="d14rn 1440ode=sense" c{ ede/ide-cd.c#"SAMSUNG CD-ROM SCR-3231"134" cllom_log_senseNULLDE_DBG_SENSE" cNULL>dri,e-cef">GPCMD_READ_pan AFLAG_NO_SPEED_SELECT_TYPE_FS" classpan AFLAG_NO_SPEED_SELECTode=sense" },ass="line" name="L173"> 173 1441href="d14rivers/ide/ide-cd.c#L14214riv>1441vice" class=/de/ide-cd.c#L130" id=/* Old NEC260 (not R) was released before ATAPI 1.2 "pec.e*L134" class="line" name="L134"> 134 1442href="d14ivers/ide/ide-cd.c#L143"14ive>1442ode=sense" c{ ede/ide-cd.c#"NEC CD-ROM DRIVE:260"134" clloss=/de/ide-cd.c#"1.01"134" cllom_log_sensepan AFLAG_TOCADDR_AS_BCDDE_DBG_SENSE" cpan AFLAG_TOCADDR_AS_BCDode=s|ass="line" name="L186"> 186 1443href="d14pan AFLAG_PRn ATAPI"comment"> NSE" cpan AFLAG_PRn ATAPI"c>dri,e-csense" },ass="line" name="L173"> 173 1444href="d14 14 >1444vice" class=/de/ide-cd.c#L130" id=/* Vertos 300, some me="ions ogt63is name like 6o talk BCD.e*L134" class="line" name="L134"> 134 1445href="d14rivers/ide/ide-cd.c#L14614riv>1445ode=sense" c{ ede/ide-cd.c#"V003S0DS"134" clloss=eeeeeeeeeeeem_log_senseNULLDE_DBG_SENSE" cNULL>dri,e-cef">GPCMD_READ_pan AFLAG_VERTOS_300_SSDDE_DBG_SENSE" cpan AFLAG_VERTOS_300_SSD>dri,e-csens},ass="line" name="L173"> 173 1446href="d14ct 134 1447href="d14ct "V006E0DS"134" clloss=eeeeeeeeeeeem_log_senseNULLDE_DBG_SENSE" cNULL>dri,e-cef">GPCMD_READ_pan AFLAG_VERTOS_600_ESDDE_DBG_SENSE" cpan AFLAG_VERTOS_600_ESD>dri,e-csens},ass="line" name="L173"> 173 1448href="d14gned long 134 1449href="d14gned long 134 145 href="d14ivers/ide/ide-cd.c#L151"14ive>1450rs/i/de/ide-cd.c#L130" id=eeeeeeeee* (by default standard ATAPI supporttfor CD change=" is used).vi4" class="line" name="L134"> 134 1451href="d14ref="+code=ide_debug_log14ref>145"sref/de/ide-cd.c#L130" id=oeeeeeeee*L134" class="line" name="L134"> 134 1452href="d14 14 >1452ode=sense" c{ ede/ide-cd.c#"CD-ROM CDR-C3 G"134" clloss=eeeeem_log_senseNULLDE_DBG_SENSE" cNULL>dri,e-cef">GPCMD_READ_pan AFLAG_SANYO_3CDDE_DBG_SENSE" cpan AFLAG_SANYO_3CDode=sense" csreee},ass="line" name="L173"> 173 1453href="d14ivers/ide/ide-cd.c#L154"14ive>145code=sense" c{ ede/ide-cd.c#"CD-ROM CDR-C3G"134" clloss=eeeeeem_log_senseNULLDE_DBG_SENSE" cNULL>dri,e-cef">GPCMD_READ_pan AFLAG_SANYO_3CDDE_DBG_SENSE" cpan AFLAG_SANYO_3CDode=sense" csreee},ass="line" name="L173"> 173 1454href="d14"CD-ROM CDR_C36"134" clloss=eeeeeem_log_senseNULLDE_DBG_SENSE" cNULL>dri,e-cef">GPCMD_READ_pan AFLAG_SANYO_3CDDE_DBG_SENSE" cpan AFLAG_SANYO_3CDode=sense" csreee},ass="line" name="L173"> 173 1455href="d14 134 1456href="d14 14 >145 "STINGRAY 8422 pan 8X CD-ROM 7-27-95"134" cllom_log_senseNULLDE_DBG_SENSE" cNULL>dri,em_log_sensepan AFLAG_PRn ATAPI"comment"> NSE" cpan AFLAG_PRn ATAPI"c>drie},ass="line" name="L173"> 173 1457href="d14ivers/ide/ide-cd.c#L158"14ive>145ef="drivers/i/de/ide-cd.c#L130" id=/*134" class="line" name="L134"> 134 14i8href="d14! 134 1459href="d14 return; 134 146 href="d14ivers/ide/ide-cd.c#L161"14ive>1460rs/i/de/ide-cd.c#L130" id=eeeeeeeee*L134" class="line" name="L134"> 134 1461href="d14n class="comment">/*1461vice" class={ ede/ide-cd.c#"ATAPI CD ROM DRIVE 50X MAX"134" cllom_log_senseNULLDE_DBG_SENSE" cNULL>dri,e-cef">GPCMD_READ_pan AFLAG_FULL_CAPS_PAGE_TYPE_FS" classpan AFLAG_FULL_CAPS_PAGEvice" cla},ass="line" name="L173"> 173 1462href="d14"comment"> * If 14"co>1462ode=sense" c{ ede/ide-cd.c#"WPI CDS-32X"134" clloss=eeeeeeeeeeeem_log_senseNULLDE_DBG_SENSE" cNULL>dri,e-cef">GPCMD_READ_pan AFLAG_FULL_CAPS_PAGE_TYPE_FS" classpan AFLAG_FULL_CAPS_PAGEvice" cla},ass="line" name="L173"> 173 1463href="d14"comment"> * toc14"co>146code=sense" c/de/ide-cd.c#L130" id=/* ACER/AOpen 24X CD-ROM hast63" "peed fields byte-swapped.e*L134" class="line" name="L134"> 134 1464href="d14"comment"> * con14"co>146ia_change" cl{ ede/ide-cd.c#""134" clloss=eeeeeeeeeeeesense" c/de/ide-cd.c#"241N"134" cllom_log_sensepan AFLAG_LE_SPEED_FIELDSDE_DBG_SENSE" cpan AFLAG_LE_SPEED_FIELDSode=sense" },ass="line" name="L173"> 173 1465href="d14"comment"> */146ers/ide/ide-cede/ide-cd.c#L130" id=/*134" class="line" name="L134"> 134 1466href="d14 134 1467href="d14 if ( 134 1468href="d14 return; 146evice/de/ide-cd.c#L130" id=eeeeeeeee*L134" class="line" name="L134"> 134 1469href="d14ivers/ide/ide-cd.c#L170"14ive>146ailed_command{ ede/ide-cd.c#"MATSHITADVD-ROM SR-8187"134" cllom_log_senseNULLDE_DBG_SENSE" cNULL>dri,e-cef">GPCMD_READ_pan AFLAG_PLAY_AUDIO_OKDE_DBG_SENSE" cpan AFLAG_PLAY_AUDIO_OKode=sense" cs},ass="line" name="L173"> 173 147 href="d14n class="comment">/* cur14n c>1470ode=sense" c{ ede/ide-cd.c#"MATSHITADVD-ROM SR-8186"134" cllom_log_senseNULLDE_DBG_SENSE" cNULL>dri,e-cef">GPCMD_READ_pan AFLAG_PLAY_AUDIO_OKDE_DBG_SENSE" cpan AFLAG_PLAY_AUDIO_OKode=sense" cs},ass="line" name="L173"> 173 1471href="d141471vice" class={ ede/ide-cd.c#"MATSHITADVD-ROM SR-8176"134" cllom_log_senseNULLDE_DBG_SENSE" cNULL>dri,e-cef">GPCMD_READ_pan AFLAG_PLAY_AUDIO_OKDE_DBG_SENSE" cpan AFLAG_PLAY_AUDIO_OKode=sense" cs},ass="line" name="L173"> 173 1472href="d14 switch ("MATSHITADVD-ROM SR-8174"134" cllom_log_senseNULLDE_DBG_SENSE" cNULL>dri,e-cef">GPCMD_READ_pan AFLAG_PLAY_AUDIO_OKDE_DBG_SENSE" cpan AFLAG_PLAY_AUDIO_OKode=sense" cs},ass="line" name="L173"> 173 1473href="d14 case "Optiarc DVD RW AD-5200A"134" cllom_log_senseNULLDE_DBG_SENSE" cNULL>dri,e-cef">GPCMD_READ_pan AFLAG_PLAY_AUDIO_OKDE_DBG_SENSE" cpan AFLAG_PLAY_AUDIO_OKode=sense" cs},ass="line" name="L173"> 173 1474href="d14 case "Optiarc DVD RW AD-7200A"134" cllom_log_senseNULLDE_DBG_SENSE" cNULL>dri,e-cef">GPCMD_READ_pan AFLAG_PLAY_AUDIO_OKDE_DBG_SENSE" cpan AFLAG_PLAY_AUDIO_OKode=sense" cs},ass="line" name="L173"> 173 1475href="d14 case "Optiarc DVD RW AD-7543A"134" cllom_log_senseNULLDE_DBG_SENSE" cNULL>dri,e-cef">GPCMD_READ_pan AFLAG_NO_AUTOCLOSE_TYPE_FS" classpan AFLAG_NO_AUTOCLOSEode=sense" csr},ass="line" name="L173"> 173 1476href="d14 if (!147 "TEAC CD-ROM CD-224E"134" clloss=em_log_senseNULLDE_DBG_SENSE" cNULL>dri,e-cef">GPCMD_READ_pan AFLAG_NO_AUTOCLOSE_TYPE_FS" classpan AFLAG_NO_AUTOCLOSEode=sense" csr},ass="line" name="L173"> 173 1477href="d14 brea14 >1477ode=sense" c{ e_log_senseNULLDE_DBG_SENSE" cNULL>dri,em_log_senseNULLDE_DBG_SENSE" cNULL>dri,e0dlass="line" name="L142"> 142 1478href="d14 if (147evice}lass="line" name="L148"> 148 1479href="d14 1479rs/iass="line" name="L148"> 148 148 href="d14 brea14 >1480rs/i"sreic=unsignedcinroe(& 1_cd_flage=REQ_QUIET" cla> 1_cd_flage); u16DE_DBG_SENSE" cu16a_cha*e(& =REQ_QUIET" cla> >drilass="line" name="L148"> 148 1481href="d14 173 1482href="d14 (1482ode=sense" cconst cd_list_" iryass="sref">rq (&dri"t; href="drivers/> 1_cd_quirks_list=REQ_QUIET" cla> 1_cd_quirks_listf="dlass="line" name="L148"> 148 1483href="d14 (148code=ass="line" name="L142"> 142 1484href="d14 (148ia_change" clwhile ;/a>) { driver_data; _m 173 1485href="d14ivers/ide/ide-cd.c#L186"14ive>148ers/ide/ide-ccccccccc>/a>) { cler_data" class="cl">driver_data; _m & =REQ_QUIET" cla> >dri[/a> & dri]l tt;0gae 173 1486href="d14 if (t;148 driver_data; _firmwareass="sref">rq _firmwareode="tt;/a> & dri ||ass="line" name="L186"> 186 1487href="d14comment"> */ 148ef="drivers/ide/ide-coss=em_log_sense & =REQ_QUIET" cla> >dri[/a> & dri],em_log_sensecler_data" class="cl">driver_data; _firmwareass="sref">rq _firmwareode=)llass="line" name="L148"> 148 1488href="d14vers/ide/ide-cd.c#L89" i14ver>148evice" class="sref">ggggggggg"L103" e(&driver_data; 148 1489href="d14comment">/* Mark that we14com>148ailed_command" class= href="drivers/cler_data" class="cl">dri++lass="line" name="L148"> 148 149 href="d14a href="+code=cdrom_saw_14a h>1490ode=sense" class="line" name="L142"> 142 1491href="d14ivers/ide/ide-cd.c#L92" 14ive>149"srefass="line" name="L148"> 148 1492href="d14ef="+code=drive" class="14ef=>1492ode=sense" c"L103" class="line" name="L103"> 103 1493href="d14ef="+code=drive" class="14ef=>149code=lass="line" name="L142"> 142 1494href="d14ivers/ide/ide-cd.c#L95" 14ive>149 class="line" name="L85"> 85149ers/i"sreic=inrom_log_sense> 1_cdass=sL10p=REQ_QUIET" cla> 1_cdass=sL10p); i 1_ name_iDE_DBG_SENSE" c> 1_ name_ia_cha*m_log_sensedriver_data" class="sref">drilass="line" name="L148"> 148 1496href="d14 href="+code=cdrom_log_s14 hr>149 173 1497href="d14ivers/ide/ide-cd.c#L98" 14ive>149ef="drivers/icdass=info=REQ_QUIET" clacdass=infon> (&dri"t; href="drivers/driver_data" class="sref">driver_data; 148 1498href="d14t cdass=device=info=REQ_QUIET" clacdass=device=infon> (&dri"t;se & driver_data; 148 1499href="d14oomment"> * For historic14oom>1499vice" class=request_queue=REQ_QUIET" clarequest_queuea_cha*m_log_senseq=REQ_QUIET" claq35" "t; href="drivers/driver_data" class="sref">driver_data; 148 15a href="d15a hrent"> * For historic15a h>1500ode=sense" cm_log_senseu16DE_DBG_SENSE" cu16a_cha*e(& =REQ_QUIET" cla> >dri"t; href="drivers/driver_data" class="sref">driver_data; =REQ_QUIET" cla> >drilass="line" name="L148"> 148 15a1href="d15avers/ide/ide-cd.c#L92" 15ave>1501vice" class=char=*ata; & =REQ_QUIET" cla> >dri[/a> & dri]lass="line" name="L148"> 148 15a2href="d15af="+code=drive" class="15af=>1502ode=sense" cinrom_log_sensensloee=REQ_QUIET" clansloee>drilass="line" name="L148"> 148 15a3href="d15af="+code=drive" class="15af=>150code=ass="line" name="L142"> 142 15a4href="d15avers/ide/ide-cd.c#L95" 15ave>150ia_change" cl/a>) { 1_ ebug_logDE_DBG_SENSE" c> 1_ ebug_log); pan DBG_PROBE_TYPE_FS" classpan DBG_PROBE>dri,emde/ide-cd.c#"enter"134" clllass="line" name="L148"> 148 15a5href="d15aers/ide/ide-cd.c#L96" i15aer>150ers/iass="line" name="L148"> 148 15a6href="d15ahref="+code=cdrom_log_s15ahr>150 q=REQ_QUIET" claq35" , m_log_sense> 1_cdass=prep_fn_START_STOP_UNI> 1_cdass=prep_fn); 148 15a7href="d15avers/ide/ide-cd.c#L98" 15ave>1507q=REQ_QUIET" claq35" , 31llass="line" name="L148"> 148 15a8href="d15a ; q=REQ_QUIET" claq35" , 15llass="line" name="L148"> 148 15a9href="d15aomment"> * For historic15aom>1509rs/iass="line" name="L148"> 148 151 href="d15 driver_data" class="sref">driver_data; dri |t; href="drivers/Ian DFLAG_MEDIA_CHANGEDDE_DBG_SENSE" cpan DFLAG_MEDIA_CHANGED>drilass="line" name="L148"> 148 1511href="d15 driver_data" class="sref">driver_data; dri"t; href="drivers/pan AFLAG_NO_EJECT_TYPE_FS" classpan AFLAG_NO_EJECT>dri |oe(& 1_cd_flage=REQ_QUIET" cla> 1_cd_flage); > =REQ_QUIET" cla> >drillass="line" name="L148"> 148 1512href="d15"comment"> 15"co>15"c>driass="line" name="L148"> 148 1513href="d15"comment"> 15"co>151code=sense" c>am_log_sensedriver_data" class="sref">driver_data; dri"aedri)gae 173 1514href="d15"comment"> 15"co>151ia_change" class=ata; '1'134" clgae; '2'134" cllass="line" name="L148"> 148 1515href="d15 if (driver_data; dri"|t;a/a> & dri"|ass="line" name="L148"> 148 1516href="d15 break; 151 148 1517href="d15 1517driver_data; dri"aedri)gae 173 1518href="d15 break; ggata; '1'134" clgae; '2'134" cllass="line" name="L148"> 148 1519href="d15 driver_data; dri"|t;/a> & driaass="line" name="L173"> 173 152 href="d15 driver_data" class="sref">driver_data; dri"ae 148 1521href="d15"comment"> 15"co>152an> 134 1522href="d15"comment"> 15"co>152de/ide-cd.c#L103" id=/a>) { driver_data; dri"t;3aass="line" name="L173"> 173 1523href="d15"comment"> 15"co>152code=ass="line" name="L142"> 142 1524href="d15"comment"> 152co>152ia_change" cl/a>) { dri"t; href="drivers/> 1_cdass=probe_capabilities_START_STOP_UNI> 1_cdass=probe_capabilities); driver_data" class="sref">drilaass="line" name="L173"> 173 1525href="d15 break; 152ers/iass="line" name="L148"> 148 1526href="d15 152 q=REQ_QUIET" claq35" , m_log_senseCD_FRAMESIZE_TYPE_FS" classCD_FRAMESIZE>drilaass="line" name="L173"> 173 1527href="d15 break; 158 1528href="d15 > 1_cdass=registedDE_DBG_SENSE" c> 1_cdass=registed); driver_data" class="sref">dri, m_log_sensensloee=REQ_QUIET" clansloee>dri)l lass="line" name="L173"> 173 1529href="d15 KERN_ERR_START_STOP_UNIKERN_ERRiled_m_log_sensePFX_START_STOP_UNIPFXiled_mde/ide-cd.c#"%s: %s failed 6o registed device with the"134" class="line" name="L173"> 173 153 href="d15"comment"> 15"co>1530iled_command" class=a href="drivers/ de/ide-cd.c#" cdass namer.\n"134" cll;m_log_sensedriver_data" class="sref">driver_data; __func__=REQ_QUIET" cla__func__>drilaass="line" name="L173"> 173 1531href="d15"comment"> 15"co>153an> (&drilass="line" name="L148"> 148 15"2href="d15"comment"> 15"co>153de/ide-cd.c#L103" id="L103" 1lass="line" name="L148"> 148 15"3href="d15"comment"> 15"co>153code=sense" class="line" name="L142"> 142 1534href="d15 85GPCMD_READ_i 1_proc_registed_ namedDE_DBG_SENSE" c> 1_proc_registed_ named); driver_data" class="sref">dri, m_log_sensec=_START_STOP_UNIcd>driver_data; 173 1536href="d15ult: 103 1537href="d15 153ef="dlass="line" name="L142"> 142 1538href="d15 break; 89(& 1_cd_remover_data" class="> 1_cd_remove); > 1_ name_iDE_DBG_SENSE" c> 1_ name_ia_cha*m_log_sensedriver_data" class="sref">drilass="line" name="L148"> 148 154 href="d15rn 154 173 1541href="d15rivers/ide/ide-cd.c#L14215riv>1541vice" class=cdass=info=REQ_QUIET" clacdass=infon> (& driver_data; 148 1542href="d15ivers/ide/ide-cd.c#L143"15ive>154c>driass="line" name="L148"> 148 1543href="d15) { 1_ ebug_logDE_DBG_SENSE" c> 1_ ebug_log); pan DBG_FUNC_TYPE_FS" classpan DBG_FUNC>dri,emde/ide-cd.c#"enter"134" clllass="line" name="L148"> 148 1544href="d15 15 >154 class="line" name="L85"> 85154ers/ide/ide-cef">GPCMD_READ_i 1_proc_unregisted_ namedDE_DBG_SENSE" c> 1_proc_unregisted_ named); driver_data" class="sref">dri, m_log_senseinfo=REQ_QUIET" clainfon> ; 173 1546href="d15ct ; & nfo=REQ_QUIET" clainfon> ; 173 1547href="d15ct ; >nfo=REQ_QUIET" clainfon> ; 173 1548href="d15gned long 89; & 1cd=&am_mutexDE_DBG_SENSE" c> 1cd=&am_mutex); 173 155 href="d15ivers/ide/ide-cd.c#L151"15ive>1550ode=sense" cm_log_senseput=device_START_STOP_UNIput=device); & nfo=REQ_QUIET" clainfon> ; 173 1551href="d15ref="+code=ide_debug_log15ref>155an> 1cd=&am_mutex); 173 1552href="d15 15 >155de/idlass="line" name="L142"> 142 1553href="d15ivers/ide/ide-cd.c#L154"15ive>155code=ass="line" name="L142"> 142 1554href="d15(& 1_cd_release=REQ_QUIET" cla> 1_cd_release); device_START_STOP_UNIdevice); devr_data" class="dev>drilass="line" name="L142"> 142 1555href="d15 173 1556href="d15 15 >155 (& 173 1557href="d15ivers/ide/ide-cd.c#L158"15ive>155ef="drivers/icdass=device=info=REQ_QUIET" clacdass=device=infon> (& ; 148 15i8href="d15!; 1_ name_iDE_DBG_SENSE" c> 1_ name_ia_cha*m_log_sensedriver_data" class="sref">dri"t; href="drivers/>nfo=REQ_QUIET" clainfon> ; drilass="line" name="L148"> 148 15i9href="d15 return; gendisk_START_STOP_UNIgendisk); gDE_DBG_SENSE" cg>dri"t; href="drivers/>nfo=REQ_QUIET" clainfon> ; 148 156 href="d15ivers/ide/ide-cd.c#L161"15ive>156 148 1561href="d15n class="comment">/*156an> 1_ ebug_log); pan DBG_FUNC_TYPE_FS" classpan DBG_FUNC>dri,emde/ide-cd.c#"enter"134" clllass="line" name="L148"> 148 1562href="d15"comment"> * If 15"co>156c>driass="line" name="L148"> 148 1563href="d15"comment"> * toc15"co>156code=sense" c/a>) { ; 148 1564href="d15"comment"> * con15"co>156ia_change" cl>m_log_sensedevinfo=REQ_QUIET" cla evinfoode=ver_data; drilass="line" name="L142"> 142 1565href="d15"comment"> */156ers/ide/ide-cccccccccm_log_senseunregisted_cdassr_data" class="unregisted_cdass); devinfo=REQ_QUIET" cla evinfoode=llass="line" name="L148"> 148 1566href="d15; driver_data; drilass="line" name="L148"> 148 1567href="d15 if (; driver_data" class="sref">driver_data; NULLDE_DBG_SENSE" cNULL>drillass="line" name="L148"> 148 1568href="d15 return; 1568driver_data; drilass="line" name="L148"> 148 1569href="d15ivers/ide/ide-cd.c#L170"15ive>1569drillass="line" name="L148"> 148 157 href="d15n class="comment">/* cur15n c>1570ode=sense" cm_log_sensekfreer_data" class="kfree); >nfo=REQ_QUIET" clainfon> 148 1571href="d151571vicelass="line" name="L142"> 142 1572href="d15 switch ( 148 1573href="d15 case > 1_cd=probe=REQ_QUIET" cla> 1_cd_probe); > 1_ name_iDE_DBG_SENSE" c> 1_ name_ia_cha*llass="line" name="L148"> 148 1574href="d15 case 85> 1_ namedDE_DBG_SENSE" c> 1_ named); <; href="drivers/> 1_cdass= namedDE_DBG_SENSE" c> 1_cdass= namedode="t;lass="line" name="L173"> 173 1576href="d15 if (!157 173 1577href="d15 brea15 >157ef="drivers/ide/ide-c.e(& 173 1578href="d15 if (157evice" class="sref">g.e(&"> 173 173 1579href="d15 157ailed_command" class=.e(& & 1_bue_type=REQ_QUIET" cla> 1_bue_type); <,ass="line" name="L173"> 173 158 href="d15 brea15 >1580ode=sense" cl,ass="line" name="L173"> 173 1581href="d15 (& 1_cd_probe); <,ass="line" name="L173"> 173 1582href="d15 (1582ode=sense" c.e(& 173 1583href="d15 (1583ode=sense" c.e(& & 173 1584href="d15 (158ia_change" cl.e(& 173 1585href="d15ivers/ide/ide-cd.c#L186"15ive>158ers/i#ifdef m_log_senseCONFIG_pan PROC_FSDE_DBG_SENSE" cCONFIG_pan PROC_FSclass="line" name="L85"> 85158 1_cd_proc_" iriee); <,ass="line" name="L173"> 173 1587href="d15comment"> */ 158ef="drivers/i.e(& 1_cd_proc_devseee); <,ass="line" name="L173"> 173 1588href="d15vers/ide/ide-cd.c#L89" i15ver>158evice#endifass="line" name="L142"> 142 1589href="d15comment">/* Mark that we15com>158ailed}lass="line" name="L148"> 148 159 href="d15a href="+code=cdrom_saw_15a h>159 148 1591href="d15ivers/ide/ide-cd.c#L92" 15ive>159"sref"sreic=inrom_log_sense> 1cd_open_START_STOP_UNI> 1cd_open); block_device_START_STOP_UNIblock_device); bdevr_data" class="bdev>dri, m_log_sensefm 142 1592href="d15ef="+code=drive" class="15ef=>1592ode=lass="line" name="L173"> 173 1593href="d15ef="+code=drive" class="15ef=>1593ode=sense" ccdass=info=REQ_QUIET" clacdass=infon> (& 148 1594href="d15ivers/ide/ide-cd.c#L95" 15ive>159ia_change" cl&nrom_log_senserc_START_STOP_UNIrcode="t;-m_log_senseENXIO_START_STOP_UNIENXIOn> 148 1595href="d15vers/ide/ide-cd.c#L96" i15ver>159ers/iass="line" name="L148"> 148 1596href="d15 href="+code=cdrom_log_s15 hr>159 1_cd_mutexn> 148 1597href="d15ivers/ide/ide-cd.c#L98" 15ive>1597 148 1598href="d15t >nfo=REQ_QUIET" clainfon> 148 1599href="d15oomment"> * For historic15oom>159ailed_command" class=goto; href="drivers/outr_data" class="outn> 148 16a href="d16a hrent"> * For historic16a h>160 148 16a1href="d16avers/ide/ide-cd.c#L92" 16ave>160an> cdass=open_START_STOP_UNIcdass=open); & nfo=REQ_QUIET" clainfon> ; bdevr_data" class="bdev>dri, m_log_sensemdrillass="line" name="L148"> 148 16a2href="d16af="+code=drive" class="16af=>1602ode=sense" cigt;m_log_senserc_START_STOP_UNIrcode="< 0lass="line" name="L148"> 148 16a3href="d16af="+code=drive" class="16af=>160code=sense" csreeeeee href="drivers/> 1_cd=putr_data" class="> 1_cd=put); >nfo=REQ_QUIET" clainfon> 148 16a4href="d16avers/ide/ide-cd.c#L95" 16ave>160ia_ch href="drivers/outr_data" class="outn> <:ass="line" name="L148"> 148 16a5href="d16aers/ide/ide-cd.c#L96" i16aer>160ers/ide/ide-cef">GPCMD_READ_mutex_unlock_START_STOP_UNImutex_unlock); & 1_cd_mutexDE_DBG_SENSE" c> 1_cd_mutexn> 148 16a6href="d16ahref="+code=cdrom_log_s16ahr>160 rc_START_STOP_UNIrcode=lass="line" name="L148"> 148 16a7href="d16avers/ide/ide-cd.c#L98" 16ave>160ef="dlass="line" name="L142"> 142 16a8href="d16a 89 * For historic16aom>1609n> <"sreic=inrom_log_sense> 1cd_release=REQ_QUIET" cla> 1cd_release); gendisk_START_STOP_UNIgendisk); isk_START_STOP_UNIaisk); <, m_log_sensefm 142 161 href="d16 173 1611href="d16 cdass=info=REQ_QUIET" clacdass=infon> (& 1_ nv_g); disk_START_STOP_UNIaisk); <, m_log_sensec=ass=info=REQ_QUIET" clacdass=infon> 173 1612href="d16"comment"> 16"co>16"c>driass="line" name="L148"> 148 1613href="d16"comment"> 16"co>161code=sense" c/a>) { & 1_cd_mutexDE_DBG_SENSE" c> 1_cd_mutexn> 148 1614href="d16"comment"> 16"co>161ia_change" cl/a>) { & nfo=REQ_QUIET" clainfon> ; mdrillass="line" name="L148"> 148 1615href="d16 if ( 148 1616href="d16 break; 161 148 1617href="d16 1617 1_cd_mutexn> 148 1618href="d16 break; 89 103 162 href="d16 142 1621href="d16"comment"> 16"co>162"srefass="line" name="L148"> 148 1622href="d16"comment"> 16"co>162de/id"sreic=inrom_log_sense> 1cd_set_spindown_START_STOP_UNI> 1cd_set_spindown); cdass=device=info=REQ_QUIET" clacdass=device=infon> (&dri,=unsignedclongom_log_senseargDE_DBG_SENSE" carg>drilass="line" name="L142"> 142 1623href="d16"comment"> 16"co>162code=lass="line" name="L173"> 173 1624href="d16"comment"> 162co>162ia_change" clpacket_L130an=_START_STOP_UNIpacket_L130an=); <; href="drivers/cgc_START_STOP_UNIcgcode=lass="line" name="L148"> 148 1625href="d16 break; 162ers/ide/ide-cchar=e(& 148 1626href="d16 162 148 1627href="d16 break; 148 1628href="d16 89 & (&argDE_DBG_SENSE" carg>dri, sizeof(char)llass="line" name="L148"> 148 163 href="d16"comment"> 16"co>1630iled_command" class="L103" -m_log_senseEFAULT_TYPE_FS" classEFAULT); 148 1631href="d16"comment"> 16"co>163"srefass="line" name="L148"> 148 16"2href="d16"comment"> 16"co>163de/ide-cd.c#Lm_log_sense>nit_cdass=L130an=_START_STOP_UNI>nit_cdass=L130an=); & buffedDE_DBG_SENSE" cbuffedrs/i, sizeof(m_log_sensebuffedDE_DBG_SENSE" cbuffedrs/i), m_log_senseCGC_DATA_UNKNOWN_TYPE_FS" classCGC_DATA_UNKNOWNn> 148 16"3href="d16"comment"> 16"co>163code=ass="line" name="L142"> 142 1634href="d16 ) { c=i=REQ_QUIET" clacdi>dri,=se & GPMODE_CDROM_PAGE_TYPE_FS" classGPMODE_CDROM_PAGEode=, 0llass="line" name="L148"> 148 16"5href="d16 break; 148 1636href="d16ult: "sreDE_DBG_SENSE" c"sreode=lass="line" name="L148"> 148 1637href="d16 1638" class="line" name="L158"> 158 1638href="d16 break; ; & ) { 148 16"9href="d16 href="drivers/ide/ide-c16 hr>163ailed_command"L103" m_log_sensecdass=mc=i=REQ_QUIET" clacdi>dri,=se & 148 164 href="d16rn 1640 142 1641href="d16rivers/ide/ide-cd.c#L14216riv>164"srefass="line" name="L148"> 148 1642href="d16ivers/ide/ide-cd.c#L143"16ive>164de/id"sreic=inrom_log_sense> 1cd_get_spindown_START_STOP_UNI> 1cd_get_spindown); cdass=device=info=REQ_QUIET" clacdass=device=infon> (&dri,=unsignedclongom_log_senseargDE_DBG_SENSE" carg>drilass="line" name="L142"> 142 1643href="d16 173 1644href="d16 16 >164ia_change" clpacket_L130an=_START_STOP_UNIpacket_L130an=); <; href="drivers/cgc_START_STOP_UNIcgcode=lass="line" name="L148"> 148 1645href="d16rivers/ide/ide-cd.c#L14616riv>164ers/ide/ide-cchar=e(& 148 1646href="d16ct "sreDE_DBG_SENSE" c"sreode=lass="line" name="L148"> 148 1647href="d16ct 148 1648href="d16gned long 89; nit_cdass=L130an=_START_STOP_UNI>nit_cdass=L130an=); & buffedDE_DBG_SENSE" cbuffedrs/i, sizeof(m_log_sensebuffedDE_DBG_SENSE" cbuffedrs/i), m_log_senseCGC_DATA_UNKNOWN_TYPE_FS" classCGC_DATA_UNKNOWNn> 148 165 href="d16ivers/ide/ide-cd.c#L151"16ive>165 148 1651href="d16ref="+code=ide_debug_log16ref>165an> c=i=REQ_QUIET" clacdi>dri,=se & GPMODE_CDROM_PAGE_TYPE_FS" classGPMODE_CDROM_PAGEode=, 0llass="line" name="L148"> 148 1652href="d16 16 >1652ode=sense" cigt;m_log_sense 148 1653href="d16ivers/ide/ide-cd.c#L154"16ive>165code=sense" csreeeeee"L103" m_log_sense"sreDE_DBG_SENSE" c"sreode=lass="line" name="L148"> 148 1654href="d16 85GPCMD_READ_buffedDE_DBG_SENSE" cbuffedrs/i[11] ae 148 1656href="d16 16 >165 (&argDE_DBG_SENSE" carg>dri, se & 148 1657href="d16ivers/ide/ide-cd.c#L158"16ive>165ef="drivers/ide/ide-c"L103" -m_log_senseEFAULT_TYPE_FS" classEFAULT); 148 16i8href="d16! 103 16i9href="d16 return; 142 166 href="d16ivers/ide/ide-cd.c#L161"16ive>166 148 1661href="d16n class="comment">/*166"sref"sreic=inrom_log_sense> 1cd_locked_ioctl=REQ_QUIET" cla> 1cd_locked_ioctl); block_device_START_STOP_UNIblock_device); bdevr_data" class="bdev>dri, m_log_sensefm 173 1662href="d16"comment"> * If 16"co>166de/ide-cd.c#L103" id=========unsignedcinrom_log_sensecm=_START_STOP_UNIcmd>dri,=unsignedclongom_log_senseargDE_DBG_SENSE" carg>drilass="line" name="L142"> 142 1663href="d16"comment"> * toc16"co>166code=lass="line" name="L173"> 173 1664href="d16"comment"> * con16"co>166ia_change" clcdass=info=REQ_QUIET" clacdass=infon> (& 1_ nv_g); bdevr_data" class="bdev>driver_data; <, m_log_sensec=ass=info=REQ_QUIET" clacdass=infon> 173 1665href="d16"comment"> */166ers/ide/ide-cinrom_log_senseerdDE_DBG_SENSE" cerd); 148 1666href="d16 148 1667href="d16 if (cm=_START_STOP_UNIcmd>dril lass="line" name="L173"> 173 1668href="d16 return; 1668 148 1669href="d16ivers/ide/ide-cd.c#L170"16ive>166ailed_command" class="L103" m_log_sense> 1cd_set_spindown_START_STOP_UNI> 1cd_set_spindown); & nfo=REQ_QUIET" clainfon> ; argDE_DBG_SENSE" carg>drillass="line" name="L148"> 148 167 href="d16n class="comment">/* cur16n c>1670ode=sense" ccase m_log_senseCDROMGETSPINDOWN_TYPE_FS" classCDROMGETSPINDOWN 148 1671href="d16167an> > 1cd_get_spindown_START_STOP_UNI> 1cd_get_spindown); & nfo=REQ_QUIET" clainfon> ; argDE_DBG_SENSE" carg>drillass="line" name="L148"> 148 1672href="d16 switch ( 148 1673href="d16 case 148 1674href="d16 case 142 1675href="d16 case 148 1676href="d16 if (!167 1_ioctl); >nfo=REQ_QUIET" clainfon> ; dri, m_log_sensebdevr_data" class="bdev>dri, m_log_sensecm=_START_STOP_UNIcmd>dri,=m_log_senseargDE_DBG_SENSE" carg>drillass="line" name="L148"> 148 1677href="d16 brea16 >167ef="drivers/iigt;m_log_senseerdDE_DBG_SENSE" cerd); EINVALDE_DBG_SENSE" cEINVAL>drilass="line" name="L142"> 142 1678href="d16 if (167evice" class="sref">gata; & nfo=REQ_QUIET" clainfon> ; bdevr_data" class="bdev>dri, m_log_sensemdri, m_log_sensecm=_START_STOP_UNIcmd>dri,=m_log_senseargDE_DBG_SENSE" carg>drillass="line" name="L148"> 148 1679href="d16 1679rs/iass="line" name="L148"> 148 168 href="d16 brea16 >1680ode=sense" c"L103" m_log_senseerdDE_DBG_SENSE" cerd); 148 1681href="d16 142 1682href="d16 (168c>driass="line" name="L148"> 148 1683href="d16 (168code="sreic=inrom_log_sense> 1cd_ioctl=REQ_QUIET" cla> 1cd_ioctl); block_device_START_STOP_UNIblock_device); bdevr_data" class="bdev>dri, m_log_sensefm 173 1684href="d16 (168ia_change" cllllllllllllllllllllllunsignedcinrom_log_sensecm=_START_STOP_UNIcmd>dri,=unsignedclongom_log_senseargDE_DBG_SENSE" carg>drilass="line" name="L142"> 142 1685href="d16ivers/ide/ide-cd.c#L186"16ive>168ers/ilass="line" name="L173"> 173 1686href="d16 if (t;168 148 1687href="d16comment"> */ 1688" class="line" name="L158"> 158 1688href="d16vers/ide/ide-cd.c#L89" i16ver>1688 1_cd_mutexn> 148 1689href="d16comment">/* Mark that we16com>1689 1cd_locked_ioctl=REQ_QUIET" cla> 1cd_locked_ioctl); bdevr_data" class="bdev>dri, m_log_sensemdri, m_log_sensecm=_START_STOP_UNIcmd>dri,=m_log_senseargDE_DBG_SENSE" carg>drillass="line" name="L148"> 148 169 href="d16a href="+code=cdrom_saw_16a h>1690ode=sense" cm_log_sensemutex_unlock_START_STOP_UNImutex_unlock); & 1_cd_mutexDE_DBG_SENSE" c> 1_cd_mutexn> 148 1691href="d16ivers/ide/ide-cd.c#L92" 16ive>169"srefass="line" name="L148"> 148 1692href="d16ef="+code=drive" class="16ef=>1692ode=sense" c"L103" m_log_senseretr_data" class="reeode=lass="line" name="L148"> 148 1693href="d16ef="+code=drive" class="16ef=>1693ode=lass="line" name="L142"> 142 1694href="d16ivers/ide/ide-cd.c#L95" 16ive>169 class="line" name="L85"> 85169ers/iass="line" name="L148"> 148 1696href="d16 href="+code=cdrom_log_s16 hr>169 > 1cd_check_evenee=REQ_QUIET" cla> 1cd_check_evenee); gendisk_START_STOP_UNIgendisk); isk_START_STOP_UNIaisk); <,ass="line" name="L148"> 148 1697href="d16ivers/ide/ide-cd.c#L98" 16ive>169ef="drivers/ide/ide-ccllllllllllllllllllllllunsignedcinrom_log_senseclea ing"START_STOP_UNIclea ing>drilass="line" name="L142"> 142 1698href="d16t 173 1699href="d16oomment"> * For historic16oom>1699vice" class=cdass=info=REQ_QUIET" clacdass=infon> (& 1_ nv_g); disk_START_STOP_UNIaisk); <, m_log_sensec=ass=info=REQ_QUIET" clacdass=infon> 173 17a href="d17a hrent"> * For historic17a h>1700ode=sense" c"L103" m_log_sensecdass=Lheck_evenee=REQ_QUIET" clacdass=Lheck_evenee); & nfo=REQ_QUIET" clainfon> ; clea ing"START_STOP_UNIclea ing>drilaass="line" name="L173"> 173 17a1href="d17avers/ide/ide-cd.c#L92" 17ave>1701vicelass="line" name="L142"> 142 17a2href="d17af="+code=drive" class="17af=>170c>driass="line" name="L148"> 148 17a3href="d17af="+code=drive" class="17af=>170code="sreic=inrom_log_sense> 1cd_revalidate=disk_START_STOP_UNI> 1cd_revalidate=disk); gendisk_START_STOP_UNIgendisk); isk_START_STOP_UNIaisk); 142 17a4href="d17avers/ide/ide-cd.c#L95" 17ave>170ia_chlass="line" name="L173"> 173 17a5href="d17aers/ide/ide-cd.c#L96" i17aer>170ers/ide/ide-ccdass=info=REQ_QUIET" clacdass=infon> (& 1_ nv_g); disk_START_STOP_UNIaisk); <, m_log_sensec=ass=info=REQ_QUIET" clacdass=infon> ilaass="line" name="L173"> 173 17a6href="d17ahref="+code=cdrom_log_s17ahr>170 173 17a7href="d17avers/ide/ide-cd.c#L98" 17ave>1708" class="line" name="L158"> 158 17a8href="d17a ; 1_cd_read_toc_START_STOP_UNI> 1_cd_read_toc); >nfo=REQ_QUIET" clainfon> ; dri, se & 173 17a9href="d17aomment"> * For historic17aom>1709rs/iass="line" name="L148"> 148 171 href="d17 103 1711href="d17 142 1712href="d17"comment"> 17"co>17"c>driass="line" name="L148"> 148 1713href="d17"comment"> 17"co>171code="sreic=constoblock_device=operreions_START_STOP_UNIblock_device=operreions); <; href="drivers/i 1cd_ope=REQ_QUIET" cla> 1cd_open> 173 1714href="d17"comment"> 17"co>171ia_change" cl.e(& 173 1715href="d17 if ((& 173 1716href="d17 break; 171 1cd_release); <,ass="line" name="L173"> 173 1717href="d17 171ef="drivers/i.e(&octl); 1cd_ioctl); <,ass="line" name="L173"> 173 1718href="d17 break; (& 1cd_check_evenee); <,ass="line" name="L173"> 173 1719href="d17 1cd_revalidate=disk_START_STOP_UNI> 1cd_revalidate=disk); 173 172 href="d17 103 1721href="d17"comment"> 17"co>172"srefass="line" name="L148"> 148 1722href="d17"comment"> 17"co>172de/id de/ide-cd.c#L130ene">/* module opeions */134" class="line" name="L148"> 148 1723href="d17"comment"> 17"co>172code="sreic=unsignedclongom_log_sense ebug_mask_START_STOP_UNIa bug_mask); 173 1724href="d17"comment"> 172co>172ia_ch href="drivers/module_parasr_data" class="module_paras); debug_mask_START_STOP_UNIa bug_mask); <, m_log_senseulong_START_STOP_UNIulong); <, 0644laass="line" name="L173"> 173 1725href="d17 break; 172ers/iass="line" name="L148"> 148 1726href="d17 172 MODULE_DESCRIPTION_TYPE_FS" classMODULE_DESCRIPTION); "ATAPI CD-ROM Dname="134" clllass="line" name="L148"> 148 1727href="d17 break; 158 1728href="d17 > 1_cd=probe=REQ_QUIET" cla> 1_cd_probe); > 1_ name_iDE_DBG_SENSE" c> 1_ name_ia_cha*ata; drilass="line" name="L142"> 142 1729href="d17 173 173 href="d17"comment"> 17"co>1730iled_commandcdass=info=REQ_QUIET" clacdass=infon> (& 148 1731href="d17"comment"> 17"co>1731vice" class=gendisk_START_STOP_UNIgendisk); gDE_DBG_SENSE" cg>drilass="line" name="L148"> 148 1732href="d17"comment"> 17"co>173de/ide-cd.c#Lrequest_sense=REQ_QUIET" clarequest_sense); <; href="drivers/sense=REQ_QUIET" clasense); 173 17"3href="d17"comment"> 17"co>173code=ass="line" name="L142"> 142 1734href="d17 ) { 1_ ebug_log); pan DBG_PROBE_TYPE_FS" classpan DBG_PROBE); <, mde/ide-cd.c#" name=_req: %s, media: 0x%x"134" cllass="line" name="L173"> 173 17"5href="d17 break; driver_data; namer_data" class="sref">driver_data; 173 1736href="d17ult: 148 1737href="d17 173ef="drivers/iigt;!m_log_sense"> 148; driver_data; 148 1738href="d17 break; ggoto; href="drivers/faile=_START_STOP_UNIfaile=); 173 17"9href="d17 href="drivers/ide/ide-c17 hr>1739rs/iass="line" name="L148"> 148 174 href="d17rn 1740f="drivers/iigt;m_log_sense namer_data" class="sref">driver_data; 1_cdassr_data" class="> 1_cdass); < se namer_data" class="sref">driver_data; 1_opeical=REQ_QUIET" cla> 1_opeical>drilass="line" name="L142"> 142 1741href="d17rivers/ide/ide-cd.c#L14217riv>174an> 173 1742href="d17ivers/ide/ide-cd.c#L143"17ive>174c>driass="line" name="L148"> 148 1743href="d17) { driver_data; 173 1744href="d17 17 >174ia_change" cl/a>) { driver_data; rq_handled); 173 1745href="d17rivers/ide/ide-cd.c#L14617riv>174ers/iass="line" name="L148"> 148 1746href="d17ct ; nfo=REQ_QUIET" clainfon> <), m_log_senseGFP_KERNELDE_DBG_SENSE" cGFP_KERNEL); 173 1747href="d17ct >nfo=REQ_QUIET" clainfon> dril lass="line" name="L173"> 173 1748href="d17gned long gata; KERN_ERR_START_STOP_UNIKERN_ERR); <; href="drivers/PFX_START_STOP_UNIPFX); <; de/ide-cd.c#"%s: Can't allocate a cdassL 173 1749href="d17gned long ; driver_data; 173 175 href="d17ivers/ide/ide-cd.c#L151"17ive>1750iled_command" class=goto; href="drivers/faile=_START_STOP_UNIfaile=); 173 1751href="d17ref="+code=ide_debug_log17ref>175an> 142 1752href="d17 17 >175c>driass="line" name="L148"> 148 1753href="d17ivers/ide/ide-cd.c#L154"17ive>175code=sense" c/a>) { driat; href="drivers/alloc=disk_START_STOP_UNIalloc=disk); 173 1754href="d17gDE_DBG_SENSE" cg>drilass="line" name="L142"> 142 1755href="d17 173 1756href="d17 17 >175 148 1757href="d17ivers/ide/ide-cd.c#L158"17ive>175ef="drivers/i href="drivers/> 1_>nit_disk_START_STOP_UNI> 1_>nit_disk); gDE_DBG_SENSE" cg>drilcata; drilaass="line" name="L173"> 173 1758href="d17! 89; nfo=REQ_QUIET" clainfon> ; dri.e(&driat;se & driver_data; 173 176 href="d17ivers/ide/ide-cd.c#L161"17ive>1760ode=sense" cm_log_sense>nfo=REQ_QUIET" clainfon> ; dri.e(& 1_cd_release); 173 1761href="d17n class="comment">/*176an> & nfo=REQ_QUIET" clainfon> ; drilcata; & driver_data; 173 1762href="d17"comment"> * If 17"co>176c>driass="line" name="L148"> 148 1763href="d17"comment"> * toc17"co>1763f="drivers/iigt;ata; & nfo=REQ_QUIET" clainfon> ; drillass="line" name="L148"> 148 1764href="d17"comment"> * con17"co>176ia_change" clllllllllgoto; href="drivers/out_fre1_disk_START_STOP_UNIout_fre1_disk); 173 1765href="d17"comment"> */176ers/iass="line" name="L148"> 148 1766href="d17; nfo=REQ_QUIET" clainfon> ; drilt; href="drivers/ namer_data" class="sref">driaass="line" name="L173"> 173 1767href="d17 if ( ; driat;se & 1_cdass_ namedDE_DBG_SENSE" c> 1_cdass_ named>driaass="line" name="L173"> 173 1768href="d17 return; 1768 ; drilass="line" name="L148"> 148 1769href="d17ivers/ide/ide-cd.c#L170"17ive>1769rs/iass="line" name="L148"> 148 177 href="d17n class="comment">/* cur17n c>1770ode=sense" cm_log_sensegDE_DBG_SENSE" cg>driver_data; ; drilass="line" name="L148"> 148 1771href="d17177"srefass="line" name="L148"> 148 1772href="d17 switch (driver_data; nfo=REQ_QUIET" clainfon> 148 1773href="d17 case 142 1774href="d17 case ) { driver_data; 148 1775href="d17 case GPCMD_READ_gDE_DBG_SENSE" cg>driver_data; driat;se & driver_data; 173 1776href="d17 if (!177 driver_data; 173 1777href="d17 brea17 >177ef="drivers/iigt;m_log_sense> 1_cdass_setupDE_DBG_SENSE" c> 1_cdass_setup); namer_data" class="sref">drill lass="line" name="L173"> 173 1778href="d17 if (177evice" class="sref">gata; & nfo=REQ_QUIET" clainfon> ; drilaass="line" name="L173"> 173 1779href="d17 177ailed_command" class=goto; href="drivers/faile=_START_STOP_UNIfaile=); 173 178 href="d17 brea17 >1780ode=sense" class="line" name="L142"> 142 1781href="d17 148 1782href="d17 (178de/ide-cd.c#Lm_log_sense> 1_cd_read_toc_START_STOP_UNI> 1_cd_read_toc); namer_data" class="sref">dri, se & 173 1783href="d17 (178code=sense" c/a>) { driver_data; & 1cd_ope=REQ_QUIET" cla> 1cd_open> 173 1784href="d17 (178ia_change" cl/a>) { driver_data; 173 1785href="d17ivers/ide/ide-cd.c#L186"17ive>178ers/ide/ide-cef">GPCMD_READ_add=disk_START_STOP_UNIadd=disk); gDE_DBG_SENSE" cg>drilaass="line" name="L173"> 173 1786href="d17 if (t;178 103 1787href="d17comment"> */ 1788" class="line" name="L158"> 158 1788href="d17vers/ide/ide-cd.c#L89" i17ver>1788 148 1789href="d17comment">/* Mark that we17com>1789drilaass="line" name="L173"> 173 179 href="d17a href="+code=cdrom_saw_17a h>1790ode= href="drivers/out_fre1_cd_START_STOP_UNIout_fre1_cd); <:ass="line" name="L148"> 148 1791href="d17ivers/ide/ide-cd.c#L92" 17ive>179an> 148 1792href="d17ef="+code=drive" class="17ef=>1792ode= href="drivers/faile=_START_STOP_UNIfaile=); <:ass="line" name="L148"> 148 1793href="d17ef="+code=drive" class="17ef=>1793ENODEV_START_STOP_UNIENODEVn> 173 1794href="d17ivers/ide/ide-cd.c#L95" 17ive>179 claslass="line" name="L142"> 142 1795href="d17vers/ide/ide-cd.c#L96" i17ver>179ers/iass="line" name="L148"> 148 1796href="d17 href="+code=cdrom_log_s17 hr>179 (&> 1_cdass_exie"START_STOP_UNI> 1_cdass_exie); 148 1797href="d17ivers/ide/ide-cd.c#L98" 17ive>179ef="dlass="line" name="L173"> 173 1798href="d17t ; & 1_cdass_ namedDE_DBG_SENSE" c> 1_cdass_ named>dri.e(& 148 1799href="d17oomment"> * For historic17oom>1799vicelass="line" name="L142"> 142 18a href="d18a hrent"> * For historic18a h>180 148 18a1href="d18avers/ide/ide-cd.c#L92" 18ave>180"sref"sreic=inrom_log_sense__>nit"START_STOP_UNI_=>nit> 1_cdass_>nit"START_STOP_UNI> 1_cdass_>nit); 148 18a2href="d18af="+code=drive" class="18af=>180c>drilass="line" name="L173"> 173 18a3href="d18af="+code=drive" class="18af=>180code=sense" c/a>) { KERN_INFO_START_STOP_UNIKERN_INFODRV_NAME_TYPE_FS" classDRV_NAME" name= "134" clrm_log_senseIDECD_VERSION_TYPE_FS" classIDECD_VERSION"\n"134" clllass="line" name="L148"> 148 18a4href="d18avers/ide/ide-cd.c#L95" 18ave>1804; & 1_cdass_ namedDE_DBG_SENSE" c> 1_cdass_ named>dri.e(& 148 18a5href="d18aers/ide/ide-cd.c#L96" i18aer>180ers/ilass="line" name="L142"> 142 18a6href="d18ahref="+code=cdrom_log_s18ahr>180 148 18a7href="d18avers/ide/ide-cd.c#L98" 18ave>1808" cle(&"> 1:*m48 148 18a8href="d18a "> 148<"134" clllass="line" name="L148"> 148 18a9href="d18aomment"> * For historic18aom>1809rs/iata; nit"START_STOP_UNImodule_>nit); > 1_cdass_>nit"START_STOP_UNI> 1_cdass_>nit); 148 181 href="d18 > 1_cdass_exie"START_STOP_UNI> 1_cdass_exie); 148 1811href="d18 "GPL"134" clllass="line" name="L148"> 148 1812href="d18"comment"> 18"co>18"c>dri
footedD> The original LXR software by the m_log_senhttp://sourceforge.net/projects/lxdD>LXR L130unity>dri, this experi0eneal me="ion by m_log_senmailto:lxd@ ux.no">lxd@ ux.no>dri.
subfootedD> lxd. ux.no kindly hosted by m_log_senhttp://www.redpill- pro.no">Redpill L pro AS); <, prov> 1r of L ux=consulting and operreions services since 1995.