android_kernel_xiaomi_sm8350/include/asm-arm
Stephen Street 8d94cc50aa [PATCH] spi: stabilize PIO mode transfers on PXA2xx systems
Stabilize PIO mode transfers against a range of word sizes and FIFO
thresholds and fixes word size setup/override issues.

1) 16 and 32 bit DMA/PIO transfers broken due to timing differences.
2) Potential for bad transfer counts due to transfer size assumptions.
3) Setup function broken is multiple ways.
4) Per transfer bit_per_word changes break DMA setup in pump_tranfers.
5) False positive timeout are not errors.
6) Changes in pxa2xx_spi_chip not effective in calls to setup.
7) Timeout scaling wrong for PXA255 NSSP.
8) Driver leaks memory while busy during unloading.

Known issues:

SPI_CS_HIGH and SPI_LSB_FIRST settings in struct spi_device are not handled.

Testing:

This patch has been test against the "random length, random bits/word,
random data (verified on loopback) and stepped baud rate by octaves
(3.6MHz to 115kHz)" test.  It is robust in PIO mode, using any
combination of tx and rx thresholds, and also in DMA mode (which
internally computes the thresholds).

Much thanks to Ned Forrester for exhaustive reviews, fixes and testing.
The driver is substantially better for his efforts.

Signed-off-by: Stephen Street <stephen@streetfiresound.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-12-10 09:55:40 -08:00
..
arch-aaec2000 [ARM] Clean up discontigmem support 2006-11-30 22:52:28 +00:00
arch-at91rm9200 [ARM] 3977/1: AT91: remove loop waiting for reset 2006-12-04 14:37:42 +00:00
arch-cl7500
arch-clps711x [ARM] Clean up discontigmem support 2006-11-30 22:52:28 +00:00
arch-ebsa110 [ARM] ebsa110: fix warnings generated by asm/arch/io.h 2006-11-20 15:59:10 +00:00
arch-ebsa285 fix file specification in comments 2006-10-03 23:01:26 +02:00
arch-ep93xx [PATCH] Cirrus Logic ep93xx ethernet driver 2006-09-22 20:13:23 -04:00
arch-h720x fix file specification in comments 2006-10-03 23:01:26 +02:00
arch-imx [ARM] 3991/1: i.MX/MX1 high resolution time source 2006-12-07 16:24:16 +00:00
arch-integrator
arch-iop13xx [ARM] 3995/1: iop13xx: add iop13xx support 2006-12-07 17:20:21 +00:00
arch-iop32x [ARM] 3851/1: iop3xx: add io-data glantank support 2006-09-25 10:34:02 +01:00
arch-iop33x [ARM] 3832/1: iop3xx: coding style cleanup 2006-09-25 10:25:53 +01:00
arch-ixp4xx Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2006-12-07 15:40:39 -08:00
arch-ixp23xx [ARM] 3662/1: ixp23xx: don't include asm/hardware.h in uncompress.h 2006-06-28 17:54:56 +01:00
arch-ixp2000
arch-l7200 [ARM] Remove "translated" io macros 2006-11-30 14:39:14 +00:00
arch-lh7a40x [ARM] Clean up discontigmem support 2006-11-30 22:52:28 +00:00
arch-netx
arch-omap WorkQueue: Fix up arch-specific work items where possible 2006-12-05 19:36:26 +00:00
arch-pnx4008 Initial blind fixup for arm for irq changes 2006-10-06 10:59:54 -07:00
arch-pxa [PATCH] spi: stabilize PIO mode transfers on PXA2xx systems 2006-12-10 09:55:40 -08:00
arch-realview
arch-rpc
arch-s3c2410 [PATCH] s3c2410fb: Add support for STN displays 2006-12-08 08:29:05 -08:00
arch-sa1100 [ARM] Merge individual ARM sub-trees 2006-12-07 23:07:26 +00:00
arch-shark fix file specification in comments 2006-10-03 23:01:26 +02:00
arch-versatile [PATCH] arm-versatile iomem annotations 2006-10-11 11:17:06 -07:00
hardware Initial blind fixup for arm for irq changes 2006-10-06 10:59:54 -07:00
mach [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
a.out.h
apm.h
assembler.h
atomic.h [ARM] 3810/1: switch atomic helpers over to raw_local_irq_{save,restore} 2006-09-25 10:25:24 +01:00
auxvec.h
bitops.h [ARM] 3852/1: convert atomic bitops and __xchg over to raw_local_irq_{save,restore} 2006-09-25 10:34:03 +01:00
bug.h [ARM] 3983/2: remove unused argument to __bug() 2006-12-07 22:38:09 +00:00
bugs.h [ARM] nommu: adjust headers for !MMU ARM systems 2006-06-28 17:59:45 +01:00
byteorder.h
cache.h
cacheflush.h [ARM] Use CPU_CACHE_* where possible in asm/cacheflush.h 2006-09-27 18:00:35 +01:00
checksum.h [NET]: ARM checksum annotations and cleanups. 2006-12-02 21:23:15 -08:00
cnt32_to_63.h [ARM] 3978/1: macro to provide a 63-bit value from a 32-bit hardware counter 2006-12-07 16:06:45 +00:00
cpu-multi32.h
cpu-single.h
cpu.h
cputime.h
current.h
delay.h
device.h Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
div64.h [ARM] 3611/4: optimize do_div() when divisor is constant 2006-12-07 16:06:09 +00:00
dma-mapping.h [PATCH] Add struct dev pointer to dma_is_consistent() 2006-12-07 08:39:41 -08:00
dma.h
domain.h [ARM] nommu: adjust headers for !MMU ARM systems 2006-06-28 17:59:45 +01:00
dyntick.h [ARM] 3692/1: ARM: coswitch irq handling to the generic implementation 2006-07-01 22:30:09 +01:00
ecard.h
elf.h [ARM] 3881/4: xscale: clean up cp0/cp1 handling 2006-12-03 17:52:22 +00:00
emergency-restart.h
errno.h
fcntl.h
fiq.h
flat.h [ARM] nommu: create flat.h to support uClinux flat binaries 2006-09-20 14:58:35 +01:00
floppy.h [PATCH] ARM: fixup irqflags breakage after ARM genirq merge 2006-07-02 17:29:22 -07:00
fpstate.h [ARM] 3370/2: ep93xx: add crunch support 2006-06-28 17:55:01 +01:00
futex.h
glue.h
hardirq.h
hardware.h
hw_irq.h [PATCH] misc arm pt_regs fixes 2006-10-08 12:32:36 -07:00
ide.h
io.h [ARM] Remove warnings for __io_pci and __arch_(get|put)* 2006-11-30 14:36:29 +00:00
ioctl.h
ioctls.h
ipc.h
ipcbuf.h
irq_regs.h Initial blind fixup for arm for irq changes 2006-10-06 10:59:54 -07:00
irq.h [ARM] 3692/1: ARM: coswitch irq handling to the generic implementation 2006-07-01 22:30:09 +01:00
irqflags.h [ARM] Add ARM irqtrace support 2006-09-20 14:58:35 +01:00
Kbuild
kmap_types.h
leds.h
limits.h
linkage.h
local.h
locks.h
mc146818rtc.h
memory.h [ARM] Clean up discontigmem support 2006-11-30 22:52:28 +00:00
mman.h
mmu_context.h [ARM] Add section support to ioremap 2006-06-29 22:14:30 +01:00
mmu.h [ARM] Add section support to ioremap 2006-06-29 22:14:30 +01:00
mmzone.h
module.h
msgbuf.h
mtd-xip.h
mutex.h
namei.h
nwflash.h
page-nommu.h [ARM] nommu: adjust headers for !MMU ARM systems 2006-06-28 17:59:45 +01:00
page.h Merge master.kernel.org:/pub/scm/linux/kernel/git/tmlind/linux-omap-upstream into devel 2006-09-27 19:57:54 +01:00
param.h
parport.h
pci.h
percpu.h
pgalloc.h [ARM] nommu: adjust headers for !MMU ARM systems 2006-06-28 17:59:45 +01:00
pgtable-hwdef.h [ARM] Set bit 4 on section mappings correctly depending on CPU 2006-06-29 18:24:21 +01:00
pgtable-nommu.h [ARM] Fix nommu build 2006-11-30 13:53:54 +00:00
pgtable.h [ARM] 3971/1: xsc3: get rid of L_PTE_COHERENT 2006-12-01 23:40:23 +00:00
poll.h
posix_types.h
proc-fns.h [ARM] nommu: add ARM946E-S core support 2006-09-27 17:39:19 +01:00
processor.h [ARM] Include asm/elf.h instead of asm/procinfo.h 2006-11-30 12:24:46 +00:00
procinfo.h [ARM] Move HWCAP_* definitions to asm/elf.h 2006-11-30 12:24:46 +00:00
ptrace.h [ARM] 3665/1: crunch: add ptrace support 2006-06-28 17:55:00 +01:00
resource.h
rtc.h
scatterlist.h
sections.h
segment.h
semaphore-helper.h
semaphore.h
sembuf.h
serial.h
setup.h [PATCH] cleanup asm/setup.h userspace visibility 2006-12-07 08:39:46 -08:00
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h [PATCH] ARM: fixup irqflags breakage after ARM genirq merge 2006-07-02 17:29:22 -07:00
sizes.h
smp.h
socket.h [AF_UNIX]: Datagram getpeersec 2006-06-29 16:58:06 -07:00
sockios.h
spinlock_types.h
spinlock.h [PATCH] Directed yield: cpu_relax variants for spinlocks and rw-locks 2006-10-01 00:39:21 -07:00
stat.h
statfs.h
string.h
suspend.h
system.h [ARM] nommu: manage the CP15 things 2006-09-27 17:34:30 +01:00
termbits.h [PATCH] tty: preparatory structures for termios revamp 2006-12-08 08:28:56 -08:00
termios.h
therm.h
thread_info.h [ARM] 3911/2: Simplify alloc_thread_info on ARM 2006-11-30 15:27:03 +00:00
thread_notify.h
timex.h
tlb.h
tlbflush.h [ARM] 3759/2: Remove uses of %? 2006-09-20 14:58:35 +01:00
topology.h
traps.h
types.h
uaccess.h [ARM] Add __must_check to uaccess functions 2006-10-28 10:15:31 +01:00
ucontext.h [ARM] 3664/1: crunch: add signal frame save/restore 2006-06-28 17:54:59 +01:00
unaligned.h [ARM] 3849/1: fix get_unaligned() for gcc >= 4.1 2006-09-25 10:34:00 +01:00
unistd.h [PATCH] remove kernel syscalls 2006-12-07 08:39:37 -08:00
user.h
vfp.h
vfpmacros.h
vga.h
xor.h