Lines Matching refs:command

99 static int ips_ioctl(struct cdev *dev, u_long command, caddr_t addr, int32_t flags, struct thread *…  in ips_ioctl()  argument
104 return ips_ioctl_request(sc, command, addr, flags); in ips_ioctl()
109 ips_command_t *command = cmdptr; in ips_cmd_dmaload() local
112 command->command_phys_addr = segments[0].ds_addr; in ips_cmd_dmaload()
120 ips_command_t *command; in ips_cmdqueue_free() local
125 command = &sc->commandarray[i]; in ips_cmdqueue_free()
127 if(command->command_phys_addr == 0) in ips_cmdqueue_free()
130 command->command_dmamap); in ips_cmdqueue_free()
132 command->command_buffer, in ips_cmdqueue_free()
133 command->command_dmamap); in ips_cmdqueue_free()
134 if (command->data_dmamap != NULL) in ips_cmdqueue_free()
135 bus_dmamap_destroy(command->data_dmatag, in ips_cmdqueue_free()
136 command->data_dmamap); in ips_cmdqueue_free()
151 ips_command_t *command; in ips_cmdqueue_init() local
160 command = &sc->commandarray[i]; in ips_cmdqueue_init()
161 command->id = i; in ips_cmdqueue_init()
162 command->sc = sc; in ips_cmdqueue_init()
164 if(bus_dmamem_alloc(sc->command_dmatag,&command->command_buffer, in ips_cmdqueue_init()
165 BUS_DMA_NOWAIT, &command->command_dmamap)) in ips_cmdqueue_init()
167 bus_dmamap_load(sc->command_dmatag, command->command_dmamap, in ips_cmdqueue_init()
168 command->command_buffer,IPS_COMMAND_LEN, in ips_cmdqueue_init()
169 ips_cmd_dmaload, command, BUS_DMA_NOWAIT); in ips_cmdqueue_init()
170 if(!command->command_phys_addr){ in ips_cmdqueue_init()
172 command->command_buffer, command->command_dmamap); in ips_cmdqueue_init()
177 command->data_dmatag = sc->sg_dmatag; in ips_cmdqueue_init()
178 if (bus_dmamap_create(command->data_dmatag, 0, in ips_cmdqueue_init()
179 &command->data_dmamap)) in ips_cmdqueue_init()
181 SLIST_INSERT_HEAD(&sc->free_cmd_list, command, next); in ips_cmdqueue_init()
183 sc->staticcmd = command; in ips_cmdqueue_init()
199 ips_command_t *command; in ips_get_free_cmd() local
205 command = SLIST_FIRST(&sc->free_cmd_list); in ips_get_free_cmd()
206 if(!command || (sc->state & IPS_TIMEOUT)){ in ips_get_free_cmd()
214 command = sc->staticcmd; in ips_get_free_cmd()
217 clear_ips_command(command); in ips_get_free_cmd()
218 bzero(command->command_buffer, IPS_COMMAND_LEN); in ips_get_free_cmd()
219 *cmd = command; in ips_get_free_cmd()
224 void ips_insert_free_cmd(ips_softc_t *sc, ips_command_t *command) in ips_insert_free_cmd() argument
230 if (command != sc->staticcmd) { in ips_insert_free_cmd()
231 SLIST_INSERT_HEAD(&sc->free_cmd_list, command, next); in ips_insert_free_cmd()
311 ips_command_t *command; in ips_timeout() local
314 command = &sc->commandarray[0]; in ips_timeout()
316 if(!command[i].timeout){ in ips_timeout()
319 command[i].timeout--; in ips_timeout()
320 if(!command[i].timeout){ in ips_timeout()
325 ips_set_error(&command[i], ETIMEDOUT); in ips_timeout()
326 command[i].callback(&command[i]); in ips_timeout()
519 ips_command_t *command; in ips_morpheus_check_intr() local
531 command = &sc->commandarray[cmdnumber]; in ips_morpheus_check_intr()
532 command->status.value = status.value; in ips_morpheus_check_intr()
533 command->timeout = 0; in ips_morpheus_check_intr()
534 command->callback(command); in ips_morpheus_check_intr()
550 void ips_morpheus_poll(ips_command_t *command) in ips_morpheus_poll() argument
558 ts = time_second + command->timeout; in ips_morpheus_poll()
559 while ((command->timeout != 0) in ips_morpheus_poll()
560 && (ips_morpheus_check_intr(command->sc) == 0) in ips_morpheus_poll()
565 void ips_issue_morpheus_cmd(ips_command_t *command) in ips_issue_morpheus_cmd() argument
568 if(command->sc->state & IPS_OFFLINE){ in ips_issue_morpheus_cmd()
569 ips_set_error(command, EINVAL); in ips_issue_morpheus_cmd()
570 command->callback(command); in ips_issue_morpheus_cmd()
573 command->timeout = 10; in ips_issue_morpheus_cmd()
574 ips_write_4(command->sc, MORPHEUS_REG_IQPR, command->command_phys_addr); in ips_issue_morpheus_cmd()
733 void ips_issue_copperhead_cmd(ips_command_t *command) in ips_issue_copperhead_cmd() argument
737 if(command->sc->state & IPS_OFFLINE){ in ips_issue_copperhead_cmd()
738 ips_set_error(command, EINVAL); in ips_issue_copperhead_cmd()
739 command->callback(command); in ips_issue_copperhead_cmd()
742 command->timeout = 10; in ips_issue_copperhead_cmd()
743 for(i = 0; ips_read_4(command->sc, COPPER_REG_CCCR) & COPPER_SEM_BIT; in ips_issue_copperhead_cmd()
751 ips_write_4(command->sc, COPPER_REG_CCSAR, command->command_phys_addr); in ips_issue_copperhead_cmd()
752 ips_write_2(command->sc, COPPER_REG_CCCR, COPPER_CMD_START); in ips_issue_copperhead_cmd()
755 void ips_copperhead_poll(ips_command_t *command) in ips_copperhead_poll() argument