/Linux-v4.19/drivers/s390/virtio/ |
D | virtio_ccw.c | 293 struct ccw1 *ccw, __u32 intparm) in ccw_io_helper() argument 301 ret = ccw_device_start(vcdev->cdev, ccw, intparm, 0, 0); in ccw_io_helper() 315 struct ccw1 *ccw) in virtio_ccw_drop_indicator() argument 330 ccw->cmd_code = CCW_CMD_SET_IND_ADAPTER; in virtio_ccw_drop_indicator() 331 ccw->count = sizeof(*thinint_area); in virtio_ccw_drop_indicator() 332 ccw->cda = (__u32)(unsigned long) thinint_area; in virtio_ccw_drop_indicator() 340 ccw->cmd_code = CCW_CMD_SET_IND; in virtio_ccw_drop_indicator() 341 ccw->count = sizeof(&vcdev->indicators); in virtio_ccw_drop_indicator() 342 ccw->cda = (__u32)(unsigned long) indicatorp; in virtio_ccw_drop_indicator() 346 ccw->flags = 0; in virtio_ccw_drop_indicator() [all …]
|
/Linux-v4.19/drivers/s390/char/ |
D | tape.h | 307 tape_ccw_cc(struct ccw1 *ccw, __u8 cmd_code, __u16 memsize, void *cda) in tape_ccw_cc() argument 309 ccw->cmd_code = cmd_code; in tape_ccw_cc() 310 ccw->flags = CCW_FLAG_CC; in tape_ccw_cc() 311 ccw->count = memsize; in tape_ccw_cc() 312 ccw->cda = (__u32)(addr_t) cda; in tape_ccw_cc() 313 return ccw + 1; in tape_ccw_cc() 317 tape_ccw_end(struct ccw1 *ccw, __u8 cmd_code, __u16 memsize, void *cda) in tape_ccw_end() argument 319 ccw->cmd_code = cmd_code; in tape_ccw_end() 320 ccw->flags = 0; in tape_ccw_end() 321 ccw->count = memsize; in tape_ccw_end() [all …]
|
D | tape_std.c | 270 struct ccw1 *ccw; in tape_std_mtfsf() local 277 ccw = tape_ccw_cc(request->cpaddr, MODE_SET_DB, 1, in tape_std_mtfsf() 279 ccw = tape_ccw_repeat(ccw, FORSPACEFILE, mt_count); in tape_std_mtfsf() 280 ccw = tape_ccw_end(ccw, NOP, 0, NULL); in tape_std_mtfsf() 294 struct ccw1 *ccw; in tape_std_mtfsr() local 302 ccw = tape_ccw_cc(request->cpaddr, MODE_SET_DB, 1, in tape_std_mtfsr() 304 ccw = tape_ccw_repeat(ccw, FORSPACEBLOCK, mt_count); in tape_std_mtfsr() 305 ccw = tape_ccw_end(ccw, NOP, 0, NULL); in tape_std_mtfsr() 326 struct ccw1 *ccw; in tape_std_mtbsr() local 334 ccw = tape_ccw_cc(request->cpaddr, MODE_SET_DB, 1, in tape_std_mtbsr() [all …]
|
D | raw3270.c | 160 rq->ccw.cda = __pa(rq->buffer); in raw3270_request_alloc() 161 rq->ccw.flags = CCW_FLAG_SLI; in raw3270_request_alloc() 183 rq->ccw.cmd_code = 0; in raw3270_request_reset() 184 rq->ccw.count = 0; in raw3270_request_reset() 185 rq->ccw.cda = __pa(rq->buffer); in raw3270_request_reset() 186 rq->ccw.flags = CCW_FLAG_SLI; in raw3270_request_reset() 197 rq->ccw.cmd_code = cmd; in raw3270_request_set_cmd() 206 if (size + rq->ccw.count > rq->size) in raw3270_request_add_data() 208 memcpy(rq->buffer + rq->ccw.count, data, size); in raw3270_request_add_data() 209 rq->ccw.count += size; in raw3270_request_add_data() [all …]
|
D | con3215.c | 146 struct ccw1 *ccw; in raw3215_mk_read_req() local 158 ccw = req->ccws; in raw3215_mk_read_req() 159 ccw->cmd_code = 0x0A; /* read inquiry */ in raw3215_mk_read_req() 160 ccw->flags = 0x20; /* ignore incorrect length */ in raw3215_mk_read_req() 161 ccw->count = 160; in raw3215_mk_read_req() 162 ccw->cda = (__u32) __pa(raw->inbuf); in raw3215_mk_read_req() 174 struct ccw1 *ccw; in raw3215_mk_write_req() local 191 ccw = req->ccws; in raw3215_mk_write_req() 217 if (ccw > req->ccws) in raw3215_mk_write_req() 218 ccw[-1].flags |= 0x40; /* use command chaining */ in raw3215_mk_write_req() [all …]
|
/Linux-v4.19/drivers/s390/block/ |
D | dasd_fba.c | 54 MODULE_DEVICE_TABLE(ccw, dasd_fba_ids); 88 define_extent(struct ccw1 * ccw, struct DE_fba_data *data, int rw, in define_extent() argument 91 ccw->cmd_code = DASD_FBA_CCW_DEFINE_EXTENT; in define_extent() 92 ccw->flags = 0; in define_extent() 93 ccw->count = 16; in define_extent() 94 ccw->cda = (__u32) __pa(data); in define_extent() 108 locate_record(struct ccw1 * ccw, struct LO_fba_data *data, int rw, in locate_record() argument 111 ccw->cmd_code = DASD_FBA_CCW_LOCATE; in locate_record() 112 ccw->flags = 0; in locate_record() 113 ccw->count = 8; in locate_record() [all …]
|
D | dasd_eckd.c | 88 MODULE_DEVICE_TABLE(ccw, dasd_eckd_ids); 101 struct ccw1 ccw; member 111 struct ccw1 ccw; member 217 static int set_timestamp(struct ccw1 *ccw, struct DE_eckd_data *data, in set_timestamp() argument 236 if (ccw) { in set_timestamp() 237 ccw->count = sizeof(struct DE_eckd_data); in set_timestamp() 238 ccw->flags |= CCW_FLAG_SLI; in set_timestamp() 245 define_extent(struct ccw1 *ccw, struct DE_eckd_data *data, unsigned int trk, in define_extent() argument 254 if (ccw) { in define_extent() 255 ccw->cmd_code = DASD_ECKD_CCW_DEFINE_EXTENT; in define_extent() [all …]
|
D | dasd_3990_erp.c | 201 struct ccw1 *ccw; in dasd_3990_erp_DCTL() local 219 ccw = dctl_cqr->cpaddr; in dasd_3990_erp_DCTL() 220 memset(ccw, 0, sizeof(struct ccw1)); in dasd_3990_erp_DCTL() 221 ccw->cmd_code = CCW_CMD_DCTL; in dasd_3990_erp_DCTL() 222 ccw->count = 4; in dasd_3990_erp_DCTL() 223 ccw->cda = (__u32)(addr_t) DCTL_data; in dasd_3990_erp_DCTL() 1613 struct ccw1 *ccw, *oldccw; in dasd_3990_erp_action_1B_32() local 1707 ccw = erp->cpaddr; in dasd_3990_erp_action_1B_32() 1708 memset(ccw, 0, sizeof(struct ccw1)); in dasd_3990_erp_action_1B_32() 1709 ccw->cmd_code = DASD_ECKD_CCW_DEFINE_EXTENT; in dasd_3990_erp_action_1B_32() [all …]
|
D | dasd_alias.c | 406 struct ccw1 *ccw; in read_unit_address_configuration() local 428 ccw = cqr->cpaddr; in read_unit_address_configuration() 429 ccw->cmd_code = DASD_ECKD_CCW_PSF; in read_unit_address_configuration() 430 ccw->count = sizeof(struct dasd_psf_prssd_data); in read_unit_address_configuration() 431 ccw->flags |= CCW_FLAG_CC; in read_unit_address_configuration() 432 ccw->cda = (__u32)(addr_t) prssdp; in read_unit_address_configuration() 437 ccw++; in read_unit_address_configuration() 438 ccw->cmd_code = DASD_ECKD_CCW_RSSD; in read_unit_address_configuration() 439 ccw->count = sizeof(*(lcu->uac)); in read_unit_address_configuration() 440 ccw->cda = (__u32)(addr_t) lcu->uac; in read_unit_address_configuration() [all …]
|
D | dasd_eer.c | 460 struct ccw1 *ccw; in dasd_eer_enable() local 489 ccw = cqr->cpaddr; in dasd_eer_enable() 490 ccw->cmd_code = DASD_ECKD_CCW_SNSS; in dasd_eer_enable() 491 ccw->count = SNSS_DATA_SIZE; in dasd_eer_enable() 492 ccw->flags = 0; in dasd_eer_enable() 493 ccw->cda = (__u32)(addr_t) cqr->data; in dasd_eer_enable()
|
/Linux-v4.19/drivers/dma/ |
D | mxs-dma.c | 113 struct mxs_dma_ccw *ccw; member 419 mxs_chan->ccw = dma_zalloc_coherent(mxs_dma->dma_device.dev, in mxs_dma_alloc_chan_resources() 422 if (!mxs_chan->ccw) { in mxs_dma_alloc_chan_resources() 450 mxs_chan->ccw, mxs_chan->ccw_phys); in mxs_dma_alloc_chan_resources() 465 mxs_chan->ccw, mxs_chan->ccw_phys); in mxs_dma_free_chan_resources() 499 struct mxs_dma_ccw *ccw; in mxs_dma_prep_slave_sg() local 525 ccw = &mxs_chan->ccw[idx - 1]; in mxs_dma_prep_slave_sg() 526 ccw->next = mxs_chan->ccw_phys + sizeof(*ccw) * idx; in mxs_dma_prep_slave_sg() 527 ccw->bits |= CCW_CHAIN; in mxs_dma_prep_slave_sg() 528 ccw->bits &= ~CCW_IRQ; in mxs_dma_prep_slave_sg() [all …]
|
/Linux-v4.19/drivers/s390/cio/ |
D | vfio_ccw_cp.c | 322 struct ccw1 *ccw = chain->ch_ccw + idx; in ccwchain_cda_free() local 324 if (ccw_is_test(ccw) || ccw_is_noop(ccw) || ccw_is_tic(ccw)) in ccwchain_cda_free() 326 if (!ccw->count) in ccwchain_cda_free() 329 kfree((void *)(u64)ccw->cda); in ccwchain_cda_free() 363 struct ccw1 *ccw, *p; in ccwchain_calc_length() local 371 p = ccw = kcalloc(CCWCHAIN_LEN_MAX, sizeof(*ccw), GFP_KERNEL); in ccwchain_calc_length() 372 if (!ccw) in ccwchain_calc_length() 375 cnt = copy_ccw_from_iova(cp, ccw, iova, CCWCHAIN_LEN_MAX); in ccwchain_calc_length() 377 kfree(ccw); in ccwchain_calc_length() 390 if ((!cp->orb.cmd.c64 || cp->orb.cmd.i2k) && ccw_is_idal(ccw)) in ccwchain_calc_length() [all …]
|
/Linux-v4.19/arch/s390/include/asm/ |
D | idals.h | 71 set_normalized_cda(struct ccw1 * ccw, void *vaddr) in set_normalized_cda() argument 76 if (ccw->flags & CCW_FLAG_IDA) in set_normalized_cda() 78 nridaws = idal_nr_words(vaddr, ccw->count); in set_normalized_cda() 84 idal_create_words(idal, vaddr, ccw->count); in set_normalized_cda() 85 ccw->flags |= CCW_FLAG_IDA; in set_normalized_cda() 88 ccw->cda = (__u32)(unsigned long) vaddr; in set_normalized_cda() 96 clear_normalized_cda(struct ccw1 * ccw) in clear_normalized_cda() argument 98 if (ccw->flags & CCW_FLAG_IDA) { in clear_normalized_cda() 99 kfree((void *)(unsigned long) ccw->cda); in clear_normalized_cda() 100 ccw->flags &= ~CCW_FLAG_IDA; in clear_normalized_cda() [all …]
|
D | ipl.h | 79 struct ipl_block_ccw ccw; member 109 } ccw; member
|
/Linux-v4.19/Documentation/driver-api/ |
D | s390-drivers.rst | 39 device on the ccw bus and are described below. 40 * I/O subchannels bound to the vfio-ccw driver. See 41 Documentation/s390/vfio-ccw.txt. 47 The ccw bus 50 The ccw bus typically contains the majority of devices available to a 51 s390 system. Named after the channel command word (ccw), the basic 52 command structure used to address its devices, the ccw bus contains 56 subchannel directly, but only via the I/O device on the ccw bus, the ccw 70 ccw devices 73 Devices that want to initiate channel I/O need to attach to the ccw bus. [all …]
|
/Linux-v4.19/drivers/s390/net/ |
D | ctcm_mpc.c | 1524 rc = ccw_device_start(ch->cdev, &ch->ccw[15], in mpc_action_send_discontact() 1707 ch->ccw[8].flags = CCW_FLAG_SLI | CCW_FLAG_CC; in mpc_action_side_xid() 1708 ch->ccw[8].count = 0; in mpc_action_side_xid() 1709 ch->ccw[8].cda = 0x00; in mpc_action_side_xid() 1720 ch->ccw[9].cmd_code = CCW_CMD_WRITE; in mpc_action_side_xid() 1721 ch->ccw[9].flags = CCW_FLAG_SLI | CCW_FLAG_CC; in mpc_action_side_xid() 1722 ch->ccw[9].count = TH_HEADER_LENGTH; in mpc_action_side_xid() 1723 ch->ccw[9].cda = virt_to_phys(ch->xid_th); in mpc_action_side_xid() 1727 ch->ccw[10].cmd_code = CCW_CMD_WRITE; in mpc_action_side_xid() 1728 ch->ccw[10].flags = CCW_FLAG_SLI | CCW_FLAG_CC; in mpc_action_side_xid() [all …]
|
D | ctcm_fsms.c | 279 clear_normalized_cda(&ch->ccw[4]); in chx_txdone() 307 ch->ccw[1].count = ch->trans_skb->len; in chx_txdone() 310 rc = ccw_device_start(ch->cdev, &ch->ccw[0], in chx_txdone() 419 ch->ccw[1].count = ch->max_bufsize; in chx_rx() 420 rc = ccw_device_start(ch->cdev, &ch->ccw[0], in chx_rx() 477 ch->ccw[1].count = 2; /* Transfer only length */ in chx_firstio() 481 rc = ccw_device_start(ch->cdev, &ch->ccw[0], in chx_firstio() 528 ch->ccw[1].count = ch->max_bufsize; in chx_rxidle() 530 rc = ccw_device_start(ch->cdev, &ch->ccw[0], in chx_rxidle() 567 CTCM_CCW_DUMP((char *)&ch->ccw[6], sizeof(struct ccw1) * 2); in ctcm_chx_setmode() [all …]
|
D | ctcm_main.c | 220 clear_normalized_cda(&ch->ccw[4]); in channel_remove() 222 clear_normalized_cda(&ch->ccw[1]); in channel_remove() 230 kfree(ch->ccw); in channel_remove() 384 clear_normalized_cda(&ch->ccw[1]); in ctcm_ch_alloc_buffer() 395 ch->ccw[1].count = ch->max_bufsize; in ctcm_ch_alloc_buffer() 396 if (set_normalized_cda(&ch->ccw[1], ch->trans_skb->data)) { in ctcm_ch_alloc_buffer() 407 ch->ccw[1].count = 0; in ctcm_ch_alloc_buffer() 534 ch->ccw[4].count = block_len; in ctcm_transmit_skb() 535 if (set_normalized_cda(&ch->ccw[4], skb->data)) { in ctcm_transmit_skb() 554 ch->ccw[1].count = skb->len; in ctcm_transmit_skb() [all …]
|
/Linux-v4.19/drivers/crypto/nx/ |
D | nx-842-powernv.c | 468 u32 ccw; in nx842_exec_icswx() local 489 ccw = 0; in nx842_exec_icswx() 490 ccw = SET_FIELD(CCW_CT, ccw, nx842_ct); in nx842_exec_icswx() 491 ccw = SET_FIELD(CCW_CI_842, ccw, 0); /* use 0 for hw auto-selection */ in nx842_exec_icswx() 492 ccw = SET_FIELD(CCW_FC_842, ccw, fc); in nx842_exec_icswx() 497 ret = icswx(cpu_to_be32(ccw), crb); in nx842_exec_icswx() 500 (unsigned int)ccw, in nx842_exec_icswx() 501 (unsigned int)be32_to_cpu(crb->ccw)); in nx842_exec_icswx() 572 u32 ccw; in nx842_exec_vas() local 586 ccw = 0; in nx842_exec_vas() [all …]
|
/Linux-v4.19/arch/s390/kernel/ |
D | ipl.c | 274 if ((ipb->ipl_info.ccw.vm_flags & DIAG308_VM_FLAGS_VP_VALID) && in reipl_get_ascii_vmparm() 275 (ipb->ipl_info.ccw.vm_parm_len > 0)) { in reipl_get_ascii_vmparm() 277 len = min_t(size_t, size - 1, ipb->ipl_info.ccw.vm_parm_len); in reipl_get_ascii_vmparm() 278 memcpy(dest, ipb->ipl_info.ccw.vm_parm, len); in reipl_get_ascii_vmparm() 382 return sprintf(page, "0.%x.%04x\n", ipl_block.ipl_info.ccw.ssid, in sys_ipl_device_show() 383 ipl_block.ipl_info.ccw.devno); in sys_ipl_device_show() 590 memset(ipb->ipl_info.ccw.vm_parm, 0, DIAG308_VMPARM_SIZE); in reipl_generic_vmparm_store() 591 ipb->ipl_info.ccw.vm_parm_len = ip_len; in reipl_generic_vmparm_store() 593 ipb->ipl_info.ccw.vm_flags |= DIAG308_VM_FLAGS_VP_VALID; in reipl_generic_vmparm_store() 594 memcpy(ipb->ipl_info.ccw.vm_parm, buf, ip_len); in reipl_generic_vmparm_store() [all …]
|
/Linux-v4.19/Documentation/s390/ |
D | driver-model.txt | 10 All ccw devices are accessed via a subchannel, this is reflected in the 28 system; it is a pseudo subchannel where disconnected ccw devices are moved to 29 if they are displaced by another ccw device becoming operational on their 30 former subchannel. The ccw devices will be moved again to a proper subchannel 33 You should address a ccw device via its bus id (e.g. 0.0.4711); the device can 34 be found under bus/ccw/devices/. 36 All ccw devices export some data via sysfs. 62 1.1 Bringing up a ccw device 73 1.2 Writing a driver for ccw devices 208 The ccwgroup mechanism is designed to handle devices consisting of multiple ccw [all …]
|
D | vfio-ccw.txt | 1 vfio-ccw: the basic infrastructure 8 Linux/s390. Motivation for vfio-ccw is to passthrough subchannels to a 39 Motivation of vfio-ccw 44 (virtio-ccw)" transport. This makes virtio devices discoverable via 82 Back to vfio-ccw, in short: 94 Physical vfio ccw device and its child mdev 97 As mentioned above, we realize vfio-ccw with a mdev implementation. 100 vfio-ccw device does not have an IOMMU level translation or isolation. 103 handling the I/O instruction interception, vfio-ccw has the software 121 - The vfio_mdev driver for the mediated vfio ccw device. [all …]
|
D | 00-INDEX | 25 vfio-ccw.txt 26 information on the vfio-ccw I/O subchannel driver.
|
/Linux-v4.19/arch/powerpc/include/asm/ |
D | icswx.h | 133 __be32 ccw; member 172 static inline int icswx(__be32 ccw, struct coprocessor_request_block *crb) in icswx() argument 174 __be64 ccw_reg = ccw; in icswx()
|
/Linux-v4.19/Documentation/virtual/kvm/ |
D | s390-diag.txt | 43 provides either s390-virtio (subcodes 0-2) or virtio-ccw (subcode 3). 58 Subcode 3 - virtio-ccw notification 62 the subchannel of the virtio-ccw proxy device to be notified.
|