From: "Chai, Chong Yi" <chong.yi.c...@intel.com>

These patches are to enable USB features in Baytrail. 
The patches are targeted to merge into Yocto-kernel-cache on branch yocto-3.14. 
Patch usb: dwc3: core: Fix gadget for system suspend/resume and 
usb/xhci: Change how we indicate a host supports Link PM are in 
mainline and the rest patches are specifically for Baytrail.

1/4 [
Author: Roger Quadros
Email: rog...@ti.com
Date: Wed, 26 Mar 2014 11:43:09 +0200
Subject: [PATCH 018/164] usb: dwc3: core: Fix gadget for system
 suspend/resume

During system resume, if the event buffers are not setup before
the gadget controller starts then we start with invalid context
and this can lead to bus access errors. This is especially true for
platforms that loose the controller context during system suspend.
e.g. AM437x.

The following backtrace was found when the system is suspended
and resumed with g_zero loaded on AM437x-evm (USB cable connected
to host all the while).

[  120.981506] WARNING: CPU: 0 PID: 1656 at drivers/bus/omap_l3_noc.c:137 
l3_interrupt_handler+0x198/0x28c()
[  120.981514] L3 custom error: MASTER:USB0 WR TARGET:GPMC
[  120.981638] Modules linked in: g_mass_storage usb_f_mass_storage 
libcomposite configfs bufferclass_ti(O) omaplfb(O) cryptodev(O) dwc3 
snd_soc_evm snd_soc_omap snd_pe
[  120.981659] CPU: 0 PID: 1656 Comm: sh Tainted: G           O 
3.12.10-gc559824 #1
[  120.981669] Backtrace:
[  120.981705] [<c0017880>] (dump_backtrace+0x0/0x10c) from [<c0017a1c>] 
(show_stack+0x18/0x1c)
[  120.981730]  r6:c02819ac r5:00000009 r4:ec137cb8 r3:00000000
[  120.981767] [<c0017a04>] (show_stack+0x0/0x1c) from [<c056c0b0>] 
(dump_stack+0x20/0x28)
[  120.981802] [<c056c090>] (dump_stack+0x0/0x28) from [<c0046d08>] 
(warn_slowpath_common+0x70/0x90)
[  120.981830] [<c0046c98>] (warn_slowpath_common+0x0/0x90) from [<c0046dcc>] 
(warn_slowpath_fmt+0x38/0x40)
[  120.981856]  r8:c0855eb0 r7:00000002 r6:f1000700 r5:00000007 r4:80080003
[  120.981886] [<c0046d94>] (warn_slowpath_fmt+0x0/0x40) from [<c02819ac>] 
(l3_interrupt_handler+0x198/0x28c)
[  120.981900]  r3:c0801ab8 r2:c06cb354
[  120.981936] [<c0281814>] (l3_interrupt_handler+0x0/0x28c) from [<c007162c>] 
(handle_irq_event_percpu+0x54/0x1b8)
[  120.981962] [<c00715d8>] (handle_irq_event_percpu+0x0/0x1b8) from 
[<c00717c0>] (handle_irq_event+0x30/0x40)
[  120.981993] [<c0071790>] (handle_irq_event+0x0/0x40) from [<c0074058>] 
(handle_fasteoi_irq+0x74/0x128)
[  120.982006]  r4:ed0056c0 r3:00000000
[  120.982033] [<c0073fe4>] (handle_fasteoi_irq+0x0/0x128) from [<c0070f34>] 
(generic_handle_irq+0x28/0x38)
[  120.982046]  r4:0000002a r3:c0073fe4
[  120.982085] [<c0070f0c>] (generic_handle_irq+0x0/0x38) from [<c0015560>] 
(handle_IRQ+0x38/0x8c)
[  120.982098]  r4:c080137c r3:00000182
[  120.982124] [<c0015528>] (handle_IRQ+0x0/0x8c) from [<c00087e0>] 
(gic_handle_irq+0x30/0x5c)
[  120.982145]  r6:ec137dd0 r5:c07ac480 r4:fa24010c r3:00000100
[  120.982169] [<c00087b0>] (gic_handle_irq+0x0/0x5c) from [<c056fcc0>] 
(__irq_svc+0x40/0x54)
[  120.982179] Exception stack(0xec137dd0 to 0xec137e18)
[  120.982195] 7dc0:                                     00000000 a00001d3 
00000000 00000004
[  120.982216] 7de0: a0000153 ec1d9010 c080de90 ec137e30 c080debc 00000000 
ed756e44 ec137e2c
[  120.982232] 7e00: ec137de0 ec137e18 bf1150e4 bf115474 60000153 ffffffff
[  120.982253]  r7:ec137e04 r6:ffffffff r5:60000153 r4:bf115474
[  120.982327] [<bf115438>] (dwc3_complete+0x0/0x40 [dwc3]) from [<c0338f50>] 
(dpm_complete+0xd4/0x19c)
[  120.982341]  r5:ed756e10 r4:ed756e64
[  120.982370] [<c0338e7c>] (dpm_complete+0x0/0x19c) from [<c0339034>] 
(dpm_resume_end+0x1c/0x20)
[  120.982400] [<c0339018>] (dpm_resume_end+0x0/0x20) from [<c006d4ec>] 
(suspend_devices_and_enter+0x118/0x33c)
[  120.982412]  r4:c0833da4 r3:00000000
[  120.982436] [<c006d3d4>] (suspend_devices_and_enter+0x0/0x33c) from 
[<c006d928>] (pm_suspend+0x218/0x254)
[  120.982458] [<c006d710>] (pm_suspend+0x0/0x254) from [<c006c594>] 
(state_store+0x70/0xc0)
[  120.982478]  r6:c057a6cc r5:c06a8320 r4:00000003 r3:0000006d
[  120.982515] [<c006c524>] (state_store+0x0/0xc0) from [<c0264cc0>] 
(kobj_attr_store+0x1c/0x28)
[  120.982546] [<c0264ca4>] (kobj_attr_store+0x0/0x28) from [<c012ccb8>] 
(sysfs_write_file+0x170/0x1a4)
[  120.982583] [<c012cb48>] (sysfs_write_file+0x0/0x1a4) from [<c00d17e4>] 
(vfs_write+0xb8/0x190)
[  120.982611] [<c00d172c>] (vfs_write+0x0/0x190) from [<c00d1bf8>] 
(SyS_write+0x44/0x78)
[  120.982641] [<c00d1bb4>] (SyS_write+0x0/0x78) from [<c0014660>] 
(ret_fast_syscall+0x0/0x30)

Signed-off-by: Roger Quadros <rog...@ti.com>
Acked-by: Felipe Balbi <ba...@ti.com>
Signed-off-by: Felipe Balbi <ba...@ti.com>
(cherry picked from commit f45e5f00dacf09362a16339d372fcc96705e40c7)

Signed-off-by: Maurice Petallo <mauricex.r.peta...@intel.com>
]

