/* * sound/soc/blackfin/bf5xx-ac97.h * * 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 _BF5XX_AC97_H #define _BF5XX_AC97_H /* Frame format in memory, only support stereo currently */ struct ac97_frame { u16 ac97_tag; /* slot 0 */ u16 ac97_addr; /* slot 1 */ u16 ac97_data; /* slot 2 */ u16 ac97_pcm_l; /*slot 3:front left*/ u16 ac97_pcm_r; /*slot 4:front left*/ #if defined(CONFIG_SND_BF5XX_MULTICHAN_SUPPORT) u16 ac97_mdm_l1; u16 ac97_center; /*slot 6:center*/ u16 ac97_sl; /*slot 7:surround left*/ u16 ac97_sr; /*slot 8:surround right*/ u16 ac97_lfe; /*slot 9:lfe*/ #endif } __attribute__ ((packed)); /* Speaker location */ #define SP_FL 0x0001 #define SP_FR 0x0010 #define SP_FC 0x0002 #define SP_LFE 0x0020 #define SP_SL 0x0004 #define SP_SR 0x0040 #define SP_STEREO (SP_FL | SP_FR) #define SP_2DOT1 (SP_FL | SP_FR | SP_LFE) #define SP_QUAD (SP_FL | SP_FR | SP_SL | SP_SR) #define SP_5DOT1 (SP_FL | SP_FR | SP_FC | SP_LFE | SP_SL | SP_SR) #define TAG_VALID 0x8000 #define TAG_CMD 0x6000 #define TAG_PCM_LEFT 0x1000 #define TAG_PCM_RIGHT 0x0800 #define TAG_PCM_MDM_L1 0x0400 #define TAG_PCM_CENTER 0x0200 #define TAG_PCM_SL 0x0100 #define TAG_PCM_SR 0x0080 #define TAG_PCM_LFE 0x0040 void bf5xx_pcm_to_ac97(struct ac97_frame *dst, const __u16 *src, \ size_t count, unsigned int chan_mask); void bf5xx_ac97_to_pcm(const struct ac97_frame *src, __u16 *dst, \ size_t count); #endif a>refslogtreecommitdiff
path: root/fs/autofs4
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2017-01-31 09:37:34 +0100
committerThomas Gleixner <tglx@linutronix.de>2017-01-31 21:47:58 +0100
commit0becc0ae5b42828785b589f686725ff5bc3b9b25 (patch)
treebe6d0e1f37c38ed0a7dd5da2d4b1e93f0fb43101 /fs/autofs4
parent24c2503255d35c269b67162c397a1a1c1e02f6ce (diff)
x86/mce: Make timer handling more robust
Erik reported that on a preproduction hardware a CMCI storm triggers the BUG_ON in add_timer_on(). The reason is that the per CPU MCE timer is started by the CMCI logic before the MCE CPU hotplug callback starts the timer with add_timer_on(). So the timer is already queued which triggers the BUG. Using add_timer_on() is pretty pointless in this code because the timer is strictlty per CPU, initialized as pinned and all operations which arm the timer happen on the CPU to which the timer belongs. Simplify the whole machinery by using mod_timer() instead of add_timer_on() which avoids the problem because mod_timer() can handle already queued timers. Use __start_timer() everywhere so the earliest armed expiry time is preserved. Reported-by: Erik Veijola <erik.veijola@intel.com> Tested-by: Borislav Petkov <bp@alien8.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Borislav Petkov <bp@alien8.de> Cc: Tony Luck <tony.luck@intel.com> Link: http://lkml.kernel.org/r/alpine.DEB.2.20.1701310936080.3457@nanos Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'fs/autofs4')