Home
last modified time | relevance | path

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

12

/Linux-v5.4/drivers/s390/char/
Dtape.h307 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 …]
Dtape_std.c270 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 …]
Draw3270.c160 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 …]
Dcon3215.c146 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-v5.4/drivers/s390/virtio/
Dvirtio_ccw.c321 struct ccw1 *ccw, __u32 intparm) in ccw_io_helper() argument
330 ret = ccw_device_start(vcdev->cdev, ccw, intparm, 0, 0); in ccw_io_helper()
346 struct ccw1 *ccw) in virtio_ccw_drop_indicator() argument
361 ccw->cmd_code = CCW_CMD_SET_IND_ADAPTER; in virtio_ccw_drop_indicator()
362 ccw->count = sizeof(*thinint_area); in virtio_ccw_drop_indicator()
363 ccw->cda = (__u32)(unsigned long) thinint_area; in virtio_ccw_drop_indicator()
371 ccw->cmd_code = CCW_CMD_SET_IND; in virtio_ccw_drop_indicator()
372 ccw->count = sizeof(indicators(vcdev)); in virtio_ccw_drop_indicator()
373 ccw->cda = (__u32)(unsigned long) indicatorp; in virtio_ccw_drop_indicator()
377 ccw->flags = 0; in virtio_ccw_drop_indicator()
[all …]
/Linux-v5.4/drivers/s390/block/
Ddasd_fba.c54 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 …]
Ddasd_eckd.c74 MODULE_DEVICE_TABLE(ccw, dasd_eckd_ids);
87 struct ccw1 ccw; member
94 struct ccw1 ccw[2]; member
110 struct ccw1 ccw; member
210 static int set_timestamp(struct ccw1 *ccw, struct DE_eckd_data *data, in set_timestamp() argument
229 if (ccw) { in set_timestamp()
230 ccw->count = sizeof(struct DE_eckd_data); in set_timestamp()
231 ccw->flags |= CCW_FLAG_SLI; in set_timestamp()
238 define_extent(struct ccw1 *ccw, struct DE_eckd_data *data, unsigned int trk, in define_extent() argument
247 if (ccw) { in define_extent()
[all …]
Ddasd_3990_erp.c201 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 …]
Ddasd_alias.c420 struct ccw1 *ccw; in read_unit_address_configuration() local
442 ccw = cqr->cpaddr; in read_unit_address_configuration()
443 ccw->cmd_code = DASD_ECKD_CCW_PSF; in read_unit_address_configuration()
444 ccw->count = sizeof(struct dasd_psf_prssd_data); in read_unit_address_configuration()
445 ccw->flags |= CCW_FLAG_CC; in read_unit_address_configuration()
446 ccw->cda = (__u32)(addr_t) prssdp; in read_unit_address_configuration()
451 ccw++; in read_unit_address_configuration()
452 ccw->cmd_code = DASD_ECKD_CCW_RSSD; in read_unit_address_configuration()
453 ccw->count = sizeof(*(lcu->uac)); in read_unit_address_configuration()
454 ccw->cda = (__u32)(addr_t) lcu->uac; in read_unit_address_configuration()
[all …]
Ddasd_eer.c461 struct ccw1 *ccw; in dasd_eer_enable() local
490 ccw = cqr->cpaddr; in dasd_eer_enable()
491 ccw->cmd_code = DASD_ECKD_CCW_SNSS; in dasd_eer_enable()
492 ccw->count = SNSS_DATA_SIZE; in dasd_eer_enable()
493 ccw->flags = 0; in dasd_eer_enable()
494 ccw->cda = (__u32)(addr_t) cqr->data; in dasd_eer_enable()
/Linux-v5.4/drivers/dma/
Dmxs-dma.c115 struct mxs_dma_ccw *ccw; member
421 mxs_chan->ccw = dma_alloc_coherent(mxs_dma->dma_device.dev, in mxs_dma_alloc_chan_resources()
424 if (!mxs_chan->ccw) { in mxs_dma_alloc_chan_resources()
452 mxs_chan->ccw, mxs_chan->ccw_phys); in mxs_dma_alloc_chan_resources()
467 mxs_chan->ccw, mxs_chan->ccw_phys); in mxs_dma_free_chan_resources()
501 struct mxs_dma_ccw *ccw; in mxs_dma_prep_slave_sg() local
526 ccw = &mxs_chan->ccw[idx - 1]; in mxs_dma_prep_slave_sg()
527 ccw->next = mxs_chan->ccw_phys + sizeof(*ccw) * idx; in mxs_dma_prep_slave_sg()
528 ccw->bits |= CCW_CHAIN; in mxs_dma_prep_slave_sg()
529 ccw->bits &= ~CCW_IRQ; in mxs_dma_prep_slave_sg()
[all …]
/Linux-v5.4/drivers/s390/cio/
Dvfio_ccw_cp.c257 static inline int ccw_does_data_transfer(struct ccw1 *ccw) in ccw_does_data_transfer() argument
260 if (ccw->count == 0) in ccw_does_data_transfer()
264 if (ccw_is_noop(ccw)) in ccw_does_data_transfer()
268 if (!ccw_is_skip(ccw)) in ccw_does_data_transfer()
276 if (ccw_is_read(ccw) || ccw_is_read_backward(ccw)) in ccw_does_data_transfer()
279 if (ccw_is_sense(ccw)) in ccw_does_data_transfer()
305 static inline int is_tic_within_range(struct ccw1 *ccw, u32 head, int len) in is_tic_within_range() argument
307 if (!ccw_is_tic(ccw)) in is_tic_within_range()
310 return is_cpa_within_range(ccw->cda, head, len); in is_tic_within_range()
349 struct ccw1 *ccw = chain->ch_ccw + idx; in ccwchain_cda_free() local
[all …]
/Linux-v5.4/arch/s390/include/asm/
Didals.h71 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 …]
Dipl.h23 struct ipl_pb0_ccw ccw; member
70 } ccw; member
/Linux-v5.4/Documentation/driver-api/
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/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-v5.4/arch/s390/kernel/
Dipl_vmparm.c14 if ((ipb->ccw.vm_flags & IPL_PB0_CCW_VM_FLAG_VP) && in ipl_block_get_ascii_vmparm()
15 (ipb->ccw.vm_parm_len > 0)) { in ipl_block_get_ascii_vmparm()
17 len = min_t(size_t, size - 1, ipb->ccw.vm_parm_len); in ipl_block_get_ascii_vmparm()
18 memcpy(dest, ipb->ccw.vm_parm, len); in ipl_block_get_ascii_vmparm()
Dipl.c312 return sprintf(page, "0.%x.%04x\n", ipl_block.ccw.ssid, in sys_ipl_device_show()
313 ipl_block.ccw.devno); in sys_ipl_device_show()
525 memset(ipb->ccw.vm_parm, 0, DIAG308_VMPARM_SIZE); in reipl_generic_vmparm_store()
526 ipb->ccw.vm_parm_len = ip_len; in reipl_generic_vmparm_store()
528 ipb->ccw.vm_flags |= IPL_PB0_CCW_VM_FLAG_VP; in reipl_generic_vmparm_store()
529 memcpy(ipb->ccw.vm_parm, buf, ip_len); in reipl_generic_vmparm_store()
530 ASCEBC(ipb->ccw.vm_parm, ip_len); in reipl_generic_vmparm_store()
532 ipb->ccw.vm_flags &= ~IPL_PB0_CCW_VM_FLAG_VP; in reipl_generic_vmparm_store()
710 DEFINE_IPL_CCW_ATTR_RW(reipl_ccw, device, reipl_block_ccw->ccw);
772 memcpy(dst, ipb->ccw.nss_name, NSS_NAME_SIZE); in reipl_get_ascii_nss_name()
[all …]
/Linux-v5.4/drivers/s390/net/
Dctcm_mpc.c1526 rc = ccw_device_start(ch->cdev, &ch->ccw[15], 0, 0xff, 0); in mpc_action_send_discontact()
1708 ch->ccw[8].flags = CCW_FLAG_SLI | CCW_FLAG_CC; in mpc_action_side_xid()
1709 ch->ccw[8].count = 0; in mpc_action_side_xid()
1710 ch->ccw[8].cda = 0x00; in mpc_action_side_xid()
1721 ch->ccw[9].cmd_code = CCW_CMD_WRITE; in mpc_action_side_xid()
1722 ch->ccw[9].flags = CCW_FLAG_SLI | CCW_FLAG_CC; in mpc_action_side_xid()
1723 ch->ccw[9].count = TH_HEADER_LENGTH; in mpc_action_side_xid()
1724 ch->ccw[9].cda = virt_to_phys(ch->xid_th); in mpc_action_side_xid()
1728 ch->ccw[10].cmd_code = CCW_CMD_WRITE; in mpc_action_side_xid()
1729 ch->ccw[10].flags = CCW_FLAG_SLI | CCW_FLAG_CC; in mpc_action_side_xid()
[all …]
Dctcm_fsms.c279 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], 0, 0xff, 0); in chx_txdone()
418 ch->ccw[1].count = ch->max_bufsize; in chx_rx()
419 rc = ccw_device_start(ch->cdev, &ch->ccw[0], 0, 0xff, 0); in chx_rx()
475 ch->ccw[1].count = 2; /* Transfer only length */ in chx_firstio()
479 rc = ccw_device_start(ch->cdev, &ch->ccw[0], 0, 0xff, 0); in chx_firstio()
525 ch->ccw[1].count = ch->max_bufsize; in chx_rxidle()
527 rc = ccw_device_start(ch->cdev, &ch->ccw[0], 0, 0xff, 0); in chx_rxidle()
563 CTCM_CCW_DUMP((char *)&ch->ccw[6], sizeof(struct ccw1) * 2); in ctcm_chx_setmode()
[all …]
Dctcm_main.c220 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-v5.4/drivers/crypto/nx/
Dnx-842-powernv.c457 u32 ccw; in nx842_exec_icswx() local
478 ccw = 0; in nx842_exec_icswx()
479 ccw = SET_FIELD(CCW_CT, ccw, nx842_ct); in nx842_exec_icswx()
480 ccw = SET_FIELD(CCW_CI_842, ccw, 0); /* use 0 for hw auto-selection */ in nx842_exec_icswx()
481 ccw = SET_FIELD(CCW_FC_842, ccw, fc); in nx842_exec_icswx()
486 ret = icswx(cpu_to_be32(ccw), crb); in nx842_exec_icswx()
489 (unsigned int)ccw, in nx842_exec_icswx()
490 (unsigned int)be32_to_cpu(crb->ccw)); in nx842_exec_icswx()
561 u32 ccw; in nx842_exec_vas() local
575 ccw = 0; in nx842_exec_vas()
[all …]
/Linux-v5.4/Documentation/s390/
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 …]
Ddriver-model.rst11 All ccw devices are accessed via a subchannel, this is reflected in the
29 system; it is a pseudo subchannel where disconnected ccw devices are moved to
30 if they are displaced by another ccw device becoming operational on their
31 former subchannel. The ccw devices will be moved again to a proper subchannel
34 You should address a ccw device via its bus id (e.g. 0.0.4711); the device can
35 be found under bus/ccw/devices/.
37 All ccw devices export some data via sysfs.
69 1.1 Bringing up a ccw device
80 1.2 Writing a driver for ccw devices
246 The ccwgroup mechanism is designed to handle devices consisting of multiple ccw
[all …]
/Linux-v5.4/arch/powerpc/include/asm/
Dicswx.h129 __be32 ccw; member
168 static inline int icswx(__be32 ccw, struct coprocessor_request_block *crb) in icswx() argument
170 __be64 ccw_reg = ccw; in icswx()
/Linux-v5.4/Documentation/virt/kvm/
Ds390-diag.txt43 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.

12