#ifndef PCM1796_H_INCLUDED
#define PCM1796_H_INCLUDED
/* register 16 */
#define PCM1796_ATL_MASK 0xff
/* register 17 */
#define PCM1796_ATR_MASK 0xff
/* register 18 */
#define PCM1796_MUTE 0x01
#define PCM1796_DME 0x02
#define PCM1796_DMF_MASK 0x0c
#define PCM1796_DMF_DISABLED 0x00
#define PCM1796_DMF_48 0x04
#define PCM1796_DMF_441 0x08
#define PCM1796_DMF_32 0x0c
#define PCM1796_FMT_MASK 0x70
#define PCM1796_FMT_16_RJUST 0x00
#define PCM1796_FMT_20_RJUST 0x10
#define PCM1796_FMT_24_RJUST 0x20
#define PCM1796_FMT_24_LJUST 0x30
#define PCM1796_FMT_16_I2S 0x40
#define PCM1796_FMT_24_I2S 0x50
#define PCM1796_ATLD 0x80
/* register 19 */
#define PCM1796_INZD 0x01
#define PCM1796_FLT_MASK 0x02
#define PCM1796_FLT_SHARP 0x00
#define PCM1796_FLT_SLOW 0x02
#define PCM1796_DFMS 0x04
#define PCM1796_OPE 0x10
#define PCM1796_ATS_MASK 0x60
#define PCM1796_ATS_1 0x00
#define PCM1796_ATS_2 0x20
#define PCM1796_ATS_4 0x40
#define PCM1796_ATS_8 0x60
#define PCM1796_REV 0x80
/* register 20 */
#define PCM1796_OS_MASK 0x03
#define PCM1796_OS_64 0x00
#define PCM1796_OS_32 0x01
#define PCM1796_OS_128 0x02
#define PCM1796_CHSL_MASK 0x04
#define PCM1796_CHSL_LEFT 0x00
#define PCM1796_CHSL_RIGHT 0x04
#define PCM1796_MONO 0x08
#define PCM1796_DFTH 0x10
#define PCM1796_DSD 0x20
#define PCM1796_SRST 0x40
/* register 21 */
#define PCM1796_PCMZ 0x01
#define PCM1796_DZ_MASK 0x06
/* register 22 */
#define PCM1796_ZFGL 0x01
#define PCM1796_ZFGR 0x02
/* register 23 */
#define PCM1796_ID_MASK 0x1f
#endif
ass='sub right'>Tobias Klauser
Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
Pull DAX updates from Dan Williams:
"The completion of Jan's DAX work for 4.10.
As I mentioned in the libnvdimm-for-4.10 pull request, these are some
final fixes for the DAX dirty-cacheline-tracking invalidation work
that was merged through the -mm, ext4, and xfs trees in -rc1. These
patches were prepared prior to the merge window, but we waited for
4.10-rc1 to have a stable merge base after all the prerequisites were
merged.
Quoting Jan on the overall changes in these patches:
"So I'd like all these 6 patches to go for rc2. The first three
patches fix invalidation of exceptional DAX entries (a bug which
is there for a long time) - without these patches data loss can
occur on power failure even though user called fsync(2). The other
three patches change locking of DAX faults so that ->iomap_begin()
is called in a more relaxed locking context and we are safe to
start a transaction there for ext4"
These have received a build success notification from the kbuild
robot, and pass the latest libnvdimm unit tests. There have not been
any -next releases since -rc1, so they have not appeared there"
* 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
ext4: Simplify DAX fault path
dax: Call ->iomap_begin without entry lock during dax fault
dax: Finish fault completely when loading holes
dax: Avoid page invalidation races and unnecessary radix tree traversals
mm: Invalidate DAX radix tree entries only if appropriate
ext2: Return BH_New buffers for zeroed blocks