Lines Matching refs:command
96 static int ips_ioctl(struct cdev *dev, u_long command, caddr_t addr, int32_t flags, struct thread *… in ips_ioctl() argument
101 return ips_ioctl_request(sc, command, addr, flags); in ips_ioctl()
106 ips_command_t *command = cmdptr; in ips_cmd_dmaload() local
109 command->command_phys_addr = segments[0].ds_addr; in ips_cmd_dmaload()
117 ips_command_t *command; in ips_cmdqueue_free() local
122 command = &sc->commandarray[i]; in ips_cmdqueue_free()
124 if(command->command_phys_addr == 0) in ips_cmdqueue_free()
127 command->command_dmamap); in ips_cmdqueue_free()
129 command->command_buffer, in ips_cmdqueue_free()
130 command->command_dmamap); in ips_cmdqueue_free()
131 if (command->data_dmamap != NULL) in ips_cmdqueue_free()
132 bus_dmamap_destroy(command->data_dmatag, in ips_cmdqueue_free()
133 command->data_dmamap); in ips_cmdqueue_free()
148 ips_command_t *command; in ips_cmdqueue_init() local
157 command = &sc->commandarray[i]; in ips_cmdqueue_init()
158 command->id = i; in ips_cmdqueue_init()
159 command->sc = sc; in ips_cmdqueue_init()
161 if(bus_dmamem_alloc(sc->command_dmatag,&command->command_buffer, in ips_cmdqueue_init()
162 BUS_DMA_NOWAIT, &command->command_dmamap)) in ips_cmdqueue_init()
164 bus_dmamap_load(sc->command_dmatag, command->command_dmamap, in ips_cmdqueue_init()
165 command->command_buffer,IPS_COMMAND_LEN, in ips_cmdqueue_init()
166 ips_cmd_dmaload, command, BUS_DMA_NOWAIT); in ips_cmdqueue_init()
167 if(!command->command_phys_addr){ in ips_cmdqueue_init()
169 command->command_buffer, command->command_dmamap); in ips_cmdqueue_init()
174 command->data_dmatag = sc->sg_dmatag; in ips_cmdqueue_init()
175 if (bus_dmamap_create(command->data_dmatag, 0, in ips_cmdqueue_init()
176 &command->data_dmamap)) in ips_cmdqueue_init()
178 SLIST_INSERT_HEAD(&sc->free_cmd_list, command, next); in ips_cmdqueue_init()
180 sc->staticcmd = command; in ips_cmdqueue_init()
196 ips_command_t *command; in ips_get_free_cmd() local
202 command = SLIST_FIRST(&sc->free_cmd_list); in ips_get_free_cmd()
203 if(!command || (sc->state & IPS_TIMEOUT)){ in ips_get_free_cmd()
211 command = sc->staticcmd; in ips_get_free_cmd()
214 clear_ips_command(command); in ips_get_free_cmd()
215 bzero(command->command_buffer, IPS_COMMAND_LEN); in ips_get_free_cmd()
216 *cmd = command; in ips_get_free_cmd()
221 void ips_insert_free_cmd(ips_softc_t *sc, ips_command_t *command) in ips_insert_free_cmd() argument
227 if (command != sc->staticcmd) { in ips_insert_free_cmd()
228 SLIST_INSERT_HEAD(&sc->free_cmd_list, command, next); in ips_insert_free_cmd()
296 ips_command_t *command; in ips_timeout() local
299 command = &sc->commandarray[0]; in ips_timeout()
301 if(!command[i].timeout){ in ips_timeout()
304 command[i].timeout--; in ips_timeout()
305 if(!command[i].timeout){ in ips_timeout()
310 ips_set_error(&command[i], ETIMEDOUT); in ips_timeout()
311 command[i].callback(&command[i]); in ips_timeout()
504 ips_command_t *command; in ips_morpheus_check_intr() local
516 command = &sc->commandarray[cmdnumber]; in ips_morpheus_check_intr()
517 command->status.value = status.value; in ips_morpheus_check_intr()
518 command->timeout = 0; in ips_morpheus_check_intr()
519 command->callback(command); in ips_morpheus_check_intr()
535 void ips_morpheus_poll(ips_command_t *command) in ips_morpheus_poll() argument
543 ts = time_second + command->timeout; in ips_morpheus_poll()
544 while ((command->timeout != 0) in ips_morpheus_poll()
545 && (ips_morpheus_check_intr(command->sc) == 0) in ips_morpheus_poll()
550 void ips_issue_morpheus_cmd(ips_command_t *command) in ips_issue_morpheus_cmd() argument
553 if(command->sc->state & IPS_OFFLINE){ in ips_issue_morpheus_cmd()
554 ips_set_error(command, EINVAL); in ips_issue_morpheus_cmd()
555 command->callback(command); in ips_issue_morpheus_cmd()
558 command->timeout = 10; in ips_issue_morpheus_cmd()
559 ips_write_4(command->sc, MORPHEUS_REG_IQPR, command->command_phys_addr); in ips_issue_morpheus_cmd()
716 void ips_issue_copperhead_cmd(ips_command_t *command) in ips_issue_copperhead_cmd() argument
720 if(command->sc->state & IPS_OFFLINE){ in ips_issue_copperhead_cmd()
721 ips_set_error(command, EINVAL); in ips_issue_copperhead_cmd()
722 command->callback(command); in ips_issue_copperhead_cmd()
725 command->timeout = 10; in ips_issue_copperhead_cmd()
726 for(i = 0; ips_read_4(command->sc, COPPER_REG_CCCR) & COPPER_SEM_BIT; in ips_issue_copperhead_cmd()
734 ips_write_4(command->sc, COPPER_REG_CCSAR, command->command_phys_addr); in ips_issue_copperhead_cmd()
735 ips_write_2(command->sc, COPPER_REG_CCCR, COPPER_CMD_START); in ips_issue_copperhead_cmd()
738 void ips_copperhead_poll(ips_command_t *command) in ips_copperhead_poll() argument