Lines Matching refs:ccw

51 /* The ccw bus type uses this table to find devices that it sends to
67 MODULE_DEVICE_TABLE(ccw, dasd_eckd_ids);
80 struct ccw1 ccw;
87 struct ccw1 ccw[2];
103 struct ccw1 ccw;
133 /* set ECKD specific ccw-device options */
139 "ccw-device options");
155 /* head and record addresses of count_area read in analysis ccw */
245 static int set_timestamp(struct ccw1 *ccw, struct DE_eckd_data *data,
264 if (ccw) {
265 ccw->count = sizeof(struct DE_eckd_data);
266 ccw->flags |= CCW_FLAG_SLI;
273 define_extent(struct ccw1 *ccw, struct DE_eckd_data *data, unsigned int trk,
282 if (ccw) {
283 ccw->cmd_code = DASD_ECKD_CCW_DEFINE_EXTENT;
284 ccw->flags = 0;
285 ccw->count = 16;
286 ccw->cda = virt_to_dma32(data);
318 rc = set_timestamp(ccw, data, device);
323 rc = set_timestamp(ccw, data, device);
331 rc = set_timestamp(ccw, data, device);
342 rc = set_timestamp(ccw, data, device);
380 static void locate_record_ext(struct ccw1 *ccw, struct LRE_eckd_data *data,
389 if (ccw) {
390 ccw->cmd_code = DASD_ECKD_CCW_LOCATE_RECORD_EXT;
391 ccw->flags = 0;
393 ccw->count = 22;
395 ccw->count = 20;
396 ccw->cda = virt_to_dma32(data);
522 static int prefix_LRE(struct ccw1 *ccw, struct PFX_eckd_data *pfxdata,
538 ccw->cmd_code = DASD_ECKD_CCW_PFX;
539 ccw->flags = 0;
541 ccw->count = sizeof(*pfxdata) + 2;
542 ccw->cda = virt_to_dma32(pfxdata);
545 ccw->count = sizeof(*pfxdata);
546 ccw->cda = virt_to_dma32(pfxdata);
589 static int prefix(struct ccw1 *ccw, struct PFX_eckd_data *pfxdata,
593 return prefix_LRE(ccw, pfxdata, trk, totrk, cmd, basedev, startdev,
598 locate_record(struct ccw1 *ccw, struct LO_eckd_data *data, unsigned int trk,
610 ccw->cmd_code = DASD_ECKD_CCW_LOCATE_RECORD;
611 ccw->flags = 0;
612 ccw->count = 16;
613 ccw->cda = virt_to_dma32(data);
707 * ccw->cmd_code |= 0x8;
815 struct ccw1 *ccw;
825 ccw = cqr->cpaddr;
826 ccw->cmd_code = DASD_ECKD_CCW_RCD;
827 ccw->flags = 0;
828 ccw->cda = virt_to_dma32(rcd_buffer);
829 ccw->count = DASD_ECKD_RCD_DATA_SIZE;
851 struct ccw1 *ccw;
855 ccw = cqr->cpaddr;
856 rcd_buffer = dma32_to_virt(ccw->cda);
1248 data->cqr.cpaddr = &data->ccw;
1298 data->cqr.cpaddr = &data->ccw;
1507 struct ccw1 *ccw;
1533 ccw = cqr->cpaddr;
1534 ccw->cmd_code = DASD_ECKD_CCW_PSF;
1535 ccw->count = sizeof(struct dasd_psf_prssd_data);
1536 ccw->flags |= CCW_FLAG_CC;
1537 ccw->cda = virt_to_dma32(prssdp);
1543 ccw++;
1544 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
1545 ccw->count = sizeof(struct dasd_rssd_features);
1546 ccw->cda = virt_to_dma32(features);
1570 struct ccw1 *ccw;
1590 cqr->cpaddr = &dasd_vol_info_req->ccw;
1602 ccw = cqr->cpaddr;
1603 ccw->cmd_code = DASD_ECKD_CCW_PSF;
1604 ccw->count = sizeof(*prssdp);
1605 ccw->flags |= CCW_FLAG_CC;
1606 ccw->cda = virt_to_dma32(prssdp);
1612 ccw++;
1613 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
1614 ccw->count = sizeof(*vsq);
1615 ccw->flags |= CCW_FLAG_SLI;
1616 ccw->cda = virt_to_dma32(vsq);
1765 struct ccw1 *ccw;
1787 ccw = cqr->cpaddr;
1788 ccw->cmd_code = DASD_ECKD_CCW_PSF;
1789 ccw->count = sizeof(*prssdp);
1790 ccw->flags |= CCW_FLAG_CC;
1791 ccw->cda = virt_to_dma32(prssdp);
1796 ccw++;
1797 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
1798 ccw->count = sizeof(*lcq);
1799 ccw->flags |= CCW_FLAG_SLI;
1800 ccw->cda = virt_to_dma32(lcq);
1877 struct ccw1 *ccw;
1895 ccw = cqr->cpaddr;
1896 ccw->cmd_code = DASD_ECKD_CCW_PSF;
1897 ccw->cda = virt_to_dma32(psf_ssc_data);
1898 ccw->count = 66;
2227 struct ccw1 *ccw;
2237 ccw = cqr->cpaddr;
2239 define_extent(ccw++, cqr->data, 0, 1,
2243 ccw[-1].flags |= CCW_FLAG_CC;
2244 locate_record(ccw++, LO_data++, 0, 0, 4,
2249 ccw[-1].flags |= CCW_FLAG_CC;
2250 ccw->cmd_code = DASD_ECKD_CCW_READ_COUNT;
2251 ccw->flags = 0;
2252 ccw->count = 8;
2253 ccw->cda = virt_to_dma32(count_data);
2254 ccw++;
2259 ccw[-1].flags |= CCW_FLAG_CC;
2260 locate_record(ccw++, LO_data++, 1, 0, 1,
2262 /* Read count ccw. */
2263 ccw[-1].flags |= CCW_FLAG_CC;
2264 ccw->cmd_code = DASD_ECKD_CCW_READ_COUNT;
2265 ccw->flags = 0;
2266 ccw->count = 8;
2267 ccw->cda = virt_to_dma32(count_data);
2300 * the status of the initial analysis ccw before it frees it and kicks
2580 struct ccw1 *ccw;
2616 ccw = cqr->cpaddr;
2619 prefix_LRE(ccw++, data, fdata->start_unit, fdata->stop_unit,
2623 define_extent(ccw++, data, fdata->start_unit, fdata->stop_unit,
2627 ccw[-1].flags |= CCW_FLAG_CC;
2629 locate_record(ccw++, data, fdata->start_unit, 0, count,
2634 ccw[-1].flags |= CCW_FLAG_CC;
2635 ccw->cmd_code = DASD_ECKD_CCW_READ_COUNT;
2636 ccw->flags = CCW_FLAG_SLI;
2637 ccw->count = 8;
2638 ccw->cda = virt_to_dma32(fmt_buffer);
2639 ccw++;
2665 struct ccw1 *ccw;
2759 ccw = fcp->cpaddr;
2764 prefix(ccw++, (struct PFX_eckd_data *) data,
2773 define_extent(ccw++, (struct DE_eckd_data *) data,
2782 ccw[-1].flags |= CCW_FLAG_CC;
2783 locate_record(ccw++, (struct LO_eckd_data *) data,
2791 prefix(ccw++, (struct PFX_eckd_data *) data,
2797 define_extent(ccw++, (struct DE_eckd_data *) data,
2802 ccw[-1].flags |= CCW_FLAG_CC;
2803 locate_record(ccw++, (struct LO_eckd_data *) data,
2811 prefix(ccw++, (struct PFX_eckd_data *) data,
2816 define_extent(ccw++, (struct DE_eckd_data *) data,
2821 ccw[-1].flags |= CCW_FLAG_CC;
2822 locate_record(ccw++, (struct LO_eckd_data *) data,
2844 ccw[-1].flags |= CCW_FLAG_CC;
2845 ccw->cmd_code = DASD_ECKD_CCW_WRITE_RECORD_ZERO;
2846 ccw->flags = CCW_FLAG_SLI;
2847 ccw->count = 8;
2848 ccw->cda = virt_to_dma32(ect);
2849 ccw++;
2859 ccw[-1].flags |= CCW_FLAG_CC;
2860 ccw->cmd_code = DASD_ECKD_CCW_WRITE_CKD;
2861 ccw->flags = CCW_FLAG_SLI;
2862 ccw->count = 8;
2863 ccw->cda = virt_to_dma32(ect);
2889 ccw[-1].flags |= CCW_FLAG_CC;
2891 ccw->cmd_code =
2894 ccw->cmd_code =
2896 ccw->flags = CCW_FLAG_SLI;
2897 ccw->count = 8;
2898 ccw->cda = virt_to_dma32(ect);
2899 ccw++;
3760 struct ccw1 *ccw;
3838 ccw = cqr->cpaddr;
3839 ccw->cda = virt_to_dma32(cqr->data);
3840 ccw->cmd_code = DASD_ECKD_CCW_DSO;
3841 ccw->count = size;
3967 struct ccw1 *ccw;
4026 /* Allocate the ccw request. */
4031 ccw = cqr->cpaddr;
4032 /* First ccw is define extent or prefix. */
4034 if (prefix(ccw++, cqr->data, first_trk,
4044 if (define_extent(ccw++, cqr->data, first_trk,
4059 ccw[-1].flags |= CCW_FLAG_CC;
4060 locate_record(ccw++, LO_data++, first_trk, first_offs + 1,
4088 ccw[-1].flags |= CCW_FLAG_CC;
4089 locate_record(ccw++, LO_data++,
4095 ccw[-1].flags |= CCW_FLAG_CC;
4096 locate_record(ccw++, LO_data++,
4101 /* Read/write ccw. */
4102 ccw[-1].flags |= CCW_FLAG_CC;
4103 ccw->cmd_code = rcmd;
4104 ccw->count = count;
4106 ccw->cda = virt_to_dma32(idaws);
4107 ccw->flags = CCW_FLAG_IDA;
4110 ccw->cda = virt_to_dma32(dst);
4111 ccw->flags = 0;
4113 ccw++;
4155 struct ccw1 *ccw;
4186 /* 1x prefix + one read/write ccw per track */
4191 /* Allocate the ccw request. */
4196 ccw = cqr->cpaddr;
4204 if (prefix_LRE(ccw++, cqr->data, first_trk,
4217 * The translation of request into ccw programs must meet the
4221 * - the scope of a ccw and it's idal ends with the track boundaries
4241 ccw[-1].flags |= CCW_FLAG_CC;
4242 ccw->cmd_code = cmd;
4243 ccw->count = len_to_track_end;
4244 ccw->cda = virt_to_dma32(idaws);
4245 ccw->flags = CCW_FLAG_IDA;
4246 ccw++;
4249 /* first idaw for a ccw may start anywhere */
4529 /* Allocate the ccw request. */
4742 struct ccw1 *ccw;
4803 /* Allocate the ccw request. */
4809 ccw = cqr->cpaddr;
4813 prefix_LRE(ccw++, data, first_trk, last_trk, cmd, basedev,
4816 define_extent(ccw++, data, first_trk, last_trk, cmd, basedev, 0);
4817 ccw[-1].flags |= CCW_FLAG_CC;
4820 locate_record_ext(ccw++, data, first_trk, 0,
4827 ccw[-1].flags |= CCW_FLAG_CC;
4828 ccw->cmd_code = cmd;
4830 ccw->count = 57326;
4833 ccw->cda = virt_to_dma32(idaws);
4834 ccw->flags |= CCW_FLAG_IDA;
4835 ccw->flags |= CCW_FLAG_SLI;
4836 ccw++;
4846 ccw[-1].flags |= CCW_FLAG_CC;
4847 ccw->cmd_code = cmd;
4849 ccw->count = 57326;
4852 ccw->cda = virt_to_dma32(idaws);
4853 ccw->flags |= CCW_FLAG_IDA;
4854 ccw->flags |= CCW_FLAG_SLI;
4855 ccw++;
4882 struct ccw1 *ccw;
4896 ccw = cqr->cpaddr;
4898 ccw++;
4900 ccw++;
4906 ccw++;
4908 if (ccw->flags & CCW_FLAG_IDA)
4909 cda = *((char **)dma32_to_virt(ccw->cda));
4911 cda = dma32_to_virt(ccw->cda);
4920 ccw++;
4931 * Modify ccw/tcw in cqr so it can be started on a base device.
4939 struct ccw1 *ccw;
4953 ccw = cqr->cpaddr;
4955 if (ccw->cmd_code == DASD_ECKD_CCW_PFX) {
5038 struct ccw1 *ccw;
5051 memset(&dasd_reserve_req->ccw, 0,
5052 sizeof(dasd_reserve_req->ccw));
5053 cqr->cpaddr = &dasd_reserve_req->ccw;
5057 ccw = cqr->cpaddr;
5058 ccw->cmd_code = DASD_ECKD_CCW_RELEASE;
5059 ccw->flags |= CCW_FLAG_SLI;
5060 ccw->count = 32;
5061 ccw->cda = virt_to_dma32(cqr->data);
5093 struct ccw1 *ccw;
5106 memset(&dasd_reserve_req->ccw, 0,
5107 sizeof(dasd_reserve_req->ccw));
5108 cqr->cpaddr = &dasd_reserve_req->ccw;
5112 ccw = cqr->cpaddr;
5113 ccw->cmd_code = DASD_ECKD_CCW_RESERVE;
5114 ccw->flags |= CCW_FLAG_SLI;
5115 ccw->count = 32;
5116 ccw->cda = virt_to_dma32(cqr->data);
5147 struct ccw1 *ccw;
5160 memset(&dasd_reserve_req->ccw, 0,
5161 sizeof(dasd_reserve_req->ccw));
5162 cqr->cpaddr = &dasd_reserve_req->ccw;
5166 ccw = cqr->cpaddr;
5167 ccw->cmd_code = DASD_ECKD_CCW_SLCK;
5168 ccw->flags |= CCW_FLAG_SLI;
5169 ccw->count = 32;
5170 ccw->cda = virt_to_dma32(cqr->data);
5202 struct ccw1 *ccw;
5221 memset(&dasd_reserve_req->ccw, 0,
5222 sizeof(dasd_reserve_req->ccw));
5223 cqr->cpaddr = &dasd_reserve_req->ccw;
5227 ccw = cqr->cpaddr;
5228 ccw->cmd_code = DASD_ECKD_CCW_SNID;
5229 ccw->flags |= CCW_FLAG_SLI;
5230 ccw->count = 12;
5231 ccw->cda = virt_to_dma32(cqr->data);
5269 struct ccw1 *ccw;
5294 ccw = cqr->cpaddr;
5295 ccw->cmd_code = DASD_ECKD_CCW_PSF;
5296 ccw->count = sizeof(struct dasd_psf_prssd_data);
5297 ccw->flags |= CCW_FLAG_CC;
5298 ccw->cda = virt_to_dma32(prssdp);
5304 ccw++;
5305 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
5306 ccw->count = sizeof(struct dasd_rssd_perf_stats_t);
5307 ccw->cda = virt_to_dma32(stats);
5381 struct ccw1 *ccw;
5445 ccw = cqr->cpaddr;
5447 /* PSF ccw */
5448 ccw->cmd_code = DASD_ECKD_CCW_PSF;
5449 ccw->count = usrparm.psf_data_len;
5450 ccw->flags |= CCW_FLAG_CC;
5451 ccw->cda = virt_to_dma32(psf_data);
5453 ccw++;
5455 /* RSSD ccw */
5456 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
5457 ccw->count = usrparm.rssd_result_len;
5458 ccw->flags = CCW_FLAG_SLI ;
5459 ccw->cda = virt_to_dma32(rssd_result);
5869 struct ccw1 *ccw;
5902 ccw = cqr->cpaddr;
5903 ccw->cmd_code = DASD_ECKD_CCW_PSF;
5904 ccw->count = sizeof(struct dasd_psf_prssd_data);
5905 ccw->flags |= CCW_FLAG_CC;
5906 ccw->flags |= CCW_FLAG_SLI;
5907 ccw->cda = virt_to_dma32(prssdp);
5913 ccw++;
5914 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
5915 ccw->count = sizeof(struct dasd_rssd_messages);
5916 ccw->flags |= CCW_FLAG_SLI;
5917 ccw->cda = virt_to_dma32(message_buf);
5951 struct ccw1 *ccw;
5993 ccw = cqr->cpaddr;
5994 ccw->cmd_code = DASD_ECKD_CCW_PSF;
5995 ccw->count = sizeof(struct dasd_psf_prssd_data);
5996 ccw->flags |= CCW_FLAG_CC;
5997 ccw->flags |= CCW_FLAG_SLI;
5998 ccw->cda = virt_to_dma32(prssdp);
6001 ccw++;
6002 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
6003 ccw->count = sizeof(struct dasd_psf_query_host_access);
6004 ccw->flags |= CCW_FLAG_SLI;
6005 ccw->cda = virt_to_dma32(host_access);
6210 struct ccw1 *ccw;
6235 ccw = cqr->cpaddr;
6236 ccw->cmd_code = DASD_ECKD_CCW_PSF;
6237 ccw->count = sizeof(struct dasd_psf_prssd_data);
6238 ccw->flags |= CCW_FLAG_CC;
6239 ccw->flags |= CCW_FLAG_SLI;
6240 ccw->cda = virt_to_dma32(prssdp);
6243 ccw++;
6244 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
6245 ccw->count = sizeof(*pprc_data);
6246 ccw->flags |= CCW_FLAG_SLI;
6247 ccw->cda = virt_to_dma32(pprc_data);
6272 struct ccw1 *ccw;
6287 ccw = cqr->cpaddr;
6288 ccw->cmd_code = DASD_ECKD_CCW_NOP;
6289 ccw->flags |= CCW_FLAG_SLI;
6319 struct ccw1 *ccw;
6339 ccw = cqr->cpaddr;
6340 ccw->cmd_code = DASD_ECKD_CCW_PSF;
6341 ccw->cda = virt_to_dma32(psf_cuir);
6342 ccw->flags = CCW_FLAG_SLI;
6343 ccw->count = sizeof(struct dasd_psf_cuir_response);
6833 * only need one ccw per track