android_kernel_xiaomi_sm8350/drivers/usb/host
Sarah Sharp 9844197310 USB: xhci: Remove packed attribute from structures.
The packed attribute allows gcc to muck with the alignment of data
structures, which may lead to byte-wise writes that break atomicity of
writes.  Packed should only be used when the compile may add undesired
padding to the structure.  Each element of the structure will be aligned
by C based on its size and the size of the elements around it.  E.g. a u64
would be aligned on an 8 byte boundary, the next u32 would be aligned on a
four byte boundary, etc.

Since most of the xHCI structures contain only u32 bit values, removing
the packed attribute for them should be harmless.  (A future patch will
change some of the twin 32-bit address fields to one 64-bit field, but all
those places have an even number of 32-bit fields before them, so the
alignment should be correct.)  Add BUILD_BUG_ON statements to check that
the compiler doesn't add padding to the data structures that have a
hardware-defined layout.

While we're modifying the registers, change the name of intr_reg to
xhci_intr_reg to avoid global conflicts.

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-06-15 21:44:51 -07:00
..
whci USB: whci-hcd: check return value of usb_hcd_link_urb_to_ep() 2009-04-17 10:50:27 -07:00
ehci-au1xxx.c USB: EHCI: update toggle state for linked QHs 2009-06-15 21:44:46 -07:00
ehci-dbg.c
ehci-fsl.c USB: EHCI: update toggle state for linked QHs 2009-06-15 21:44:46 -07:00
ehci-fsl.h
ehci-hcd.c USB: EHCI: update toggle state for linked QHs 2009-06-15 21:44:46 -07:00
ehci-hub.c USB: EHCI: create sysfs companion files directly in the controller device 2009-06-15 21:44:43 -07:00
ehci-ixp4xx.c USB: EHCI: update toggle state for linked QHs 2009-06-15 21:44:46 -07:00
ehci-mem.c USB: EHCI: slow down ITD reuse 2009-02-27 14:40:50 -08:00
ehci-orion.c USB: EHCI: update toggle state for linked QHs 2009-06-15 21:44:46 -07:00
ehci-pci.c USB: EHCI: update toggle state for linked QHs 2009-06-15 21:44:46 -07:00
ehci-ppc-of.c USB: EHCI: update toggle state for linked QHs 2009-06-15 21:44:46 -07:00
ehci-ps3.c USB: EHCI: update toggle state for linked QHs 2009-06-15 21:44:46 -07:00
ehci-q.c USB: EHCI: update toggle state for linked QHs 2009-06-15 21:44:46 -07:00
ehci-sched.c USB: EHCI: stagger frames for interrupt transfers 2009-06-15 21:44:46 -07:00
ehci.h USB: EHCI: stagger frames for interrupt transfers 2009-06-15 21:44:46 -07:00
fhci-dbg.c USB: FHCI: use the new usb debugfs directory 2009-06-15 21:44:43 -07:00
fhci-hcd.c USB: FHCI: use dev_name() in place of bus_id. 2009-03-24 16:38:23 -07:00
fhci-hub.c
fhci-mem.c
fhci-q.c
fhci-sched.c
fhci-tds.c
fhci.h
hwa-hc.c wusb: hwa-hc: Drop unused pci_suspend/resume hooks. 2009-06-15 21:44:44 -07:00
isp116x-hcd.c USB: make transfer_buffer_lengths in struct urb field u32 2009-03-24 16:20:36 -07:00
isp116x.h USB: add missing KERN_* constants to printks 2009-03-24 16:20:30 -07:00
isp1760-hcd.c USB: isp1760: urb_dequeue doesn't always find the urbs 2009-05-28 13:54:43 -07:00
isp1760-hcd.h USB: Make the isp1760_register function prototype more generic 2009-03-24 16:20:31 -07:00
isp1760-if.c USB: Add platform device support for the ISP1760 USB chip 2009-03-24 16:20:31 -07:00
Kconfig USB: Add platform device support for the ISP1760 USB chip 2009-03-24 16:20:31 -07:00
Makefile
ohci-at91.c [ARM] 5446/1: ohci-at91: Limit vbus_pin assignment to the size of the array 2009-04-08 20:36:18 +01:00
ohci-au1xxx.c
ohci-dbg.c USB: OHCI: use the ohci structure directly in debugfs files. 2009-06-15 21:44:43 -07:00
ohci-ep93xx.c [ARM] 5526/1: ep93xx: usb driver cleanup 2009-05-29 20:16:29 +01:00
ohci-hcd.c USB: OHCI: use the new usb debugfs directory 2009-06-15 21:44:43 -07:00
ohci-hub.c
ohci-lh7a404.c
ohci-mem.c
ohci-omap.c
ohci-pci.c USB: new flag for resume-from-hibernation 2009-06-15 21:44:44 -07:00
ohci-pnx4008.c
ohci-pnx8550.c
ohci-ppc-of.c
ohci-ppc-soc.c
ohci-ps3.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
ohci-pxa27x.c
ohci-q.c
ohci-s3c2410.c USB: S3C: Move usb-control.h to platform include 2009-03-24 16:20:45 -07:00
ohci-sa1111.c
ohci-sh.c
ohci-sm501.c
ohci-ssb.c
ohci-tmio.c
ohci.h
oxu210hp-hcd.c USB: host: fix sparse warning: Using plain integer as NULL pointer 2009-03-24 16:20:44 -07:00
oxu210hp.h USB: replace uses of __constant_{endian} 2009-03-24 16:20:33 -07:00
pci-quirks.c USB: xhci: BIOS handoff and HW initialization. 2009-06-15 21:44:48 -07:00
pci-quirks.h
r8a66597-hcd.c USB: r8a66597-hcd: use platform_data instead of module_param 2009-06-15 21:44:46 -07:00
r8a66597.h USB: r8a66597-hcd: use platform_data instead of module_param 2009-06-15 21:44:46 -07:00
sl811_cs.c
sl811-hcd.c USB: make transfer_buffer_lengths in struct urb field u32 2009-03-24 16:20:36 -07:00
sl811.h
u132-hcd.c
uhci-debug.c USB: uhci: don't use pseudo negative values 2009-03-24 16:20:36 -07:00
uhci-hcd.c USB: new flag for resume-from-hibernation 2009-06-15 21:44:44 -07:00
uhci-hcd.h USB: replace uses of __constant_{endian} 2009-03-24 16:20:33 -07:00
uhci-hub.c
uhci-q.c USB: UHCI queue: use usb_endpoint_type() 2009-06-15 21:44:42 -07:00
xhci-dbg.c USB: xhci: Remove packed attribute from structures. 2009-06-15 21:44:51 -07:00
xhci-ext-caps.h USB: xhci: Support xHCI host controllers and USB 3.0 devices. 2009-06-15 21:44:48 -07:00
xhci-hcd.c USB: xhci: Remove packed attribute from structures. 2009-06-15 21:44:51 -07:00
xhci-hub.c USB: xhci: Root hub support. 2009-06-15 21:44:48 -07:00
xhci-mem.c USB: xhci: Make xhci-mem.c include linux/dmapool.h 2009-06-15 21:44:50 -07:00
xhci-pci.c USB: xhci: Bandwidth allocation support 2009-06-15 21:44:49 -07:00
xhci-ring.c usb; xhci: Fix TRB offset calculations. 2009-06-15 21:44:51 -07:00
xhci.h USB: xhci: Remove packed attribute from structures. 2009-06-15 21:44:51 -07:00