c67x00             74 drivers/usb/c67x00/c67x00-drv.c 	struct c67x00_device *c67x00 = __dev;
c67x00             79 drivers/usb/c67x00/c67x00-drv.c 	int_status = c67x00_ll_hpi_status(c67x00);
c67x00             84 drivers/usb/c67x00/c67x00-drv.c 		c67x00_ll_irq(c67x00, int_status);
c67x00             86 drivers/usb/c67x00/c67x00-drv.c 			sie = &c67x00->sie[i];
c67x00             89 drivers/usb/c67x00/c67x00-drv.c 				msg = c67x00_ll_fetch_siemsg(c67x00, i);
c67x00             93 drivers/usb/c67x00/c67x00-drv.c 		int_status = c67x00_ll_hpi_status(c67x00);
c67x00             97 drivers/usb/c67x00/c67x00-drv.c 		dev_warn(&c67x00->pdev->dev, "Not all interrupts handled! "
c67x00            107 drivers/usb/c67x00/c67x00-drv.c 	struct c67x00_device *c67x00;
c67x00            124 drivers/usb/c67x00/c67x00-drv.c 	c67x00 = kzalloc(sizeof(*c67x00), GFP_KERNEL);
c67x00            125 drivers/usb/c67x00/c67x00-drv.c 	if (!c67x00)
c67x00            134 drivers/usb/c67x00/c67x00-drv.c 	c67x00->hpi.base = ioremap(res->start, resource_size(res));
c67x00            135 drivers/usb/c67x00/c67x00-drv.c 	if (!c67x00->hpi.base) {
c67x00            141 drivers/usb/c67x00/c67x00-drv.c 	spin_lock_init(&c67x00->hpi.lock);
c67x00            142 drivers/usb/c67x00/c67x00-drv.c 	c67x00->hpi.regstep = pdata->hpi_regstep;
c67x00            143 drivers/usb/c67x00/c67x00-drv.c 	c67x00->pdata = dev_get_platdata(&pdev->dev);
c67x00            144 drivers/usb/c67x00/c67x00-drv.c 	c67x00->pdev = pdev;
c67x00            146 drivers/usb/c67x00/c67x00-drv.c 	c67x00_ll_init(c67x00);
c67x00            147 drivers/usb/c67x00/c67x00-drv.c 	c67x00_ll_hpi_reg_init(c67x00);
c67x00            149 drivers/usb/c67x00/c67x00-drv.c 	ret = request_irq(res2->start, c67x00_irq, 0, pdev->name, c67x00);
c67x00            155 drivers/usb/c67x00/c67x00-drv.c 	ret = c67x00_ll_reset(c67x00);
c67x00            162 drivers/usb/c67x00/c67x00-drv.c 		c67x00_probe_sie(&c67x00->sie[i], c67x00, i);
c67x00            164 drivers/usb/c67x00/c67x00-drv.c 	platform_set_drvdata(pdev, c67x00);
c67x00            169 drivers/usb/c67x00/c67x00-drv.c 	free_irq(res2->start, c67x00);
c67x00            171 drivers/usb/c67x00/c67x00-drv.c 	iounmap(c67x00->hpi.base);
c67x00            175 drivers/usb/c67x00/c67x00-drv.c 	kfree(c67x00);
c67x00            182 drivers/usb/c67x00/c67x00-drv.c 	struct c67x00_device *c67x00 = platform_get_drvdata(pdev);
c67x00            187 drivers/usb/c67x00/c67x00-drv.c 		c67x00_remove_sie(&c67x00->sie[i]);
c67x00            189 drivers/usb/c67x00/c67x00-drv.c 	c67x00_ll_release(c67x00);
c67x00            193 drivers/usb/c67x00/c67x00-drv.c 		free_irq(res->start, c67x00);
c67x00            195 drivers/usb/c67x00/c67x00-drv.c 	iounmap(c67x00->hpi.base);
c67x00            201 drivers/usb/c67x00/c67x00-drv.c 	kfree(c67x00);
c67x00             35 drivers/usb/c67x00/c67x00-hcd.c 	struct c67x00_hcd *c67x00 = sie->private_data;
c67x00             40 drivers/usb/c67x00/c67x00-hcd.c 	spin_lock_irqsave(&c67x00->lock, flags);
c67x00             42 drivers/usb/c67x00/c67x00-hcd.c 	spin_unlock_irqrestore(&c67x00->lock, flags);
c67x00             49 drivers/usb/c67x00/c67x00-hcd.c 	struct c67x00_hcd *c67x00 = hcd_to_c67x00_hcd(hcd);
c67x00             50 drivers/usb/c67x00/c67x00-hcd.c 	struct c67x00_sie *sie = c67x00->sie;
c67x00             69 drivers/usb/c67x00/c67x00-hcd.c 	struct c67x00_hcd *c67x00 = hcd_to_c67x00_hcd(hcd);
c67x00             70 drivers/usb/c67x00/c67x00-hcd.c 	struct c67x00_sie *sie = c67x00->sie;
c67x00             99 drivers/usb/c67x00/c67x00-hcd.c 			c67x00->low_speed_ports |= (1 << port);
c67x00            101 drivers/usb/c67x00/c67x00-hcd.c 			c67x00->low_speed_ports &= ~(1 << port);
c67x00            130 drivers/usb/c67x00/c67x00-hcd.c 			dev_dbg(c67x00_hcd_dev(c67x00),
c67x00            146 drivers/usb/c67x00/c67x00-hcd.c 			dev_dbg(c67x00_hcd_dev(c67x00),
c67x00            166 drivers/usb/c67x00/c67x00-hcd.c 			dev_dbg(c67x00_hcd_dev(c67x00),
c67x00            172 drivers/usb/c67x00/c67x00-hcd.c 			dev_dbg(c67x00_hcd_dev(c67x00),
c67x00            178 drivers/usb/c67x00/c67x00-hcd.c 			dev_dbg(c67x00_hcd_dev(c67x00),
c67x00            184 drivers/usb/c67x00/c67x00-hcd.c 			dev_dbg(c67x00_hcd_dev(c67x00),
c67x00            195 drivers/usb/c67x00/c67x00-hcd.c 			dev_dbg(c67x00_hcd_dev(c67x00),
c67x00            201 drivers/usb/c67x00/c67x00-hcd.c 			dev_dbg(c67x00_hcd_dev(c67x00),
c67x00            207 drivers/usb/c67x00/c67x00-hcd.c 			dev_dbg(c67x00_hcd_dev(c67x00),
c67x00            220 drivers/usb/c67x00/c67x00-hcd.c 		dev_dbg(c67x00_hcd_dev(c67x00), "%s: unknown\n", __func__);
c67x00            238 drivers/usb/c67x00/c67x00-hcd.c 	struct c67x00_hcd *c67x00 = sie->private_data;
c67x00            239 drivers/usb/c67x00/c67x00-hcd.c 	struct usb_hcd *hcd = c67x00_hcd_to_hcd(c67x00);
c67x00            244 drivers/usb/c67x00/c67x00-hcd.c 			c67x00_sched_kick(c67x00);
c67x00            246 drivers/usb/c67x00/c67x00-hcd.c 			dev_warn(c67x00_hcd_dev(c67x00),
c67x00            259 drivers/usb/c67x00/c67x00-hcd.c 		c67x00_sched_kick(c67x00);
c67x00            285 drivers/usb/c67x00/c67x00-hcd.c 	struct c67x00_hcd *c67x00 = hcd_to_c67x00_hcd(hcd);
c67x00            288 drivers/usb/c67x00/c67x00-hcd.c 	dev_dbg(c67x00_hcd_dev(c67x00), "%s\n", __func__);
c67x00            289 drivers/usb/c67x00/c67x00-hcd.c 	temp_val = c67x00_ll_husb_get_frame(c67x00->sie);
c67x00            331 drivers/usb/c67x00/c67x00-hcd.c 	struct c67x00_hcd *c67x00;
c67x00            344 drivers/usb/c67x00/c67x00-hcd.c 	c67x00 = hcd_to_c67x00_hcd(hcd);
c67x00            346 drivers/usb/c67x00/c67x00-hcd.c 	spin_lock_init(&c67x00->lock);
c67x00            347 drivers/usb/c67x00/c67x00-hcd.c 	c67x00->sie = sie;
c67x00            349 drivers/usb/c67x00/c67x00-hcd.c 	INIT_LIST_HEAD(&c67x00->list[PIPE_ISOCHRONOUS]);
c67x00            350 drivers/usb/c67x00/c67x00-hcd.c 	INIT_LIST_HEAD(&c67x00->list[PIPE_INTERRUPT]);
c67x00            351 drivers/usb/c67x00/c67x00-hcd.c 	INIT_LIST_HEAD(&c67x00->list[PIPE_CONTROL]);
c67x00            352 drivers/usb/c67x00/c67x00-hcd.c 	INIT_LIST_HEAD(&c67x00->list[PIPE_BULK]);
c67x00            353 drivers/usb/c67x00/c67x00-hcd.c 	c67x00->urb_count = 0;
c67x00            354 drivers/usb/c67x00/c67x00-hcd.c 	INIT_LIST_HEAD(&c67x00->td_list);
c67x00            355 drivers/usb/c67x00/c67x00-hcd.c 	c67x00->td_base_addr = CY_HCD_BUF_ADDR + SIE_TD_OFFSET(sie->sie_num);
c67x00            356 drivers/usb/c67x00/c67x00-hcd.c 	c67x00->buf_base_addr = CY_HCD_BUF_ADDR + SIE_BUF_OFFSET(sie->sie_num);
c67x00            357 drivers/usb/c67x00/c67x00-hcd.c 	c67x00->max_frame_bw = MAX_FRAME_BW_STD;
c67x00            361 drivers/usb/c67x00/c67x00-hcd.c 	init_completion(&c67x00->endpoint_disable);
c67x00            362 drivers/usb/c67x00/c67x00-hcd.c 	retval = c67x00_sched_start_scheduler(c67x00);
c67x00            376 drivers/usb/c67x00/c67x00-hcd.c 	sie->private_data = c67x00;
c67x00            383 drivers/usb/c67x00/c67x00-hcd.c 	c67x00_sched_stop_scheduler(c67x00);
c67x00            393 drivers/usb/c67x00/c67x00-hcd.c 	struct c67x00_hcd *c67x00 = sie->private_data;
c67x00            394 drivers/usb/c67x00/c67x00-hcd.c 	struct usb_hcd *hcd = c67x00_hcd_to_hcd(c67x00);
c67x00            396 drivers/usb/c67x00/c67x00-hcd.c 	c67x00_sched_stop_scheduler(c67x00);
c67x00             92 drivers/usb/c67x00/c67x00-hcd.h static inline struct usb_hcd *c67x00_hcd_to_hcd(struct c67x00_hcd *c67x00)
c67x00             94 drivers/usb/c67x00/c67x00-hcd.h 	return container_of((void *)c67x00, struct usb_hcd, hcd_priv);
c67x00            113 drivers/usb/c67x00/c67x00-hcd.h void c67x00_sched_kick(struct c67x00_hcd *c67x00);
c67x00            114 drivers/usb/c67x00/c67x00-hcd.h int c67x00_sched_start_scheduler(struct c67x00_hcd *c67x00);
c67x00            115 drivers/usb/c67x00/c67x00-hcd.h void c67x00_sched_stop_scheduler(struct c67x00_hcd *c67x00);
c67x00            136 drivers/usb/c67x00/c67x00-sched.c static void dbg_td(struct c67x00_hcd *c67x00, struct c67x00_td *td, char *msg)
c67x00            138 drivers/usb/c67x00/c67x00-sched.c 	struct device *dev = c67x00_hcd_dev(c67x00);
c67x00            159 drivers/usb/c67x00/c67x00-sched.c static inline u16 c67x00_get_current_frame_number(struct c67x00_hcd *c67x00)
c67x00            161 drivers/usb/c67x00/c67x00-sched.c 	return c67x00_ll_husb_get_frame(c67x00->sie) & HOST_FRAME_MASK;
c67x00            198 drivers/usb/c67x00/c67x00-sched.c static void c67x00_release_urb(struct c67x00_hcd *c67x00, struct urb *urb)
c67x00            205 drivers/usb/c67x00/c67x00-sched.c 	c67x00->urb_count--;
c67x00            208 drivers/usb/c67x00/c67x00-sched.c 		c67x00->urb_iso_count--;
c67x00            209 drivers/usb/c67x00/c67x00-sched.c 		if (c67x00->urb_iso_count == 0)
c67x00            210 drivers/usb/c67x00/c67x00-sched.c 			c67x00->max_frame_bw = MAX_FRAME_BW_STD;
c67x00            218 drivers/usb/c67x00/c67x00-sched.c 	list_for_each_entry(td, &c67x00->td_list, td_list)
c67x00            231 drivers/usb/c67x00/c67x00-sched.c c67x00_ep_data_alloc(struct c67x00_hcd *c67x00, struct urb *urb)
c67x00            237 drivers/usb/c67x00/c67x00-sched.c 	c67x00->current_frame = c67x00_get_current_frame_number(c67x00);
c67x00            242 drivers/usb/c67x00/c67x00-sched.c 		if (frame_after(c67x00->current_frame, ep_data->next_frame))
c67x00            244 drivers/usb/c67x00/c67x00-sched.c 			    frame_add(c67x00->current_frame, 1);
c67x00            263 drivers/usb/c67x00/c67x00-sched.c 	ep_data->next_frame = frame_add(c67x00->current_frame, 1);
c67x00            269 drivers/usb/c67x00/c67x00-sched.c 		list_add(&ep_data->node, &c67x00->list[type]);
c67x00            273 drivers/usb/c67x00/c67x00-sched.c 		list_for_each_entry(prev, &c67x00->list[type], node) {
c67x00            307 drivers/usb/c67x00/c67x00-sched.c 	struct c67x00_hcd *c67x00 = hcd_to_c67x00_hcd(hcd);
c67x00            311 drivers/usb/c67x00/c67x00-sched.c 		dev_warn(c67x00_hcd_dev(c67x00), "error: urb list not empty\n");
c67x00            313 drivers/usb/c67x00/c67x00-sched.c 	spin_lock_irqsave(&c67x00->lock, flags);
c67x00            318 drivers/usb/c67x00/c67x00-sched.c 		spin_unlock_irqrestore(&c67x00->lock, flags);
c67x00            323 drivers/usb/c67x00/c67x00-sched.c 		reinit_completion(&c67x00->endpoint_disable);
c67x00            324 drivers/usb/c67x00/c67x00-sched.c 		c67x00_sched_kick(c67x00);
c67x00            325 drivers/usb/c67x00/c67x00-sched.c 		wait_for_completion_timeout(&c67x00->endpoint_disable, 1 * HZ);
c67x00            327 drivers/usb/c67x00/c67x00-sched.c 		spin_lock_irqsave(&c67x00->lock, flags);
c67x00            330 drivers/usb/c67x00/c67x00-sched.c 	spin_unlock_irqrestore(&c67x00->lock, flags);
c67x00            348 drivers/usb/c67x00/c67x00-sched.c 	struct c67x00_hcd *c67x00 = hcd_to_c67x00_hcd(hcd);
c67x00            358 drivers/usb/c67x00/c67x00-sched.c 	spin_lock_irqsave(&c67x00->lock, flags);
c67x00            374 drivers/usb/c67x00/c67x00-sched.c 	urbp->ep_data = c67x00_ep_data_alloc(c67x00, urb);
c67x00            397 drivers/usb/c67x00/c67x00-sched.c 		if (c67x00->urb_iso_count == 0)
c67x00            398 drivers/usb/c67x00/c67x00-sched.c 			c67x00->max_frame_bw = MAX_FRAME_BW_ISO;
c67x00            399 drivers/usb/c67x00/c67x00-sched.c 		c67x00->urb_iso_count++;
c67x00            423 drivers/usb/c67x00/c67x00-sched.c 	if (!c67x00->urb_count++)
c67x00            424 drivers/usb/c67x00/c67x00-sched.c 		c67x00_ll_hpi_enable_sofeop(c67x00->sie);
c67x00            426 drivers/usb/c67x00/c67x00-sched.c 	c67x00_sched_kick(c67x00);
c67x00            427 drivers/usb/c67x00/c67x00-sched.c 	spin_unlock_irqrestore(&c67x00->lock, flags);
c67x00            434 drivers/usb/c67x00/c67x00-sched.c 	spin_unlock_irqrestore(&c67x00->lock, flags);
c67x00            443 drivers/usb/c67x00/c67x00-sched.c 	struct c67x00_hcd *c67x00 = hcd_to_c67x00_hcd(hcd);
c67x00            447 drivers/usb/c67x00/c67x00-sched.c 	spin_lock_irqsave(&c67x00->lock, flags);
c67x00            452 drivers/usb/c67x00/c67x00-sched.c 	c67x00_release_urb(c67x00, urb);
c67x00            455 drivers/usb/c67x00/c67x00-sched.c 	spin_unlock(&c67x00->lock);
c67x00            457 drivers/usb/c67x00/c67x00-sched.c 	spin_lock(&c67x00->lock);
c67x00            459 drivers/usb/c67x00/c67x00-sched.c 	spin_unlock_irqrestore(&c67x00->lock, flags);
c67x00            464 drivers/usb/c67x00/c67x00-sched.c 	spin_unlock_irqrestore(&c67x00->lock, flags);
c67x00            474 drivers/usb/c67x00/c67x00-sched.c c67x00_giveback_urb(struct c67x00_hcd *c67x00, struct urb *urb, int status)
c67x00            486 drivers/usb/c67x00/c67x00-sched.c 	c67x00_release_urb(c67x00, urb);
c67x00            487 drivers/usb/c67x00/c67x00-sched.c 	usb_hcd_unlink_urb_from_ep(c67x00_hcd_to_hcd(c67x00), urb);
c67x00            488 drivers/usb/c67x00/c67x00-sched.c 	spin_unlock(&c67x00->lock);
c67x00            489 drivers/usb/c67x00/c67x00-sched.c 	usb_hcd_giveback_urb(c67x00_hcd_to_hcd(c67x00), urb, urbp->status);
c67x00            490 drivers/usb/c67x00/c67x00-sched.c 	spin_lock(&c67x00->lock);
c67x00            495 drivers/usb/c67x00/c67x00-sched.c static int c67x00_claim_frame_bw(struct c67x00_hcd *c67x00, struct urb *urb,
c67x00            535 drivers/usb/c67x00/c67x00-sched.c 	if (unlikely(bit_time + c67x00->bandwidth_allocated >=
c67x00            536 drivers/usb/c67x00/c67x00-sched.c 		     c67x00->max_frame_bw))
c67x00            539 drivers/usb/c67x00/c67x00-sched.c 	if (unlikely(c67x00->next_td_addr + CY_TD_SIZE >=
c67x00            540 drivers/usb/c67x00/c67x00-sched.c 		     c67x00->td_base_addr + SIE_TD_SIZE))
c67x00            543 drivers/usb/c67x00/c67x00-sched.c 	if (unlikely(c67x00->next_buf_addr + len >=
c67x00            544 drivers/usb/c67x00/c67x00-sched.c 		     c67x00->buf_base_addr + SIE_TD_BUF_SIZE))
c67x00            548 drivers/usb/c67x00/c67x00-sched.c 		if (unlikely(bit_time + c67x00->periodic_bw_allocated >=
c67x00            549 drivers/usb/c67x00/c67x00-sched.c 			     MAX_PERIODIC_BW(c67x00->max_frame_bw)))
c67x00            551 drivers/usb/c67x00/c67x00-sched.c 		c67x00->periodic_bw_allocated += bit_time;
c67x00            554 drivers/usb/c67x00/c67x00-sched.c 	c67x00->bandwidth_allocated += bit_time;
c67x00            563 drivers/usb/c67x00/c67x00-sched.c static int c67x00_create_td(struct c67x00_hcd *c67x00, struct urb *urb,
c67x00            573 drivers/usb/c67x00/c67x00-sched.c 	if (c67x00_claim_frame_bw(c67x00, urb, len, usb_pipeisoc(urb->pipe)
c67x00            585 drivers/usb/c67x00/c67x00-sched.c 	    !(c67x00->low_speed_ports & (1 << urbp->port)))
c67x00            610 drivers/usb/c67x00/c67x00-sched.c 	td->td_addr = c67x00->next_td_addr;
c67x00            611 drivers/usb/c67x00/c67x00-sched.c 	c67x00->next_td_addr = c67x00->next_td_addr + CY_TD_SIZE;
c67x00            614 drivers/usb/c67x00/c67x00-sched.c 	td->ly_base_addr = __cpu_to_le16(c67x00->next_buf_addr);
c67x00            615 drivers/usb/c67x00/c67x00-sched.c 	td->port_length = __cpu_to_le16((c67x00->sie->sie_num << 15) |
c67x00            624 drivers/usb/c67x00/c67x00-sched.c 	td->next_td_addr = __cpu_to_le16(c67x00->next_td_addr);
c67x00            631 drivers/usb/c67x00/c67x00-sched.c 	c67x00->next_buf_addr += (len + 1) & ~0x01;	/* properly align */
c67x00            633 drivers/usb/c67x00/c67x00-sched.c 	list_add_tail(&td->td_list, &c67x00->td_list);
c67x00            645 drivers/usb/c67x00/c67x00-sched.c static int c67x00_add_data_urb(struct c67x00_hcd *c67x00, struct urb *urb)
c67x00            674 drivers/usb/c67x00/c67x00-sched.c 		ret = c67x00_create_td(c67x00, urb, td_buf, len, pid, toggle,
c67x00            691 drivers/usb/c67x00/c67x00-sched.c static int c67x00_add_ctrl_urb(struct c67x00_hcd *c67x00, struct urb *urb)
c67x00            699 drivers/usb/c67x00/c67x00-sched.c 		ret = c67x00_create_td(c67x00, urb, urb->setup_packet,
c67x00            709 drivers/usb/c67x00/c67x00-sched.c 			ret = c67x00_add_data_urb(c67x00, urb);
c67x00            716 drivers/usb/c67x00/c67x00-sched.c 		ret = c67x00_create_td(c67x00, urb, NULL, 0, pid, 1,
c67x00            729 drivers/usb/c67x00/c67x00-sched.c static int c67x00_add_int_urb(struct c67x00_hcd *c67x00, struct urb *urb)
c67x00            733 drivers/usb/c67x00/c67x00-sched.c 	if (frame_after_eq(c67x00->current_frame, urbp->ep_data->next_frame)) {
c67x00            736 drivers/usb/c67x00/c67x00-sched.c 		return c67x00_add_data_urb(c67x00, urb);
c67x00            741 drivers/usb/c67x00/c67x00-sched.c static int c67x00_add_iso_urb(struct c67x00_hcd *c67x00, struct urb *urb)
c67x00            745 drivers/usb/c67x00/c67x00-sched.c 	if (frame_after_eq(c67x00->current_frame, urbp->ep_data->next_frame)) {
c67x00            756 drivers/usb/c67x00/c67x00-sched.c 		ret = c67x00_create_td(c67x00, urb, td_buf, len, pid, 0,
c67x00            759 drivers/usb/c67x00/c67x00-sched.c 			dev_dbg(c67x00_hcd_dev(c67x00), "create failed: %d\n",
c67x00            764 drivers/usb/c67x00/c67x00-sched.c 				c67x00_giveback_urb(c67x00, urb, 0);
c67x00            776 drivers/usb/c67x00/c67x00-sched.c static void c67x00_fill_from_list(struct c67x00_hcd *c67x00, int type,
c67x00            783 drivers/usb/c67x00/c67x00-sched.c 	list_for_each_entry(ep_data, &c67x00->list[type], node) {
c67x00            790 drivers/usb/c67x00/c67x00-sched.c 			add(c67x00, urb);
c67x00            795 drivers/usb/c67x00/c67x00-sched.c static void c67x00_fill_frame(struct c67x00_hcd *c67x00)
c67x00            800 drivers/usb/c67x00/c67x00-sched.c 	if (!list_empty(&c67x00->td_list)) {
c67x00            801 drivers/usb/c67x00/c67x00-sched.c 		dev_warn(c67x00_hcd_dev(c67x00),
c67x00            803 drivers/usb/c67x00/c67x00-sched.c 		list_for_each_entry_safe(td, ttd, &c67x00->td_list, td_list) {
c67x00            804 drivers/usb/c67x00/c67x00-sched.c 			dbg_td(c67x00, td, "Unprocessed td");
c67x00            810 drivers/usb/c67x00/c67x00-sched.c 	c67x00->bandwidth_allocated = 0;
c67x00            811 drivers/usb/c67x00/c67x00-sched.c 	c67x00->periodic_bw_allocated = 0;
c67x00            813 drivers/usb/c67x00/c67x00-sched.c 	c67x00->next_td_addr = c67x00->td_base_addr;
c67x00            814 drivers/usb/c67x00/c67x00-sched.c 	c67x00->next_buf_addr = c67x00->buf_base_addr;
c67x00            817 drivers/usb/c67x00/c67x00-sched.c 	c67x00_fill_from_list(c67x00, PIPE_ISOCHRONOUS, c67x00_add_iso_urb);
c67x00            818 drivers/usb/c67x00/c67x00-sched.c 	c67x00_fill_from_list(c67x00, PIPE_INTERRUPT, c67x00_add_int_urb);
c67x00            819 drivers/usb/c67x00/c67x00-sched.c 	c67x00_fill_from_list(c67x00, PIPE_CONTROL, c67x00_add_ctrl_urb);
c67x00            820 drivers/usb/c67x00/c67x00-sched.c 	c67x00_fill_from_list(c67x00, PIPE_BULK, c67x00_add_data_urb);
c67x00            829 drivers/usb/c67x00/c67x00-sched.c c67x00_parse_td(struct c67x00_hcd *c67x00, struct c67x00_td *td)
c67x00            831 drivers/usb/c67x00/c67x00-sched.c 	c67x00_ll_read_mem_le16(c67x00->sie->dev,
c67x00            835 drivers/usb/c67x00/c67x00-sched.c 		c67x00_ll_read_mem_le16(c67x00->sie->dev, td_ly_base_addr(td),
c67x00            839 drivers/usb/c67x00/c67x00-sched.c static int c67x00_td_to_error(struct c67x00_hcd *c67x00, struct c67x00_td *td)
c67x00            842 drivers/usb/c67x00/c67x00-sched.c 		dbg_td(c67x00, td, "ERROR_FLAG");
c67x00            850 drivers/usb/c67x00/c67x00-sched.c 		dbg_td(c67x00, td, "TIMEOUT");
c67x00            888 drivers/usb/c67x00/c67x00-sched.c static inline void c67x00_clear_pipe(struct c67x00_hcd *c67x00,
c67x00            894 drivers/usb/c67x00/c67x00-sched.c 	while (td->td_list.next != &c67x00->td_list) {
c67x00            906 drivers/usb/c67x00/c67x00-sched.c static void c67x00_handle_successful_td(struct c67x00_hcd *c67x00,
c67x00            931 drivers/usb/c67x00/c67x00-sched.c 				c67x00_clear_pipe(c67x00, td);
c67x00            937 drivers/usb/c67x00/c67x00-sched.c 			c67x00_giveback_urb(c67x00, urb, 0);
c67x00            945 drivers/usb/c67x00/c67x00-sched.c 			c67x00_clear_pipe(c67x00, td);
c67x00            946 drivers/usb/c67x00/c67x00-sched.c 			c67x00_giveback_urb(c67x00, urb, 0);
c67x00            952 drivers/usb/c67x00/c67x00-sched.c static void c67x00_handle_isoc(struct c67x00_hcd *c67x00, struct c67x00_td *td)
c67x00            966 drivers/usb/c67x00/c67x00-sched.c 	urb->iso_frame_desc[cnt].status = c67x00_td_to_error(c67x00, td);
c67x00            968 drivers/usb/c67x00/c67x00-sched.c 		c67x00_giveback_urb(c67x00, urb, 0);
c67x00            977 drivers/usb/c67x00/c67x00-sched.c static inline void c67x00_check_td_list(struct c67x00_hcd *c67x00)
c67x00            984 drivers/usb/c67x00/c67x00-sched.c 	list_for_each_entry_safe(td, tmp, &c67x00->td_list, td_list) {
c67x00            986 drivers/usb/c67x00/c67x00-sched.c 		c67x00_parse_td(c67x00, td);
c67x00            994 drivers/usb/c67x00/c67x00-sched.c 			c67x00_handle_isoc(c67x00, td);
c67x00           1002 drivers/usb/c67x00/c67x00-sched.c 			c67x00_giveback_urb(c67x00, urb,
c67x00           1003 drivers/usb/c67x00/c67x00-sched.c 					    c67x00_td_to_error(c67x00, td));
c67x00           1017 drivers/usb/c67x00/c67x00-sched.c 				c67x00_giveback_urb(c67x00, urb, -EOVERFLOW);
c67x00           1023 drivers/usb/c67x00/c67x00-sched.c 		c67x00_handle_successful_td(c67x00, td);
c67x00           1027 drivers/usb/c67x00/c67x00-sched.c 			c67x00_clear_pipe(c67x00, td);
c67x00           1040 drivers/usb/c67x00/c67x00-sched.c static inline int c67x00_all_tds_processed(struct c67x00_hcd *c67x00)
c67x00           1045 drivers/usb/c67x00/c67x00-sched.c 	return !c67x00_ll_husb_get_current_td(c67x00->sie);
c67x00           1051 drivers/usb/c67x00/c67x00-sched.c static void c67x00_send_td(struct c67x00_hcd *c67x00, struct c67x00_td *td)
c67x00           1056 drivers/usb/c67x00/c67x00-sched.c 		c67x00_ll_write_mem_le16(c67x00->sie->dev, td_ly_base_addr(td),
c67x00           1059 drivers/usb/c67x00/c67x00-sched.c 	c67x00_ll_write_mem_le16(c67x00->sie->dev,
c67x00           1063 drivers/usb/c67x00/c67x00-sched.c static void c67x00_send_frame(struct c67x00_hcd *c67x00)
c67x00           1067 drivers/usb/c67x00/c67x00-sched.c 	if (list_empty(&c67x00->td_list))
c67x00           1068 drivers/usb/c67x00/c67x00-sched.c 		dev_warn(c67x00_hcd_dev(c67x00),
c67x00           1072 drivers/usb/c67x00/c67x00-sched.c 	list_for_each_entry(td, &c67x00->td_list, td_list) {
c67x00           1073 drivers/usb/c67x00/c67x00-sched.c 		if (td->td_list.next == &c67x00->td_list)
c67x00           1076 drivers/usb/c67x00/c67x00-sched.c 		c67x00_send_td(c67x00, td);
c67x00           1079 drivers/usb/c67x00/c67x00-sched.c 	c67x00_ll_husb_set_current_td(c67x00->sie, c67x00->td_base_addr);
c67x00           1087 drivers/usb/c67x00/c67x00-sched.c static void c67x00_do_work(struct c67x00_hcd *c67x00)
c67x00           1089 drivers/usb/c67x00/c67x00-sched.c 	spin_lock(&c67x00->lock);
c67x00           1091 drivers/usb/c67x00/c67x00-sched.c 	if (!c67x00_all_tds_processed(c67x00))
c67x00           1094 drivers/usb/c67x00/c67x00-sched.c 	c67x00_check_td_list(c67x00);
c67x00           1098 drivers/usb/c67x00/c67x00-sched.c 	complete(&c67x00->endpoint_disable);
c67x00           1100 drivers/usb/c67x00/c67x00-sched.c 	if (!list_empty(&c67x00->td_list))
c67x00           1103 drivers/usb/c67x00/c67x00-sched.c 	c67x00->current_frame = c67x00_get_current_frame_number(c67x00);
c67x00           1104 drivers/usb/c67x00/c67x00-sched.c 	if (c67x00->current_frame == c67x00->last_frame)
c67x00           1106 drivers/usb/c67x00/c67x00-sched.c 	c67x00->last_frame = c67x00->current_frame;
c67x00           1109 drivers/usb/c67x00/c67x00-sched.c 	if (!c67x00->urb_count) {
c67x00           1110 drivers/usb/c67x00/c67x00-sched.c 		c67x00_ll_hpi_disable_sofeop(c67x00->sie);
c67x00           1114 drivers/usb/c67x00/c67x00-sched.c 	c67x00_fill_frame(c67x00);
c67x00           1115 drivers/usb/c67x00/c67x00-sched.c 	if (!list_empty(&c67x00->td_list))
c67x00           1117 drivers/usb/c67x00/c67x00-sched.c 		c67x00_send_frame(c67x00);
c67x00           1120 drivers/usb/c67x00/c67x00-sched.c 	spin_unlock(&c67x00->lock);
c67x00           1127 drivers/usb/c67x00/c67x00-sched.c 	struct c67x00_hcd *c67x00 = (struct c67x00_hcd *)__c67x00;
c67x00           1128 drivers/usb/c67x00/c67x00-sched.c 	c67x00_do_work(c67x00);
c67x00           1131 drivers/usb/c67x00/c67x00-sched.c void c67x00_sched_kick(struct c67x00_hcd *c67x00)
c67x00           1133 drivers/usb/c67x00/c67x00-sched.c 	tasklet_hi_schedule(&c67x00->tasklet);
c67x00           1136 drivers/usb/c67x00/c67x00-sched.c int c67x00_sched_start_scheduler(struct c67x00_hcd *c67x00)
c67x00           1138 drivers/usb/c67x00/c67x00-sched.c 	tasklet_init(&c67x00->tasklet, c67x00_sched_tasklet,
c67x00           1139 drivers/usb/c67x00/c67x00-sched.c 		     (unsigned long)c67x00);
c67x00           1143 drivers/usb/c67x00/c67x00-sched.c void c67x00_sched_stop_scheduler(struct c67x00_hcd *c67x00)
c67x00           1145 drivers/usb/c67x00/c67x00-sched.c 	tasklet_kill(&c67x00->tasklet);