Lines Matching refs:command
97 static int ips_ioctl(struct cdev *dev, u_long command, caddr_t addr, int32_t flags, struct thread *… in ips_ioctl() argument
102 return ips_ioctl_request(sc, command, addr, flags); in ips_ioctl()
107 ips_command_t *command = cmdptr; in ips_cmd_dmaload() local
110 command->command_phys_addr = segments[0].ds_addr; in ips_cmd_dmaload()
118 ips_command_t *command; in ips_cmdqueue_free() local
123 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()
149 ips_command_t *command; in ips_cmdqueue_init() local
158 command = &sc->commandarray[i]; in ips_cmdqueue_init()
159 command->id = i; in ips_cmdqueue_init()
160 command->sc = sc; in ips_cmdqueue_init()
162 if(bus_dmamem_alloc(sc->command_dmatag,&command->command_buffer, in ips_cmdqueue_init()
163 BUS_DMA_NOWAIT, &command->command_dmamap)) in ips_cmdqueue_init()
165 bus_dmamap_load(sc->command_dmatag, command->command_dmamap, in ips_cmdqueue_init()
166 command->command_buffer,IPS_COMMAND_LEN, in ips_cmdqueue_init()
167 ips_cmd_dmaload, command, BUS_DMA_NOWAIT); in ips_cmdqueue_init()
168 if(!command->command_phys_addr){ in ips_cmdqueue_init()
170 command->command_buffer, command->command_dmamap); in ips_cmdqueue_init()
175 command->data_dmatag = sc->sg_dmatag; in ips_cmdqueue_init()
176 if (bus_dmamap_create(command->data_dmatag, 0, in ips_cmdqueue_init()
177 &command->data_dmamap)) in ips_cmdqueue_init()
179 SLIST_INSERT_HEAD(&sc->free_cmd_list, command, next); in ips_cmdqueue_init()
181 sc->staticcmd = command; in ips_cmdqueue_init()
197 ips_command_t *command; in ips_get_free_cmd() local
203 command = SLIST_FIRST(&sc->free_cmd_list); in ips_get_free_cmd()
204 if(!command || (sc->state & IPS_TIMEOUT)){ in ips_get_free_cmd()
212 command = sc->staticcmd; in ips_get_free_cmd()
215 clear_ips_command(command); in ips_get_free_cmd()
216 bzero(command->command_buffer, IPS_COMMAND_LEN); in ips_get_free_cmd()
217 *cmd = command; in ips_get_free_cmd()
222 void ips_insert_free_cmd(ips_softc_t *sc, ips_command_t *command) in ips_insert_free_cmd() argument
228 if (command != sc->staticcmd) { in ips_insert_free_cmd()
229 SLIST_INSERT_HEAD(&sc->free_cmd_list, command, next); in ips_insert_free_cmd()
309 ips_command_t *command; in ips_timeout() local
312 command = &sc->commandarray[0]; in ips_timeout()
314 if(!command[i].timeout){ in ips_timeout()
317 command[i].timeout--; in ips_timeout()
318 if(!command[i].timeout){ in ips_timeout()
323 ips_set_error(&command[i], ETIMEDOUT); in ips_timeout()
324 command[i].callback(&command[i]); in ips_timeout()
517 ips_command_t *command; in ips_morpheus_check_intr() local
529 command = &sc->commandarray[cmdnumber]; in ips_morpheus_check_intr()
530 command->status.value = status.value; in ips_morpheus_check_intr()
531 command->timeout = 0; in ips_morpheus_check_intr()
532 command->callback(command); in ips_morpheus_check_intr()
548 void ips_morpheus_poll(ips_command_t *command) in ips_morpheus_poll() argument
556 ts = time_second + command->timeout; in ips_morpheus_poll()
557 while ((command->timeout != 0) in ips_morpheus_poll()
558 && (ips_morpheus_check_intr(command->sc) == 0) in ips_morpheus_poll()
563 void ips_issue_morpheus_cmd(ips_command_t *command) in ips_issue_morpheus_cmd() argument
566 if(command->sc->state & IPS_OFFLINE){ in ips_issue_morpheus_cmd()
567 ips_set_error(command, EINVAL); in ips_issue_morpheus_cmd()
568 command->callback(command); in ips_issue_morpheus_cmd()
571 command->timeout = 10; in ips_issue_morpheus_cmd()
572 ips_write_4(command->sc, MORPHEUS_REG_IQPR, command->command_phys_addr); in ips_issue_morpheus_cmd()
729 void ips_issue_copperhead_cmd(ips_command_t *command) in ips_issue_copperhead_cmd() argument
733 if(command->sc->state & IPS_OFFLINE){ in ips_issue_copperhead_cmd()
734 ips_set_error(command, EINVAL); in ips_issue_copperhead_cmd()
735 command->callback(command); in ips_issue_copperhead_cmd()
738 command->timeout = 10; in ips_issue_copperhead_cmd()
739 for(i = 0; ips_read_4(command->sc, COPPER_REG_CCCR) & COPPER_SEM_BIT; in ips_issue_copperhead_cmd()
747 ips_write_4(command->sc, COPPER_REG_CCSAR, command->command_phys_addr); in ips_issue_copperhead_cmd()
748 ips_write_2(command->sc, COPPER_REG_CCCR, COPPER_CMD_START); in ips_issue_copperhead_cmd()
751 void ips_copperhead_poll(ips_command_t *command) in ips_copperhead_poll() argument