Lines Matching refs:command
95 static int ips_ioctl(struct cdev *dev, u_long command, caddr_t addr, int32_t flags, struct thread *… in ips_ioctl() argument
100 return ips_ioctl_request(sc, command, addr, flags); in ips_ioctl()
105 ips_command_t *command = cmdptr; in ips_cmd_dmaload() local
108 command->command_phys_addr = segments[0].ds_addr; in ips_cmd_dmaload()
116 ips_command_t *command; in ips_cmdqueue_free() local
121 command = &sc->commandarray[i]; in ips_cmdqueue_free()
123 if(command->command_phys_addr == 0) in ips_cmdqueue_free()
126 command->command_dmamap); in ips_cmdqueue_free()
128 command->command_buffer, in ips_cmdqueue_free()
129 command->command_dmamap); in ips_cmdqueue_free()
130 if (command->data_dmamap != NULL) in ips_cmdqueue_free()
131 bus_dmamap_destroy(command->data_dmatag, in ips_cmdqueue_free()
132 command->data_dmamap); in ips_cmdqueue_free()
147 ips_command_t *command; in ips_cmdqueue_init() local
156 command = &sc->commandarray[i]; in ips_cmdqueue_init()
157 command->id = i; in ips_cmdqueue_init()
158 command->sc = sc; in ips_cmdqueue_init()
160 if(bus_dmamem_alloc(sc->command_dmatag,&command->command_buffer, in ips_cmdqueue_init()
161 BUS_DMA_NOWAIT, &command->command_dmamap)) in ips_cmdqueue_init()
163 bus_dmamap_load(sc->command_dmatag, command->command_dmamap, in ips_cmdqueue_init()
164 command->command_buffer,IPS_COMMAND_LEN, in ips_cmdqueue_init()
165 ips_cmd_dmaload, command, BUS_DMA_NOWAIT); in ips_cmdqueue_init()
166 if(!command->command_phys_addr){ in ips_cmdqueue_init()
168 command->command_buffer, command->command_dmamap); in ips_cmdqueue_init()
173 command->data_dmatag = sc->sg_dmatag; in ips_cmdqueue_init()
174 if (bus_dmamap_create(command->data_dmatag, 0, in ips_cmdqueue_init()
175 &command->data_dmamap)) in ips_cmdqueue_init()
177 SLIST_INSERT_HEAD(&sc->free_cmd_list, command, next); in ips_cmdqueue_init()
179 sc->staticcmd = command; in ips_cmdqueue_init()
195 ips_command_t *command; in ips_get_free_cmd() local
201 command = SLIST_FIRST(&sc->free_cmd_list); in ips_get_free_cmd()
202 if(!command || (sc->state & IPS_TIMEOUT)){ in ips_get_free_cmd()
210 command = sc->staticcmd; in ips_get_free_cmd()
213 clear_ips_command(command); in ips_get_free_cmd()
214 bzero(command->command_buffer, IPS_COMMAND_LEN); in ips_get_free_cmd()
215 *cmd = command; in ips_get_free_cmd()
220 void ips_insert_free_cmd(ips_softc_t *sc, ips_command_t *command) in ips_insert_free_cmd() argument
226 if (command != sc->staticcmd) { in ips_insert_free_cmd()
227 SLIST_INSERT_HEAD(&sc->free_cmd_list, command, next); in ips_insert_free_cmd()
306 ips_command_t *command; in ips_timeout() local
309 command = &sc->commandarray[0]; in ips_timeout()
311 if(!command[i].timeout){ in ips_timeout()
314 command[i].timeout--; in ips_timeout()
315 if(!command[i].timeout){ in ips_timeout()
320 ips_set_error(&command[i], ETIMEDOUT); in ips_timeout()
321 command[i].callback(&command[i]); in ips_timeout()
514 ips_command_t *command; in ips_morpheus_check_intr() local
526 command = &sc->commandarray[cmdnumber]; in ips_morpheus_check_intr()
527 command->status.value = status.value; in ips_morpheus_check_intr()
528 command->timeout = 0; in ips_morpheus_check_intr()
529 command->callback(command); in ips_morpheus_check_intr()
545 void ips_morpheus_poll(ips_command_t *command) in ips_morpheus_poll() argument
553 ts = time_second + command->timeout; in ips_morpheus_poll()
554 while ((command->timeout != 0) in ips_morpheus_poll()
555 && (ips_morpheus_check_intr(command->sc) == 0) in ips_morpheus_poll()
560 void ips_issue_morpheus_cmd(ips_command_t *command) in ips_issue_morpheus_cmd() argument
563 if(command->sc->state & IPS_OFFLINE){ in ips_issue_morpheus_cmd()
564 ips_set_error(command, EINVAL); in ips_issue_morpheus_cmd()
565 command->callback(command); in ips_issue_morpheus_cmd()
568 command->timeout = 10; in ips_issue_morpheus_cmd()
569 ips_write_4(command->sc, MORPHEUS_REG_IQPR, command->command_phys_addr); in ips_issue_morpheus_cmd()
728 void ips_issue_copperhead_cmd(ips_command_t *command) in ips_issue_copperhead_cmd() argument
732 if(command->sc->state & IPS_OFFLINE){ in ips_issue_copperhead_cmd()
733 ips_set_error(command, EINVAL); in ips_issue_copperhead_cmd()
734 command->callback(command); in ips_issue_copperhead_cmd()
737 command->timeout = 10; in ips_issue_copperhead_cmd()
738 for(i = 0; ips_read_4(command->sc, COPPER_REG_CCCR) & COPPER_SEM_BIT; in ips_issue_copperhead_cmd()
746 ips_write_4(command->sc, COPPER_REG_CCSAR, command->command_phys_addr); in ips_issue_copperhead_cmd()
747 ips_write_2(command->sc, COPPER_REG_CCCR, COPPER_CMD_START); in ips_issue_copperhead_cmd()
750 void ips_copperhead_poll(ips_command_t *command) in ips_copperhead_poll() argument