2/4 [
Author: Sarah Sharp
Email: sarah.a.sh...@linux.intel.com
Date: Fri, 17 Jan 2014 14:15:44 -0800
Subject: [PATCH 086/164] usb/xhci: Change how we indicate a host supports
 Link PM.

The xHCI driver currently uses a USB core internal field,
udev->lpm_capable, to indicate the xHCI driver knows how to calculate
the LPM timeout values.  If this value is set for the host controller
udev, it means Link PM can be enabled for child devices under that host.

Change the code so the xHCI driver isn't mucking with USB core internal
fields.  Instead, indicate the xHCI driver doesn't support Link PM on
this host by clearing the U1 and U2 exit latencies in the roothub
SuperSpeed Extended Capabilities BOS descriptor.

The code to check for the roothub setting U1 and U2 exit latencies to
zero will also disable LPM for external devices that do that same.  This
was already effectively done with commit
ae8963adb4ad8c5f2a89ca1d99fb7bb721e7599f "usb: Don't enable LPM if the
exit latency is zero."  Leave that code in place, so that if a device
sets one exit latency value to zero, but the other is set to a valid
value, LPM is only enabled for the U1 or U2 state that had the valid
value.  This is the same behavior the code had before.

Also, change messages about missing Link PM information from warning
level to info level.  Only print a warning about the first device that
doesn't support LPM, to avoid log spam.  Further, cleanup some
unnecessary line breaks to help people to grep for the error messages.

Signed-off-by: Sarah Sharp <sarah.a.sh...@linux.intel.com>
Cc: Alan Stern <st...@rowland.harvard.edu>
(cherry picked from commit 25cd2882e2fc8bd8ed7acaee0ec979f11feda6d7)
Signed-off-by: Wan Ahmad Zainie <wan.ahmad.zainie.wan.moha...@intel.com>

Conflicts:
        drivers/usb/host/xhci-pci.c

        Cherry-pick'd mainline commit bcffae7 "xhci: Prevent runtime pm
        from autosuspending during initialization" added new lines that
        caused conflict. That patch is cherry-pick'd to linux-stable
        kernel 3.14.27 first. If this patch "25cd288" could have been
        added first before "bcffae7", then we won't have conflicts.
]

