android_kernel_xiaomi_sm8350/arch/arm
Catalin Marinas c98929c07a [ARM] 4582/2: Add support for the common VFP subarchitecture
This patch allows the VFP support code to run correctly on CPUs
compatible with the common VFP subarchitecture specification (Appendix
B in the ARM ARM v7-A and v7-R edition). It implements support for VFP
subarchitecture 2 while being backwards compatible with
subarchitecture 1.

On VFP subarchitecture 1, the arithmetic exceptions are asynchronous
(or imprecise as described in the old ARM ARM) unless the FPSCR.IXE
bit is 1. The exceptional instructions can be read from FPINST and
FPINST2 registers. With VFP subarchitecture 2, the arithmetic
exceptions can also be synchronous and marked by the FPEXC.DEX bit
(the FPEXC.EX bit is cleared). CPUs implementing the synchronous
arithmetic exceptions don't have the FPINST and FPINST2 registers and
accessing them would trigger and undefined exception.

Note that FPEXC.EX bit has an additional meaning on subarchitecture 1
- if it isn't set, there is no additional information in FPINST and
FPINST2 that needs to be saved at context switch or when lazy-loading
the VFP state of a different thread.

The patch also removes the clearing of the cumulative exception flags in
FPSCR when additional exceptions were raised. It is up to the user
application to clear these bits.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-01-26 14:41:28 +00:00
..
boot [ARM] 4710/1: Fix coprocessor 14 usage for debug messages via ICEDCC 2007-12-17 17:16:13 +00:00
common Merge branch 'pxa-fixes' 2007-12-08 14:41:29 +00:00
configs [ARM] 4636/1: pxa: add default configuration for zylonite 2007-10-31 15:21:48 +00:00
kernel sched: remove printk_clock() 2008-01-25 21:07:59 +01:00
lib
mach-aaec2000
mach-at91 [ARM] 4691/1: add missing i2c_board_info struct for at91rm9200 2008-01-06 20:25:13 +00:00
mach-clps711x
mach-clps7500 [ARM] cleanup struct irqaction initializers 2007-10-12 23:43:20 +01:00
mach-davinci clockevents: fix resume logic 2007-07-21 17:49:15 -07:00
mach-ebsa110
mach-ep93xx [ARM] 4572/1: ep93xx: add cirrus logic edb9307 support 2007-10-12 23:43:44 +01:00
mach-footbridge Remove magic macros for screen_info structure members 2007-10-16 22:57:17 -07:00
mach-h720x
mach-imx [ARM] 4648/1: i.MX/MX1 ensure more complete AITC initialization 2007-11-26 19:43:37 +00:00
mach-integrator Driver core: change sysdev classes to use dynamic kobject names 2008-01-24 20:40:40 -08:00
mach-iop13xx some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
mach-iop32x hwmon: (f75375s) On n2100 systems, set fans to full speed on boot 2007-11-08 08:42:46 -05:00
mach-iop33x
mach-ixp4xx [ARM] 4694/1: IXP4xx: Update clockevent support for shutdown and resume 2007-12-17 17:18:01 +00:00
mach-ixp23xx
mach-ixp2000 Kbuild/doc: fix links to Documentation files 2007-10-30 14:26:30 -07:00
mach-ks8695 [ARM] 4549/1: KS8695: Fix build errors 2007-08-14 17:23:55 +01:00
mach-l7200
mach-lh7a40x
mach-mx3 [ARM] 4461/1: MXC platform and i.MX31ADS core support 2007-07-22 15:44:46 +01:00
mach-netx [ARM] 4641/2: netX: fix kobject_name type 2007-11-05 17:19:14 +00:00
mach-ns9xxx [ARM] 4595/1: ns9xxx: define registers as void __iomem * instead of volatile u32 2007-10-12 23:43:41 +01:00
mach-omap1 driver core: make /sys/power a kobject 2008-01-24 20:40:25 -08:00
mach-omap2 [ARM] Fix assignment instead of condition in arm/mach-omap2/clock.c 2007-10-31 15:21:43 +00:00
mach-pnx4008 PM: Rename struct pm_ops and related things 2007-10-18 14:37:18 -07:00
mach-pxa Driver core: change sysdev classes to use dynamic kobject names 2008-01-24 20:40:40 -08:00
mach-realview [ARM] realview: disable second GIC on RevB MPCore platforms 2007-09-13 15:10:25 +01:00
mach-rpc [ARM] rpc: convert an outb() to writeb() 2007-07-20 21:29:39 +01:00
mach-s3c2400
mach-s3c2410 Driver core: change sysdev classes to use dynamic kobject names 2008-01-24 20:40:40 -08:00
mach-s3c2412 Driver core: change sysdev classes to use dynamic kobject names 2008-01-24 20:40:40 -08:00
mach-s3c2440 Driver core: change sysdev classes to use dynamic kobject names 2008-01-24 20:40:40 -08:00
mach-s3c2442 [ARM] 4546/1: s3c2410: fix architecture typo for s3c2442 2007-08-14 17:23:49 +01:00
mach-s3c2443 Driver core: change sysdev classes to use dynamic kobject names 2008-01-24 20:40:40 -08:00
mach-sa1100 Driver core: change sysdev classes to use dynamic kobject names 2008-01-24 20:40:40 -08:00
mach-shark
mach-versatile
mm [ARM] remove useless setting of VM_RESERVED 2007-11-11 10:55:25 +00:00
nwfpe Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
oprofile Driver core: change sysdev classes to use dynamic kobject names 2008-01-24 20:40:40 -08:00
plat-iop [ARM] 4495/1: iop: combined watchdog timer driver for iop3xx and iop13xx 2007-07-20 09:35:42 +01:00
plat-mxc [ARM] 4461/1: MXC platform and i.MX31ADS core support 2007-07-22 15:44:46 +01:00
plat-omap Driver core: change sysdev classes to use dynamic kobject names 2008-01-24 20:40:40 -08:00
plat-s3c [ARM] 4518/1: S3C: Rename watchdog configuration options 2007-07-22 16:44:38 +01:00
plat-s3c24xx Driver core: change sysdev classes to use dynamic kobject names 2008-01-24 20:40:40 -08:00
tools
vfp [ARM] 4582/2: Add support for the common VFP subarchitecture 2008-01-26 14:41:28 +00:00
Kconfig [ARM] 4748/1: dca: source drivers/dca/Kconfig in arch/arm/Kconfig to fix warning 2008-01-20 10:10:41 +00:00
Kconfig-nommu [ARM] 4532/1: allow configuration of processor ID 2007-10-12 23:43:02 +01:00
Kconfig.debug [ARM] 4514/1: S3C: Rename DEBUG_S3C2410_PORT and DEBUG_S3C_UART 2007-07-22 16:44:33 +01:00
Kconfig.instrumentation Fix ARM profiling/instrumentation configuration 2008-01-15 09:23:51 -08:00
Makefile Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild 2007-10-16 11:23:06 -07:00