/linux/drivers/media/pci/cx18/ |
H A D | cx18-scb.c | 11 #include "cx18-scb.h" 16 cx18_memset_io(cx, cx->scb, 0, 0x10000); in cx18_init_scb() 18 cx18_writel(cx, IRQ_APU_TO_CPU, &cx->scb->apu2cpu_irq); in cx18_init_scb() 19 cx18_writel(cx, IRQ_CPU_TO_APU_ACK, &cx->scb->cpu2apu_irq_ack); in cx18_init_scb() 20 cx18_writel(cx, IRQ_HPU_TO_CPU, &cx->scb->hpu2cpu_irq); in cx18_init_scb() 21 cx18_writel(cx, IRQ_CPU_TO_HPU_ACK, &cx->scb->cpu2hpu_irq_ack); in cx18_init_scb() 22 cx18_writel(cx, IRQ_PPU_TO_CPU, &cx->scb->ppu2cpu_irq); in cx18_init_scb() 23 cx18_writel(cx, IRQ_CPU_TO_PPU_ACK, &cx->scb->cpu2ppu_irq_ack); in cx18_init_scb() 24 cx18_writel(cx, IRQ_EPU_TO_CPU, &cx->scb->epu2cpu_irq); in cx18_init_scb() 25 cx18_writel(cx, IRQ_CPU_TO_EPU_ACK, &cx->scb->cpu2epu_irq_ack); in cx18_init_scb() [all …]
|
/linux/sound/pci/cs46xx/ |
H A D | dsp_spos_scb_lib.c | 61 struct dsp_scb_descriptor * scb = scb_info->scb_desc; in cs46xx_dsp_proc_scb_info_read() local 67 snd_iprintf(buffer,"%04x %s:\n",scb->address,scb->scb_name); in cs46xx_dsp_proc_scb_info_read() 74 snd_iprintf(buffer,"%08x ",readl(dst + (scb->address + j) * sizeof(u32))); in cs46xx_dsp_proc_scb_info_read() 79 if (scb->parent_scb_ptr != NULL) { in cs46xx_dsp_proc_scb_info_read() 81 scb->parent_scb_ptr->scb_name, in cs46xx_dsp_proc_scb_info_read() 82 scb->parent_scb_ptr->address); in cs46xx_dsp_proc_scb_info_read() 86 scb->sub_list_ptr->scb_name, in cs46xx_dsp_proc_scb_info_read() 87 scb->sub_list_ptr->address, in cs46xx_dsp_proc_scb_info_read() 88 scb->next_scb_ptr->scb_name, in cs46xx_dsp_proc_scb_info_read() 89 scb->next_scb_ptr->address, in cs46xx_dsp_proc_scb_info_read() [all …]
|
H A D | dsp_spos.h | 71 /* SCB's addresses */ 99 /* hyperforground SCB's*/ 193 struct dsp_scb_descriptor * scb) in cs46xx_dsp_spos_update_scb() argument 195 /* update nextSCB and subListPtr in SCB */ in cs46xx_dsp_spos_update_scb() 197 (scb->address + SCBsubListPtr) << 2, in cs46xx_dsp_spos_update_scb() 198 (scb->sub_list_ptr->address << 0x10) | in cs46xx_dsp_spos_update_scb() 199 (scb->next_scb_ptr->address)); in cs46xx_dsp_spos_update_scb() 200 scb->updated = 1; in cs46xx_dsp_spos_update_scb() 204 struct dsp_scb_descriptor * scb, in cs46xx_dsp_scb_set_volume() argument 209 snd_cs46xx_poke(chip, (scb->address + SCBVolumeCtrl) << 2, val); in cs46xx_dsp_scb_set_volume() [all …]
|
/linux/drivers/scsi/ |
H A D | a100u2w.c | 86 static void inia100_scb_handler(struct orc_host *host, struct orc_scb *scb); 272 * orc_exec_scb - Queue an SCB with the HA 273 * @host: host adapter the SCB belongs to 274 * @scb: SCB to queue for execution 277 static void orc_exec_scb(struct orc_host * host, struct orc_scb * scb) in orc_exec_scb() argument 279 scb->status = ORCSCB_POST; in orc_exec_scb() 280 outb(scb->scbidx, host->base + ORC_PQUEUE); in orc_exec_scb() 444 struct orc_scb *scb; in setup_SCBs() local 449 /* Setup SCB base and SCB Size registers */ in setup_SCBs() 451 /* SCB base address 0 */ in setup_SCBs() [all …]
|
H A D | ips.c | 213 #define IPS_DMA_DIR(scb) ((!scb->scsi_cmd || ips_is_passthru(scb->scsi_cmd) || \ argument 214 DMA_NONE == scb->scsi_cmd->sc_data_direction) ? \ 216 scb->scsi_cmd->sc_data_direction) 647 ips_scb_t *scb; in ips_release() local 669 scb = &ha->scbs[ha->max_cmds - 1]; in ips_release() 671 ips_init_scb(ha, scb); in ips_release() 673 scb->timeout = ips_cmd_timeout; in ips_release() 674 scb->cdb[0] = IPS_CMD_FLUSH; in ips_release() 676 scb->cmd.flush_cache.op_code = IPS_CMD_FLUSH; in ips_release() 677 scb->cmd.flush_cache.command_id = IPS_COMMAND_ID(ha, scb); in ips_release() [all …]
|
H A D | initio.c | 147 static void initio_select_atn(struct initio_host * host, struct scsi_ctrl_blk * scb); 148 static void initio_select_atn3(struct initio_host * host, struct scsi_ctrl_blk * scb); 149 static void initio_select_atn_stop(struct initio_host * host, struct scsi_ctrl_blk * scb); 648 * initio_alloc_scb - Allocate an SCB 651 * Walk the SCB list for the controller and allocate a free SCB if 656 struct scsi_ctrl_blk *scb; in initio_alloc_scb() local 660 if ((scb = host->first_avail) != NULL) { in initio_alloc_scb() 662 printk("find scb at %p\n", scb); in initio_alloc_scb() 664 if ((host->first_avail = scb->next) == NULL) in initio_alloc_scb() 666 scb->next = NULL; in initio_alloc_scb() [all …]
|
H A D | wd719x.c | 23 * 1. SCSI command is transformed to SCB (Spider Control Block) by the 25 * 2. The address of the SCB is stored in a list to be able to access it, if 27 * 3. The address of the SCB is written to the Controller, which loads the SCB 189 static void wd719x_finish_cmd(struct wd719x_scb *scb, int result) in wd719x_finish_cmd() argument 191 struct scsi_cmnd *cmd = scb->cmd; in wd719x_finish_cmd() 194 list_del(&scb->list); in wd719x_finish_cmd() 196 dma_unmap_single(&wd->pdev->dev, scb->phys, in wd719x_finish_cmd() 199 dma_unmap_single(&wd->pdev->dev, scb->dma_handle, in wd719x_finish_cmd() 206 /* Build a SCB and send it to the card */ 211 struct wd719x_scb *scb = scsi_cmd_priv(cmd); in wd719x_queuecommand() local [all …]
|
H A D | megaraid.c | 378 scb_t *scb; in megaraid_queue_lck() local 385 * Allocate and build a SCB request in megaraid_queue_lck() 387 * allocate scb. We will return non-zero status in that case. in megaraid_queue_lck() 388 * NOTE: scb can be null even though certain commands completed in megaraid_queue_lck() 394 scb = mega_build_cmd(adapter, scmd, &busy); in megaraid_queue_lck() 395 if (!scb) in megaraid_queue_lck() 398 scb->state |= SCB_PENDQ; in megaraid_queue_lck() 399 list_add_tail(&scb->list, &adapter->pending_list); in megaraid_queue_lck() 422 * Allocate a SCB structure. This is the central structure for controller in DEF_SCSI_QCMD() 429 scb_t *scb; in DEF_SCSI_QCMD() local [all …]
|
/linux/drivers/scsi/aic94xx/ |
H A D | aic94xx_tmf.c | 83 struct scb *scb; \ 96 scb = ascb->scb; \ 97 scb->header.opcode = CLEAR_NEXUS 120 scb->clear_nexus.nexus = NEXUS_ADAPTER; in asd_clear_nexus_ha() 129 scb->clear_nexus.nexus = NEXUS_PORT; in asd_clear_nexus_port() 130 scb->clear_nexus.conn_mask = port->phy_mask; in asd_clear_nexus_port() 146 scb->clear_nexus.nexus = NEXUS_I_T; in asd_clear_nexus_I_T() 149 scb->clear_nexus.flags = EXEC_Q | SUSPEND_TX; in asd_clear_nexus_I_T() 152 scb->clear_nexus.flags = SEND_Q | NOTINQ; in asd_clear_nexus_I_T() 155 scb->clear_nexus.flags = RESUME_TX; in asd_clear_nexus_I_T() [all …]
|
H A D | aic94xx_task.c | 129 le64_to_cpu(ascb->scb->ssp_task.sg_element[0].bus_addr); in asd_unmap_scatterlist() 352 struct scb *scb; in asd_build_ata_ascb() local 356 scb = ascb->scb; in asd_build_ata_ascb() 359 scb->header.opcode = CONTROL_ATA_DEV; in asd_build_ata_ascb() 361 scb->header.opcode = INITIATE_ATAPI_TASK; in asd_build_ata_ascb() 363 scb->header.opcode = INITIATE_ATA_TASK; in asd_build_ata_ascb() 365 scb->ata_task.proto_conn_rate = (1 << 5); /* STP */ in asd_build_ata_ascb() 367 scb->ata_task.proto_conn_rate |= dev->linkrate; in asd_build_ata_ascb() 369 scb->ata_task.total_xfer_len = cpu_to_le32(task->total_xfer_len); in asd_build_ata_ascb() 370 scb->ata_task.fis = task->ata_task.fis; in asd_build_ata_ascb() [all …]
|
H A D | aic94xx_scb.c | 3 * Aic94xx SAS/SATA driver SCB management. 19 /* ---------- EMPTY SCB ---------- */ 359 * @ascb: pointer to Empty SCB 369 struct empty_scb *escb = &ascb->scb->escb; in asd_invalidate_edb() 384 le64_to_cpu(ascb->scb->header.next_scb), in asd_invalidate_edb() 385 le16_to_cpu(ascb->scb->header.index), in asd_invalidate_edb() 386 ascb->scb->header.opcode); in asd_invalidate_edb() 421 le64_to_cpu(ascb->scb->header.next_scb), in escb_tasklet_complete() 422 le16_to_cpu(ascb->scb->header.index), in escb_tasklet_complete() 423 ascb->scb->header.opcode); in escb_tasklet_complete() [all …]
|
/linux/drivers/scsi/aic7xxx/ |
H A D | aic79xx_core.c | 69 { MPARERR, "Scratch or SCB Memory Parity Error" }, 128 struct scb *scb); 131 struct scb *scb); 167 struct scb *scb); 180 struct scb *scb, u_int col_idx); 182 struct scb *scb); 185 struct scb *prev_scb, 186 struct scb *scb); 216 struct scb *scb); 218 struct scb *scb); [all …]
|
H A D | aic7xxx_core.c | 79 { MPARERR, "Scratch or SCB Memory Parity Error" }, 154 struct scb *scb); 158 struct scb *scb); 195 struct scb *scb); 203 struct scb *prev_scb, 204 struct scb *scb); 238 /************************** SCB and SCB queue management **********************/ 260 static void ahc_freeze_devq(struct ahc_softc *ahc, struct scb *scb); 265 struct scb *scb); 304 * manual pause while accessing scb ram, accesses to certain registers [all …]
|
H A D | aic7xxx_osm.h | 229 ahc_scb_timer_reset(struct scb *scb, u_int usec) in ahc_scb_timer_reset() argument 335 * Per-SCB OSM storage. 525 void ahc_set_transaction_status(struct scb *scb, uint32_t status) in ahc_set_transaction_status() argument 527 ahc_cmd_set_transaction_status(scb->io_ctx,status); in ahc_set_transaction_status() 538 void ahc_set_scsi_status(struct scb *scb, uint32_t status) in ahc_set_scsi_status() argument 540 ahc_cmd_set_scsi_status(scb->io_ctx, status); in ahc_set_scsi_status() 550 uint32_t ahc_get_transaction_status(struct scb *scb) in ahc_get_transaction_status() argument 552 return (ahc_cmd_get_transaction_status(scb->io_ctx)); in ahc_get_transaction_status() 562 uint32_t ahc_get_scsi_status(struct scb *scb) in ahc_get_scsi_status() argument 564 return (ahc_cmd_get_scsi_status(scb->io_ctx)); in ahc_get_scsi_status() [all …]
|
H A D | aic79xx_osm.h | 324 * Per-SCB OSM storage. 507 void ahd_set_transaction_status(struct scb *scb, uint32_t status) in ahd_set_transaction_status() argument 509 ahd_cmd_set_transaction_status(scb->io_ctx,status); in ahd_set_transaction_status() 520 void ahd_set_scsi_status(struct scb *scb, uint32_t status) in ahd_set_scsi_status() argument 522 ahd_cmd_set_scsi_status(scb->io_ctx, status); in ahd_set_scsi_status() 532 uint32_t ahd_get_transaction_status(struct scb *scb) in ahd_get_transaction_status() argument 534 return (ahd_cmd_get_transaction_status(scb->io_ctx)); in ahd_get_transaction_status() 544 uint32_t ahd_get_scsi_status(struct scb *scb) in ahd_get_scsi_status() argument 546 return (ahd_cmd_get_scsi_status(scb->io_ctx)); in ahd_get_scsi_status() 550 void ahd_set_transaction_tag(struct scb *scb, int enabled, u_int type) in ahd_set_transaction_tag() argument [all …]
|
H A D | aic7xxx_osm.c | 39 * SCB paging, and other rework of the code. 254 ahc_print_path(struct ahc_softc *ahc, struct scb *scb) in ahc_print_path() argument 258 scb != NULL ? SCB_GET_CHANNEL(ahc, scb) : 'X', in ahc_print_path() 259 scb != NULL ? SCB_GET_TARGET(ahc, scb) : -1, in ahc_print_path() 260 scb != NULL ? SCB_GET_LUN(scb) : -1); in ahc_print_path() 364 struct scb *); 454 static void ahc_linux_unmap_scb(struct ahc_softc*, struct scb*); 456 static int ahc_linux_map_seg(struct ahc_softc *ahc, struct scb *scb, 461 ahc_linux_unmap_scb(struct ahc_softc *ahc, struct scb *scb) in ahc_linux_unmap_scb() argument 465 cmd = scb->io_ctx; in ahc_linux_unmap_scb() [all …]
|
H A D | aic79xx_inline.h | 99 void *ahd_sg_setup(struct ahd_softc *ahd, struct scb *scb, 107 struct scb *scb, int op); 138 struct scb * 140 void ahd_queue_scb(struct ahd_softc *ahd, struct scb *scb); 143 struct scb *scb); 145 struct scb *scb); 158 ahd_get_sense_buf(struct ahd_softc *ahd, struct scb *scb) in ahd_get_sense_buf() argument 160 return (scb->sense_data); in ahd_get_sense_buf() 164 ahd_get_sense_bufaddr(struct ahd_softc *ahd, struct scb *scb) in ahd_get_sense_bufaddr() argument 166 return (scb->sense_busaddr); in ahd_get_sense_bufaddr()
|
H A D | aic79xx_osm.c | 224 ahd_print_path(struct ahd_softc *ahd, struct scb *scb) in ahd_print_path() argument 228 scb != NULL ? SCB_GET_CHANNEL(ahd, scb) : 'X', in ahd_print_path() 229 scb != NULL ? SCB_GET_TARGET(ahd, scb) : -1, in ahd_print_path() 230 scb != NULL ? SCB_GET_LUN(scb) : -1); in ahd_print_path() 354 struct scb *); 531 static void ahd_linux_unmap_scb(struct ahd_softc*, struct scb*); 534 ahd_linux_unmap_scb(struct ahd_softc *ahd, struct scb *scb) in ahd_linux_unmap_scb() argument 538 cmd = scb->io_ctx; in ahd_linux_unmap_scb() 540 ahd_sync_sglist(ahd, scb, BUS_DMASYNC_POSTWRITE); in ahd_linux_unmap_scb() 578 * Queue an SCB to the controller. [all …]
|
H A D | aic79xx.h | 76 #define SCB_IS_SCSIBUS_B(ahd, scb) (0) argument 77 #define SCB_GET_OUR_ID(scb) \ argument 78 SCSIID_OUR_ID((scb)->hscb->scsiid) 79 #define SCB_GET_TARGET(ahd, scb) \ argument 80 SCSIID_TARGET((ahd), (scb)->hscb->scsiid) 81 #define SCB_GET_CHANNEL(ahd, scb) \ argument 82 SCSIID_CHANNEL(ahd, (scb)->hscb->scsiid) 83 #define SCB_GET_LUN(scb) \ argument 84 ((scb)->hscb->lun) 85 #define SCB_GET_TARGET_OFFSET(ahd, scb) \ argument [all …]
|
H A D | aic7xxx_inline.h | 55 struct scb *scb, int op); 84 struct scb* 86 void ahc_free_scb(struct ahc_softc *ahc, struct scb *scb); 87 struct scb * 89 void ahc_queue_scb(struct ahc_softc *ahc, struct scb *scb); 92 struct scb *scb);
|
/linux/drivers/scsi/megaraid/ |
H A D | megaraid_mbox.c | 953 scb_t *scb; in megaraid_alloc_cmd_packets() local 1011 * Allocate memory for the base list of scb. Later allocate memory for in megaraid_alloc_cmd_packets() 1013 * scb to the allocated components in megaraid_alloc_cmd_packets() 1014 * NOTE: The code to allocate SCB will be duplicated in all the LLD in megaraid_alloc_cmd_packets() 1035 // Adjust the scb pointers and link in the free pool in megaraid_alloc_cmd_packets() 1041 scb = adapter->kscb_list + i; in megaraid_alloc_cmd_packets() 1068 scb->ccb = (caddr_t)ccb; in megaraid_alloc_cmd_packets() 1069 scb->gp = 0; in megaraid_alloc_cmd_packets() 1071 scb->sno = i; // command index in megaraid_alloc_cmd_packets() 1073 scb->scp = NULL; in megaraid_alloc_cmd_packets() [all …]
|
/linux/drivers/net/ethernet/i825xx/ |
H A D | sun3_82586.c | 76 sizeof(scp)=12; sizeof(scb)=16; sizeof(iscp)=8; 77 sizeof(scp)+sizeof(iscp)+sizeof(scb) = 36 = INIT 103 if(!p->scb->cmd_cuc) break; \ 106 …%s: scb_cmd timed out: %04x,%04x .. disabling i82586!!\n",dev->name,p->scb->cmd_cuc,p->scb->cus); \ 111 if(!p->scb->cmd_ruc) break; \ 114 …b_cmd (ruc) timed out: %04x,%04x .. disabling i82586!!\n",dev->name,p->scb->cmd_ruc,p->scb->rus); \ 154 volatile struct scb_struct *scb; /* volatile is important */ member 257 p->scb = (struct scb_struct *) ((char *)p->iscp + sizeof(struct iscp_struct)); in alloc586() 264 p->iscp->scb_offset = make16(p->scb); in alloc586() 278 memset((char *)p->scb,0,sizeof(struct scb_struct)); in alloc586() [all …]
|
H A D | lib82596.c | 120 #define PORT_ALTSCP 0x02 /* alternate SCB address */ 290 u32 scb; member 302 volatile struct i596_scb scb __attribute__((aligned(32))); member 417 dma_sync_cpu(dev, &(dma->scb), sizeof(struct i596_scb)); in wait_cmd() 418 while (--delcnt && dma->scb.command) { in wait_cmd() 420 dma_sync_cpu(dev, &(dma->scb), sizeof(struct i596_scb)); in wait_cmd() 425 SWAP16(dma->scb.status), in wait_cmd() 426 SWAP16(dma->scb.command)); in wait_cmd() 443 printk(KERN_DEBUG "iscp at %p, iscp.stat = %08x, .scb = %08x\n", in i596_display_data() 444 &dma->iscp, SWAP32(dma->iscp.stat), SWAP32(dma->iscp.scb)); in i596_display_data() [all …]
|
H A D | 82596.c | 146 #define PORT_ALTSCP 0x02 /* alternate SCB address */ 306 struct i596_scb *scb; member 318 volatile struct i596_scb scb; member 418 dev->name, str, lp->scb.status, lp->scb.command); in wait_istat() 428 while (--delcnt && lp->scb.command) in wait_cmd() 432 dev->name, str, lp->scb.status, lp->scb.command); in wait_cmd() 464 printk(KERN_ERR "iscp at %p, iscp.stat = %08lx, .scb = %p\n", in i596_display_data() 465 &lp->iscp, lp->iscp.stat, lp->iscp.scb); in i596_display_data() 466 printk(KERN_ERR "scb at %p, scb.status = %04x, .command = %04x," in i596_display_data() 468 &lp->scb, lp->scb.status, lp->scb.command, in i596_display_data() [all …]
|
/linux/Documentation/devicetree/bindings/i2c/ |
H A D | i2c-img-scb.txt | 1 IMG Serial Control Bus (SCB) I2C Controller 4 - compatible: "img,scb-i2c" 9 "scb", for the SCB core clock. 18 compatible = "img,scb-i2c"; 22 clock-names = "scb", "sys";
|