3/4 [
Author: Wan Ahmad Zainie
Email: wan.ahmad.zainie.wan.moha...@intel.com
Date: Wed, 29 Jul 2015 18:13:08 +0800
Subject: [PATCH 113/164] usb: core: hub: Generate uevent for overcurrent
 event

This modification generates a 'uevent' to userland and adds the
'OVERCURRENT=1' environment when overcurrent event happens and
adds the 'OVERCURRENT=0' environment when returning to normal
current, with PORT number.

Any userland program listening to the 'uevent' interface can filter
for the presence of this environment variable to distinguish this
special 'uevent' from other 'add' or 'remove' events.

Current disadvantage: Due to the fact, the hub driver tries to enable the
port again immediately (it does not wait for user interaction) this powerfail
event gets reported twice: First time when it really happens and second time
when the external overcurrent detection device will be reset. The second
false positive report must be sorted out by the userland application.

This patch is derived from [PATCH] Generate a uevent when an overcurrent
event happens by Juergen Beisert <jbe@@pengutronix.de> and
Michael Grzeschik <m.grzeschik@@pengutronix>

Signed-off-by: Wan Ahmad Zainie <wan.ahmad.zainie.wan.moha...@intel.com>
]

4/4 [
Author: Wan Ahmad Zainie
Email: wan.ahmad.zainie.wan.moha...@intel.com
Date: Fri, 21 Aug 2015 12:01:37 +0800
Subject: [PATCH 154/164] usb: core: hub: Fix checkpatch.pl error

This commit is to fix the result of running scripts/checkpatch.pl against
0113-usb-core-hub-Generate-uevent-for-overcurrent-event.patch

Signed-off-by: Wan Ahmad Zainie <wan.ahmad.zainie.wan.moha...@intel.com>
]

Chai, Chong Yi (1):
  usb: core: Fix gadget for system suspend resume

 features/soc/baytrail/baytrail.scc                 |   5 +
 .../usb-core-hub-Fix-checkpatch.pl-error.patch     |  29 +++++
 ...hub-Generate-uevent-for-overcurrent-event.patch | 142 +++++++++++++++++++++
 ...core-Fix-gadget-for-system-suspend-resume.patch |  92 +++++++++++++
 ...ange-how-we-indicate-a-host-supports-Link.patch | 128 +++++++++++++++++++
 5 files changed, 396 insertions(+)
 create mode 100644 
features/soc/baytrail/usb-core-hub-Fix-checkpatch.pl-error.patch
 create mode 100644 
features/soc/baytrail/usb-core-hub-Generate-uevent-for-overcurrent-event.patch
 create mode 100644 
features/soc/baytrail/usb-dwc3-core-Fix-gadget-for-system-suspend-resume.patch
 create mode 100644 
features/soc/baytrail/usb-xhci-Change-how-we-indicate-a-host-supports-Link.patch

-- 
1.9.1

-- 
_______________________________________________
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to