taglinefilesource code
stuffp270drivers/cdrom/mcdx.cstruct s_drive_stuff *stuffp = mcdx_stuffp[MINOR(ip->i_rdev)];
stuffp272drivers/cdrom/mcdx.cif (!stuffp->present) return -ENXIO;
stuffp283drivers/cdrom/mcdx.cstuffp->audiostatus = CDROM_AUDIO_INVALID;
stuffp284drivers/cdrom/mcdx.cif (-1 == mcdx_stop(stuffp, 1))
stuffp297drivers/cdrom/mcdx.cif ((ti.cdti_trk0 < stuffp->di.n_first)
stuffp298drivers/cdrom/mcdx.c|| (ti.cdti_trk0 > stuffp->di.n_last)
stuffp299drivers/cdrom/mcdx.c|| (ti.cdti_trk1 < stuffp->di.n_first))
stuffp301drivers/cdrom/mcdx.cif (ti.cdti_trk1 > stuffp->di.n_last) ti.cdti_trk1 = stuffp->di.n_last;
stuffp304drivers/cdrom/mcdx.creturn mcdx_playtrk(stuffp, &ti);
stuffp313drivers/cdrom/mcdx.cif ((stuffp->audiostatus == CDROM_AUDIO_PLAY)
stuffp314drivers/cdrom/mcdx.c&& (-1 == mcdx_hold(stuffp, 1))) return -EIO;
stuffp330drivers/cdrom/mcdx.creturn mcdx_playmsf(stuffp, &msf);
stuffp335drivers/cdrom/mcdx.creturn mcdx_playtrk(stuffp, NULL);
stuffp345drivers/cdrom/mcdx.cif (-1 == mcdx_readtoc(stuffp)) return -1;
stuffp351drivers/cdrom/mcdx.ctp = &stuffp->toc[stuffp->di.n_last - stuffp->di.n_first + 1];
stuffp352drivers/cdrom/mcdx.celse if (entry.cdte_track > stuffp->di.n_last 
stuffp353drivers/cdrom/mcdx.c|| entry.cdte_track < stuffp->di.n_first) return -EINVAL;
stuffp354drivers/cdrom/mcdx.celse tp = &stuffp->toc[entry.cdte_track - stuffp->di.n_first];
stuffp387drivers/cdrom/mcdx.cif (-1 == mcdx_requestsubqcode(stuffp, &q, 2)) return -EIO;
stuffp389drivers/cdrom/mcdx.cTRACE((SUBCHNL, "audiostatus: %x\n", stuffp->audiostatus));
stuffp390drivers/cdrom/mcdx.csub.cdsc_audiostatus = stuffp->audiostatus;
stuffp436drivers/cdrom/mcdx.ctoc.cdth_trk0 = stuffp->di.n_first;
stuffp437drivers/cdrom/mcdx.ctoc.cdth_trk1 = stuffp->di.n_last;
stuffp440drivers/cdrom/mcdx.cstuffp->di.n_first, stuffp->di.n_last));
stuffp446drivers/cdrom/mcdx.cif (stuffp->audiostatus != CDROM_AUDIO_PLAY) return -EINVAL;
stuffp447drivers/cdrom/mcdx.cif (-1 == mcdx_stop(stuffp, 1)) return -EIO;
stuffp448drivers/cdrom/mcdx.cstuffp->audiostatus = CDROM_AUDIO_PAUSED;
stuffp449drivers/cdrom/mcdx.cif (-1 == mcdx_requestsubqcode(stuffp, &stuffp->start, 1))
stuffp464drivers/cdrom/mcdx.cms.addr.msf.minute = bcd2uint(stuffp->multi.msf_last.minute);
stuffp465drivers/cdrom/mcdx.cms.addr.msf.second = bcd2uint(stuffp->multi.msf_last.second);
stuffp466drivers/cdrom/mcdx.cms.addr.msf.frame = bcd2uint(stuffp->multi.msf_last.frame);
stuffp468drivers/cdrom/mcdx.cms.addr.lba = msf2log(&stuffp->multi.msf_last);
stuffp471drivers/cdrom/mcdx.cms.xa_flag = stuffp->xa;
stuffp485drivers/cdrom/mcdx.cstuffp->multi.msf_last.minute,
stuffp486drivers/cdrom/mcdx.cstuffp->multi.msf_last.second,
stuffp487drivers/cdrom/mcdx.cstuffp->multi.msf_last.frame));
stuffp494drivers/cdrom/mcdx.cstuffp->multi.msf_last.minute,
stuffp495drivers/cdrom/mcdx.cstuffp->multi.msf_last.second,
stuffp496drivers/cdrom/mcdx.cstuffp->multi.msf_last.frame));
stuffp503drivers/cdrom/mcdx.cif (stuffp->users > 1) return -EBUSY;
stuffp504drivers/cdrom/mcdx.cif (-1 == mcdx_eject(stuffp, 1)) return -EIO;
stuffp509drivers/cdrom/mcdx.cstuffp->eject_sw = arg;
stuffp525drivers/cdrom/mcdx.creturn mcdx_setattentuator(stuffp, &volctrl, 1);
stuffp537drivers/cdrom/mcdx.cstruct s_drive_stuff *stuffp;
stuffp548drivers/cdrom/mcdx.cstuffp = mcdx_stuffp[MINOR(CURRENT->rq_dev)];
stuffp549drivers/cdrom/mcdx.cTRACE((REQUEST, "do_request() stuffp = %p\n", stuffp));
stuffp554drivers/cdrom/mcdx.cif ((dev < 0) || (dev >= MCDX_NDRIVES) || (!stuffp->present)) {
stuffp561drivers/cdrom/mcdx.cif (stuffp->audio) {
stuffp574drivers/cdrom/mcdx.cstuffp->errno = 0;
stuffp579drivers/cdrom/mcdx.cstuffp,
stuffp584drivers/cdrom/mcdx.cif (stuffp->errno == MCDX_EOM) {
stuffp613drivers/cdrom/mcdx.cstruct s_drive_stuff *stuffp;
stuffp616drivers/cdrom/mcdx.cstuffp = mcdx_stuffp[MINOR(ip->i_rdev)];
stuffp617drivers/cdrom/mcdx.cif (!stuffp->present) return -ENXIO;
stuffp620drivers/cdrom/mcdx.cif (-1 == mcdx_getstatus(stuffp, 1)) return -EIO;
stuffp627drivers/cdrom/mcdx.cif (inb((unsigned int) stuffp->rreg_status) & MCDX_RBIT_DOOR) {
stuffp628drivers/cdrom/mcdx.cif (jiffies - stuffp->ejected < ACLOSE_INHIBIT) return -EIO;
stuffp629drivers/cdrom/mcdx.cif (stuffp->autoclose) mcdx_closedoor(stuffp, 1);
stuffp634drivers/cdrom/mcdx.cif (stuffp->xxx < stuffp->changed) {
stuffp642drivers/cdrom/mcdx.cstuffp->audiostatus = CDROM_AUDIO_INVALID;
stuffp649drivers/cdrom/mcdx.cans = mcdx_requestmultidiskinfo(stuffp, &stuffp->multi, 6);
stuffp651drivers/cdrom/mcdx.cstuffp->autoclose = 0;
stuffp652drivers/cdrom/mcdx.cmcdx_eject(stuffp, 1);
stuffp658drivers/cdrom/mcdx.cstuffp->autoclose = 1;
stuffp660drivers/cdrom/mcdx.cif (stuffp->multi.multi > 2)
stuffp661drivers/cdrom/mcdx.cWARN(("open() unknown multisession value (%d)\n", stuffp->multi.multi));
stuffp664drivers/cdrom/mcdx.cif (!stuffp->multi.multi)
stuffp665drivers/cdrom/mcdx.cstuffp->multi.msf_last.second = 2;
stuffp668drivers/cdrom/mcdx.cstuffp->multi.multi,
stuffp669drivers/cdrom/mcdx.cstuffp->multi.msf_last.minute,
stuffp670drivers/cdrom/mcdx.cstuffp->multi.msf_last.second,
stuffp671drivers/cdrom/mcdx.cstuffp->multi.msf_last.frame));
stuffp675drivers/cdrom/mcdx.cif (-1 == mcdx_requesttocdata(stuffp, &stuffp->di, 1)) return -EIO;
stuffp677drivers/cdrom/mcdx.cstuffp->lastsector = (CD_FRAMESIZE / 512) 
stuffp678drivers/cdrom/mcdx.c* msf2log(&stuffp->di.msf_leadout) - 1;
stuffp681drivers/cdrom/mcdx.cstuffp->di.n_first,
stuffp682drivers/cdrom/mcdx.cstuffp->di.msf_first.minute,
stuffp683drivers/cdrom/mcdx.cstuffp->di.msf_first.second,
stuffp684drivers/cdrom/mcdx.cstuffp->di.msf_first.frame,
stuffp685drivers/cdrom/mcdx.cmsf2log(&stuffp->di.msf_first)));
stuffp687drivers/cdrom/mcdx.cstuffp->di.n_last,
stuffp688drivers/cdrom/mcdx.cstuffp->di.msf_leadout.minute,
stuffp689drivers/cdrom/mcdx.cstuffp->di.msf_leadout.second,
stuffp690drivers/cdrom/mcdx.cstuffp->di.msf_leadout.frame,
stuffp691drivers/cdrom/mcdx.cmsf2log(&stuffp->di.msf_leadout)));
stuffp693drivers/cdrom/mcdx.cif (stuffp->toc) {
stuffp694drivers/cdrom/mcdx.cTRACE((MALLOC, "open() free toc @ %p\n", stuffp->toc));
stuffp695drivers/cdrom/mcdx.ckfree(stuffp->toc);
stuffp697drivers/cdrom/mcdx.cstuffp->toc = NULL;
stuffp700drivers/cdrom/mcdx.cif (-1 == mcdx_config(stuffp, 1)) return -EIO;
stuffp708drivers/cdrom/mcdx.cstuffp->xa = 0;
stuffp709drivers/cdrom/mcdx.cstuffp->audio = 0;
stuffp713drivers/cdrom/mcdx.cstuffp->xa ? "XA" : "normal"));
stuffp716drivers/cdrom/mcdx.cif (-1 == (ans = mcdx_setdatamode(stuffp, 
stuffp717drivers/cdrom/mcdx.cstuffp->xa ? MODE2 : MODE1, 1)))
stuffp720drivers/cdrom/mcdx.cif ((stuffp->audio = e_audio(ans))) break; 
stuffp722drivers/cdrom/mcdx.cwhile (0 == (ans = mcdx_transfer(stuffp, buf, 0, 1))) 
stuffp726drivers/cdrom/mcdx.cstuffp->xa = !stuffp->xa; 
stuffp732drivers/cdrom/mcdx.cif (-1 == mcdx_setdrivemode(stuffp, 
stuffp733drivers/cdrom/mcdx.cstuffp->xa ? RAW : COOKED, 1))
stuffp736drivers/cdrom/mcdx.cif (stuffp->audio) {
stuffp740drivers/cdrom/mcdx.cstuffp->xa ? "XA / " : "",
stuffp741drivers/cdrom/mcdx.cstuffp->multi.multi ? "Multi Session" : "Single Session"));
stuffp744drivers/cdrom/mcdx.cstuffp->xxx = jiffies;
stuffp748drivers/cdrom/mcdx.cif (0 == stuffp->users && (-1 == mcdx_lockdoor(stuffp, 1, 1))) 
stuffp751drivers/cdrom/mcdx.cstuffp->users++;
stuffp759drivers/cdrom/mcdx.cstruct s_drive_stuff *stuffp;
stuffp763drivers/cdrom/mcdx.cstuffp = mcdx_stuffp[MINOR(ip->i_rdev)];
stuffp765drivers/cdrom/mcdx.cif (0 == --stuffp->users) {
stuffp772drivers/cdrom/mcdx.cif (-1 == mcdx_lockdoor(stuffp, 0, 3))
stuffp777drivers/cdrom/mcdx.cif (stuffp->eject_sw) mcdx_eject(stuffp, 1);
stuffp840drivers/cdrom/mcdx.cstruct s_drive_stuff *stuffp;
stuffp843drivers/cdrom/mcdx.cstuffp = mcdx_irq_map[irq];
stuffp845drivers/cdrom/mcdx.cif (stuffp == NULL || !stuffp->busy) {
stuffp851drivers/cdrom/mcdx.cif (0 == (stuffp->introk = 
stuffp852drivers/cdrom/mcdx.c(~(x = inb((unsigned int) stuffp->rreg_status)) & MCDX_RBIT_DTEN))) 
stuffp854drivers/cdrom/mcdx.cirq, x, inb((unsigned int) stuffp->rreg_data)));
stuffp860drivers/cdrom/mcdx.cstuffp->busy = 0;
stuffp861drivers/cdrom/mcdx.cwake_up_interruptible(&stuffp->busyq);
stuffp867drivers/cdrom/mcdx.cstruct s_drive_stuff *stuffp, 
stuffp884drivers/cdrom/mcdx.cwhile (stuffp->lock)
stuffp885drivers/cdrom/mcdx.cinterruptible_sleep_on(&stuffp->lockq);
stuffp892drivers/cdrom/mcdx.cstuffp->lock = 1;
stuffp893drivers/cdrom/mcdx.cstuffp->valid = 0;  
stuffp912drivers/cdrom/mcdx.coutsb((unsigned int) stuffp->wreg_data, cmd, cmdlen);
stuffp916drivers/cdrom/mcdx.cif (-1 == mcdx_getval(stuffp, timeout, 0, bp)) {
stuffp936drivers/cdrom/mcdx.cif (stuffp->audiostatus == CDROM_AUDIO_INVALID)
stuffp937drivers/cdrom/mcdx.cstuffp->audiostatus = 
stuffp939drivers/cdrom/mcdx.celse if (stuffp->audiostatus == CDROM_AUDIO_PLAY 
stuffp941drivers/cdrom/mcdx.cstuffp->audiostatus = CDROM_AUDIO_COMPLETED;
stuffp946drivers/cdrom/mcdx.cstuffp->changed = jiffies;
stuffp951drivers/cdrom/mcdx.cif (-1 == mcdx_getval(stuffp, timeout, -1, bp)) {
stuffp963drivers/cdrom/mcdx.cstuffp->lock = 0;
stuffp964drivers/cdrom/mcdx.cwake_up_interruptible(&stuffp->lockq);
stuffp1001drivers/cdrom/mcdx.cstruct s_drive_stuff *stuffp;
stuffp1002drivers/cdrom/mcdx.cstuffp = mcdx_stuffp[i];
stuffp1003drivers/cdrom/mcdx.cif (!stuffp) continue;
stuffp1004drivers/cdrom/mcdx.crelease_region((unsigned long) stuffp->wreg_data, MCDX_IO_SIZE);
stuffp1005drivers/cdrom/mcdx.cfree_irq(stuffp->irq);
stuffp1006drivers/cdrom/mcdx.cif (stuffp->toc) {
stuffp1007drivers/cdrom/mcdx.cTRACE((MALLOC, "cleanup_module() free toc @ %p\n", stuffp->toc));
stuffp1008drivers/cdrom/mcdx.ckfree(stuffp->toc);
stuffp1010drivers/cdrom/mcdx.cTRACE((MALLOC, "cleanup_module() free stuffp @ %p\n", stuffp));
stuffp1012drivers/cdrom/mcdx.ckfree(stuffp);
stuffp1066drivers/cdrom/mcdx.cstruct s_drive_stuff* stuffp;
stuffp1069drivers/cdrom/mcdx.csize = sizeof(*stuffp);
stuffp1075drivers/cdrom/mcdx.cif (!(stuffp = kmalloc(size, GFP_KERNEL))) {
stuffp1080drivers/cdrom/mcdx.cTRACE((INIT, "init() got %d bytes for drive stuff @ %p\n", sizeof(*stuffp), stuffp));
stuffp1083drivers/cdrom/mcdx.cmemset(stuffp, 0, sizeof(*stuffp));
stuffp1084drivers/cdrom/mcdx.cstuffp->autoclose = 1;      /* close the door on open(2) */
stuffp1086drivers/cdrom/mcdx.cstuffp->present = 0;    /* this should be 0 already */
stuffp1087drivers/cdrom/mcdx.cstuffp->toc = NULL;      /* this should be NULL already */
stuffp1088drivers/cdrom/mcdx.cstuffp->changed = jiffies;
stuffp1091drivers/cdrom/mcdx.cstuffp->irq = irq(mcdx_drive_map[drive]);
stuffp1092drivers/cdrom/mcdx.cstuffp->wreg_data = stuffp->rreg_data = port(mcdx_drive_map[drive]);
stuffp1093drivers/cdrom/mcdx.cstuffp->wreg_reset = stuffp->rreg_status = stuffp->wreg_data + 1;
stuffp1094drivers/cdrom/mcdx.cstuffp->wreg_hcon = stuffp->wreg_reset + 1;
stuffp1095drivers/cdrom/mcdx.cstuffp->wreg_chn = stuffp->wreg_hcon + 1;
stuffp1098drivers/cdrom/mcdx.cif (0 != check_region((unsigned int) stuffp->wreg_data, MCDX_IO_SIZE)) {
stuffp1102drivers/cdrom/mcdx.cstuffp->wreg_data, stuffp->irq,
stuffp1103drivers/cdrom/mcdx.cstuffp->wreg_data, 
stuffp1104drivers/cdrom/mcdx.cstuffp->wreg_data + MCDX_IO_SIZE - 1));
stuffp1105drivers/cdrom/mcdx.cTRACE((MALLOC, "init() free stuffp @ %p\n", stuffp));
stuffp1106drivers/cdrom/mcdx.ckfree(stuffp);
stuffp1111drivers/cdrom/mcdx.cTRACE((INIT, "init() i/o port is available at 0x%3p\n", stuffp->wreg_data));
stuffp1114drivers/cdrom/mcdx.cmcdx_reset(stuffp, HARD, 1);
stuffp1117drivers/cdrom/mcdx.cif (-1 == mcdx_requestversion(stuffp, &version, 4)) {
stuffp1121drivers/cdrom/mcdx.cstuffp->wreg_data, stuffp->irq));
stuffp1122drivers/cdrom/mcdx.cTRACE((MALLOC, "init() free stuffp @ %p\n", stuffp));
stuffp1123drivers/cdrom/mcdx.ckfree(stuffp);
stuffp1130drivers/cdrom/mcdx.cstuffp->readcmd = READDSPEED; 
stuffp1131drivers/cdrom/mcdx.cstuffp->present = DOUBLE | DOOR | MULTI; 
stuffp1134drivers/cdrom/mcdx.cstuffp->readcmd = READSSPEED; 
stuffp1135drivers/cdrom/mcdx.cstuffp->present = SINGLE | DOOR | MULTI;
stuffp1138drivers/cdrom/mcdx.cstuffp->readcmd = READSSPEED;
stuffp1139drivers/cdrom/mcdx.cstuffp->present = SINGLE;
stuffp1142drivers/cdrom/mcdx.cstuffp->present = 0; break;
stuffp1145drivers/cdrom/mcdx.cstuffp->playcmd = READSSPEED;
stuffp1148drivers/cdrom/mcdx.cif (!stuffp->present) {
stuffp1150drivers/cdrom/mcdx.cMCDX, stuffp->wreg_data, stuffp->irq));
stuffp1151drivers/cdrom/mcdx.ckfree(stuffp);
stuffp1159drivers/cdrom/mcdx.cstuffp->wreg_data, stuffp->irq, MAJOR_NR));
stuffp1160drivers/cdrom/mcdx.ckfree(stuffp);
stuffp1172drivers/cdrom/mcdx.cmcdx_irq_map[stuffp->irq] = stuffp;
stuffp1173drivers/cdrom/mcdx.cif (request_irq(stuffp->irq, mcdx_intr, SA_INTERRUPT, DEVICE_NAME)) {
stuffp1176drivers/cdrom/mcdx.cstuffp->wreg_data, stuffp->irq, stuffp->irq));
stuffp1177drivers/cdrom/mcdx.cstuffp->irq = 0;
stuffp1178drivers/cdrom/mcdx.ckfree(stuffp);
stuffp1181drivers/cdrom/mcdx.crequest_region((unsigned int) stuffp->wreg_data, 
stuffp1188drivers/cdrom/mcdx.cmcdx_delay(stuffp, HZ/2);
stuffp1189drivers/cdrom/mcdx.cfor (i = 100; i; i--) (void) inb((unsigned int) stuffp->rreg_status);
stuffp1194drivers/cdrom/mcdx.coutb(0x50, (unsigned int) stuffp->wreg_chn);  /* irq 11 -> channel register */
stuffp1198drivers/cdrom/mcdx.cmcdx_config(stuffp, 1);
stuffp1200drivers/cdrom/mcdx.cstuffp->minor = drive;
stuffp1204drivers/cdrom/mcdx.cstuffp->wreg_data, stuffp->irq, version.code,
stuffp1206drivers/cdrom/mcdx.cmcdx_stuffp[drive] = stuffp;
stuffp1207drivers/cdrom/mcdx.cTRACE((INIT, "init() mcdx_stuffp[%d] = %p\n", drive, stuffp));
stuffp1214drivers/cdrom/mcdx.cstatic int mcdx_transfer(struct s_drive_stuff *stuffp,
stuffp1226drivers/cdrom/mcdx.cif (stuffp->audio) {
stuffp1231drivers/cdrom/mcdx.cwhile (stuffp->lock)
stuffp1232drivers/cdrom/mcdx.cinterruptible_sleep_on(&stuffp->lockq);
stuffp1237drivers/cdrom/mcdx.cif (stuffp->valid
stuffp1238drivers/cdrom/mcdx.c&& (sector >= stuffp->pending)
stuffp1239drivers/cdrom/mcdx.c&& (sector < stuffp->off_direct)) {
stuffp1242drivers/cdrom/mcdx.coff = stuffp->off_requested < (off = sector + nr_sectors)
stuffp1243drivers/cdrom/mcdx.c? stuffp->off_requested : off;
stuffp1245drivers/cdrom/mcdx.cstuffp->lock = current->pid;
stuffp1253drivers/cdrom/mcdx.cwhile (stuffp->busy) {
stuffp1254drivers/cdrom/mcdx.cinterruptible_sleep_on(&stuffp->busyq);
stuffp1260drivers/cdrom/mcdx.cif (((stuffp->busy == 0) && !stuffp->introk)
stuffp1262drivers/cdrom/mcdx.cif ((stuffp->busy == 0) && !stuffp->introk)
stuffp1266drivers/cdrom/mcdx.cstuffp->lock = 0;
stuffp1267drivers/cdrom/mcdx.cstuffp->busy = 0;
stuffp1268drivers/cdrom/mcdx.cwake_up_interruptible(&stuffp->lockq);
stuffp1269drivers/cdrom/mcdx.cwake_up_interruptible(&stuffp->busyq);
stuffp1270drivers/cdrom/mcdx.cstuffp->errno = MCDX_E;
stuffp1277drivers/cdrom/mcdx.cif (stuffp->xa && (0 == (stuffp->pending & 3))) {
stuffp1280drivers/cdrom/mcdx.cstuffp->pending, HEAD));
stuffp1281drivers/cdrom/mcdx.cinsb((unsigned int) stuffp->rreg_data, p, HEAD);
stuffp1286drivers/cdrom/mcdx.cTRACE((TRANSFER, "transfer() read sector %d\n", stuffp->pending));
stuffp1287drivers/cdrom/mcdx.cinsb((unsigned int) stuffp->rreg_data, p, 512); 
stuffp1292drivers/cdrom/mcdx.cif ((stuffp->busy = (3 == (stuffp->pending & 3))) && stuffp->xa) {
stuffp1295drivers/cdrom/mcdx.cstuffp->pending, CD_XA_TAIL));
stuffp1296drivers/cdrom/mcdx.cinsb((unsigned int) stuffp->rreg_data, &dummy[0], CD_XA_TAIL);
stuffp1299drivers/cdrom/mcdx.cif (stuffp->pending == sector) {
stuffp1305drivers/cdrom/mcdx.cwhile (++(stuffp->pending) < off);
stuffp1307drivers/cdrom/mcdx.cstuffp->lock = 0;
stuffp1308drivers/cdrom/mcdx.cwake_up_interruptible(&stuffp->lockq);
stuffp1318drivers/cdrom/mcdx.ccmd[0] = stuffp->readcmd;
stuffp1320drivers/cdrom/mcdx.cstuffp->valid = 1;
stuffp1321drivers/cdrom/mcdx.cstuffp->pending = sector & ~3;
stuffp1324drivers/cdrom/mcdx.cTRACE((TRANSFER, "transfer() request sector %d\n", stuffp->pending));
stuffp1325drivers/cdrom/mcdx.cif (stuffp->pending > stuffp->lastsector) {
stuffp1327drivers/cdrom/mcdx.cstuffp->pending));
stuffp1328drivers/cdrom/mcdx.cstuffp->errno = MCDX_EOM;
stuffp1333drivers/cdrom/mcdx.cif ((stuffp->off_direct = stuffp->pending + DIRECT_SIZE)
stuffp1334drivers/cdrom/mcdx.c> stuffp->lastsector + 1)
stuffp1335drivers/cdrom/mcdx.cstuffp->off_direct = stuffp->lastsector + 1;
stuffp1336drivers/cdrom/mcdx.cif ((stuffp->off_requested = stuffp->pending + REQUEST_SIZE)
stuffp1337drivers/cdrom/mcdx.c> stuffp->lastsector + 1)
stuffp1338drivers/cdrom/mcdx.cstuffp->off_requested = stuffp->lastsector + 1;
stuffp1340drivers/cdrom/mcdx.cTRACE((TRANSFER, "transfer() pending %d\n", stuffp->pending));
stuffp1341drivers/cdrom/mcdx.cTRACE((TRANSFER, "transfer() off_dir %d\n", stuffp->off_direct));
stuffp1342drivers/cdrom/mcdx.cTRACE((TRANSFER, "transfer() off_req %d\n", stuffp->off_requested));
stuffp1346drivers/cdrom/mcdx.clog2msf(stuffp->pending / 4, &pending);
stuffp1352drivers/cdrom/mcdx.cstuffp->busy = 1;
stuffp1353drivers/cdrom/mcdx.ccmd[6] = (unsigned char) (stuffp->off_requested - stuffp->pending) / 4;
stuffp1355drivers/cdrom/mcdx.coutsb((unsigned int) stuffp->wreg_data, cmd, sizeof cmd);
stuffp1359drivers/cdrom/mcdx.cstuffp->off_direct = (stuffp->off_direct += done) < stuffp->off_requested
stuffp1360drivers/cdrom/mcdx.c? stuffp->off_direct : stuffp->off_requested;
stuffp1396drivers/cdrom/mcdx.cint mcdx_readtoc(struct s_drive_stuff* stuffp)
stuffp1401drivers/cdrom/mcdx.cif (stuffp->toc) {
stuffp1407drivers/cdrom/mcdx.cstuffp->di.n_last - stuffp->di.n_first + 1));
stuffp1409drivers/cdrom/mcdx.cif (-1 == mcdx_hold(stuffp, 1)) return -1;
stuffp1412drivers/cdrom/mcdx.cif (-1 == mcdx_setdrivemode(stuffp, TOC, 1)) return -EIO;
stuffp1417drivers/cdrom/mcdx.csize = sizeof(struct s_subqcode) * (stuffp->di.n_last - stuffp->di.n_first + 2);
stuffp1420drivers/cdrom/mcdx.cstuffp->toc = kmalloc(size, GFP_KERNEL);
stuffp1421drivers/cdrom/mcdx.cif (!stuffp->toc) {
stuffp1423drivers/cdrom/mcdx.cmcdx_setdrivemode(stuffp, DATA, 1);
stuffp1434drivers/cdrom/mcdx.ctrk < (stuffp->di.n_last - stuffp->di.n_first + 1); 
stuffp1436drivers/cdrom/mcdx.cstuffp->toc[trk].index = 0;
stuffp1442drivers/cdrom/mcdx.cif (-1 == mcdx_requestsubqcode(stuffp, &q, 1)) {
stuffp1443drivers/cdrom/mcdx.cmcdx_setdrivemode(stuffp, DATA, 1);
stuffp1450drivers/cdrom/mcdx.c&& (idx <= stuffp->di.n_last) 
stuffp1452drivers/cdrom/mcdx.c&& (stuffp->toc[idx - stuffp->di.n_first].index == 0)) {
stuffp1453drivers/cdrom/mcdx.cstuffp->toc[idx - stuffp->di.n_first] = q;
stuffp1459drivers/cdrom/mcdx.cmemset(&stuffp->toc[stuffp->di.n_last - stuffp->di.n_first + 1], 
stuffp1460drivers/cdrom/mcdx.c0, sizeof(stuffp->toc[0]));
stuffp1461drivers/cdrom/mcdx.cstuffp->toc[stuffp->di.n_last - stuffp->di.n_first + 1].dt
stuffp1462drivers/cdrom/mcdx.c= stuffp->di.msf_leadout;
stuffp1467drivers/cdrom/mcdx.cif (-1 == mcdx_setdrivemode(stuffp, DATA, 2))
stuffp1473drivers/cdrom/mcdx.ctrk < (stuffp->di.n_last - stuffp->di.n_first + 2); 
stuffp1477drivers/cdrom/mcdx.ctrk + stuffp->di.n_first,
stuffp1478drivers/cdrom/mcdx.cstuffp->toc[trk].control, stuffp->toc[trk].tno, stuffp->toc[trk].index,
stuffp1479drivers/cdrom/mcdx.cstuffp->toc[trk].tt.minute, stuffp->toc[trk].tt.second, stuffp->toc[trk].tt.frame,
stuffp1480drivers/cdrom/mcdx.cstuffp->toc[trk].dt.minute, stuffp->toc[trk].dt.second, stuffp->toc[trk].dt.frame));
stuffp1488drivers/cdrom/mcdx.cmcdx_playmsf(struct s_drive_stuff* stuffp, const struct cdrom_msf* msf)
stuffp1494drivers/cdrom/mcdx.ccmd[0] = stuffp->playcmd;
stuffp1508drivers/cdrom/mcdx.coutsb((unsigned int) stuffp->wreg_data, cmd, sizeof cmd);
stuffp1510drivers/cdrom/mcdx.cif (-1 == mcdx_getval(stuffp, 3*HZ, 0, NULL)) {
stuffp1515drivers/cdrom/mcdx.cstuffp->audiostatus = CDROM_AUDIO_PLAY;
stuffp1520drivers/cdrom/mcdx.cmcdx_playtrk(struct s_drive_stuff* stuffp, const struct cdrom_ti* ti)
stuffp1525drivers/cdrom/mcdx.cif (-1 == mcdx_readtoc(stuffp)) return -1;
stuffp1527drivers/cdrom/mcdx.cif (ti) p = &stuffp->toc[ti->cdti_trk0 - stuffp->di.n_first];
stuffp1528drivers/cdrom/mcdx.celse p = &stuffp->start;
stuffp1535drivers/cdrom/mcdx.cp = &stuffp->toc[ti->cdti_trk1 - stuffp->di.n_first + 1];
stuffp1536drivers/cdrom/mcdx.cstuffp->stop = *p;
stuffp1537drivers/cdrom/mcdx.c} else p = &stuffp->stop;
stuffp1543drivers/cdrom/mcdx.creturn mcdx_playmsf(stuffp, &msf);
stuffp1550drivers/cdrom/mcdx.cmcdx_closedoor(struct s_drive_stuff *stuffp, int tries)
stuffp1552drivers/cdrom/mcdx.cif (stuffp->present & DOOR)
stuffp1553drivers/cdrom/mcdx.creturn mcdx_talk(stuffp, "\xf8", 1, NULL, 1, 5*HZ, tries);
stuffp1559drivers/cdrom/mcdx.cmcdx_stop(struct s_drive_stuff *stuffp, int tries)
stuffp1560drivers/cdrom/mcdx.c{ return mcdx_talk(stuffp, "\xf0", 1, NULL, 1, 2*HZ, tries); }
stuffp1563drivers/cdrom/mcdx.cmcdx_hold(struct s_drive_stuff *stuffp, int tries)
stuffp1564drivers/cdrom/mcdx.c{ return mcdx_talk(stuffp, "\x70", 1, NULL, 1, 2*HZ, tries); }
stuffp1567drivers/cdrom/mcdx.cmcdx_eject(struct s_drive_stuff *stuffp, int tries)
stuffp1569drivers/cdrom/mcdx.cif (stuffp->present & DOOR) {
stuffp1570drivers/cdrom/mcdx.cstuffp->ejected = jiffies;
stuffp1571drivers/cdrom/mcdx.creturn mcdx_talk(stuffp, "\xf6", 1, NULL, 1, 5*HZ, tries);
stuffp1576drivers/cdrom/mcdx.cmcdx_requestsubqcode(struct s_drive_stuff *stuffp, 
stuffp1584drivers/cdrom/mcdx.cstuffp, "\x20", 1, buf, sizeof(buf),
stuffp1601drivers/cdrom/mcdx.cmcdx_requestmultidiskinfo(struct s_drive_stuff *stuffp, struct s_multi *multi, int tries)
stuffp1606drivers/cdrom/mcdx.cif (stuffp->present & MULTI) {
stuffp1607drivers/cdrom/mcdx.cans = mcdx_talk(stuffp, "\x11", 1, buf, sizeof(buf), 2*HZ, tries);
stuffp1620drivers/cdrom/mcdx.cmcdx_requesttocdata(struct s_drive_stuff *stuffp, struct s_diskinfo *info, int tries)
stuffp1624drivers/cdrom/mcdx.cans = mcdx_talk(stuffp, "\x10", 1, buf, sizeof(buf), 2*HZ, tries);
stuffp1637drivers/cdrom/mcdx.cmcdx_setdrivemode(struct s_drive_stuff *stuffp, enum drivemodes mode, int tries)
stuffp1644drivers/cdrom/mcdx.cif (-1 == (ans = mcdx_talk(stuffp, "\xc2", 1, cmd, sizeof(cmd), 5*HZ, tries)))
stuffp1655drivers/cdrom/mcdx.creturn mcdx_talk(stuffp, cmd, 2, NULL, 1, 5*HZ, tries);
stuffp1660drivers/cdrom/mcdx.cmcdx_setdatamode(struct s_drive_stuff *stuffp, enum datamodes mode, int tries)
stuffp1670drivers/cdrom/mcdx.creturn mcdx_talk(stuffp, cmd, 2, NULL, 1, 5*HZ, tries);
stuffp1674drivers/cdrom/mcdx.cmcdx_config(struct s_drive_stuff *stuffp, int tries)
stuffp1685drivers/cdrom/mcdx.cif (-1 == mcdx_talk(stuffp, cmd, 3, NULL, 1, 1*HZ, tries))
stuffp1691drivers/cdrom/mcdx.creturn mcdx_talk(stuffp, cmd, 3, NULL, 1, 1*HZ, tries);
stuffp1695drivers/cdrom/mcdx.cmcdx_requestversion(struct s_drive_stuff *stuffp, struct s_version *ver, int tries)
stuffp1700drivers/cdrom/mcdx.cif (-1 == (ans = mcdx_talk(stuffp, "\xdc", 1, buf, sizeof(buf), 2*HZ, tries)))
stuffp1710drivers/cdrom/mcdx.cmcdx_reset(struct s_drive_stuff *stuffp, enum resetmodes mode, int tries)
stuffp1713drivers/cdrom/mcdx.coutb(0, (unsigned int) stuffp->wreg_chn);    /* no dma, no irq -> hardware */
stuffp1714drivers/cdrom/mcdx.coutb(0, (unsigned int) stuffp->wreg_reset);    /* hw reset */
stuffp1716drivers/cdrom/mcdx.c} else return mcdx_talk(stuffp, "\x60", 1, NULL, 1, 5*HZ, tries);
stuffp1720drivers/cdrom/mcdx.cmcdx_lockdoor(struct s_drive_stuff *stuffp, int lock, int tries)
stuffp1723drivers/cdrom/mcdx.cif (stuffp->present & DOOR) {
stuffp1725drivers/cdrom/mcdx.creturn mcdx_talk(stuffp, cmd, sizeof(cmd), NULL, 1, 5*HZ, tries);
stuffp1731drivers/cdrom/mcdx.cmcdx_getstatus(struct s_drive_stuff *stuffp, int tries)
stuffp1732drivers/cdrom/mcdx.c{ return mcdx_talk(stuffp, "\x40", 1, NULL, 1, 5*HZ, tries); }
stuffp1735drivers/cdrom/mcdx.cmcdx_getval(struct s_drive_stuff *stuffp, int to, int delay, char* buf)
stuffp1742drivers/cdrom/mcdx.cwhile (inb((unsigned int) stuffp->rreg_status) & MCDX_RBIT_STEN) {
stuffp1744drivers/cdrom/mcdx.cmcdx_delay(stuffp, delay);
stuffp1747drivers/cdrom/mcdx.c*buf = (unsigned char) inb((unsigned int) stuffp->rreg_data) & 0xff;
stuffp1754drivers/cdrom/mcdx.cstruct s_drive_stuff* stuffp, 
stuffp1765drivers/cdrom/mcdx.creturn mcdx_talk(stuffp, cmd, sizeof(cmd), NULL, 5, 200, tries);