| /linux/drivers/s390/char/ |
| H A D | sclp_early.c | 30 struct read_info_sccb *sccb; in sclp_early_facilities_detect() local 33 sccb = sclp_early_get_info(); in sclp_early_facilities_detect() 34 if (!sccb) in sclp_early_facilities_detect() 37 sclp.facilities = sccb->facilities; in sclp_early_facilities_detect() 38 sclp.has_sprp = !!(sccb->fac84 & 0x02); in sclp_early_facilities_detect() 39 sclp.has_core_type = !!(sccb->fac84 & 0x01); in sclp_early_facilities_detect() 40 sclp.has_gsls = !!(sccb->fac85 & 0x80); in sclp_early_facilities_detect() 41 sclp.has_64bscao = !!(sccb->fac116 & 0x80); in sclp_early_facilities_detect() 42 sclp.has_cmma = !!(sccb->fac116 & 0x40); in sclp_early_facilities_detect() 43 sclp.has_esca = !!(sccb->fac116 & 0x08); in sclp_early_facilities_detect() [all …]
|
| H A D | sclp_early_core.c | 66 int sclp_early_cmd(sclp_cmdw_t cmd, void *sccb) in sclp_early_cmd() argument 72 rc = sclp_service_call(cmd, sccb); in sclp_early_cmd() 91 struct write_sccb *sccb; in sclp_early_print_lm() local 97 sccb = (struct write_sccb *) sclp_early_sccb; in sclp_early_print_lm() 98 end = (unsigned char *) sccb + EARLY_SCCB_SIZE - 1; in sclp_early_print_lm() 99 memset(sccb, 0, sizeof(*sccb)); in sclp_early_print_lm() 100 ptr = (unsigned char *) &sccb->msg.mdb.mto; in sclp_early_print_lm() 116 len = ptr - (unsigned char *) sccb; in sclp_early_print_lm() 117 sccb->header.length = len - offsetof(struct write_sccb, header); in sclp_early_print_lm() 118 msg = &sccb->msg; in sclp_early_print_lm() [all …]
|
| H A D | sclp_cmd.c | 59 int sclp_sync_request(sclp_cmdw_t cmd, void *sccb) in sclp_sync_request() argument 61 return sclp_sync_request_timeout(cmd, sccb, 0); in sclp_sync_request() 64 int sclp_sync_request_timeout(sclp_cmdw_t cmd, void *sccb, int timeout) in sclp_sync_request_timeout() argument 76 request->sccb = sccb; in sclp_sync_request_timeout() 99 struct read_cpu_info_sccb *sccb; in _sclp_get_core_info() local 106 sccb = (void *)__get_free_pages(GFP_KERNEL | GFP_DMA | __GFP_ZERO, get_order(length)); in _sclp_get_core_info() 107 if (!sccb) in _sclp_get_core_info() 109 sccb->header.length = length; in _sclp_get_core_info() 110 sccb->header.control_mask[2] = 0x80; in _sclp_get_core_info() 111 rc = sclp_sync_request_timeout(SCLP_CMDW_READ_CPU_INFO, sccb, in _sclp_get_core_info() [all …]
|
| H A D | sclp_sdias.c | 61 struct sdias_sccb *sccb = sclp_sdias_sccb; in sdias_sclp_send() local 82 if (!(sccb->evbuf.hdr.flags & 0x80)) { in sdias_sclp_send() 84 sccb->evbuf.hdr.flags); in sdias_sclp_send() 88 * for the sync interface the response is in the initial sccb in sdias_sclp_send() 91 memcpy(&sdias_evbuf, &sccb->evbuf, sizeof(sdias_evbuf)); in sdias_sclp_send() 108 struct sdias_sccb *sccb = sclp_sdias_sccb; in sclp_sdias_blk_count() local 114 memset(sccb, 0, sizeof(*sccb)); in sclp_sdias_blk_count() 117 sccb->hdr.length = sizeof(*sccb); in sclp_sdias_blk_count() 118 sccb->evbuf.hdr.length = sizeof(struct sdias_evbuf); in sclp_sdias_blk_count() 119 sccb->evbuf.hdr.type = EVTYP_SDIAS; in sclp_sdias_blk_count() [all …]
|
| H A D | sclp_rw.c | 23 * The room for the SCCB (only for writing) is not equal to a pages size 44 struct sccb_header *sccb; in sclp_make_buffer() local 46 sccb = (struct sccb_header *) page; in sclp_make_buffer() 49 * of the sccb page. in sclp_make_buffer() 51 buffer = ((struct sclp_buffer *) ((addr_t) sccb + PAGE_SIZE)) - 1; in sclp_make_buffer() 52 buffer->sccb = sccb; in sclp_make_buffer() 61 /* initialize sccb */ in sclp_make_buffer() 62 memset(sccb, 0, sizeof(struct sccb_header)); in sclp_make_buffer() 63 sccb->length = sizeof(struct sccb_header); in sclp_make_buffer() 75 return buffer->sccb; in sclp_unmake_buffer() [all …]
|
| H A D | sclp_mem.c | 68 struct assign_storage_sccb *sccb; in do_assign_storage() local 71 sccb = (void *)get_zeroed_page(GFP_KERNEL | GFP_DMA); in do_assign_storage() 72 if (!sccb) in do_assign_storage() 74 sccb->header.length = PAGE_SIZE; in do_assign_storage() 75 sccb->rn = rn; in do_assign_storage() 76 rc = sclp_sync_request_timeout(cmd, sccb, SCLP_QUEUE_INTERVAL); in do_assign_storage() 79 switch (sccb->header.response_code) { in do_assign_storage() 85 cmd, sccb->header.response_code, rn); in do_assign_storage() 90 free_page((unsigned long)sccb); in do_assign_storage() 114 struct attach_storage_sccb *sccb; in sclp_attach_storage() local [all …]
|
| H A D | sclp_ftp.c | 42 pr_debug("SCLP (ET7) TX-IRQ, SCCB @ 0x%p: %*phN\n", in sclp_ftp_txcb() 43 req->sccb, 24, req->sccb); in sclp_ftp_txcb() 91 struct sclp_diag_sccb *sccb; in sclp_ftp_et7() local 97 sccb = (void *) get_zeroed_page(GFP_KERNEL | GFP_DMA); in sclp_ftp_et7() 98 if (!req || !sccb) { in sclp_ftp_et7() 103 sccb->hdr.length = SCLP_DIAG_FTP_EVBUF_LEN + in sclp_ftp_et7() 105 sccb->evbuf.hdr.type = EVTYP_DIAG_TEST; in sclp_ftp_et7() 106 sccb->evbuf.hdr.length = SCLP_DIAG_FTP_EVBUF_LEN; in sclp_ftp_et7() 107 sccb->evbuf.hdr.flags = 0; /* clear processed-buffer */ in sclp_ftp_et7() 108 sccb->evbuf.route = SCLP_DIAG_FTP_ROUTE; in sclp_ftp_et7() [all …]
|
| H A D | sclp.c | 118 static inline int abbrev_len(sclp_cmdw_t cmd, struct sccb_header *sccb) in abbrev_len() argument 120 struct evbuf_header *evbuf = (struct evbuf_header *)(sccb + 1); in abbrev_len() 121 int len = sccb->length, limit = SCLP_TRACE_MAX_SIZE; in abbrev_len() 123 /* Full SCCB tracing if debug level is set to max. */ in abbrev_len() 136 sclp_cmdw_t cmd, struct sccb_header *sccb, in sclp_trace_sccb() argument 140 if (sccb) { in sclp_trace_sccb() 141 sclp_trace_bin(prio + 1, sccb, abbrev_len(cmd, sccb), in sclp_trace_sccb() 142 err ? sccb->length : 0); in sclp_trace_sccb() 158 struct sccb_header *sccb = req->sccb; in sclp_trace_req() local 170 summary.response = sccb ? sccb->response_code : 0; in sclp_trace_req() [all …]
|
| H A D | sclp_ctl.c | 58 struct sccb_header *sccb; in sclp_ctl_ioctl_sccb() local 66 sccb = (void *) get_zeroed_page(GFP_KERNEL | GFP_DMA); in sclp_ctl_ioctl_sccb() 67 if (!sccb) in sclp_ctl_ioctl_sccb() 70 copy_from_user(sccb, u64_to_uptr(ctl_sccb.sccb), PAGE_SIZE); in sclp_ctl_ioctl_sccb() 72 sizeof(sccb->length) > copied || sccb->length > copied) { in sclp_ctl_ioctl_sccb() 76 if (sccb->length < 8) { in sclp_ctl_ioctl_sccb() 80 rc = sclp_sync_request(ctl_sccb.cmdw, sccb); in sclp_ctl_ioctl_sccb() 83 if (copy_to_user(u64_to_uptr(ctl_sccb.sccb), sccb, sccb->length)) in sclp_ctl_ioctl_sccb() 86 free_page((unsigned long) sccb); in sclp_ctl_ioctl_sccb() 91 * SCLP SCCB ioctl function
|
| H A D | sclp_vt220.c | 49 /* VT220 SCCB */ 123 page = request->sclp_req.sccb; in sclp_vt220_process_queue() 155 struct sclp_vt220_sccb *sccb; in sclp_vt220_callback() local 162 sccb = (struct sclp_vt220_sccb *) vt220_request->sclp_req.sccb; in sclp_vt220_callback() 165 switch (sccb->header.response_code) { in sclp_vt220_callback() 176 if (sclp_remove_processed((struct sccb_header *) sccb) > 0) { in sclp_vt220_callback() 178 sccb->header.response_code = 0x0000; in sclp_vt220_callback() 188 sccb->header.response_code = 0x0000; in sclp_vt220_callback() 223 struct sclp_vt220_sccb *sccb; in sclp_vt220_emit_current() local 227 sccb = (struct sclp_vt220_sccb *) in sclp_vt220_emit_current() [all …]
|
| H A D | sclp_config.c | 95 struct sclp_ofb_sccb *sccb; in sclp_ofb_send_req() local 100 sccb = (struct sclp_ofb_sccb *) get_zeroed_page(GFP_KERNEL | GFP_DMA); in sclp_ofb_send_req() 101 if (!sccb) in sclp_ofb_send_req() 103 /* Setup SCCB for Control-Program Identification */ in sclp_ofb_send_req() 104 sccb->header.length = sizeof(struct sclp_ofb_sccb); in sclp_ofb_send_req() 105 sccb->ofb_evbuf.header.length = sizeof(struct sclp_ofb_evbuf); in sclp_ofb_send_req() 106 sccb->ofb_evbuf.header.type = EVTYP_CONFMGMDATA; in sclp_ofb_send_req() 107 sccb->ofb_evbuf.cm_data.ev_qualifier = EV_QUAL_OPEN4BUSINESS; in sclp_ofb_send_req() 108 memcpy(sccb->ofb_evbuf.ev_data, ev_data, len); in sclp_ofb_send_req() 115 rc = sclp_sync_request(SCLP_CMDW_WRITE_EVENT_DATA, sccb); in sclp_ofb_send_req() [all …]
|
| H A D | sclp_ap.c | 24 struct ap_cfg_sccb *sccb; in do_ap_configure() local 30 sccb = (struct ap_cfg_sccb *) get_zeroed_page(GFP_KERNEL | GFP_DMA); in do_ap_configure() 31 if (!sccb) in do_ap_configure() 34 sccb->header.length = PAGE_SIZE; in do_ap_configure() 36 rc = sclp_sync_request(cmd, sccb); in do_ap_configure() 39 switch (sccb->header.response_code) { in do_ap_configure() 44 apid, cmd, sccb->header.response_code); in do_ap_configure() 49 free_page((unsigned long) sccb); in do_ap_configure()
|
| H A D | sclp_sd.c | 194 struct sclp_sd_sccb *sccb = (void *) page; in sclp_sd_sync() local 203 sclp_sd_listener_init(&listener, __pa(sccb)); in sclp_sd_sync() 206 /* Prepare SCCB */ in sclp_sd_sync() 207 memset(sccb, 0, PAGE_SIZE); in sclp_sd_sync() 208 sccb->hdr.length = sizeof(sccb->hdr) + sizeof(sccb->evbuf); in sclp_sd_sync() 209 evbuf = &sccb->evbuf; in sclp_sd_sync() 223 rc = sclp_sync_request(SCLP_CMDW_WRITE_EVENT_DATA, sccb); in sclp_sd_sync() 229 if (sccb->hdr.response_code == 0x73f0) { in sclp_sd_sync() 234 if (sccb->hdr.response_code != 0x0020 || !(evbuf->hdr.flags & 0x80)) { in sclp_sd_sync() 270 eq, di, sccb->hdr.response_code, evbuf->hdr.flags, in sclp_sd_sync()
|
| H A D | sclp_rw.h | 57 /* The number of empty mto buffers that can be contained in a single sccb. */ 68 void *sccb; member 77 unsigned int char_sum; /* # chars in sccb */ 78 unsigned int messages; /* # messages in sccb */
|
| H A D | sclp_diag.h | 80 * struct sclp_diag_sccb - Diagnostic Test (ET7) SCCB 81 * @hdr: SCCB header
|
| /linux/drivers/base/regmap/ |
| H A D | regmap-sccb.c | 2 // Register map access API - SCCB support 11 * sccb_is_available - Check if the adapter supports SCCB protocol 14 * Return true if the I2C adapter is capable of using SCCB helper functions, 22 * If we ever want support for hardware doing SCCB natively, we will in sccb_is_available() 31 * regmap_sccb_read - Read data from SCCB slave device 67 * regmap_sccb_write - Write data to SCCB slave device 72 * This executes the SCCB 3-phase write transmission cycle, returning negative 128 MODULE_DESCRIPTION("Register map access API - SCCB support");
|
| H A D | Makefile | 20 obj-$(CONFIG_REGMAP_SCCB) += regmap-sccb.o
|
| /linux/drivers/scsi/ |
| H A D | FlashPoint.c | 3 FlashPoint.c -- FlashPoint SCCB Manager for Linux 5 This file contains the FlashPoint SCCB Manager from BusLogic's FlashPoint 28 struct sccb; 29 typedef void (*CALL_BK_FN) (struct sccb *); 69 /* SCCB struct used for both SCCB and UCB manager compiles! 70 * The UCB Manager treats the SCCB as it's 'native hardware structure' 74 struct sccb { struct 108 struct sccb *Sccb_forwardlink; argument 109 struct sccb *Sccb_backlink; argument 153 #define SCCB_COMPLETE 0x00 /* SCCB completed without error */ [all …]
|
| /linux/arch/s390/kvm/ |
| H A D | intercept.c | 514 * a: an sccb answering interrupt was already pending or in flight. in handle_pv_sclp() 515 * As the sccb value is not known we can simply set some value to in handle_pv_sclp() 516 * trigger delivery of a saved SCCB. UV will then use its saved in handle_pv_sclp() 517 * copy of the SCCB value. in handle_pv_sclp() 518 * b: an error SCCB interrupt needs to be injected so we also inject in handle_pv_sclp() 519 * a fake SCCB address. Firmware will use the proper one. in handle_pv_sclp() 520 * This makes sure, that both errors and real sccb returns will only in handle_pv_sclp()
|
| /linux/Documentation/devicetree/bindings/media/i2c/ |
| H A D | ovti,ov5675.yaml | 20 Serial Camera Control Bus (SCCB) interface. 22 This chip is programmable through I2C and two-wire SCCB. The sensor output
|
| H A D | ovti,ov5693.yaml | 17 Serial Camera Control Bus (SCCB) interface. 20 (SCCB). The sensor output is available via CSI-2 serial data output (up to
|
| H A D | ovti,og01a1b.yaml | 15 image sensor controlled over an I2C-compatible SCCB bus.
|
| H A D | ovti,ov2680.yaml | 16 various formats via the control of the Serial Camera Control Bus (SCCB)
|
| /linux/arch/s390/include/uapi/asm/ |
| H A D | sclp_ctl.h | 17 __u64 sccb; member
|
| /linux/Documentation/i2c/ |
| H A D | i2c-protocol.rst | 95 like SCCB require that. Normally, you really don't want to get interrupted
|