android_kernel_xiaomi_sm8350/include/asm-x86
Andres Salomon ade761496d x86: GEODE: update GPIO API to support setting multiple GPIOs at once
The existing Geode GPIO API only allows for updating one GPIO at once.  There
are instances where users want to update multiple GPIOs at once.  With the
current API, they are given two choices; either ignore the GPIO API:

      outl(0xc000, gpio_base + GPIO_OUTPUT_VAL);
      outl(0xc000, gpio_base + GPIO_OUTPUT_ENABLE);

Alternatively, call each GPIO update separately:

      geode_gpio_set(14, GPIO_OUTPUT_VAL);
      geode_gpio_set(15, GPIO_OUTPUT_VAL);
      geode_gpio_set(14, GPIO_OUTPUT_ENABLE);
      geode_gpio_set(15, GPIO_OUTPUT_ENABLE);

Neither are desirable.  This patch changes the GPIO API to allow for setting
of multiple GPIOs at once; rather than being passed an integer, we pass
a bitmask and provide a translation function.  The above code would now
look like this:

      geode_gpio_set(geode_gpio(14)|geode_gpio(15), GPIO_OUTPUT_VAL);
      geode_gpio_set(geode_gpio(14)|geode_gpio(15), GPIO_OUTPUT_ENABLE);

Since there are no upstream users of the GPIO API yet (afaik), best to
change this now.  This also adds a bit of sanity checking; it is no
longer possible to use a GPIO above 28.

Note the semantics of geode_gpio_isset() have changed:
geode_gpio_isset(geode_gpio(3)|geode_gpio(4), ...)
will only return true iff both GPIOs are set.

