Home
last modified time | relevance | path

Searched refs:ccw (Results 1 – 25 of 38) sorted by relevance

12

/linux/drivers/s390/virtio/
H A Dvirtio_ccw.c371 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 Ddasd_fba.c50 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 Ddasd_eckd.c68 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 Ddasd_3990_erp.c197 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 Ddasd_alias.c411 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 Ddasd_eer.c456 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 Dmxs-dma.c114 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 Dvfio_ccw_cp.c261 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 Dqdio_main.c804 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 Didals.h88 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 Dipl.h24 struct ipl_pb0_ccw ccw; member
86 } ccw; member
/linux/Documentation/driver-api/
H A Ds390-drivers.rst39 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 Dctcm_mpc.c1512 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 Dctcm_main.c219 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/arch/s390/kernel/
H A Dipl_vmparm.c16 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 Dipl.c435 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/s390/char/
H A Draw3270.c168 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 Dcon3215.c147 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 Draw3270.h23 struct ccw1 ccw; /* single ccw. */ member
/linux/drivers/crypto/nx/
H A Dnx-common-powernv.c462 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 Dvfio-ccw.rst2 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 Dcds.rst152 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 Dicswx.h142 __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 Dvas-fault.c108 || (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 Dcrb.h121 __be32 ccw; member

12