/* * max98371.h -- MAX98371 ALSA SoC Audio driver * * Copyright 2011-2012 Maxim Integrated Products * * 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 _MAX98371_H #define _MAX98371_H #define MAX98371_IRQ_CLEAR1 0x01 #define MAX98371_IRQ_CLEAR2 0x02 #define MAX98371_IRQ_CLEAR3 0x03 #define MAX98371_DAI_CLK 0x10 #define MAX98371_DAI_BSEL_MASK 0xF #define MAX98371_DAI_BSEL_32 2 #define MAX98371_DAI_BSEL_48 3 #define MAX98371_DAI_BSEL_64 4 #define MAX98371_SPK_SR 0x11 #define MAX98371_SPK_SR_MASK 0xF #define MAX98371_SPK_SR_32 6 #define MAX98371_SPK_SR_44 7 #define MAX98371_SPK_SR_48 8 #define MAX98371_SPK_SR_88 10 #define MAX98371_SPK_SR_96 11 #define MAX98371_DAI_CHANNEL 0x15 #define MAX98371_CHANNEL_MASK 0x3 #define MAX98371_MONOMIX_SRC 0x18 #define MAX98371_MONOMIX_CFG 0x19 #define MAX98371_HPF 0x1C #define MAX98371_MONOMIX_SRC_MASK 0xFF #define MONOMIX_RX_0_1 ((0x1)<<(4)) #define M98371_DAI_CHANNEL_I2S 0x3 #define MAX98371_DIGITAL_GAIN 0x2D #define MAX98371_DIGITAL_GAIN_WIDTH 0x7 #define MAX98371_GAIN 0x2E #define MAX98371_GAIN_SHIFT 0x4 #define MAX98371_GAIN_WIDTH 0x4 #define MAX98371_DHT_MAX_WIDTH 4 #define MAX98371_FMT 0x14 #define MAX98371_CHANSZ_WIDTH 6 #define MAX98371_FMT_MASK ((0x3)<<(MAX98371_CHANSZ_WIDTH)) #define MAX98371_FMT_MODE_MASK ((0x7)<<(3)) #define MAX98371_DAI_LEFT ((0x1)<<(3)) #define MAX98371_DAI_RIGHT ((0x2)<<(3)) #define MAX98371_DAI_CHANSZ_16 ((1)<<(MAX98371_CHANSZ_WIDTH)) #define MAX98371_DAI_CHANSZ_24 ((2)<<(MAX98371_CHANSZ_WIDTH)) #define MAX98371_DAI_CHANSZ_32 ((3)<<(MAX98371_CHANSZ_WIDTH)) #define MAX98371_DHT 0x32 #define MAX98371_DHT_STEP 0x3 #define MAX98371_DHT_GAIN 0x31 #define MAX98371_DHT_GAIN_WIDTH 0x4 #define MAX98371_DHT_ROT_WIDTH 0x4 #define MAX98371_SPK_ENABLE 0x4A #define MAX98371_GLOBAL_ENABLE 0x50 #define MAX98371_SOFT_RESET 0x51 #define MAX98371_VERSION 0xFF struct max98371_priv { struct regmap *regmap; struct snd_soc_codec *codec; }; #endif id=54791b276b4000b307339f269d3bf7db877d536f'>diff
path: root/sound/soc/pxa/mmp-pcm.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2017-01-30 14:28:22 -0800
committerDavid S. Miller <davem@davemloft.net>2017-01-30 14:28:22 -0800
commit54791b276b4000b307339f269d3bf7db877d536f (patch)
tree1c2616bd373ce5ea28aac2a53e32f5b5834901ce /sound/soc/pxa/mmp-pcm.c
parent5d0e7705774dd412a465896d08d59a81a345c1e4 (diff)
parent047487241ff59374fded8c477f21453681f5995c (diff)
Merge branch 'sparc64-non-resumable-user-error-recovery'
Liam R. Howlett says: ==================== sparc64: Recover from userspace non-resumable PIO & MEM errors A non-resumable error from userspace is able to cause a kernel panic or trap loop due to the setup and handling of the queued traps once in the kernel. This patch series addresses both of these issues. The queues are fixed by simply zeroing the memory before use. PIO errors from userspace will result in a SIGBUS being sent to the user process. The MEM errors form userspace will result in a SIGKILL and also cause the offending pages to be claimed so they are no longer used in future tasks. SIGKILL is used to ensure that the process does not try to coredump and result in an attempt to read the memory again from within kernel space. Although there is a HV call to scrub the memory (mem_scrub), there is no easy way to guarantee that the real memory address(es) are not used by other tasks. Clearing the error with mem_scrub would zero the memory and cause the other processes to proceed with bad data. The handling of other non-resumable errors remain unchanged and will cause a panic. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'sound/soc/pxa/mmp-pcm.c')