Lines Matching refs:command
106 ips_command_t *command = cmdptr; in ips_cmd_dmaload() local
110 command->command_phys_addr = segments[0].ds_addr; in ips_cmd_dmaload()
119 ips_command_t *command; in ips_cmdqueue_free() local
124 command = &sc->commandarray[i]; in ips_cmdqueue_free()
125 if (command->command_phys_addr == 0) in ips_cmdqueue_free()
128 command->command_dmamap); in ips_cmdqueue_free()
130 command->command_buffer, in ips_cmdqueue_free()
131 command->command_dmamap); in ips_cmdqueue_free()
132 if (command->data_dmamap != NULL) in ips_cmdqueue_free()
133 bus_dmamap_destroy(command->data_dmatag, in ips_cmdqueue_free()
134 command->data_dmamap); in ips_cmdqueue_free()
155 ips_command_t *command; in ips_cmdqueue_init() local
161 command = &sc->commandarray[i]; in ips_cmdqueue_init()
162 command->id = i; in ips_cmdqueue_init()
163 command->sc = sc; in ips_cmdqueue_init()
165 &command->command_buffer, BUS_DMA_NOWAIT, in ips_cmdqueue_init()
166 &command->command_dmamap)) in ips_cmdqueue_init()
168 bus_dmamap_load(sc->command_dmatag, command->command_dmamap, in ips_cmdqueue_init()
169 command->command_buffer, IPS_COMMAND_LEN, ips_cmd_dmaload, in ips_cmdqueue_init()
170 command, BUS_DMA_NOWAIT); in ips_cmdqueue_init()
171 if (command->command_phys_addr == 0) { in ips_cmdqueue_init()
173 command->command_buffer, command->command_dmamap); in ips_cmdqueue_init()
178 sc->staticcmd = command; in ips_cmdqueue_init()
180 command->data_dmatag = sc->sg_dmatag; in ips_cmdqueue_init()
181 if (bus_dmamap_create(command->data_dmatag, 0, in ips_cmdqueue_init()
182 &command->data_dmamap)) in ips_cmdqueue_init()
184 SLIST_INSERT_HEAD(&sc->free_cmd_list, command, next); in ips_cmdqueue_init()
203 ips_command_t *command = NULL; in ips_get_free_cmd() local
216 command = sc->staticcmd; in ips_get_free_cmd()
219 command = SLIST_FIRST(&sc->free_cmd_list); in ips_get_free_cmd()
220 if (!command || (sc->state & IPS_TIMEOUT)) { in ips_get_free_cmd()
232 bzero(&command->status, (char *)(command + 1) - (char *)(&command->status)); in ips_get_free_cmd()
233 bzero(command->command_buffer, IPS_COMMAND_LEN); in ips_get_free_cmd()
234 *cmd = command; in ips_get_free_cmd()
240 ips_insert_free_cmd(ips_softc_t *sc, ips_command_t *command) in ips_insert_free_cmd() argument
243 if (command == sc->staticcmd) in ips_insert_free_cmd()
246 SLIST_INSERT_HEAD(&sc->free_cmd_list, command, next); in ips_insert_free_cmd()
333 ips_command_t *command; in ips_timeout() local
338 command = &sc->commandarray[0]; in ips_timeout()
340 if (!command[i].timeout) in ips_timeout()
342 command[i].timeout--; in ips_timeout()
343 if (command[i].timeout == 0) { in ips_timeout()
348 command[i].status.value = IPS_ERROR_STATUS; in ips_timeout()
349 command[i].callback(&command[i]); in ips_timeout()
556 ips_command_t *command; in ips_morpheus_check_intr() local
570 command = &sc->commandarray[cmdnumber]; in ips_morpheus_check_intr()
571 command->status.value = status.value; in ips_morpheus_check_intr()
572 command->timeout = 0; in ips_morpheus_check_intr()
573 command->callback(command); in ips_morpheus_check_intr()
591 ips_issue_morpheus_cmd(ips_command_t *command) in ips_issue_morpheus_cmd() argument
595 if (command->sc->state & IPS_OFFLINE) { in ips_issue_morpheus_cmd()
597 command->status.value = IPS_ERROR_STATUS; in ips_issue_morpheus_cmd()
598 command->callback(command); in ips_issue_morpheus_cmd()
601 command->timeout = 10; in ips_issue_morpheus_cmd()
602 ips_write_4(command->sc, MORPHEUS_REG_IQPR, command->command_phys_addr); in ips_issue_morpheus_cmd()
607 ips_morpheus_poll(ips_command_t *command) in ips_morpheus_poll() argument
611 ts = time_uptime + command->timeout; in ips_morpheus_poll()
612 while (command->timeout != 0 && in ips_morpheus_poll()
613 ips_morpheus_check_intr(command->sc) == 0 && in ips_morpheus_poll()
783 ips_issue_copperhead_cmd(ips_command_t *command) in ips_issue_copperhead_cmd() argument
789 if (command->sc->state & IPS_OFFLINE) { in ips_issue_copperhead_cmd()
791 command->status.value = IPS_ERROR_STATUS; in ips_issue_copperhead_cmd()
792 command->callback(command); in ips_issue_copperhead_cmd()
795 command->timeout = 10; in ips_issue_copperhead_cmd()
796 for (i = 0; ips_read_4(command->sc, COPPER_REG_CCCR) & COPPER_SEM_BIT; in ips_issue_copperhead_cmd()
805 ips_write_4(command->sc, COPPER_REG_CCSAR, command->command_phys_addr); in ips_issue_copperhead_cmd()
806 ips_write_2(command->sc, COPPER_REG_CCCR, COPPER_CMD_START); in ips_issue_copperhead_cmd()
811 ips_copperhead_poll(ips_command_t *command) in ips_copperhead_poll() argument