Lines Matching refs:chan_obj

258 bool usb_dwc_hal_chan_alloc(usb_dwc_hal_context_t *hal, usb_dwc_hal_chan_t *chan_obj, void *chan_ct…  in usb_dwc_hal_chan_alloc()  argument
268 hal->channels.hdls[i] = chan_obj; in usb_dwc_hal_chan_alloc()
276 memset(chan_obj, 0, sizeof(usb_dwc_hal_chan_t)); in usb_dwc_hal_chan_alloc()
277 chan_obj->flags.chan_idx = chan_idx; in usb_dwc_hal_chan_alloc()
278 chan_obj->regs = usb_dwc_ll_chan_get_regs(hal->dev, chan_idx); in usb_dwc_hal_chan_alloc()
279 chan_obj->chan_ctx = chan_ctx; in usb_dwc_hal_chan_alloc()
282 …usb_dwc_ll_hcint_read_and_clear_intrs(chan_obj->regs); //Clear the interrupt bits for t… in usb_dwc_hal_chan_alloc()
283 usb_dwc_ll_haintmsk_en_chan_intr(hal->dev, 1 << chan_obj->flags.chan_idx); in usb_dwc_hal_chan_alloc()
284 …usb_dwc_ll_hcintmsk_set_intr_mask(chan_obj->regs, CHAN_INTRS_EN_MSK); //Unmask interrupts for thi… in usb_dwc_hal_chan_alloc()
285 usb_dwc_ll_hctsiz_set_pid(chan_obj->regs, 0); //Set the initial PID to zero in usb_dwc_hal_chan_alloc()
286 …usb_dwc_ll_hctsiz_init(chan_obj->regs); //Set the non changing parts of the HCTSIZ registers… in usb_dwc_hal_chan_alloc()
290 void usb_dwc_hal_chan_free(usb_dwc_hal_context_t *hal, usb_dwc_hal_chan_t *chan_obj) in usb_dwc_hal_chan_free() argument
292 … if (chan_obj->type == USB_DWC_XFER_TYPE_INTR || chan_obj->type == USB_DWC_XFER_TYPE_ISOCHRONOUS) { in usb_dwc_hal_chan_free()
295 hal->periodic_frame_list[i] &= ~(1 << chan_obj->flags.chan_idx); in usb_dwc_hal_chan_free()
299 HAL_ASSERT(!chan_obj->flags.active); in usb_dwc_hal_chan_free()
301 usb_dwc_ll_haintmsk_dis_chan_intr(hal->dev, 1 << chan_obj->flags.chan_idx); in usb_dwc_hal_chan_free()
303 hal->channels.hdls[chan_obj->flags.chan_idx] = NULL; in usb_dwc_hal_chan_free()
310 void usb_dwc_hal_chan_set_ep_char(usb_dwc_hal_context_t *hal, usb_dwc_hal_chan_t *chan_obj, usb_dwc… in usb_dwc_hal_chan_set_ep_char() argument
313 HAL_ASSERT(!chan_obj->flags.active); in usb_dwc_hal_chan_set_ep_char()
315 usb_dwc_ll_hcchar_init(chan_obj->regs, in usb_dwc_hal_chan_set_ep_char()
323 chan_obj->type = ep_char->type; in usb_dwc_hal_chan_set_ep_char()
353 hal->periodic_frame_list[index] |= 1 << chan_obj->flags.chan_idx; in usb_dwc_hal_chan_set_ep_char()
367 … usb_dwc_ll_hctsiz_set_sched_info(chan_obj->regs, tokens_per_frame, ep_char->periodic.offset); in usb_dwc_hal_chan_set_ep_char()
374 void usb_dwc_hal_chan_activate(usb_dwc_hal_chan_t *chan_obj, void *xfer_desc_list, int desc_list_le… in usb_dwc_hal_chan_activate() argument
377 HAL_ASSERT(!chan_obj->flags.active); in usb_dwc_hal_chan_activate()
379 usb_dwc_ll_hcdma_set_qtd_list_addr(chan_obj->regs, xfer_desc_list, start_idx); in usb_dwc_hal_chan_activate()
380 usb_dwc_ll_hctsiz_set_qtd_list_len(chan_obj->regs, desc_list_len); in usb_dwc_hal_chan_activate()
381 usb_dwc_ll_hcchar_enable_chan(chan_obj->regs); //Start the channel in usb_dwc_hal_chan_activate()
382 chan_obj->flags.active = 1; in usb_dwc_hal_chan_activate()
385 bool usb_dwc_hal_chan_request_halt(usb_dwc_hal_chan_t *chan_obj) in usb_dwc_hal_chan_request_halt() argument
387 if (chan_obj->flags.active) { in usb_dwc_hal_chan_request_halt()
397 usb_dwc_ll_hcchar_disable_chan(chan_obj->regs); in usb_dwc_hal_chan_request_halt()
398 chan_obj->flags.halt_requested = 1; in usb_dwc_hal_chan_request_halt()
466 usb_dwc_hal_chan_event_t usb_dwc_hal_chan_decode_intr(usb_dwc_hal_chan_t *chan_obj) in usb_dwc_hal_chan_decode_intr() argument
468 uint32_t chan_intrs = usb_dwc_ll_hcint_read_and_clear_intrs(chan_obj->regs); in usb_dwc_hal_chan_decode_intr()
490 chan_obj->error = error; in usb_dwc_hal_chan_decode_intr()
491 chan_obj->flags.active = 0; in usb_dwc_hal_chan_decode_intr()
495 if (chan_obj->flags.halt_requested) { in usb_dwc_hal_chan_decode_intr()
496 chan_obj->flags.halt_requested = 0; in usb_dwc_hal_chan_decode_intr()
502 chan_obj->flags.active = 0; in usb_dwc_hal_chan_decode_intr()
510 usb_dwc_ll_hcchar_disable_chan(chan_obj->regs); in usb_dwc_hal_chan_decode_intr()