Lines Matching defs:cgc

179   -- init_cdrom_command() for setting up a cgc command.
348 struct packet_command *cgc)
350 if (cgc->sshdr) {
351 cgc->sshdr->sense_key = 0x05;
352 cgc->sshdr->asc = 0x20;
353 cgc->sshdr->ascq = 0x00;
356 cgc->stat = -EIO;
363 struct packet_command cgc;
365 init_cdrom_command(&cgc, NULL, 0, CGC_DATA_NONE);
366 cgc.cmd[0] = GPCMD_FLUSH_CACHE;
368 cgc.timeout = 5 * 60 * HZ;
370 return cdi->ops->generic_packet(cdi, &cgc);
378 struct packet_command cgc;
382 init_cdrom_command(&cgc, di, sizeof(*di), CGC_DATA_READ);
383 cgc.cmd[0] = GPCMD_READ_DISC_INFO;
384 cgc.cmd[8] = cgc.buflen = 2;
385 cgc.quiet = 1;
387 ret = cdo->generic_packet(cdi, &cgc);
400 cgc.cmd[8] = cgc.buflen = buflen;
401 ret = cdo->generic_packet(cdi, &cgc);
426 struct packet_command cgc;
429 init_cdrom_command(&cgc, buffer, sizeof(buffer), CGC_DATA_READ);
431 cgc.timeout = HZ;
432 cgc.quiet = 1;
434 if (!cdrom_mode_sense(cdi, &cgc, MRW_MODE_PC, 0)) {
437 } else if (!cdrom_mode_sense(cdi, &cgc, MRW_MODE_PC_PRE1, 0)) {
447 struct packet_command cgc;
454 init_cdrom_command(&cgc, buffer, sizeof(buffer), CGC_DATA_READ);
456 cgc.cmd[0] = GPCMD_GET_CONFIGURATION;
457 cgc.cmd[3] = CDF_MRW;
458 cgc.cmd[8] = sizeof(buffer);
459 cgc.quiet = 1;
461 if ((ret = cdi->ops->generic_packet(cdi, &cgc)))
479 struct packet_command cgc;
488 init_cdrom_command(&cgc, buffer, sizeof(buffer), CGC_DATA_WRITE);
489 cgc.cmd[0] = GPCMD_FORMAT_UNIT;
490 cgc.cmd[1] = (1 << 4) | 1;
492 cgc.timeout = 5 * 60 * HZ;
511 ret = cdi->ops->generic_packet(cdi, &cgc);
520 struct packet_command cgc;
522 init_cdrom_command(&cgc, NULL, 0, CGC_DATA_NONE);
523 cgc.cmd[0] = GPCMD_CLOSE_TRACK;
528 cgc.cmd[1] = !!immed;
529 cgc.cmd[2] = 1 << 1;
531 cgc.timeout = 5 * 60 * HZ;
533 return cdi->ops->generic_packet(cdi, &cgc);
559 struct packet_command cgc;
564 init_cdrom_command(&cgc, buffer, sizeof(buffer), CGC_DATA_READ);
566 cgc.buffer = buffer;
567 cgc.buflen = sizeof(buffer);
569 ret = cdrom_mode_sense(cdi, &cgc, cdi->mrw_mode_page, 0);
578 cgc.buflen = size;
580 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))
691 struct packet_command cgc;
695 init_cdrom_command(&cgc, buffer, sizeof(buffer), CGC_DATA_READ);
697 cgc.cmd[0] = GPCMD_GET_CONFIGURATION; /* often 0x46 */
698 cgc.cmd[3] = CDF_RWRT; /* often 0x0020 */
699 cgc.cmd[8] = sizeof(buffer); /* often 0x18 */
700 cgc.quiet = 1;
702 if ((ret = cdi->ops->generic_packet(cdi, &cgc)))
711 struct packet_command cgc;
716 init_cdrom_command(&cgc, buffer, sizeof(buffer), CGC_DATA_READ);
718 cgc.cmd[0] = GPCMD_GET_CONFIGURATION;
719 cgc.cmd[3] = CDF_HWDM;
720 cgc.cmd[8] = sizeof(buffer);
721 cgc.quiet = 1;
723 if ((ret = cdi->ops->generic_packet(cdi, &cgc)))
819 struct packet_command cgc;
823 init_cdrom_command(&cgc, &buffer, 4, CGC_DATA_READ);
824 cgc.quiet = 1;
831 ret = cdrom_mode_sense(cdi, &cgc, GPMODE_ALL_PAGES, 0);
833 ret = cdrom_mode_sense(cdi, &cgc, GPMODE_VENDOR_PAGE, 0);
835 cgc.buflen = 255;
836 ret = cdrom_mode_sense(cdi, &cgc, GPMODE_ALL_PAGES, 0);
865 struct packet_command cgc;
869 init_cdrom_command(&cgc, buffer, sizeof(buffer), CGC_DATA_READ);
871 cgc.cmd[0] = GPCMD_GET_CONFIGURATION;
872 cgc.cmd[1] = 0;
873 cgc.cmd[2] = cgc.cmd[3] = 0; /* Starting Feature Number */
874 cgc.cmd[8] = sizeof(buffer); /* Allocation Length */
875 cgc.quiet = 1;
877 if ((ret = cdi->ops->generic_packet(cdi, &cgc)))
946 struct packet_command cgc;
960 init_cdrom_command(&cgc, NULL, 0, CGC_DATA_NONE);
961 cgc.cmd[0] = GPCMD_FLUSH_CACHE;
962 cgc.timeout = 30*HZ;
963 cdi->ops->generic_packet(cdi, &cgc);
965 init_cdrom_command(&cgc, NULL, 0, CGC_DATA_NONE);
966 cgc.cmd[0] = GPCMD_CLOSE_TRACK;
967 cgc.timeout = 3000*HZ;
968 cgc.quiet = 1;
969 cdi->ops->generic_packet(cdi, &cgc);
971 init_cdrom_command(&cgc, NULL, 0, CGC_DATA_NONE);
972 cgc.cmd[0] = GPCMD_CLOSE_TRACK;
973 cgc.cmd[2] = 2; /* Close session */
974 cgc.quiet = 1;
975 cgc.timeout = 3000*HZ;
976 cdi->ops->generic_packet(cdi, &cgc);
1302 struct packet_command cgc;
1324 init_cdrom_command(&cgc, buf, length, CGC_DATA_READ);
1325 cgc.cmd[0] = GPCMD_MECHANISM_STATUS;
1326 cgc.cmd[8] = (length >> 8) & 0xff;
1327 cgc.cmd[9] = length & 0xff;
1328 return cdo->generic_packet(cdi, &cgc);
1385 struct packet_command cgc;
1391 init_cdrom_command(&cgc, NULL, 0, CGC_DATA_NONE);
1392 cgc.cmd[0] = GPCMD_LOAD_UNLOAD;
1393 cgc.cmd[4] = 2 + (slot >= 0);
1394 cgc.cmd[8] = slot;
1395 cgc.timeout = 60 * HZ;
1401 cgc.cmd[0] = GPCMD_TEST_UNIT_READY;
1402 cgc.cmd[7] = slot;
1403 cgc.cmd[4] = cgc.cmd[8] = 0;
1407 return cdi->ops->generic_packet(cdi, &cgc);
1569 void init_cdrom_command(struct packet_command *cgc, void *buf, int len,
1572 memset(cgc, 0, sizeof(struct packet_command));
1575 cgc->buffer = (char *) buf;
1576 cgc->buflen = len;
1577 cgc->data_direction = type;
1578 cgc->timeout = CDROM_DEF_TIMEOUT;
1586 static void setup_report_key(struct packet_command *cgc, unsigned agid, unsigned type)
1588 cgc->cmd[0] = GPCMD_REPORT_KEY;
1589 cgc->cmd[10] = type | (agid << 6);
1592 cgc->buflen = 8;
1596 cgc->buflen = 16;
1600 cgc->buflen = 12;
1604 cgc->cmd[9] = cgc->buflen;
1605 cgc->data_direction = CGC_DATA_READ;
1608 static void setup_send_key(struct packet_command *cgc, unsigned agid, unsigned type)
1610 cgc->cmd[0] = GPCMD_SEND_KEY;
1611 cgc->cmd[10] = type | (agid << 6);
1614 cgc->buflen = 16;
1618 cgc->buflen = 12;
1622 cgc->buflen = 8;
1626 cgc->cmd[9] = cgc->buflen;
1627 cgc->data_direction = CGC_DATA_WRITE;
1634 struct packet_command cgc;
1639 init_cdrom_command(&cgc, buf, 0, CGC_DATA_READ);
1645 cgc.quiet = 1;
1646 setup_report_key(&cgc, ai->lsa.agid, 0);
1648 if ((ret = cdo->generic_packet(cdi, &cgc)))
1657 setup_report_key(&cgc, ai->lsk.agid, 2);
1659 if ((ret = cdo->generic_packet(cdi, &cgc)))
1668 setup_report_key(&cgc, ai->lsc.agid, 1);
1670 if ((ret = cdo->generic_packet(cdi, &cgc)))
1680 cgc.quiet = 1;
1681 setup_report_key(&cgc, ai->lstk.agid, 4);
1682 cgc.cmd[5] = ai->lstk.lba;
1683 cgc.cmd[4] = ai->lstk.lba >> 8;
1684 cgc.cmd[3] = ai->lstk.lba >> 16;
1685 cgc.cmd[2] = ai->lstk.lba >> 24;
1687 if ((ret = cdo->generic_packet(cdi, &cgc)))
1699 setup_report_key(&cgc, ai->lsasf.agid, 5);
1701 if ((ret = cdo->generic_packet(cdi, &cgc)))
1710 setup_send_key(&cgc, ai->hsc.agid, 1);
1714 if ((ret = cdo->generic_packet(cdi, &cgc)))
1722 setup_send_key(&cgc, ai->hsk.agid, 3);
1726 if ((ret = cdo->generic_packet(cdi, &cgc))) {
1735 cgc.quiet = 1;
1737 setup_report_key(&cgc, ai->lsa.agid, 0x3f);
1738 if ((ret = cdo->generic_packet(cdi, &cgc)))
1745 setup_report_key(&cgc, 0, 8);
1747 cgc.buffer = (char *) &rpc_state;
1749 if ((ret = cdo->generic_packet(cdi, &cgc)))
1762 setup_send_key(&cgc, 0, 6);
1766 if ((ret = cdo->generic_packet(cdi, &cgc)))
1779 struct packet_command *cgc)
1789 init_cdrom_command(cgc, buf, sizeof(buf), CGC_DATA_READ);
1790 cgc->cmd[0] = GPCMD_READ_DVD_STRUCTURE;
1791 cgc->cmd[6] = layer_num;
1792 cgc->cmd[7] = s->type;
1793 cgc->cmd[9] = cgc->buflen & 0xff;
1798 cgc->quiet = 1;
1800 ret = cdo->generic_packet(cdi, cgc);
1830 struct packet_command *cgc)
1836 init_cdrom_command(cgc, buf, sizeof(buf), CGC_DATA_READ);
1837 cgc->cmd[0] = GPCMD_READ_DVD_STRUCTURE;
1838 cgc->cmd[6] = s->copyright.layer_num;
1839 cgc->cmd[7] = s->type;
1840 cgc->cmd[8] = cgc->buflen >> 8;
1841 cgc->cmd[9] = cgc->buflen & 0xff;
1843 ret = cdo->generic_packet(cdi, cgc);
1854 struct packet_command *cgc)
1866 init_cdrom_command(cgc, buf, size, CGC_DATA_READ);
1867 cgc->cmd[0] = GPCMD_READ_DVD_STRUCTURE;
1868 cgc->cmd[7] = s->type;
1869 cgc->cmd[8] = size >> 8;
1870 cgc->cmd[9] = size & 0xff;
1871 cgc->cmd[10] = s->disckey.agid << 6;
1873 ret = cdo->generic_packet(cdi, cgc);
1882 struct packet_command *cgc)
1892 init_cdrom_command(cgc, buf, size, CGC_DATA_READ);
1893 cgc->cmd[0] = GPCMD_READ_DVD_STRUCTURE;
1894 cgc->cmd[7] = s->type;
1895 cgc->cmd[9] = cgc->buflen & 0xff;
1897 ret = cdo->generic_packet(cdi, cgc);
1916 struct packet_command *cgc)
1928 init_cdrom_command(cgc, buf, size, CGC_DATA_READ);
1929 cgc->cmd[0] = GPCMD_READ_DVD_STRUCTURE;
1930 cgc->cmd[7] = s->type;
1931 cgc->cmd[8] = size >> 8;
1932 cgc->cmd[9] = size & 0xff;
1934 ret = cdo->generic_packet(cdi, cgc);
1958 struct packet_command *cgc)
1962 return dvd_read_physical(cdi, s, cgc);
1965 return dvd_read_copyright(cdi, s, cgc);
1968 return dvd_read_disckey(cdi, s, cgc);
1971 return dvd_read_bca(cdi, s, cgc);
1974 return dvd_read_manufact(cdi, s, cgc);
1984 struct packet_command *cgc,
1989 memset(cgc->cmd, 0, sizeof(cgc->cmd));
1991 cgc->cmd[0] = GPCMD_MODE_SENSE_10;
1992 cgc->cmd[2] = page_code | (page_control << 6);
1993 cgc->cmd[7] = cgc->buflen >> 8;
1994 cgc->cmd[8] = cgc->buflen & 0xff;
1995 cgc->data_direction = CGC_DATA_READ;
1996 return cdo->generic_packet(cdi, cgc);
2000 struct packet_command *cgc)
2004 memset(cgc->cmd, 0, sizeof(cgc->cmd));
2005 memset(cgc->buffer, 0, 2);
2006 cgc->cmd[0] = GPCMD_MODE_SELECT_10;
2007 cgc->cmd[1] = 0x10; /* PF */
2008 cgc->cmd[7] = cgc->buflen >> 8;
2009 cgc->cmd[8] = cgc->buflen & 0xff;
2010 cgc->data_direction = CGC_DATA_WRITE;
2011 return cdo->generic_packet(cdi, cgc);
2018 struct packet_command cgc;
2022 init_cdrom_command(&cgc, buffer, 16, CGC_DATA_READ);
2023 cgc.cmd[0] = GPCMD_READ_SUBCHANNEL;
2024 cgc.cmd[1] = subchnl->cdsc_format;/* MSF or LBA addressing */
2025 cgc.cmd[2] = 0x40; /* request subQ data */
2026 cgc.cmd[3] = mcn ? 2 : 1;
2027 cgc.cmd[8] = 16;
2029 if ((ret = cdo->generic_packet(cdi, &cgc)))
2032 subchnl->cdsc_audiostatus = cgc.buffer[1];
2033 subchnl->cdsc_ctrl = cgc.buffer[5] & 0xf;
2034 subchnl->cdsc_trk = cgc.buffer[6];
2035 subchnl->cdsc_ind = cgc.buffer[7];
2038 subchnl->cdsc_absaddr.lba = ((cgc.buffer[8] << 24) |
2039 (cgc.buffer[9] << 16) |
2040 (cgc.buffer[10] << 8) |
2041 (cgc.buffer[11]));
2042 subchnl->cdsc_reladdr.lba = ((cgc.buffer[12] << 24) |
2043 (cgc.buffer[13] << 16) |
2044 (cgc.buffer[14] << 8) |
2045 (cgc.buffer[15]));
2047 subchnl->cdsc_reladdr.msf.minute = cgc.buffer[13];
2048 subchnl->cdsc_reladdr.msf.second = cgc.buffer[14];
2049 subchnl->cdsc_reladdr.msf.frame = cgc.buffer[15];
2050 subchnl->cdsc_absaddr.msf.minute = cgc.buffer[9];
2051 subchnl->cdsc_absaddr.msf.second = cgc.buffer[10];
2052 subchnl->cdsc_absaddr.msf.frame = cgc.buffer[11];
2062 struct packet_command *cgc, int lba,
2067 memset(&cgc->cmd, 0, sizeof(cgc->cmd));
2068 cgc->cmd[0] = GPCMD_READ_10;
2069 cgc->cmd[2] = (lba >> 24) & 0xff;
2070 cgc->cmd[3] = (lba >> 16) & 0xff;
2071 cgc->cmd[4] = (lba >> 8) & 0xff;
2072 cgc->cmd[5] = lba & 0xff;
2073 cgc->cmd[6] = (nblocks >> 16) & 0xff;
2074 cgc->cmd[7] = (nblocks >> 8) & 0xff;
2075 cgc->cmd[8] = nblocks & 0xff;
2076 cgc->buflen = blocksize * nblocks;
2077 return cdo->generic_packet(cdi, cgc);
2082 struct packet_command *cgc,
2087 memset(&cgc->cmd, 0, sizeof(cgc->cmd));
2088 cgc->cmd[0] = GPCMD_READ_CD;
2090 cgc->cmd[1] = format << 2;
2092 cgc->cmd[2] = (lba >> 24) & 0xff;
2093 cgc->cmd[3] = (lba >> 16) & 0xff;
2094 cgc->cmd[4] = (lba >> 8) & 0xff;
2095 cgc->cmd[5] = lba & 0xff;
2097 cgc->cmd[6] = (nblocks >> 16) & 0xff;
2098 cgc->cmd[7] = (nblocks >> 8) & 0xff;
2099 cgc->cmd[8] = nblocks & 0xff;
2100 cgc->buflen = blksize * nblocks;
2104 case CD_FRAMESIZE_RAW0 : cgc->cmd[9] = 0x58; break;
2105 case CD_FRAMESIZE_RAW1 : cgc->cmd[9] = 0x78; break;
2106 case CD_FRAMESIZE_RAW : cgc->cmd[9] = 0xf8; break;
2107 default : cgc->cmd[9] = 0x10;
2110 return cdo->generic_packet(cdi, cgc);
2116 struct packet_command cgc;
2122 memset(&cgc, 0, sizeof(cgc));
2129 cgc.buffer = kmalloc_array(nr, CD_FRAMESIZE_RAW, GFP_KERNEL);
2130 if (cgc.buffer)
2139 cgc.data_direction = CGC_DATA_READ;
2144 ret = cdrom_read_block(cdi, &cgc, lba, nr, 1, CD_FRAMESIZE_RAW);
2147 if (copy_to_user(ubuf, cgc.buffer, CD_FRAMESIZE_RAW * nr)) {
2155 kfree(cgc.buffer);
2782 struct packet_command cgc;
2790 memset(&cgc, 0, sizeof(cgc));
2791 cgc.cmd[0] = 0x15;
2792 cgc.cmd[1] = 1 << 4;
2793 cgc.cmd[4] = 12;
2794 cgc.buflen = sizeof(mh);
2795 cgc.buffer = (char *) &mh;
2796 cgc.data_direction = CGC_DATA_WRITE;
2801 return cdo->generic_packet(cdi, &cgc);
2808 struct packet_command cgc;
2811 init_cdrom_command(&cgc, ti, 8, CGC_DATA_READ);
2812 cgc.cmd[0] = GPCMD_READ_TRACK_RZONE_INFO;
2813 cgc.cmd[1] = type & 3;
2814 cgc.cmd[4] = (track & 0xff00) >> 8;
2815 cgc.cmd[5] = track & 0xff;
2816 cgc.cmd[8] = 8;
2817 cgc.quiet = 1;
2819 ret = cdo->generic_packet(cdi, &cgc);
2829 cgc.cmd[8] = cgc.buflen = buflen;
2830 ret = cdo->generic_packet(cdi, &cgc);
2957 struct packet_command *cgc,
2984 cgc->buffer = kzalloc(blocksize, GFP_KERNEL);
2985 if (cgc->buffer == NULL)
2989 cgc->sshdr = &sshdr;
2990 cgc->data_direction = CGC_DATA_READ;
2991 ret = cdrom_read_block(cdi, cgc, lba, 1, format, blocksize);
3003 cgc->sshdr = NULL;
3004 ret = cdrom_read_cd(cdi, cgc, lba, blocksize, 1);
3007 if (!ret && copy_to_user(arg, cgc->buffer, blocksize))
3010 kfree(cgc->buffer);
3089 struct packet_command *cgc)
3096 cgc->cmd[0] = GPCMD_PLAY_AUDIO_MSF;
3097 cgc->cmd[3] = msf.cdmsf_min0;
3098 cgc->cmd[4] = msf.cdmsf_sec0;
3099 cgc->cmd[5] = msf.cdmsf_frame0;
3100 cgc->cmd[6] = msf.cdmsf_min1;
3101 cgc->cmd[7] = msf.cdmsf_sec1;
3102 cgc->cmd[8] = msf.cdmsf_frame1;
3103 cgc->data_direction = CGC_DATA_NONE;
3104 return cdo->generic_packet(cdi, cgc);
3109 struct packet_command *cgc)
3116 cgc->cmd[0] = GPCMD_PLAY_AUDIO_10;
3117 cgc->cmd[2] = (blk.from >> 24) & 0xff;
3118 cgc->cmd[3] = (blk.from >> 16) & 0xff;
3119 cgc->cmd[4] = (blk.from >> 8) & 0xff;
3120 cgc->cmd[5] = blk.from & 0xff;
3121 cgc->cmd[7] = (blk.len >> 8) & 0xff;
3122 cgc->cmd[8] = blk.len & 0xff;
3123 cgc->data_direction = CGC_DATA_NONE;
3124 return cdo->generic_packet(cdi, cgc);
3129 struct packet_command *cgc,
3144 cgc->buffer = buffer;
3145 cgc->buflen = 24;
3146 ret = cdrom_mode_sense(cdi, cgc, GPMODE_AUDIO_CTL_PAGE, 0);
3159 if (offset + 16 > cgc->buflen) {
3160 cgc->buflen = offset + 16;
3161 ret = cdrom_mode_sense(cdi, cgc,
3186 cgc->buffer = mask;
3187 ret = cdrom_mode_sense(cdi, cgc, GPMODE_AUDIO_CTL_PAGE, 1);
3197 cgc->buffer = buffer + offset - 8;
3198 memset(cgc->buffer, 0, 8);
3199 return cdrom_mode_select(cdi, cgc);
3203 struct packet_command *cgc,
3208 cgc->cmd[0] = GPCMD_START_STOP_UNIT;
3209 cgc->cmd[1] = 1;
3210 cgc->cmd[4] = (cmd == CDROMSTART) ? 1 : 0;
3211 cgc->data_direction = CGC_DATA_NONE;
3212 return cdo->generic_packet(cdi, cgc);
3216 struct packet_command *cgc,
3221 cgc->cmd[0] = GPCMD_PAUSE_RESUME;
3222 cgc->cmd[8] = (cmd == CDROMRESUME) ? 1 : 0;
3223 cgc->data_direction = CGC_DATA_NONE;
3224 return cdo->generic_packet(cdi, cgc);
3229 struct packet_command *cgc)
3244 ret = dvd_read_struct(cdi, s, cgc);
3305 struct packet_command cgc;
3308 memset(&cgc, 0, sizeof(cgc));
3316 return mmc_ioctl_cdrom_read_data(cdi, userptr, &cgc, cmd);
3322 return mmc_ioctl_cdrom_play_msf(cdi, userptr, &cgc);
3324 return mmc_ioctl_cdrom_play_blk(cdi, userptr, &cgc);
3327 return mmc_ioctl_cdrom_volume(cdi, userptr, &cgc, cmd);
3330 return mmc_ioctl_cdrom_start_stop(cdi, &cgc, cmd);
3333 return mmc_ioctl_cdrom_pause_resume(cdi, &cgc, cmd);
3335 return mmc_ioctl_dvd_read_struct(cdi, userptr, &cgc);