Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 895b9632 authored by Hemant Kumar's avatar Hemant Kumar Committed by Gerrit - the friendly Code Review server
Browse files

EHCI: HSIC: Add enhancements to debug logging



This change addresses following enhancements to debug
logging:-

1) Current urb submission event logging does not cover
root hub submissions, hence move urb submission logging
to hcd driver.

2) Current urb submission event logging does not return
the correct status if submission fails. Hence log the
return status of urb submission.

Change-Id: Ic7e555e1545ec7d7b0e4042cd35235e0af26fb01
Signed-off-by: default avatarHemant Kumar <hemantk@codeaurora.org>
Signed-off-by: default avatarChandana Kishori Chiluveru <cchiluve@codeaurora.org>
parent 08aabb81
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1553,6 +1553,8 @@ int usb_hcd_submit_urb (struct urb *urb, gfp_t mem_flags)
	atomic_inc(&urb->use_count);
	atomic_inc(&urb->dev->urbnum);
	usbmon_urb_submit(&hcd->self, urb);
	if (hcd->driver->log_urb)
		hcd->driver->log_urb(urb, "S", urb->status);

	/* NOTE requirements on root-hub callers (usbfs and the hub
	 * driver, for now):  URBs' urb->transfer_buffer must be
@@ -1575,6 +1577,8 @@ int usb_hcd_submit_urb (struct urb *urb, gfp_t mem_flags)

	if (unlikely(status)) {
		usbmon_urb_submit_error(&hcd->self, urb, status);
		if (hcd->driver->log_urb)
			hcd->driver->log_urb(urb, "E", status);
		urb->hcpriv = NULL;
		INIT_LIST_HEAD(&urb->urb_list);
		atomic_dec(&urb->use_count);
@@ -1663,6 +1667,8 @@ static void __usb_hcd_giveback_urb(struct urb *urb)

	unmap_urb_for_dma(hcd, urb);
	usbmon_urb_complete(&hcd->self, urb, status);
	if (hcd->driver->log_urb)
		hcd->driver->log_urb(urb, "C", status);
	usb_anchor_suspend_wakeups(anchor);
	usb_unanchor_urb(urb);
	if (likely(status == 0))
+1 −0
Original line number Diff line number Diff line
@@ -1558,6 +1558,7 @@ static struct hc_driver msm_hsic_driver = {
	.bus_suspend		= ehci_hsic_bus_suspend,
	.bus_resume		= ehci_hsic_bus_resume,

	.log_urb		= dbg_log_event,
	.dump_regs		= dump_hsic_regs,

	.set_autosuspend_delay = ehci_msm_set_autosuspend_delay,
+1 −0
Original line number Diff line number Diff line
@@ -383,6 +383,7 @@ struct hc_driver {
	int	(*disable_usb3_lpm_timeout)(struct usb_hcd *,
			struct usb_device *, enum usb3_link_state state);
	int	(*find_raw_port_number)(struct usb_hcd *, int);
	void	(*log_urb)(struct urb *urb, char *event, unsigned extra);
	void	(*dump_regs)(struct usb_hcd *);
	void	(*set_autosuspend_delay)(struct usb_device *);
	void	(*reset_sof_bug_handler)(struct usb_hcd *hcd, u32 val);