Signed-off-by: Andres Salomon <dilinger@debian.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-01-30 13:33:35 +01:00
..
mach-bigsmp x86: cleanup mpspec variants 2008-01-30 13:30:35 +01:00
mach-default x86: cleanup mpspec variants 2008-01-30 13:30:35 +01:00
mach-es7000 x86: cleanup mpspec variants 2008-01-30 13:30:35 +01:00
mach-generic
mach-numaq x86: cleanup mpspec variants 2008-01-30 13:30:35 +01:00
mach-summit x86: cleanup mpspec variants 2008-01-30 13:30:35 +01:00
mach-visws x86: visws extern inline to static inline 2007-10-17 20:16:39 +02:00
mach-voyager x86: voyager use correct header file name 2007-11-17 16:27:00 +01:00
xen
a.out.h x86: unify a.out{,_32,_64}.h 2007-10-23 22:37:23 +02:00
acpi.h x86: voluntary leave_mm before entering ACPI C3 2008-01-30 13:32:01 +01:00
agp.h x86: unify include/asm/agp_32/64.h 2007-10-17 20:17:12 +02:00
alternative-asm.h x86: rename .i assembler includes to .h 2007-10-17 20:16:29 +02:00
alternative.h x86: actually merge <asm/alternative.h> 2008-01-30 13:30:30 +01:00
apic.h x86: adjust enable_NMI_through_LVT0() 2008-01-30 13:31:24 +01:00
apicdef.h x86: extended interrupt LVT support for AMD Barcelona 2008-01-30 13:30:40 +01:00
arch_hooks.h x86: move debug related declarations to kdebug.h 2008-01-30 13:30:17 +01:00
asm.h x86: introduce asm helpers in local_{32|64}.h 2008-01-30 13:31:26 +01:00
atomic_32.h
atomic_64.h x86: make atomic64_t work like atomic_t 2007-10-17 20:16:21 +02:00
atomic.h
auxvec.h x86: unify include/asm/auxvec_32/64.h 2007-10-17 20:17:13 +02:00
bitops_32.h x86: partial unification of asm-x86/bitops.h 2008-01-30 13:30:55 +01:00
bitops_64.h x86: partial unification of asm-x86/bitops.h 2008-01-30 13:30:55 +01:00
bitops.h x86: change bitwise operations to get a void parameter. 2008-01-30 13:31:31 +01:00
boot.h
bootparam.h x86: EFI runtime service support 2008-01-30 13:31:19 +01:00
bug.h x86: nuke a ton of unused exports 2008-01-30 13:30:28 +01:00
bugs.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
byteorder.h x86: fix asm-x86/byteorder.h for userspace export 2008-01-01 19:12:15 +01:00
cache.h x86: unify include/asm/cache_32/64.h 2007-10-17 20:17:15 +02:00
cacheflush.h Intel IOMMU: clflush_cache_range now takes size param 2007-10-22 08:13:18 -07:00
calgary.h
calling.h x86: clean up include/asm-x86/calling.h 2008-01-30 13:32:49 +01:00
checksum_32.h
checksum_64.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
checksum.h
cmpxchg_32.h x86: fall back on interrupt disable in cmpxchg8b on 80386 and 80486 2008-01-30 13:30:47 +01:00
cmpxchg_64.h
cmpxchg.h
compat.h x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
cpu.h x86: change NR_CPUS arrays in topology 2008-01-30 13:33:11 +01:00
cpufeature.h x86: convert TSC disabling to generic cpuid disable bitmap 2008-01-30 13:33:20 +01:00
cputime.h x86: trivial header merges 2007-10-17 20:17:08 +02:00
current_32.h
current_64.h
current.h
debugreg.h x86: unify include/asm/debugreg_32/64.h 2007-10-17 20:35:37 +02:00
delay.h x86: unify include/asm/delay_32/64.h 2007-10-17 20:17:17 +02:00
desc_64.h x86: unify set_tss_desc 2008-01-30 13:31:14 +01:00
desc_defs.h x86: move _set_gate and its users to a common location 2008-01-30 13:31:14 +01:00
desc.h x86: x86 TLS desc_struct cleanup 2008-01-30 13:31:51 +01:00
device.h intel-iommu: fix for IOMMU early crash 2007-10-22 08:13:19 -07:00
div64.h x86: unify div64{,_32,_64}.h 2007-10-23 22:37:23 +02:00
dma-mapping_32.h Change table chaining layout 2007-10-22 21:20:01 +02:00
dma-mapping_64.h x86-64: enable sg chaining 2007-10-16 11:26:02 +02:00
dma-mapping.h
dma.h x86: merge include/asm-x86/dma.h 2008-01-30 13:30:20 +01:00
dmi.h x86: fix dmi_alloc() to not advance alloc index in case of 2008-01-30 13:31:59 +01:00
ds.h x86, ptrace: support 32bit-cross-64bit BTS recording 2008-01-30 13:32:03 +01:00
dwarf2_32.h
dwarf2_64.h
dwarf2.h
e820_32.h x86_32: trim memory by updating e820 2008-01-30 13:33:32 +01:00
e820_64.h x86: replace hard coded reservations in 64-bit early boot code with dynamic table 2008-01-30 13:33:17 +01:00
e820.h x86: pat: e820 cleanup 2008-01-30 13:33:08 +01:00
edac.h x86: unify include/asm/cache_32/64.h 2007-10-17 20:17:19 +02:00
efi.h x86: EFI runtime service support: remove duplicated code from efi_32.c 2008-01-30 13:31:19 +01:00
elf.h x86: kdump failure 2008-01-30 13:33:16 +01:00
emergency-restart.h x86: reboot_{32|64}.c unification 2008-01-30 13:32:51 +01:00
errno.h x86: trivial header merges 2007-10-17 20:17:08 +02:00
fb.h x86: unify include/asm/cache_32/64.h 2007-10-17 20:17:21 +02:00
fcntl.h
fixmap_32.h
fixmap_64.h x86: EFI runtime service support 2008-01-30 13:31:19 +01:00
fixmap.h
floppy.h x86: unify include/asm/floppy_32/64.h 2007-10-17 20:24:56 +02:00
frame.h x86: rename .i assembler includes to .h 2007-10-17 20:16:29 +02:00
futex.h x86: merge futex_32/64.h 2008-01-30 13:30:20 +01:00
gart.h x86: disable the GART early, 64-bit 2008-01-30 13:33:09 +01:00
genapic_32.h
genapic_64.h
genapic.h
geode.h x86: GEODE: update GPIO API to support setting multiple GPIOs at once 2008-01-30 13:33:35 +01:00
hardirq_32.h x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
hardirq_64.h
hardirq.h
highmem.h
hpet.h x86, rtc: make CONFIG_HPET_EMULATE_RTC usable from modules 2008-01-30 13:33:28 +01:00
hw_irq_32.h x86: move to .rodata/.init.data 2008-01-30 13:31:23 +01:00
hw_irq_64.h x86: provide a native_init_IRQ function on 64-bit 2008-01-30 13:33:19 +01:00
hw_irq.h
hypertransport.h
i387.h x86: x86 user_regset cleanup 2008-01-30 13:31:55 +01:00
i8253.h x86: isolate PIC/PIT in/out calls 2008-01-30 13:33:14 +01:00
i8259.h x86: isolate PIC/PIT in/out calls 2008-01-30 13:33:14 +01:00
ia32_unistd.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
ia32.h x86: TLS cleanup 2008-01-30 13:30:46 +01:00
ide.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
idle.h x86: remove dead code and exports 2008-01-30 13:30:28 +01:00
intel_arch_perfmon.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
io_32.h x86: various changes and cleanups to in_p/out_p delay details 2008-01-30 13:30:05 +01:00
io_64.h x86: tweak io_64.h for paravirt. 2008-01-30 13:31:10 +01:00
io_apic.h x86: merge include/asm-x86/sparsemem.h 2008-01-30 13:30:37 +01:00
io.h
ioctl.h
ioctls.h x86: unify include/asm/ioctls_32/64.h 2007-10-17 20:26:11 +02:00
iommu.h x86 gart: rename iommu.h to gart.h 2007-10-30 00:22:22 +01:00
ipcbuf.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
ipi.h x86: convert cpu_to_apicid to be a per cpu variable 2007-10-19 20:35:03 +02:00
irq_32.h i386: introduce "used_vectors" bitmap which can be used to reserve vectors. 2007-10-19 20:35:03 +02:00
irq_64.h
irq_regs_32.h
irq_regs_64.h
irq_regs.h
irq.h
irqflags.h x86: irqflags consolidation 2008-01-30 13:30:33 +01:00
ist.h Make asm-x86/bootparam.h includable from userspace. 2007-10-23 15:49:47 +10:00
k8.h x86: move k8 related declarations 2008-01-30 13:30:16 +01:00
Kbuild x86: page.h: move things back to their own files 2008-01-30 13:32:44 +01:00
kdebug.h x86: add the capability to print fuzzy backtraces 2008-01-30 13:33:07 +01:00
kexec.h x86: unify kexec_{32|64}.h 2008-01-30 13:31:26 +01:00
kmap_types.h x86: unify include/asm/agp_32/64.h 2007-10-17 20:26:13 +02:00
kprobes.h x86: get rid of _MASK flags 2008-01-30 13:31:27 +01:00
ldt.h x86: unify include/asm/ldt_32/64.h 2007-10-17 20:16:47 +02:00
lguest_hcall.h lguest: make async_hcall() static 2007-11-05 21:53:29 +11:00
lguest.h x86: unify tss_struct 2008-01-30 13:31:31 +01:00
linkage.h x86: fix UML and -regparm=3 2008-01-30 13:33:00 +01:00
local.h x86: local.h fix checkpatch warnings 2008-01-30 13:31:26 +01:00
mach_apic.h
math_emu.h x86: x86 user_regset cleanup 2008-01-30 13:31:55 +01:00
mc146818rtc.h x86: isolate the rtc code for sharing 2008-01-30 13:30:26 +01:00
mca_dma.h
mca.h
mce.h x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
mman.h x86: unify include/asm/mman_32/64.h 2007-10-17 20:26:15 +02:00
mmu_context_32.h x86: voluntary leave_mm before entering ACPI C3 2008-01-30 13:32:01 +01:00
mmu_context_64.h x86: put generic mm_hooks include into PARAVIRT 2008-01-30 13:33:19 +01:00
mmu_context.h
mmu.h x86: voluntary leave_mm before entering ACPI C3 2008-01-30 13:32:01 +01:00
mmx.h
mmzone_32.h x86: put all kern_addr_valid() incarnations to pgtable.h 2008-01-30 13:30:37 +01:00
mmzone_64.h x86: change size of node ids from u8 to s16 2008-01-30 13:33:25 +01:00
mmzone.h
module.h x86: unify module_{32|64}.h 2008-01-30 13:31:43 +01:00
mpspec_def.h x86: cleanup mpspec variants 2008-01-30 13:30:35 +01:00
mpspec.h x86: cleanup smp.h variants 2008-01-30 13:30:36 +01:00
msgbuf.h x86: merge msgbuf_32/64.h 2007-10-23 22:37:24 +02:00
msidef.h
msr-index.h x86: msr for AMD Fam 10h mmio 2008-01-30 13:33:18 +01:00
msr.h x86: fix sched_clock() 2008-01-30 13:32:40 +01:00
mtrr.h x86, 32-bit: trim memory not covered by wb mtrrs 2008-01-30 13:33:18 +01:00
mutex_32.h x86: remove fastcall from include/asm-x86 2008-01-30 13:31:17 +01:00
mutex_64.h
mutex.h
namei.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
nmi_32.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
nmi_64.h x86: nmi_64.c: make code static 2008-01-30 13:30:31 +01:00
nmi.h
nops.h x86: move nop declarations into separate include file 2008-01-30 13:32:38 +01:00
numa_32.h
numa_64.h x86: change size of node ids from u8 to s16 2008-01-30 13:33:25 +01:00
numa.h
numaq.h
page_32.h x86: page.h: make pte_t a union to always include 2008-01-30 13:32:57 +01:00
page_64.h x86: page.h: make pte_t a union to always include 2008-01-30 13:32:57 +01:00
page.h add native_pud_val and _pmd_val for 2 and 3 2008-01-30 13:33:14 +01:00
param.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
paravirt.h x86: include/asm-x86/paravirt.h: x86_64 mmu operations 2008-01-30 13:33:20 +01:00
parport.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
pci_32.h PCI: merge almost all of pci_32.h and pci_64.h together 2007-10-12 15:03:20 -07:00
pci_64.h x86: pci-dma_64.c: cleanups 2008-01-30 13:30:31 +01:00
pci-direct.h
pci.h x86: consolidate toloplogy_32/64.h 2008-01-30 13:30:38 +01:00
pda.h x86: clean up include/asm-x86/pda.h 2008-01-30 13:31:25 +01:00
percpu.h x86: unify percpu.h 2008-01-30 13:32:53 +01:00
pgalloc_32.h
pgalloc_64.h
pgalloc.h
pgtable_32.h x86: unify zero_page definition 2008-01-30 13:32:58 +01:00
pgtable_64.h x86: unify paravirt pagetable accessors 2008-01-30 13:32:58 +01:00
pgtable-2level-defs.h
pgtable-2level.h x86: unify paravirt pagetable accessors 2008-01-30 13:32:58 +01:00
pgtable-3level-defs.h paravirt: refactor struct paravirt_ops into smaller pv_*_ops 2007-10-16 11:51:29 -07:00
pgtable-3level.h x86: unify paravirt pagetable accessors 2008-01-30 13:32:58 +01:00
pgtable.h x86/pgtable: explain constant sign extension problem 2008-01-30 13:32:59 +01:00
poll.h
posix_types_32.h
posix_types_64.h
posix_types.h
prctl.h
processor-cyrix.h
processor-flags.h KVM: Use standard CR8 flags, and fix TPR definition 2007-10-13 10:18:19 +02:00
processor.h x86: add framework to disable CPUID bits on the command line 2008-01-30 13:33:20 +01:00
proto.h x86: replace hard coded reservations in 64-bit early boot code with dynamic table 2008-01-30 13:33:17 +01:00
ptrace-abi.h x86, ptrace: add bts_struct size to status command 2008-01-30 13:32:54 +01:00
ptrace.h x86: rename stack_pointer to kernel_trap_sp 2008-01-30 13:33:16 +01:00
reboot_fixups.h
reboot.h
required-features.h x86: merge required-features.h 2007-10-23 22:37:24 +02:00
resource.h x86: trivial header merges 2007-10-17 20:17:08 +02:00
resume-trace.h x86: merge resume-trace.h variants 2008-01-30 13:30:38 +01:00
rio.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
rtc.h x86: trivial header merges 2007-10-17 20:17:08 +02:00
rwlock.h x86: use immediates instead of RW_LOCK_BIAS_STR 2008-01-30 13:30:34 +01:00
rwsem.h x86: fix UML and -regparm=3 2008-01-30 13:33:00 +01:00
scatterlist.h x86: merge include/asm-x86/scatterlist.h 2008-01-30 13:30:21 +01:00
seccomp_32.h
seccomp_64.h
seccomp.h
sections.h x86: trivial header merges 2007-10-17 20:17:08 +02:00
segment.h x86: early_idt_handler improvements, 64-bit 2008-01-30 13:33:06 +01:00
semaphore_32.h x86: fix UML and -regparm=3 2008-01-30 13:33:00 +01:00
semaphore_64.h kill DECLARE_MUTEX_LOCKED 2007-10-17 08:42:47 -07:00
semaphore.h
sembuf.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
serial.h x86: merge some trivially mergeable headers 2007-10-17 20:17:09 +02:00
setup.h x86: prepare 64-bit architecture initialization for paravirt 2008-01-30 13:31:11 +01:00
shmbuf.h x86: merge shmbuf_32/64.h 2007-10-23 22:37:24 +02:00
shmparam.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
sigcontext32.h x86: use generic register names in struct sigcontext 2008-01-30 13:30:56 +01:00
sigcontext.h x86: use generic register names in struct sigcontext 2008-01-30 13:30:56 +01:00
siginfo.h x86: unify include/asm/siginfo_32/64.h 2007-10-17 20:26:17 +02:00
signal.h x86 single_step: TIF_FORCED_TF 2008-01-30 13:30:50 +01:00
smp_32.h x86: cleanup x86_cpu_to_apicid references 2008-01-30 13:33:11 +01:00
smp_64.h x86: change bios_cpu_apicid to percpu data variable 2008-01-30 13:33:12 +01:00
smp.h
socket.h
sockios.h x86: merge some trivially mergeable headers 2007-10-17 20:17:09 +02:00
sparsemem.h x86: merge include/asm-x86/sparsemem.h 2008-01-30 13:30:37 +01:00
spinlock_types.h x86: FIFO ticket spinlocks 2008-01-30 13:31:21 +01:00
spinlock.h x86: big ticket locks 2008-01-30 13:33:00 +01:00
srat.h
stacktrace.h x86: add the capability to print fuzzy backtraces 2008-01-30 13:33:07 +01:00
stat.h x86: merge stat_32/64.h 2007-10-23 22:37:24 +02:00
statfs.h x86: merge statfs_32/64.h 2007-10-23 22:37:24 +02:00
string_32.h i386: Remove strrchr assembler implementation 2007-10-17 20:16:23 +02:00
string_64.h
string.h
suspend_32.h x86: unify struct desc_ptr 2008-01-30 13:31:12 +01:00
suspend_64.h x86: make __{save,restore}_processor_state static 2008-01-30 13:31:23 +01:00
suspend.h
swiotlb.h
sync_bitops.h
system_64.h x86: move switch_to macro to system.h 2008-01-30 13:31:08 +01:00
system.h x86: provide read and write cr8 paravirt hooks 2008-01-30 13:33:19 +01:00
tce.h
termbits.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
termios.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
therm_throt.h
thread_info_32.h x86, ptrace: support for branch trace store(BTS) 2008-01-30 13:31:09 +01:00
thread_info_64.h x86: unify mm_segment_t definition 2008-01-30 13:31:38 +01:00
thread_info.h
time.h x86: prepare time related functions for paravirt 2008-01-30 13:31:10 +01:00
timer.h x86: scale cyc_2_nsec according to CPU frequency 2008-01-30 13:30:06 +01:00
timex.h x86: unify timex.h variants 2007-10-12 23:04:23 +02:00
tlb.h x86: unify include/asm/tlb_32/64.h 2007-10-17 20:26:18 +02:00
tlbflush.h x86: merge tlbflush.h variants 2008-01-30 13:30:35 +01:00
topology.h x86: change size of node ids from u8 to s16 2008-01-30 13:33:25 +01:00
tsc.h x86: get_cycles() fix 2008-01-30 13:33:24 +01:00
types.h x86: unify include/asm/types_32/64.h 2007-10-17 20:32:07 +02:00
uaccess_32.h
uaccess_64.h x86: use helper in fault_64.c 2008-01-30 13:31:42 +01:00
uaccess.h
ucontext.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
unaligned.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
unistd_32.h x86_32: remove the useless NR_syscalls macro 2008-01-30 13:33:16 +01:00
unistd_64.h x86: cleanup 64bit unistd.h 2007-10-17 20:16:36 +02:00
unistd.h
unwind.h x86: unify include/asm/unwind_32/64.h 2007-10-17 20:32:38 +02:00
user32.h
user_32.h x86: use generic register names in struct user_regs_struct 2008-01-30 13:30:56 +01:00
user_64.h x86: use generic register names in struct user_regs_struct 2008-01-30 13:30:56 +01:00
user.h
vdso.h x86 vDSO: i386 vdso32 2008-01-30 13:30:42 +01:00
vga.h
vgtod.h
vic.h
vm86.h
vmi_time.h
vmi.h
voyager.h
vsyscall.h x86: map vsyscalls early enough 2008-01-30 13:32:39 +01:00
xor_32.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
xor_64.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
xor.h