| /linux/drivers/s390/virtio/ |
| H A D | virtio_ccw.c | 371 struct ccw1 *ccw, __u32 intparm) in ccw_io_helper() argument 380 ret = ccw_device_start(vcdev->cdev, ccw, intparm, 0, 0); in ccw_io_helper() 396 struct ccw1 *ccw) in virtio_ccw_drop_indicator() argument 406 &ccw->cda); in virtio_ccw_drop_indicator() 412 ccw->cmd_code = CCW_CMD_SET_IND_ADAPTER; in virtio_ccw_drop_indicator() 413 ccw->count = sizeof(*thinint_area); in virtio_ccw_drop_indicator() 418 &ccw->cda); in virtio_ccw_drop_indicator() 422 ccw->cmd_code = CCW_CMD_SET_IND; in virtio_ccw_drop_indicator() 423 ccw->count = sizeof(*indicatorp); in virtio_ccw_drop_indicator() 427 ccw->flags = 0; in virtio_ccw_drop_indicator() [all …]
|
| /linux/drivers/s390/block/ |
| H A D | dasd_fba.c | 50 MODULE_DEVICE_TABLE(ccw, dasd_fba_ids); 75 define_extent(struct ccw1 * ccw, struct DE_fba_data *data, int rw, in define_extent() argument 78 ccw->cmd_code = DASD_FBA_CCW_DEFINE_EXTENT; in define_extent() 79 ccw->flags = 0; in define_extent() 80 ccw->count = 16; in define_extent() 81 ccw->cda = virt_to_dma32(data); in define_extent() 95 locate_record(struct ccw1 * ccw, struct LO_fba_data *data, int rw, in locate_record() argument 98 ccw->cmd_code = DASD_FBA_CCW_LOCATE; in locate_record() 99 ccw->flags = 0; in locate_record() 100 ccw->count = 8; in locate_record() [all …]
|
| H A D | dasd_eckd.c | 68 MODULE_DEVICE_TABLE(ccw, dasd_eckd_ids); 81 struct ccw1 ccw; member 88 struct ccw1 ccw[2]; member 104 struct ccw1 ccw; member 246 static int set_timestamp(struct ccw1 *ccw, struct DE_eckd_data *data, in set_timestamp() argument 265 if (ccw) { in set_timestamp() 266 ccw->count = sizeof(struct DE_eckd_data); in set_timestamp() 267 ccw->flags |= CCW_FLAG_SLI; in set_timestamp() 274 define_extent(struct ccw1 *ccw, struct DE_eckd_data *data, unsigned int trk, in define_extent() argument 283 if (ccw) { in define_extent() [all …]
|
| H A D | dasd_3990_erp.c | 197 struct ccw1 *ccw; in dasd_3990_erp_DCTL() local 215 ccw = dctl_cqr->cpaddr; in dasd_3990_erp_DCTL() 216 memset(ccw, 0, sizeof(struct ccw1)); in dasd_3990_erp_DCTL() 217 ccw->cmd_code = CCW_CMD_DCTL; in dasd_3990_erp_DCTL() 218 ccw->count = 4; in dasd_3990_erp_DCTL() 219 ccw->cda = virt_to_dma32(DCTL_data); in dasd_3990_erp_DCTL() 1592 struct ccw1 *ccw, *oldccw; in dasd_3990_erp_action_1B_32() local 1685 ccw = erp->cpaddr; in dasd_3990_erp_action_1B_32() 1686 memset(ccw, 0, sizeof(struct ccw1)); in dasd_3990_erp_action_1B_32() 1687 ccw->cmd_code = DASD_ECKD_CCW_DEFINE_EXTENT; in dasd_3990_erp_action_1B_32() [all …]
|
| H A D | dasd_alias.c | 411 struct ccw1 *ccw; in read_unit_address_configuration() local 433 ccw = cqr->cpaddr; in read_unit_address_configuration() 434 ccw->cmd_code = DASD_ECKD_CCW_PSF; in read_unit_address_configuration() 435 ccw->count = sizeof(struct dasd_psf_prssd_data); in read_unit_address_configuration() 436 ccw->flags |= CCW_FLAG_CC; in read_unit_address_configuration() 437 ccw->cda = virt_to_dma32(prssdp); in read_unit_address_configuration() 442 ccw++; in read_unit_address_configuration() 443 ccw->cmd_code = DASD_ECKD_CCW_RSSD; in read_unit_address_configuration() 444 ccw->count = sizeof(*(lcu->uac)); in read_unit_address_configuration() 445 ccw->cda = virt_to_dma32(lcu->uac); in read_unit_address_configuration() [all …]
|
| H A D | dasd_eer.c | 456 struct ccw1 *ccw; in dasd_eer_enable() local 485 ccw = cqr->cpaddr; in dasd_eer_enable() 486 ccw->cmd_code = DASD_ECKD_CCW_SNSS; in dasd_eer_enable() 487 ccw->count = SNSS_DATA_SIZE; in dasd_eer_enable() 488 ccw->flags = 0; in dasd_eer_enable() 489 ccw->cda = virt_to_dma32(cqr->data); in dasd_eer_enable()
|
| /linux/drivers/dma/ |
| H A D | mxs-dma.c | 114 struct mxs_dma_ccw *ccw; member 401 mxs_chan->ccw = dma_alloc_coherent(mxs_dma->dma_device.dev, in mxs_dma_alloc_chan_resources() 404 if (!mxs_chan->ccw) { in mxs_dma_alloc_chan_resources() 432 mxs_chan->ccw, mxs_chan->ccw_phys); in mxs_dma_alloc_chan_resources() 447 mxs_chan->ccw, mxs_chan->ccw_phys); in mxs_dma_free_chan_resources() 481 struct mxs_dma_ccw *ccw; in mxs_dma_prep_slave_sg() local 506 ccw = &mxs_chan->ccw[idx - 1]; in mxs_dma_prep_slave_sg() 507 ccw->next = mxs_chan->ccw_phys + sizeof(*ccw) * idx; in mxs_dma_prep_slave_sg() 508 ccw->bits |= CCW_CHAIN; in mxs_dma_prep_slave_sg() 509 ccw->bits &= ~CCW_IRQ; in mxs_dma_prep_slave_sg() [all …]
|
| /linux/drivers/s390/cio/ |
| H A D | vfio_ccw_cp.c | 261 static inline int ccw_does_data_transfer(struct ccw1 *ccw) in ccw_does_data_transfer() argument 264 if (ccw->count == 0) in ccw_does_data_transfer() 268 if (ccw_is_noop(ccw)) in ccw_does_data_transfer() 272 if (!ccw_is_skip(ccw)) in ccw_does_data_transfer() 280 if (ccw_is_read(ccw) || ccw_is_read_backward(ccw)) in ccw_does_data_transfer() 283 if (ccw_is_sense(ccw)) in ccw_does_data_transfer() 310 static inline int is_tic_within_range(struct ccw1 *ccw, u32 head, int len) in is_tic_within_range() argument 312 if (!ccw_is_tic(ccw)) in is_tic_within_range() 315 return is_cpa_within_range(ccw->cda, head, len); in is_tic_within_range() 355 struct ccw1 *ccw = &chain->ch_ccw[idx]; in ccwchain_cda_free() local [all …]
|
| H A D | qdio_main.c | 804 rc = ccw_device_start(cdev, irq_ptr->ccw, intparm, 0, 0); in qdio_int_handler() 938 kfree(irq_ptr->ccw); in qdio_free() 968 irq_ptr->ccw = kmalloc_obj(*irq_ptr->ccw, GFP_KERNEL | GFP_DMA); in qdio_allocate() 969 if (!irq_ptr->ccw) in qdio_allocate() 973 kmemleak_not_leak(irq_ptr->ccw); in qdio_allocate() 1012 kfree(irq_ptr->ccw); in qdio_allocate() 1088 irq_ptr->ccw->cmd_code = ciw->cmd; in qdio_establish() 1089 irq_ptr->ccw->flags = CCW_FLAG_SLI; in qdio_establish() 1090 irq_ptr->ccw->count = ciw->count; in qdio_establish() 1091 irq_ptr->ccw->cda = virt_to_dma32(irq_ptr->qdr); in qdio_establish() [all …]
|
| /linux/arch/s390/include/asm/ |
| H A D | idals.h | 88 static inline int set_normalized_cda(struct ccw1 *ccw, void *vaddr) in set_normalized_cda() argument 93 if (ccw->flags & CCW_FLAG_IDA) in set_normalized_cda() 95 nridaws = idal_nr_words(vaddr, ccw->count); in set_normalized_cda() 100 idal_create_words(idal, vaddr, ccw->count); in set_normalized_cda() 101 ccw->flags |= CCW_FLAG_IDA; in set_normalized_cda() 104 ccw->cda = virt_to_dma32(vaddr); in set_normalized_cda() 111 static inline void clear_normalized_cda(struct ccw1 *ccw) in clear_normalized_cda() argument 113 if (ccw->flags & CCW_FLAG_IDA) { in clear_normalized_cda() 114 kfree(dma32_to_virt(ccw->cda)); in clear_normalized_cda() 115 ccw->flags &= ~CCW_FLAG_IDA; in clear_normalized_cda() [all …]
|
| H A D | ipl.h | 24 struct ipl_pb0_ccw ccw; member 86 } ccw; member
|
| /linux/Documentation/driver-api/ |
| H A 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/arch/s390/vfio-ccw.rst. 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/drivers/s390/net/ |
| H A D | ctcm_mpc.c | 1512 rc = ccw_device_start(ch->cdev, &ch->ccw[15], 0, 0xff, 0); in mpc_action_send_discontact() 1694 ch->ccw[8].flags = CCW_FLAG_SLI | CCW_FLAG_CC; in mpc_action_side_xid() 1695 ch->ccw[8].count = 0; in mpc_action_side_xid() 1696 ch->ccw[8].cda = 0x00; in mpc_action_side_xid() 1707 ch->ccw[9].cmd_code = CCW_CMD_WRITE; in mpc_action_side_xid() 1708 ch->ccw[9].flags = CCW_FLAG_SLI | CCW_FLAG_CC; in mpc_action_side_xid() 1709 ch->ccw[9].count = TH_HEADER_LENGTH; in mpc_action_side_xid() 1710 ch->ccw[9].cda = virt_to_dma32(ch->xid_th); in mpc_action_side_xid() 1714 ch->ccw[10].cmd_code = CCW_CMD_WRITE; in mpc_action_side_xid() 1715 ch->ccw[10].flags = CCW_FLAG_SLI | CCW_FLAG_CC; in mpc_action_side_xid() [all …]
|
| H A D | ctcm_main.c | 219 clear_normalized_cda(&ch->ccw[4]); in channel_remove() 221 clear_normalized_cda(&ch->ccw[1]); in channel_remove() 229 kfree(ch->ccw); in channel_remove() 383 clear_normalized_cda(&ch->ccw[1]); in ctcm_ch_alloc_buffer() 394 ch->ccw[1].count = ch->max_bufsize; in ctcm_ch_alloc_buffer() 395 if (set_normalized_cda(&ch->ccw[1], ch->trans_skb->data)) { in ctcm_ch_alloc_buffer() 406 ch->ccw[1].count = 0; in ctcm_ch_alloc_buffer() 533 ch->ccw[4].count = block_len; in ctcm_transmit_skb() 534 if (set_normalized_cda(&ch->ccw[4], skb->data)) { in ctcm_transmit_skb() 553 ch->ccw[1].count = skb->len; in ctcm_transmit_skb() [all …]
|
| /linux/drivers/s390/char/ |
| H A D | raw3270.c | 168 rq->ccw.cda = virt_to_dma32(rq->buffer); in raw3270_request_alloc() 169 rq->ccw.flags = CCW_FLAG_SLI; in raw3270_request_alloc() 192 rq->ccw.cmd_code = 0; in raw3270_request_reset() 193 rq->ccw.count = 0; in raw3270_request_reset() 195 rq->ccw.cda = virt_to_dma32(rq->buffer); in raw3270_request_reset() 196 rq->ccw.flags = CCW_FLAG_SLI; in raw3270_request_reset() 208 rq->ccw.cmd_code = cmd; in raw3270_request_set_cmd() 217 if (size + rq->ccw.count > rq->size) in raw3270_request_add_data() 219 memcpy(rq->buffer + rq->ccw.count, data, size); in raw3270_request_add_data() 220 rq->ccw.count += size; in raw3270_request_add_data() [all …]
|
| H A D | con3215.c | 147 struct ccw1 *ccw; in raw3215_mk_read_req() local 159 ccw = req->ccws; in raw3215_mk_read_req() 160 ccw->cmd_code = 0x0A; /* read inquiry */ in raw3215_mk_read_req() 161 ccw->flags = 0x20; /* ignore incorrect length */ in raw3215_mk_read_req() 162 ccw->count = 160; in raw3215_mk_read_req() 163 ccw->cda = virt_to_dma32(raw->inbuf); in raw3215_mk_read_req() 175 struct ccw1 *ccw; in raw3215_mk_write_req() local 192 ccw = req->ccws; in raw3215_mk_write_req() 218 if (ccw > req->ccws) in raw3215_mk_write_req() 219 ccw[-1].flags |= 0x40; /* use command chaining */ in raw3215_mk_write_req() [all …]
|
| H A D | raw3270.h | 23 struct ccw1 ccw; /* single ccw. */ member
|
| /linux/arch/s390/kernel/ |
| H A D | ipl_vmparm.c | 16 if ((ipb->ccw.vm_flags & IPL_PB0_CCW_VM_FLAG_VP) && in ipl_block_get_ascii_vmparm() 17 (ipb->ccw.vm_parm_len > 0)) { in ipl_block_get_ascii_vmparm() 19 len = min_t(size_t, size - 1, ipb->ccw.vm_parm_len); in ipl_block_get_ascii_vmparm() 20 memcpy(dest, ipb->ccw.vm_parm, len); in ipl_block_get_ascii_vmparm()
|
| H A D | ipl.c | 435 return sysfs_emit(page, "0.%x.%04x\n", ipl_block.ccw.ssid, in sys_ipl_device_show() 436 ipl_block.ccw.devno); in sys_ipl_device_show() 775 memset(ipb->ccw.vm_parm, 0, DIAG308_VMPARM_SIZE); in reipl_generic_vmparm_store() 776 ipb->ccw.vm_parm_len = ip_len; in reipl_generic_vmparm_store() 778 ipb->ccw.vm_flags |= IPL_PB0_CCW_VM_FLAG_VP; in reipl_generic_vmparm_store() 779 memcpy(ipb->ccw.vm_parm, buf, ip_len); in reipl_generic_vmparm_store() 780 ASCEBC(ipb->ccw.vm_parm, ip_len); in reipl_generic_vmparm_store() 782 ipb->ccw.vm_flags &= ~IPL_PB0_CCW_VM_FLAG_VP; in reipl_generic_vmparm_store() 911 DEFINE_GENERIC_LOADPARM(ccw); 1003 DEFINE_IPL_CCW_ATTR_RW(reipl_ccw, device, reipl_block_ccw->ccw); [all …]
|
| /linux/drivers/crypto/nx/ |
| H A D | nx-common-powernv.c | 462 u32 ccw; in nx842_exec_icswx() local 483 ccw = 0; in nx842_exec_icswx() 484 ccw = SET_FIELD(CCW_CT, ccw, nx842_ct); in nx842_exec_icswx() 485 ccw = SET_FIELD(CCW_CI_842, ccw, 0); /* use 0 for hw auto-selection */ in nx842_exec_icswx() 486 ccw = SET_FIELD(CCW_FC_842, ccw, fc); in nx842_exec_icswx() 491 ret = icswx(cpu_to_be32(ccw), crb); in nx842_exec_icswx() 494 (unsigned int)ccw, in nx842_exec_icswx() 495 (unsigned int)be32_to_cpu(crb->ccw)); in nx842_exec_icswx() 566 u32 ccw; in nx842_exec_vas() local 580 ccw = 0; in nx842_exec_vas() [all …]
|
| /linux/Documentation/arch/s390/ |
| H A D | vfio-ccw.rst | 2 vfio-ccw: the basic infrastructure 9 Linux/s390. Motivation for vfio-ccw is to passthrough subchannels to a 43 Motivation of vfio-ccw 48 (virtio-ccw)" transport. This makes virtio devices discoverable via 86 Back to vfio-ccw, in short: 99 Physical vfio ccw device and its child mdev 102 As mentioned above, we realize vfio-ccw with a mdev implementation. 105 vfio-ccw device does not have an IOMMU level translation or isolation. 108 handling the I/O instruction interception, vfio-ccw has the software 127 - The vfio_mdev driver for the mediated vfio ccw device. [all …]
|
| H A D | cds.rst | 152 ccw to retrieve device characteristics in its online routine. 370 ccw_device_start() must be called disabled and with the ccw device lock held. 455 ccw_device_halt() must be called disabled and with the ccw device lock held. 475 -EINVAL The device is not operational or the ccw device is not online. 496 ccw_device_clear() must be called disabled and with the ccw device lock held. 512 -EINVAL The device is not operational or the ccw device is not online.
|
| /linux/arch/powerpc/include/asm/ |
| H A D | icswx.h | 142 __be32 ccw; member 185 static inline int icswx(__be32 ccw, struct coprocessor_request_block *crb) in icswx() argument 187 __be64 ccw_reg = ccw; in icswx()
|
| /linux/arch/powerpc/platforms/powernv/ |
| H A D | vas-fault.c | 108 || (entry->ccw & cpu_to_be32(CCW0_INVALID))) { in vas_fault_thread_fn() 121 entry->ccw |= cpu_to_be32(CCW0_INVALID); in vas_fault_thread_fn()
|
| /linux/tools/testing/selftests/powerpc/nx-gzip/include/ |
| H A D | crb.h | 121 __be32 ccw; member
|