Lines Matching defs:cgc

170   -- init_cdrom_command() for setting up a cgc command.
345 struct packet_command *cgc)
347 if (cgc->sshdr) {
348 cgc->sshdr->sense_key = 0x05;
349 cgc->sshdr->asc = 0x20;
350 cgc->sshdr->ascq = 0x00;
353 cgc->stat = -EIO;
360 struct packet_command cgc;
362 init_cdrom_command(&cgc, NULL, 0, CGC_DATA_NONE);
363 cgc.cmd[0] = GPCMD_FLUSH_CACHE;
365 cgc.timeout = 5 * 60 * HZ;
367 return cdi->ops->generic_packet(cdi, &cgc);
375 struct packet_command cgc;
379 init_cdrom_command(&cgc, di, sizeof(*di), CGC_DATA_READ);
380 cgc.cmd[0] = GPCMD_READ_DISC_INFO;
381 cgc.cmd[8] = cgc.buflen = 2;
382 cgc.quiet = 1;
384 ret = cdo->generic_packet(cdi, &cgc);
397 cgc.cmd[8] = cgc.buflen = buflen;
398 ret = cdo->generic_packet(cdi, &cgc);
423 struct packet_command cgc;
426 init_cdrom_command(&cgc, buffer, sizeof(buffer), CGC_DATA_READ);
428 cgc.timeout = HZ;
429 cgc.quiet = 1;
431 if (!cdrom_mode_sense(cdi, &cgc, MRW_MODE_PC, 0)) {
434 } else if (!cdrom_mode_sense(cdi, &cgc, MRW_MODE_PC_PRE1, 0)) {
444 struct packet_command cgc;
451 init_cdrom_command(&cgc, buffer, sizeof(buffer), CGC_DATA_READ);
453 cgc.cmd[0] = GPCMD_GET_CONFIGURATION;
454 cgc.cmd[3] = CDF_MRW;
455 cgc.cmd[8] = sizeof(buffer);
456 cgc.quiet = 1;
458 if ((ret = cdi->ops->generic_packet(cdi, &cgc)))
476 struct packet_command cgc;
485 init_cdrom_command(&cgc, buffer, sizeof(buffer), CGC_DATA_WRITE);
486 cgc.cmd[0] = GPCMD_FORMAT_UNIT;
487 cgc.cmd[1] = (1 << 4) | 1;
489 cgc.timeout = 5 * 60 * HZ;
508 ret = cdi->ops->generic_packet(cdi, &cgc);
517 struct packet_command cgc;
519 init_cdrom_command(&cgc, NULL, 0, CGC_DATA_NONE);
520 cgc.cmd[0] = GPCMD_CLOSE_TRACK;
525 cgc.cmd[1] = !!immed;
526 cgc.cmd[2] = 1 << 1;
528 cgc.timeout = 5 * 60 * HZ;
530 return cdi->ops->generic_packet(cdi, &cgc);
556 struct packet_command cgc;
561 init_cdrom_command(&cgc, buffer, sizeof(buffer), CGC_DATA_READ);
563 cgc.buffer = buffer;
564 cgc.buflen = sizeof(buffer);
566 ret = cdrom_mode_sense(cdi, &cgc, cdi->mrw_mode_page, 0);
575 cgc.buflen = size;
577 ret = cdrom_mode_select(cdi, &cgc);
664 struct packet_command cgc;
668 init_cdrom_command(&cgc, buffer, sizeof(buffer), CGC_DATA_READ);
669 cgc.cmd[0] = GPCMD_GET_EVENT_STATUS_NOTIFICATION;
670 cgc.cmd[1] = 1; /* IMMED */
671 cgc.cmd[4] = 1 << 4; /* media event */
672 cgc.cmd[8] = sizeof(buffer);
673 cgc.quiet = 1;
675 if (cdi->ops->generic_packet(cdi, &cgc))
692 struct packet_command cgc;
696 init_cdrom_command(&cgc, buffer, sizeof(buffer), CGC_DATA_READ);
698 cgc.cmd[0] = GPCMD_GET_CONFIGURATION; /* often 0x46 */
699 cgc.cmd[3] = CDF_RWRT; /* often 0x0020 */
700 cgc.cmd[8] = sizeof(buffer); /* often 0x18 */
701 cgc.quiet = 1;
703 if ((ret = cdi->ops->generic_packet(cdi, &cgc)))
712 struct packet_command cgc;
717 init_cdrom_command(&cgc, buffer, sizeof(buffer), CGC_DATA_READ);
719 cgc.cmd[0] = GPCMD_GET_CONFIGURATION;
720 cgc.cmd[3] = CDF_HWDM;
721 cgc.cmd[8] = sizeof(buffer);
722 cgc.quiet = 1;
724 if ((ret = cdi->ops->generic_packet(cdi, &cgc)))
820 struct packet_command cgc;
824 init_cdrom_command(&cgc, &buffer, 4, CGC_DATA_READ);
825 cgc.quiet = 1;
832 ret = cdrom_mode_sense(cdi, &cgc, GPMODE_ALL_PAGES, 0);
834 ret = cdrom_mode_sense(cdi, &cgc, GPMODE_VENDOR_PAGE, 0);
836 cgc.buflen = 255;
837 ret = cdrom_mode_sense(cdi, &cgc, GPMODE_ALL_PAGES, 0);
866 struct packet_command cgc;
870 init_cdrom_command(&cgc, buffer, sizeof(buffer), CGC_DATA_READ);
872 cgc.cmd[0] = GPCMD_GET_CONFIGURATION;
873 cgc.cmd[1] = 0;
874 cgc.cmd[2] = cgc.cmd[3] = 0; /* Starting Feature Number */
875 cgc.cmd[8] = sizeof(buffer); /* Allocation Length */
876 cgc.quiet = 1;
878 if (cdi->ops->generic_packet(cdi, &cgc))
947 struct packet_command cgc;
961 init_cdrom_command(&cgc, NULL, 0, CGC_DATA_NONE);
962 cgc.cmd[0] = GPCMD_FLUSH_CACHE;
963 cgc.timeout = 30*HZ;
964 cdi->ops->generic_packet(cdi, &cgc);
966 init_cdrom_command(&cgc, NULL, 0, CGC_DATA_NONE);
967 cgc.cmd[0] = GPCMD_CLOSE_TRACK;
968 cgc.timeout = 3000*HZ;
969 cgc.quiet = 1;
970 cdi->ops->generic_packet(cdi, &cgc);
972 init_cdrom_command(&cgc, NULL, 0, CGC_DATA_NONE);
973 cgc.cmd[0] = GPCMD_CLOSE_TRACK;
974 cgc.cmd[2] = 2; /* Close session */
975 cgc.quiet = 1;
976 cgc.timeout = 3000*HZ;
977 cdi->ops->generic_packet(cdi, &cgc);
1287 struct packet_command cgc;
1309 init_cdrom_command(&cgc, buf, length, CGC_DATA_READ);
1310 cgc.cmd[0] = GPCMD_MECHANISM_STATUS;
1311 cgc.cmd[8] = (length >> 8) & 0xff;
1312 cgc.cmd[9] = length & 0xff;
1313 return cdo->generic_packet(cdi, &cgc);
1370 struct packet_command cgc;
1376 init_cdrom_command(&cgc, NULL, 0, CGC_DATA_NONE);
1377 cgc.cmd[0] = GPCMD_LOAD_UNLOAD;
1378 cgc.cmd[4] = 2 + (slot >= 0);
1379 cgc.cmd[8] = slot;
1380 cgc.timeout = 60 * HZ;
1386 cgc.cmd[0] = GPCMD_TEST_UNIT_READY;
1387 cgc.cmd[7] = slot;
1388 cgc.cmd[4] = cgc.cmd[8] = 0;
1392 return cdi->ops->generic_packet(cdi, &cgc);
1553 void init_cdrom_command(struct packet_command *cgc, void *buf, int len,
1556 memset(cgc, 0, sizeof(struct packet_command));
1559 cgc->buffer = (char *) buf;
1560 cgc->buflen = len;
1561 cgc->data_direction = type;
1562 cgc->timeout = CDROM_DEF_TIMEOUT;
1571 static void setup_report_key(struct packet_command *cgc, unsigned agid, unsigned type)
1573 cgc->cmd[0] = GPCMD_REPORT_KEY;
1574 cgc->cmd[10] = type | (agid << 6);
1577 cgc->buflen = 8;
1581 cgc->buflen = 16;
1585 cgc->buflen = 12;
1589 cgc->cmd[9] = cgc->buflen;
1590 cgc->data_direction = CGC_DATA_READ;
1593 static void setup_send_key(struct packet_command *cgc, unsigned agid, unsigned type)
1595 cgc->cmd[0] = GPCMD_SEND_KEY;
1596 cgc->cmd[10] = type | (agid << 6);
1599 cgc->buflen = 16;
1603 cgc->buflen = 12;
1607 cgc->buflen = 8;
1611 cgc->cmd[9] = cgc->buflen;
1612 cgc->data_direction = CGC_DATA_WRITE;
1619 struct packet_command cgc;
1624 init_cdrom_command(&cgc, buf, 0, CGC_DATA_READ);
1630 cgc.quiet = 1;
1631 setup_report_key(&cgc, ai->lsa.agid, 0);
1633 if ((ret = cdo->generic_packet(cdi, &cgc)))
1642 setup_report_key(&cgc, ai->lsk.agid, 2);
1644 if ((ret = cdo->generic_packet(cdi, &cgc)))
1653 setup_report_key(&cgc, ai->lsc.agid, 1);
1655 if ((ret = cdo->generic_packet(cdi, &cgc)))
1665 cgc.quiet = 1;
1666 setup_report_key(&cgc, ai->lstk.agid, 4);
1667 cgc.cmd[5] = ai->lstk.lba;
1668 cgc.cmd[4] = ai->lstk.lba >> 8;
1669 cgc.cmd[3] = ai->lstk.lba >> 16;
1670 cgc.cmd[2] = ai->lstk.lba >> 24;
1672 if ((ret = cdo->generic_packet(cdi, &cgc)))
1684 setup_report_key(&cgc, ai->lsasf.agid, 5);
1686 if ((ret = cdo->generic_packet(cdi, &cgc)))
1695 setup_send_key(&cgc, ai->hsc.agid, 1);
1699 if ((ret = cdo->generic_packet(cdi, &cgc)))
1707 setup_send_key(&cgc, ai->hsk.agid, 3);
1711 if ((ret = cdo->generic_packet(cdi, &cgc))) {
1720 cgc.quiet = 1;
1722 setup_report_key(&cgc, ai->lsa.agid, 0x3f);
1723 if ((ret = cdo->generic_packet(cdi, &cgc)))
1730 setup_report_key(&cgc, 0, 8);
1732 cgc.buffer = (char *) &rpc_state;
1734 if ((ret = cdo->generic_packet(cdi, &cgc)))
1747 setup_send_key(&cgc, 0, 6);
1751 if ((ret = cdo->generic_packet(cdi, &cgc)))
1764 struct packet_command *cgc)
1774 init_cdrom_command(cgc, buf, sizeof(buf), CGC_DATA_READ);
1775 cgc->cmd[0] = GPCMD_READ_DVD_STRUCTURE;
1776 cgc->cmd[6] = layer_num;
1777 cgc->cmd[7] = s->type;
1778 cgc->cmd[9] = cgc->buflen & 0xff;
1783 cgc->quiet = 1;
1785 ret = cdo->generic_packet(cdi, cgc);
1815 struct packet_command *cgc)
1821 init_cdrom_command(cgc, buf, sizeof(buf), CGC_DATA_READ);
1822 cgc->cmd[0] = GPCMD_READ_DVD_STRUCTURE;
1823 cgc->cmd[6] = s->copyright.layer_num;
1824 cgc->cmd[7] = s->type;
1825 cgc->cmd[8] = cgc->buflen >> 8;
1826 cgc->cmd[9] = cgc->buflen & 0xff;
1828 ret = cdo->generic_packet(cdi, cgc);
1839 struct packet_command *cgc)
1851 init_cdrom_command(cgc, buf, size, CGC_DATA_READ);
1852 cgc->cmd[0] = GPCMD_READ_DVD_STRUCTURE;
1853 cgc->cmd[7] = s->type;
1854 cgc->cmd[8] = size >> 8;
1855 cgc->cmd[9] = size & 0xff;
1856 cgc->cmd[10] = s->disckey.agid << 6;
1858 ret = cdo->generic_packet(cdi, cgc);
1867 struct packet_command *cgc)
1877 init_cdrom_command(cgc, buf, size, CGC_DATA_READ);
1878 cgc->cmd[0] = GPCMD_READ_DVD_STRUCTURE;
1879 cgc->cmd[7] = s->type;
1880 cgc->cmd[9] = cgc->buflen & 0xff;
1882 ret = cdo->generic_packet(cdi, cgc);
1901 struct packet_command *cgc)
1913 init_cdrom_command(cgc, buf, size, CGC_DATA_READ);
1914 cgc->cmd[0] = GPCMD_READ_DVD_STRUCTURE;
1915 cgc->cmd[7] = s->type;
1916 cgc->cmd[8] = size >> 8;
1917 cgc->cmd[9] = size & 0xff;
1919 ret = cdo->generic_packet(cdi, cgc);
1943 struct packet_command *cgc)
1947 return dvd_read_physical(cdi, s, cgc);
1950 return dvd_read_copyright(cdi, s, cgc);
1953 return dvd_read_disckey(cdi, s, cgc);
1956 return dvd_read_bca(cdi, s, cgc);
1959 return dvd_read_manufact(cdi, s, cgc);
1969 struct packet_command *cgc,
1974 memset(cgc->cmd, 0, sizeof(cgc->cmd));
1976 cgc->cmd[0] = GPCMD_MODE_SENSE_10;
1977 cgc->cmd[2] = page_code | (page_control << 6);
1978 cgc->cmd[7] = cgc->buflen >> 8;
1979 cgc->cmd[8] = cgc->buflen & 0xff;
1980 cgc->data_direction = CGC_DATA_READ;
1981 return cdo->generic_packet(cdi, cgc);
1986 struct packet_command *cgc)
1990 memset(cgc->cmd, 0, sizeof(cgc->cmd));
1991 memset(cgc->buffer, 0, 2);
1992 cgc->cmd[0] = GPCMD_MODE_SELECT_10;
1993 cgc->cmd[1] = 0x10; /* PF */
1994 cgc->cmd[7] = cgc->buflen >> 8;
1995 cgc->cmd[8] = cgc->buflen & 0xff;
1996 cgc->data_direction = CGC_DATA_WRITE;
1997 return cdo->generic_packet(cdi, cgc);
2005 struct packet_command cgc;
2009 init_cdrom_command(&cgc, buffer, 16, CGC_DATA_READ);
2010 cgc.cmd[0] = GPCMD_READ_SUBCHANNEL;
2011 cgc.cmd[1] = subchnl->cdsc_format;/* MSF or LBA addressing */
2012 cgc.cmd[2] = 0x40; /* request subQ data */
2013 cgc.cmd[3] = mcn ? 2 : 1;
2014 cgc.cmd[8] = 16;
2016 if ((ret = cdo->generic_packet(cdi, &cgc)))
2019 subchnl->cdsc_audiostatus = cgc.buffer[1];
2020 subchnl->cdsc_ctrl = cgc.buffer[5] & 0xf;
2021 subchnl->cdsc_trk = cgc.buffer[6];
2022 subchnl->cdsc_ind = cgc.buffer[7];
2025 subchnl->cdsc_absaddr.lba = ((cgc.buffer[8] << 24) |
2026 (cgc.buffer[9] << 16) |
2027 (cgc.buffer[10] << 8) |
2028 (cgc.buffer[11]));
2029 subchnl->cdsc_reladdr.lba = ((cgc.buffer[12] << 24) |
2030 (cgc.buffer[13] << 16) |
2031 (cgc.buffer[14] << 8) |
2032 (cgc.buffer[15]));
2034 subchnl->cdsc_reladdr.msf.minute = cgc.buffer[13];
2035 subchnl->cdsc_reladdr.msf.second = cgc.buffer[14];
2036 subchnl->cdsc_reladdr.msf.frame = cgc.buffer[15];
2037 subchnl->cdsc_absaddr.msf.minute = cgc.buffer[9];
2038 subchnl->cdsc_absaddr.msf.second = cgc.buffer[10];
2039 subchnl->cdsc_absaddr.msf.frame = cgc.buffer[11];
2049 struct packet_command *cgc, int lba,
2054 memset(&cgc->cmd, 0, sizeof(cgc->cmd));
2055 cgc->cmd[0] = GPCMD_READ_10;
2056 cgc->cmd[2] = (lba >> 24) & 0xff;
2057 cgc->cmd[3] = (lba >> 16) & 0xff;
2058 cgc->cmd[4] = (lba >> 8) & 0xff;
2059 cgc->cmd[5] = lba & 0xff;
2060 cgc->cmd[6] = (nblocks >> 16) & 0xff;
2061 cgc->cmd[7] = (nblocks >> 8) & 0xff;
2062 cgc->cmd[8] = nblocks & 0xff;
2063 cgc->buflen = blocksize * nblocks;
2064 return cdo->generic_packet(cdi, cgc);
2069 struct packet_command *cgc,
2074 memset(&cgc->cmd, 0, sizeof(cgc->cmd));
2075 cgc->cmd[0] = GPCMD_READ_CD;
2077 cgc->cmd[1] = format << 2;
2079 cgc->cmd[2] = (lba >> 24) & 0xff;
2080 cgc->cmd[3] = (lba >> 16) & 0xff;
2081 cgc->cmd[4] = (lba >> 8) & 0xff;
2082 cgc->cmd[5] = lba & 0xff;
2084 cgc->cmd[6] = (nblocks >> 16) & 0xff;
2085 cgc->cmd[7] = (nblocks >> 8) & 0xff;
2086 cgc->cmd[8] = nblocks & 0xff;
2087 cgc->buflen = blksize * nblocks;
2091 case CD_FRAMESIZE_RAW0 : cgc->cmd[9] = 0x58; break;
2092 case CD_FRAMESIZE_RAW1 : cgc->cmd[9] = 0x78; break;
2093 case CD_FRAMESIZE_RAW : cgc->cmd[9] = 0xf8; break;
2094 default : cgc->cmd[9] = 0x10;
2097 return cdo->generic_packet(cdi, cgc);
2103 struct packet_command cgc;
2109 memset(&cgc, 0, sizeof(cgc));
2116 cgc.buffer = kmalloc_array(nr, CD_FRAMESIZE_RAW, GFP_KERNEL);
2117 if (cgc.buffer)
2126 cgc.data_direction = CGC_DATA_READ;
2131 ret = cdrom_read_block(cdi, &cgc, lba, nr, 1, CD_FRAMESIZE_RAW);
2134 if (copy_to_user(ubuf, cgc.buffer, CD_FRAMESIZE_RAW * nr)) {
2142 kfree(cgc.buffer);
2752 struct packet_command cgc;
2760 memset(&cgc, 0, sizeof(cgc));
2761 cgc.cmd[0] = 0x15;
2762 cgc.cmd[1] = 1 << 4;
2763 cgc.cmd[4] = 12;
2764 cgc.buflen = sizeof(mh);
2765 cgc.buffer = (char *) &mh;
2766 cgc.data_direction = CGC_DATA_WRITE;
2771 return cdo->generic_packet(cdi, &cgc);
2778 struct packet_command cgc;
2781 init_cdrom_command(&cgc, ti, 8, CGC_DATA_READ);
2782 cgc.cmd[0] = GPCMD_READ_TRACK_RZONE_INFO;
2783 cgc.cmd[1] = type & 3;
2784 cgc.cmd[4] = (track & 0xff00) >> 8;
2785 cgc.cmd[5] = track & 0xff;
2786 cgc.cmd[8] = 8;
2787 cgc.quiet = 1;
2789 ret = cdo->generic_packet(cdi, &cgc);
2799 cgc.cmd[8] = cgc.buflen = buflen;
2800 ret = cdo->generic_packet(cdi, &cgc);
2928 struct packet_command *cgc,
2955 cgc->buffer = kzalloc(blocksize, GFP_KERNEL);
2956 if (cgc->buffer == NULL)
2960 cgc->sshdr = &sshdr;
2961 cgc->data_direction = CGC_DATA_READ;
2962 ret = cdrom_read_block(cdi, cgc, lba, 1, format, blocksize);
2975 cgc->sshdr = NULL;
2976 ret = cdrom_read_cd(cdi, cgc, lba, blocksize, 1);
2980 if (!ret && copy_to_user(arg, cgc->buffer, blocksize))
2983 kfree(cgc->buffer);
3062 struct packet_command *cgc)
3069 cgc->cmd[0] = GPCMD_PLAY_AUDIO_MSF;
3070 cgc->cmd[3] = msf.cdmsf_min0;
3071 cgc->cmd[4] = msf.cdmsf_sec0;
3072 cgc->cmd[5] = msf.cdmsf_frame0;
3073 cgc->cmd[6] = msf.cdmsf_min1;
3074 cgc->cmd[7] = msf.cdmsf_sec1;
3075 cgc->cmd[8] = msf.cdmsf_frame1;
3076 cgc->data_direction = CGC_DATA_NONE;
3077 return cdo->generic_packet(cdi, cgc);
3082 struct packet_command *cgc)
3089 cgc->cmd[0] = GPCMD_PLAY_AUDIO_10;
3090 cgc->cmd[2] = (blk.from >> 24) & 0xff;
3091 cgc->cmd[3] = (blk.from >> 16) & 0xff;
3092 cgc->cmd[4] = (blk.from >> 8) & 0xff;
3093 cgc->cmd[5] = blk.from & 0xff;
3094 cgc->cmd[7] = (blk.len >> 8) & 0xff;
3095 cgc->cmd[8] = blk.len & 0xff;
3096 cgc->data_direction = CGC_DATA_NONE;
3097 return cdo->generic_packet(cdi, cgc);
3102 struct packet_command *cgc,
3117 cgc->buffer = buffer;
3118 cgc->buflen = 24;
3119 ret = cdrom_mode_sense(cdi, cgc, GPMODE_AUDIO_CTL_PAGE, 0);
3132 if (offset + 16 > cgc->buflen) {
3133 cgc->buflen = offset + 16;
3134 ret = cdrom_mode_sense(cdi, cgc,
3159 cgc->buffer = mask;
3160 ret = cdrom_mode_sense(cdi, cgc, GPMODE_AUDIO_CTL_PAGE, 1);
3170 cgc->buffer = buffer + offset - 8;
3171 memset(cgc->buffer, 0, 8);
3172 return cdrom_mode_select(cdi, cgc);
3176 struct packet_command *cgc,
3181 cgc->cmd[0] = GPCMD_START_STOP_UNIT;
3182 cgc->cmd[1] = 1;
3183 cgc->cmd[4] = (cmd == CDROMSTART) ? 1 : 0;
3184 cgc->data_direction = CGC_DATA_NONE;
3185 return cdo->generic_packet(cdi, cgc);
3189 struct packet_command *cgc,
3194 cgc->cmd[0] = GPCMD_PAUSE_RESUME;
3195 cgc->cmd[8] = (cmd == CDROMRESUME) ? 1 : 0;
3196 cgc->data_direction = CGC_DATA_NONE;
3197 return cdo->generic_packet(cdi, cgc);
3202 struct packet_command *cgc)
3217 ret = dvd_read_struct(cdi, s, cgc);
3278 struct packet_command cgc;
3281 memset(&cgc, 0, sizeof(cgc));
3289 return mmc_ioctl_cdrom_read_data(cdi, userptr, &cgc, cmd);
3295 return mmc_ioctl_cdrom_play_msf(cdi, userptr, &cgc);
3297 return mmc_ioctl_cdrom_play_blk(cdi, userptr, &cgc);
3300 return mmc_ioctl_cdrom_volume(cdi, userptr, &cgc, cmd);
3303 return mmc_ioctl_cdrom_start_stop(cdi, &cgc, cmd);
3306 return mmc_ioctl_cdrom_pause_resume(cdi, &cgc, cmd);
3308 return mmc_ioctl_dvd_read_struct(cdi, userptr, &cgc);