/* * MAX98504 ALSA SoC Audio driver * * Copyright 2011 - 2012 Maxim Integrated Products * Copyright 2016 Samsung Electronics Co., Ltd. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #ifndef MAX98504_H_ #define MAX98504_H_ /* * MAX98504 Register Definitions */ #define MAX98504_INTERRUPT_STATUS 0x01 #define MAX98504_INTERRUPT_FLAGS 0x02 #define MAX98504_INTERRUPT_ENABLE 0x03 #define MAX98504_INTERRUPT_FLAG_CLEARS 0x04 #define MAX98504_GPIO_ENABLE 0x10 #define MAX98504_GPIO_CONFIG 0x11 #define MAX98504_WATCHDOG_ENABLE 0x12 #define MAX98504_WATCHDOG_CONFIG 0x13 #define MAX98504_WATCHDOG_CLEAR 0x14 #define MAX98504_CLOCK_MONITOR_ENABLE 0x15 #define MAX98504_PVDD_BROWNOUT_ENABLE 0x16 #define MAX98504_PVDD_BROWNOUT_CONFIG_1 0x17 #define MAX98504_PVDD_BROWNOUT_CONFIG_2 0x18 #define MAX98504_PVDD_BROWNOUT_CONFIG_3 0x19 #define MAX98504_PVDD_BROWNOUT_CONFIG_4 0x1a #define MAX98504_PCM_RX_ENABLE 0x20 #define MAX98504_PCM_TX_ENABLE 0x21 #define MAX98504_PCM_TX_HIZ_CONTROL 0x22 #define MAX98504_PCM_TX_CHANNEL_SOURCES 0x23 #define MAX98504_PCM_MODE_CONFIG 0x24 #define MAX98504_PCM_DSP_CONFIG 0x25 #define MAX98504_PCM_CLOCK_SETUP 0x26 #define MAX98504_PCM_SAMPLE_RATE_SETUP 0x27 #define MAX98504_PCM_TO_SPEAKER_MONOMIX 0x28 #define MAX98504_PDM_TX_ENABLE 0x30 #define MAX98504_PDM_TX_HIZ_CONTROL 0x31 #define MAX98504_PDM_TX_CONTROL 0x32 #define MAX98504_PDM_RX_ENABLE 0x33 #define MAX98504_SPEAKER_ENABLE 0x34 #define MAX98504_SPEAKER_SOURCE_SELECT 0x35 #define MAX98504_MEASUREMENT_ENABLE 0x36 #define MAX98504_ANALOGUE_INPUT_GAIN 0x37 #define MAX98504_TEMPERATURE_LIMIT_CONFIG 0x38 #define MAX98504_GLOBAL_ENABLE 0x40 #define MAX98504_SOFTWARE_RESET 0x41 #define MAX98504_REV_ID 0x7fff #define MAX98504_MAX_REGISTER 0x7fff #define MAX98504_DAI_ID_PCM 1 #define MAX98504_DAI_ID_PDM 2 #endif /* MAX98504_H_ */ 9cfc718d13a50fbc746ed9b415c25e92'>diff
path: root/net/atm/lec.c
diff options
context:
space:
mode:
authorArd Biesheuvel <ard.biesheuvel@linaro.org>2017-02-01 17:45:02 +0000
committerIngo Molnar <mingo@kernel.org>2017-02-01 21:17:49 +0100
commitc8f325a59cfc718d13a50fbc746ed9b415c25e92 (patch)
treed53fbdac9d0781e39a13b2ac6b2bd258cf3b4140 /net/atm/lec.c
parentbf29bddf0417a4783da3b24e8c9e017ac649326f (diff)
efi/fdt: Avoid FDT manipulation after ExitBootServices()
Some AArch64 UEFI implementations disable the MMU in ExitBootServices(), after which unaligned accesses to RAM are no longer supported. Commit: abfb7b686a3e ("efi/libstub/arm*: Pass latest memory map to the kernel") fixed an issue in the memory map handling of the stub FDT code, but inadvertently created an issue with such firmware, by moving some of the FDT manipulation to after the invocation of ExitBootServices(). Given that the stub's libfdt implementation uses the ordinary, accelerated string functions, which rely on hardware handling of unaligned accesses, manipulating the FDT with the MMU off may result in alignment faults. So fix the situation by moving the update_fdt_memmap() call into the callback function invoked by efi_exit_boot_services() right before it calls the ExitBootServices() UEFI service (which is arguably a better place for it anyway) Note that disabling the MMU in ExitBootServices() is not compliant with the UEFI spec, and carries great risk due to the fact that switching from cached to uncached memory accesses halfway through compiler generated code (i.e., involving a stack) can never be done in a way that is architecturally safe. Fixes: abfb7b686a3e ("efi/libstub/arm*: Pass latest memory map to the kernel") Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Tested-by: Riku Voipio <riku.voipio@linaro.org> Cc: <stable@vger.kernel.org> Cc: mark.rutland@arm.com Cc: linux-efi@vger.kernel.org Cc: matt@codeblueprint.co.uk Cc: leif.lindholm@linaro.org Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/1485971102-23330-2-git-send-email-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'net/atm/lec.c')