diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-01-21 13:26:23 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-01-21 13:26:23 -0500 |
| commit | d4371f94bc003e912d4825f5c4bdf57959857073 (patch) | |
| tree | 919e196d72fc83cba8c67ee720a233671938d265 /include | |
| parent | a547df99aad777c1807e23991fa2471693c0e4cc (diff) | |
| parent | 7552f34a790069a008bd3e2ab4c0954b30c2f63b (diff) | |
Merge tag 'sound-3.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound updates from Takashi Iwai:
"It was holiday season, so no wonder that there are little changes in
framework level, although diffstat shows quite many changes spreaded
over sound/* directories. Most of changes are cleanups, code
refactoring and fixes.
Some highlights:
- Removal of OSS sleep_on usages by Arnd
- Simplified memalloc helper codes, drop obsoleted features; now it's
built into PCM driver instead of an individual module
- Warn if PCM buffer preallocation fails, which will show page
allocation issues more clearly
- Compress offload API updates for sample rates by Vinod
- PCM glitch workaround on ctxfi emu20k1 by Sarah
- Drop cs46xx DSP blobs, using firmware loader now
- USB-audio quitks for Plantronics Gamecom 780, Creative VF0420, and
Focusrite Saffire 6
HD-audio specifics:
- Standardize Kconfigs of HD-audio codec drivers; now "make
localmodconfig" recognizes configs properly (finally!)
- Parallel PM implementation by Mengdong
- BayleyBay/ValleyView2 board fixups
- Broadwell audio support
- Runtime PM improvement (PantherPoint, etc)
- Quirks: Dell subwooer, Gigabyte mobo jack detection oddity, Dell
AiO click noise fixes, Dell headset mic fixes, etc
- Automatic bind with HDMI codec parser without generic parser
- More AD codec fixes (since 3.12 regression) including the automatic
stereo mix support
- Common Thinkpad ACPI helper for Realtek and Conexant codecs
ASoC specifics:
- Update to the generic DMA code to support deferred probe and
managed resources
- New drivers for BCM2835 (used in Raspberry Pi), Tegra with MAX98090
and Analog Devices AXI I2S and S/PDIF controller IPs
- Device tree support for the simple card, max98090 and cs42l52
- Conversion of the Samsung drivers to native dmaengine, making them
multiplatform compatible and hopefully helping keep them more
modern and up to date.
- More regmap conversions, including a very welcome one for twl6040
from Peter Ujfalusi
- A big overhaul of the DaVinci drivers also from Peter Ujfalusi
- Lots of DMA updates from Lars-Peter
- Improvements to the constraints handling code from Lars-Peter
- A very helpful conversion of the TWL4030 driver to regmap from Peter
- A new driver for the Freescale ESAI controller from Nicolin Chen
- Conversion of some of the drivers to use params_width()
- Extensions to DPCM for use with compressed audio from Liam"
* tag 'sound-3.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (396 commits)
ASoC: dapm: Fix double prefix addition
ASoC: compress: Add suport for DPCM into compressed audio
ASoC: DPCM: make some DPCM API calls non static for compressed usage
ASoC: core: Fix possible NULL pointer dereference of pcm->config
ALSA: hda - add headset mic detect quirks for some Dell machines
ASoC: tlv320aic32x4: Fix regmap range_min
ASoC: core: Return -ENOTSUPP from set_sysclk() if no operation provided
ASoC: dapm: Change prototype of soc_widget_read
ASoC: samsung: Remove SND_DMAENGINE_PCM_FLAG_NO_RESIDUE flag
ASoC: axi-{spdif,i2s}: Remove SND_DMAENGINE_PCM_FLAG_NO_RESIDUE flag
ASoC: generic-dmaengine-pcm: Check DMA residue granularity
ASoC: generic-dmaengine-pcm: Check NO_RESIDUE flag at runtime
dma: pl330: Set residue_granularity
dma: Indicate residue granularity in dma_slave_caps
ASoC: simple-card: fix one bug to writing to the platform data
ASoC: pcm: Use snd_pcm_rate_mask_intersect() helper
ALSA: Add helper function for intersecting two rate masks
ASoC: s6000: Don't mix SNDRV_PCM_RATE_CONTINUOUS with specific rates
ASoC: fsl: Don't mix SNDRV_PCM_RATE_CONTINUOUS with specific rates
ASoC: pcm: Properly initialize hw->rate_max
...
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/dmaengine.h | 36 | ||||
| -rw-r--r-- | include/linux/i2c/twl.h | 5 | ||||
| -rw-r--r-- | include/linux/mfd/arizona/registers.h | 189 | ||||
| -rw-r--r-- | include/linux/platform_data/asoc-ti-mcbsp.h | 6 | ||||
| -rw-r--r-- | include/linux/platform_data/asoc-ux500-msp.h | 9 | ||||
| -rw-r--r-- | include/linux/platform_data/davinci_asp.h | 1 | ||||
| -rw-r--r-- | include/sound/cs42l52.h | 14 | ||||
| -rw-r--r-- | include/sound/dmaengine_pcm.h | 10 | ||||
| -rw-r--r-- | include/sound/hda_verbs.h | 554 | ||||
| -rw-r--r-- | include/sound/memalloc.h | 7 | ||||
| -rw-r--r-- | include/sound/pcm.h | 3 | ||||
| -rw-r--r-- | include/sound/pcm_params.h | 12 | ||||
| -rw-r--r-- | include/sound/rcar_snd.h | 3 | ||||
| -rw-r--r-- | include/sound/soc-dai.h | 8 | ||||
| -rw-r--r-- | include/sound/soc-dapm.h | 1 | ||||
| -rw-r--r-- | include/sound/soc-dpcm.h | 22 | ||||
| -rw-r--r-- | include/sound/soc.h | 22 | ||||
| -rw-r--r-- | include/sound/spear_dma.h | 1 | ||||
| -rw-r--r-- | include/uapi/sound/compress_params.h | 10 |
19 files changed, 872 insertions, 41 deletions
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index 41cf0c399288..ba5f96db0754 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h | |||
| @@ -22,6 +22,7 @@ | |||
| 22 | #define LINUX_DMAENGINE_H | 22 | #define LINUX_DMAENGINE_H |
| 23 | 23 | ||
| 24 | #include <linux/device.h> | 24 | #include <linux/device.h> |
| 25 | #include <linux/err.h> | ||
| 25 | #include <linux/uio.h> | 26 | #include <linux/uio.h> |
| 26 | #include <linux/bug.h> | 27 | #include <linux/bug.h> |
| 27 | #include <linux/scatterlist.h> | 28 | #include <linux/scatterlist.h> |
| @@ -363,6 +364,32 @@ struct dma_slave_config { | |||
| 363 | unsigned int slave_id; | 364 | unsigned int slave_id; |
| 364 | }; | 365 | }; |
| 365 | 366 | ||
| 367 | /** | ||
| 368 | * enum dma_residue_granularity - Granularity of the reported transfer residue | ||
| 369 | * @DMA_RESIDUE_GRANULARITY_DESCRIPTOR: Residue reporting is not support. The | ||
| 370 | * DMA channel is only able to tell whether a descriptor has been completed or | ||
| 371 | * not, which means residue reporting is not supported by this channel. The | ||
| 372 | * residue field of the dma_tx_state field will always be 0. | ||
| 373 | * @DMA_RESIDUE_GRANULARITY_SEGMENT: Residue is updated after each successfully | ||
| 374 | * completed segment of the transfer (For cyclic transfers this is after each | ||
| 375 | * period). This is typically implemented by having the hardware generate an | ||
| 376 | * interrupt after each transferred segment and then the drivers updates the | ||
| 377 | * outstanding residue by the size of the segment. Another possibility is if | ||
| 378 | * the hardware supports scatter-gather and the segment descriptor has a field | ||
| 379 | * which gets set after the segment has been completed. The driver then counts | ||
| 380 | * the number of segments without the flag set to compute the residue. | ||
| 381 | * @DMA_RESIDUE_GRANULARITY_BURST: Residue is updated after each transferred | ||
| 382 | * burst. This is typically only supported if the hardware has a progress | ||
| 383 | * register of some sort (E.g. a register with the current read/write address | ||
| 384 | * or a register with the amount of bursts/beats/bytes that have been | ||
| 385 | * transferred or still need to be transferred). | ||
| 386 | */ | ||
| 387 | enum dma_residue_granularity { | ||
| 388 | DMA_RESIDUE_GRANULARITY_DESCRIPTOR = 0, | ||
| 389 | DMA_RESIDUE_GRANULARITY_SEGMENT = 1, | ||
| 390 | DMA_RESIDUE_GRANULARITY_BURST = 2, | ||
| 391 | }; | ||
| 392 | |||
| 366 | /* struct dma_slave_caps - expose capabilities of a slave channel only | 393 | /* struct dma_slave_caps - expose capabilities of a slave channel only |
| 367 | * | 394 | * |
| 368 | * @src_addr_widths: bit mask of src addr widths the channel supports | 395 | * @src_addr_widths: bit mask of src addr widths the channel supports |
| @@ -373,6 +400,7 @@ struct dma_slave_config { | |||
| 373 | * should be checked by controller as well | 400 | * should be checked by controller as well |
| 374 | * @cmd_pause: true, if pause and thereby resume is supported | 401 | * @cmd_pause: true, if pause and thereby resume is supported |
| 375 | * @cmd_terminate: true, if terminate cmd is supported | 402 | * @cmd_terminate: true, if terminate cmd is supported |
| 403 | * @residue_granularity: granularity of the reported transfer residue | ||
| 376 | */ | 404 | */ |
| 377 | struct dma_slave_caps { | 405 | struct dma_slave_caps { |
| 378 | u32 src_addr_widths; | 406 | u32 src_addr_widths; |
| @@ -380,6 +408,7 @@ struct dma_slave_caps { | |||
| 380 | u32 directions; | 408 | u32 directions; |
| 381 | bool cmd_pause; | 409 | bool cmd_pause; |
| 382 | bool cmd_terminate; | 410 | bool cmd_terminate; |
| 411 | enum dma_residue_granularity residue_granularity; | ||
| 383 | }; | 412 | }; |
| 384 | 413 | ||
| 385 | static inline const char *dma_chan_name(struct dma_chan *chan) | 414 | static inline const char *dma_chan_name(struct dma_chan *chan) |
| @@ -1040,6 +1069,8 @@ enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx); | |||
| 1040 | void dma_issue_pending_all(void); | 1069 | void dma_issue_pending_all(void); |
| 1041 | struct dma_chan *__dma_request_channel(const dma_cap_mask_t *mask, | 1070 | struct dma_chan *__dma_request_channel(const dma_cap_mask_t *mask, |
| 1042 | dma_filter_fn fn, void *fn_param); | 1071 | dma_filter_fn fn, void *fn_param); |
| 1072 | struct dma_chan *dma_request_slave_channel_reason(struct device *dev, | ||
| 1073 | const char *name); | ||
| 1043 | struct dma_chan *dma_request_slave_channel(struct device *dev, const char *name); | 1074 | struct dma_chan *dma_request_slave_channel(struct device *dev, const char *name); |
| 1044 | void dma_release_channel(struct dma_chan *chan); | 1075 | void dma_release_channel(struct dma_chan *chan); |
| 1045 | #else | 1076 | #else |
| @@ -1063,6 +1094,11 @@ static inline struct dma_chan *__dma_request_channel(const dma_cap_mask_t *mask, | |||
| 1063 | { | 1094 | { |
| 1064 | return NULL; | 1095 | return NULL; |
| 1065 | } | 1096 | } |
| 1097 | static inline struct dma_chan *dma_request_slave_channel_reason( | ||
| 1098 | struct device *dev, const char *name) | ||
| 1099 | { | ||
| 1100 | return ERR_PTR(-ENODEV); | ||
| 1101 | } | ||
| 1066 | static inline struct dma_chan *dma_request_slave_channel(struct device *dev, | 1102 | static inline struct dma_chan *dma_request_slave_channel(struct device *dev, |
| 1067 | const char *name) | 1103 | const char *name) |
| 1068 | { | 1104 | { |
diff --git a/include/linux/i2c/twl.h b/include/linux/i2c/twl.h index 673a3ce67f31..ade1c06d4ceb 100644 --- a/include/linux/i2c/twl.h +++ b/include/linux/i2c/twl.h | |||
| @@ -175,6 +175,9 @@ static inline int twl_class_is_ ##class(void) \ | |||
| 175 | TWL_CLASS_IS(4030, TWL4030_CLASS_ID) | 175 | TWL_CLASS_IS(4030, TWL4030_CLASS_ID) |
| 176 | TWL_CLASS_IS(6030, TWL6030_CLASS_ID) | 176 | TWL_CLASS_IS(6030, TWL6030_CLASS_ID) |
| 177 | 177 | ||
| 178 | /* Set the regcache bypass for the regmap associated with the nodule */ | ||
| 179 | int twl_set_regcache_bypass(u8 mod_no, bool enable); | ||
| 180 | |||
| 178 | /* | 181 | /* |
| 179 | * Read and write several 8-bit registers at once. | 182 | * Read and write several 8-bit registers at once. |
| 180 | */ | 183 | */ |
| @@ -667,8 +670,6 @@ struct twl4030_codec_data { | |||
| 667 | unsigned int digimic_delay; /* in ms */ | 670 | unsigned int digimic_delay; /* in ms */ |
| 668 | unsigned int ramp_delay_value; | 671 | unsigned int ramp_delay_value; |
| 669 | unsigned int offset_cncl_path; | 672 | unsigned int offset_cncl_path; |
| 670 | unsigned int check_defaults:1; | ||
| 671 | unsigned int reset_registers:1; | ||
| 672 | unsigned int hs_extmute:1; | 673 | unsigned int hs_extmute:1; |
| 673 | int hs_extmute_gpio; | 674 | int hs_extmute_gpio; |
| 674 | }; | 675 | }; |
diff --git a/include/linux/mfd/arizona/registers.h b/include/linux/mfd/arizona/registers.h index b31976595eba..fdf3aa376eb2 100644 --- a/include/linux/mfd/arizona/registers.h +++ b/include/linux/mfd/arizona/registers.h | |||
| @@ -139,6 +139,7 @@ | |||
| 139 | #define ARIZONA_INPUT_ENABLES_STATUS 0x301 | 139 | #define ARIZONA_INPUT_ENABLES_STATUS 0x301 |
| 140 | #define ARIZONA_INPUT_RATE 0x308 | 140 | #define ARIZONA_INPUT_RATE 0x308 |
| 141 | #define ARIZONA_INPUT_VOLUME_RAMP 0x309 | 141 | #define ARIZONA_INPUT_VOLUME_RAMP 0x309 |
| 142 | #define ARIZONA_HPF_CONTROL 0x30C | ||
| 142 | #define ARIZONA_IN1L_CONTROL 0x310 | 143 | #define ARIZONA_IN1L_CONTROL 0x310 |
| 143 | #define ARIZONA_ADC_DIGITAL_VOLUME_1L 0x311 | 144 | #define ARIZONA_ADC_DIGITAL_VOLUME_1L 0x311 |
| 144 | #define ARIZONA_DMIC1L_CONTROL 0x312 | 145 | #define ARIZONA_DMIC1L_CONTROL 0x312 |
| @@ -160,6 +161,7 @@ | |||
| 160 | #define ARIZONA_IN4L_CONTROL 0x328 | 161 | #define ARIZONA_IN4L_CONTROL 0x328 |
| 161 | #define ARIZONA_ADC_DIGITAL_VOLUME_4L 0x329 | 162 | #define ARIZONA_ADC_DIGITAL_VOLUME_4L 0x329 |
| 162 | #define ARIZONA_DMIC4L_CONTROL 0x32A | 163 | #define ARIZONA_DMIC4L_CONTROL 0x32A |
| 164 | #define ARIZONA_IN4R_CONTROL 0x32C | ||
| 163 | #define ARIZONA_ADC_DIGITAL_VOLUME_4R 0x32D | 165 | #define ARIZONA_ADC_DIGITAL_VOLUME_4R 0x32D |
| 164 | #define ARIZONA_DMIC4R_CONTROL 0x32E | 166 | #define ARIZONA_DMIC4R_CONTROL 0x32E |
| 165 | #define ARIZONA_OUTPUT_ENABLES_1 0x400 | 167 | #define ARIZONA_OUTPUT_ENABLES_1 0x400 |
| @@ -224,6 +226,9 @@ | |||
| 224 | #define ARIZONA_PDM_SPK1_CTRL_2 0x491 | 226 | #define ARIZONA_PDM_SPK1_CTRL_2 0x491 |
| 225 | #define ARIZONA_PDM_SPK2_CTRL_1 0x492 | 227 | #define ARIZONA_PDM_SPK2_CTRL_1 0x492 |
| 226 | #define ARIZONA_PDM_SPK2_CTRL_2 0x493 | 228 | #define ARIZONA_PDM_SPK2_CTRL_2 0x493 |
| 229 | #define ARIZONA_HP1_SHORT_CIRCUIT_CTRL 0x4A0 | ||
| 230 | #define ARIZONA_HP2_SHORT_CIRCUIT_CTRL 0x4A1 | ||
| 231 | #define ARIZONA_HP3_SHORT_CIRCUIT_CTRL 0x4A2 | ||
| 227 | #define ARIZONA_SPK_CTRL_2 0x4B5 | 232 | #define ARIZONA_SPK_CTRL_2 0x4B5 |
| 228 | #define ARIZONA_SPK_CTRL_3 0x4B6 | 233 | #define ARIZONA_SPK_CTRL_3 0x4B6 |
| 229 | #define ARIZONA_DAC_COMP_1 0x4DC | 234 | #define ARIZONA_DAC_COMP_1 0x4DC |
| @@ -511,6 +516,38 @@ | |||
| 511 | #define ARIZONA_AIF2TX2MIX_INPUT_3_VOLUME 0x74D | 516 | #define ARIZONA_AIF2TX2MIX_INPUT_3_VOLUME 0x74D |
| 512 | #define ARIZONA_AIF2TX2MIX_INPUT_4_SOURCE 0x74E | 517 | #define ARIZONA_AIF2TX2MIX_INPUT_4_SOURCE 0x74E |
| 513 | #define ARIZONA_AIF2TX2MIX_INPUT_4_VOLUME 0x74F | 518 | #define ARIZONA_AIF2TX2MIX_INPUT_4_VOLUME 0x74F |
| 519 | #define ARIZONA_AIF2TX3MIX_INPUT_1_SOURCE 0x750 | ||
| 520 | #define ARIZONA_AIF2TX3MIX_INPUT_1_VOLUME 0x751 | ||
| 521 | #define ARIZONA_AIF2TX3MIX_INPUT_2_SOURCE 0x752 | ||
| 522 | #define ARIZONA_AIF2TX3MIX_INPUT_2_VOLUME 0x753 | ||
| 523 | #define ARIZONA_AIF2TX3MIX_INPUT_3_SOURCE 0x754 | ||
| 524 | #define ARIZONA_AIF2TX3MIX_INPUT_3_VOLUME 0x755 | ||
| 525 | #define ARIZONA_AIF2TX3MIX_INPUT_4_SOURCE 0x756 | ||
| 526 | #define ARIZONA_AIF2TX3MIX_INPUT_4_VOLUME 0x757 | ||
| 527 | #define ARIZONA_AIF2TX4MIX_INPUT_1_SOURCE 0x758 | ||
| 528 | #define ARIZONA_AIF2TX4MIX_INPUT_1_VOLUME 0x759 | ||
| 529 | #define ARIZONA_AIF2TX4MIX_INPUT_2_SOURCE 0x75A | ||
| 530 | #define ARIZONA_AIF2TX4MIX_INPUT_2_VOLUME 0x75B | ||
| 531 | #define ARIZONA_AIF2TX4MIX_INPUT_3_SOURCE 0x75C | ||
| 532 | #define ARIZONA_AIF2TX4MIX_INPUT_3_VOLUME 0x75D | ||
| 533 | #define ARIZONA_AIF2TX4MIX_INPUT_4_SOURCE 0x75E | ||
| 534 | #define ARIZONA_AIF2TX4MIX_INPUT_4_VOLUME 0x75F | ||
| 535 | #define ARIZONA_AIF2TX5MIX_INPUT_1_SOURCE 0x760 | ||
| 536 | #define ARIZONA_AIF2TX5MIX_INPUT_1_VOLUME 0x761 | ||
| 537 | #define ARIZONA_AIF2TX5MIX_INPUT_2_SOURCE 0x762 | ||
| 538 | #define ARIZONA_AIF2TX5MIX_INPUT_2_VOLUME 0x763 | ||
| 539 | #define ARIZONA_AIF2TX5MIX_INPUT_3_SOURCE 0x764 | ||
| 540 | #define ARIZONA_AIF2TX5MIX_INPUT_3_VOLUME 0x765 | ||
| 541 | #define ARIZONA_AIF2TX5MIX_INPUT_4_SOURCE 0x766 | ||
| 542 | #define ARIZONA_AIF2TX5MIX_INPUT_4_VOLUME 0x767 | ||
| 543 | #define ARIZONA_AIF2TX6MIX_INPUT_1_SOURCE 0x768 | ||
| 544 | #define ARIZONA_AIF2TX6MIX_INPUT_1_VOLUME 0x769 | ||
| 545 | #define ARIZONA_AIF2TX6MIX_INPUT_2_SOURCE 0x76A | ||
| 546 | #define ARIZONA_AIF2TX6MIX_INPUT_2_VOLUME 0x76B | ||
| 547 | #define ARIZONA_AIF2TX6MIX_INPUT_3_SOURCE 0x76C | ||
| 548 | #define ARIZONA_AIF2TX6MIX_INPUT_3_VOLUME 0x76D | ||
| 549 | #define ARIZONA_AIF2TX6MIX_INPUT_4_SOURCE 0x76E | ||
| 550 | #define ARIZONA_AIF2TX6MIX_INPUT_4_VOLUME 0x76F | ||
| 514 | #define ARIZONA_AIF3TX1MIX_INPUT_1_SOURCE 0x780 | 551 | #define ARIZONA_AIF3TX1MIX_INPUT_1_SOURCE 0x780 |
| 515 | #define ARIZONA_AIF3TX1MIX_INPUT_1_VOLUME 0x781 | 552 | #define ARIZONA_AIF3TX1MIX_INPUT_1_VOLUME 0x781 |
| 516 | #define ARIZONA_AIF3TX1MIX_INPUT_2_SOURCE 0x782 | 553 | #define ARIZONA_AIF3TX1MIX_INPUT_2_SOURCE 0x782 |
| @@ -2302,8 +2339,18 @@ | |||
| 2302 | #define ARIZONA_IN_VI_RAMP_WIDTH 3 /* IN_VI_RAMP - [2:0] */ | 2339 | #define ARIZONA_IN_VI_RAMP_WIDTH 3 /* IN_VI_RAMP - [2:0] */ |
| 2303 | 2340 | ||
| 2304 | /* | 2341 | /* |
| 2342 | * R780 (0x30C) - HPF Control | ||
| 2343 | */ | ||
| 2344 | #define ARIZONA_IN_HPF_CUT_MASK 0x0007 /* IN_HPF_CUT [2:0] */ | ||
| 2345 | #define ARIZONA_IN_HPF_CUT_SHIFT 0 /* IN_HPF_CUT [2:0] */ | ||
| 2346 | #define ARIZONA_IN_HPF_CUT_WIDTH 3 /* IN_HPF_CUT [2:0] */ | ||
| 2347 | |||
| 2348 | /* | ||
| 2305 | * R784 (0x310) - IN1L Control | 2349 | * R784 (0x310) - IN1L Control |
| 2306 | */ | 2350 | */ |
| 2351 | #define ARIZONA_IN1L_HPF_MASK 0x8000 /* IN1L_HPF - [15] */ | ||
| 2352 | #define ARIZONA_IN1L_HPF_SHIFT 15 /* IN1L_HPF - [15] */ | ||
| 2353 | #define ARIZONA_IN1L_HPF_WIDTH 1 /* IN1L_HPF - [15] */ | ||
| 2307 | #define ARIZONA_IN1_OSR_MASK 0x6000 /* IN1_OSR - [14:13] */ | 2354 | #define ARIZONA_IN1_OSR_MASK 0x6000 /* IN1_OSR - [14:13] */ |
| 2308 | #define ARIZONA_IN1_OSR_SHIFT 13 /* IN1_OSR - [14:13] */ | 2355 | #define ARIZONA_IN1_OSR_SHIFT 13 /* IN1_OSR - [14:13] */ |
| 2309 | #define ARIZONA_IN1_OSR_WIDTH 2 /* IN1_OSR - [14:13] */ | 2356 | #define ARIZONA_IN1_OSR_WIDTH 2 /* IN1_OSR - [14:13] */ |
| @@ -2342,6 +2389,9 @@ | |||
| 2342 | /* | 2389 | /* |
| 2343 | * R788 (0x314) - IN1R Control | 2390 | * R788 (0x314) - IN1R Control |
| 2344 | */ | 2391 | */ |
| 2392 | #define ARIZONA_IN1R_HPF_MASK 0x8000 /* IN1R_HPF - [15] */ | ||
| 2393 | #define ARIZONA_IN1R_HPF_SHIFT 15 /* IN1R_HPF - [15] */ | ||
| 2394 | #define ARIZONA_IN1R_HPF_WIDTH 1 /* IN1R_HPF - [15] */ | ||
| 2345 | #define ARIZONA_IN1R_PGA_VOL_MASK 0x00FE /* IN1R_PGA_VOL - [7:1] */ | 2395 | #define ARIZONA_IN1R_PGA_VOL_MASK 0x00FE /* IN1R_PGA_VOL - [7:1] */ |
| 2346 | #define ARIZONA_IN1R_PGA_VOL_SHIFT 1 /* IN1R_PGA_VOL - [7:1] */ | 2396 | #define ARIZONA_IN1R_PGA_VOL_SHIFT 1 /* IN1R_PGA_VOL - [7:1] */ |
| 2347 | #define ARIZONA_IN1R_PGA_VOL_WIDTH 7 /* IN1R_PGA_VOL - [7:1] */ | 2397 | #define ARIZONA_IN1R_PGA_VOL_WIDTH 7 /* IN1R_PGA_VOL - [7:1] */ |
| @@ -2371,6 +2421,9 @@ | |||
| 2371 | /* | 2421 | /* |
| 2372 | * R792 (0x318) - IN2L Control | 2422 | * R792 (0x318) - IN2L Control |
| 2373 | */ | 2423 | */ |
| 2424 | #define ARIZONA_IN2L_HPF_MASK 0x8000 /* IN2L_HPF - [15] */ | ||
| 2425 | #define ARIZONA_IN2L_HPF_SHIFT 15 /* IN2L_HPF - [15] */ | ||
| 2426 | #define ARIZONA_IN2L_HPF_WIDTH 1 /* IN2L_HPF - [15] */ | ||
| 2374 | #define ARIZONA_IN2_OSR_MASK 0x6000 /* IN2_OSR - [14:13] */ | 2427 | #define ARIZONA_IN2_OSR_MASK 0x6000 /* IN2_OSR - [14:13] */ |
| 2375 | #define ARIZONA_IN2_OSR_SHIFT 13 /* IN2_OSR - [14:13] */ | 2428 | #define ARIZONA_IN2_OSR_SHIFT 13 /* IN2_OSR - [14:13] */ |
| 2376 | #define ARIZONA_IN2_OSR_WIDTH 2 /* IN2_OSR - [14:13] */ | 2429 | #define ARIZONA_IN2_OSR_WIDTH 2 /* IN2_OSR - [14:13] */ |
| @@ -2409,6 +2462,9 @@ | |||
| 2409 | /* | 2462 | /* |
| 2410 | * R796 (0x31C) - IN2R Control | 2463 | * R796 (0x31C) - IN2R Control |
| 2411 | */ | 2464 | */ |
| 2465 | #define ARIZONA_IN2R_HPF_MASK 0x8000 /* IN2R_HPF - [15] */ | ||
| 2466 | #define ARIZONA_IN2R_HPF_SHIFT 15 /* IN2R_HPF - [15] */ | ||
| 2467 | #define ARIZONA_IN2R_HPF_WIDTH 1 /* IN2R_HPF - [15] */ | ||
| 2412 | #define ARIZONA_IN2R_PGA_VOL_MASK 0x00FE /* IN2R_PGA_VOL - [7:1] */ | 2468 | #define ARIZONA_IN2R_PGA_VOL_MASK 0x00FE /* IN2R_PGA_VOL - [7:1] */ |
| 2413 | #define ARIZONA_IN2R_PGA_VOL_SHIFT 1 /* IN2R_PGA_VOL - [7:1] */ | 2469 | #define ARIZONA_IN2R_PGA_VOL_SHIFT 1 /* IN2R_PGA_VOL - [7:1] */ |
| 2414 | #define ARIZONA_IN2R_PGA_VOL_WIDTH 7 /* IN2R_PGA_VOL - [7:1] */ | 2470 | #define ARIZONA_IN2R_PGA_VOL_WIDTH 7 /* IN2R_PGA_VOL - [7:1] */ |
| @@ -2438,6 +2494,9 @@ | |||
| 2438 | /* | 2494 | /* |
| 2439 | * R800 (0x320) - IN3L Control | 2495 | * R800 (0x320) - IN3L Control |
| 2440 | */ | 2496 | */ |
| 2497 | #define ARIZONA_IN3L_HPF_MASK 0x8000 /* IN3L_HPF - [15] */ | ||
| 2498 | #define ARIZONA_IN3L_HPF_SHIFT 15 /* IN3L_HPF - [15] */ | ||
| 2499 | #define ARIZONA_IN3L_HPF_WIDTH 1 /* IN3L_HPF - [15] */ | ||
| 2441 | #define ARIZONA_IN3_OSR_MASK 0x6000 /* IN3_OSR - [14:13] */ | 2500 | #define ARIZONA_IN3_OSR_MASK 0x6000 /* IN3_OSR - [14:13] */ |
| 2442 | #define ARIZONA_IN3_OSR_SHIFT 13 /* IN3_OSR - [14:13] */ | 2501 | #define ARIZONA_IN3_OSR_SHIFT 13 /* IN3_OSR - [14:13] */ |
| 2443 | #define ARIZONA_IN3_OSR_WIDTH 2 /* IN3_OSR - [14:13] */ | 2502 | #define ARIZONA_IN3_OSR_WIDTH 2 /* IN3_OSR - [14:13] */ |
| @@ -2476,6 +2535,9 @@ | |||
| 2476 | /* | 2535 | /* |
| 2477 | * R804 (0x324) - IN3R Control | 2536 | * R804 (0x324) - IN3R Control |
| 2478 | */ | 2537 | */ |
| 2538 | #define ARIZONA_IN3R_HPF_MASK 0x8000 /* IN3R_HPF - [15] */ | ||
| 2539 | #define ARIZONA_IN3R_HPF_SHIFT 15 /* IN3R_HPF - [15] */ | ||
| 2540 | #define ARIZONA_IN3R_HPF_WIDTH 1 /* IN3R_HPF - [15] */ | ||
| 2479 | #define ARIZONA_IN3R_PGA_VOL_MASK 0x00FE /* IN3R_PGA_VOL - [7:1] */ | 2541 | #define ARIZONA_IN3R_PGA_VOL_MASK 0x00FE /* IN3R_PGA_VOL - [7:1] */ |
| 2480 | #define ARIZONA_IN3R_PGA_VOL_SHIFT 1 /* IN3R_PGA_VOL - [7:1] */ | 2542 | #define ARIZONA_IN3R_PGA_VOL_SHIFT 1 /* IN3R_PGA_VOL - [7:1] */ |
| 2481 | #define ARIZONA_IN3R_PGA_VOL_WIDTH 7 /* IN3R_PGA_VOL - [7:1] */ | 2543 | #define ARIZONA_IN3R_PGA_VOL_WIDTH 7 /* IN3R_PGA_VOL - [7:1] */ |
| @@ -2505,6 +2567,9 @@ | |||
| 2505 | /* | 2567 | /* |
| 2506 | * R808 (0x328) - IN4 Control | 2568 | * R808 (0x328) - IN4 Control |
| 2507 | */ | 2569 | */ |
| 2570 | #define ARIZONA_IN4L_HPF_MASK 0x8000 /* IN4L_HPF - [15] */ | ||
| 2571 | #define ARIZONA_IN4L_HPF_SHIFT 15 /* IN4L_HPF - [15] */ | ||
| 2572 | #define ARIZONA_IN4L_HPF_WIDTH 1 /* IN4L_HPF - [15] */ | ||
| 2508 | #define ARIZONA_IN4_OSR_MASK 0x6000 /* IN4_OSR - [14:13] */ | 2573 | #define ARIZONA_IN4_OSR_MASK 0x6000 /* IN4_OSR - [14:13] */ |
| 2509 | #define ARIZONA_IN4_OSR_SHIFT 13 /* IN4_OSR - [14:13] */ | 2574 | #define ARIZONA_IN4_OSR_SHIFT 13 /* IN4_OSR - [14:13] */ |
| 2510 | #define ARIZONA_IN4_OSR_WIDTH 2 /* IN4_OSR - [14:13] */ | 2575 | #define ARIZONA_IN4_OSR_WIDTH 2 /* IN4_OSR - [14:13] */ |
| @@ -2535,6 +2600,13 @@ | |||
| 2535 | #define ARIZONA_IN4L_DMIC_DLY_WIDTH 6 /* IN4L_DMIC_DLY - [5:0] */ | 2600 | #define ARIZONA_IN4L_DMIC_DLY_WIDTH 6 /* IN4L_DMIC_DLY - [5:0] */ |
| 2536 | 2601 | ||
| 2537 | /* | 2602 | /* |
| 2603 | * R812 (0x32C) - IN4R Control | ||
| 2604 | */ | ||
| 2605 | #define ARIZONA_IN4R_HPF_MASK 0x8000 /* IN4R_HPF - [15] */ | ||
| 2606 | #define ARIZONA_IN4R_HPF_SHIFT 15 /* IN4R_HPF - [15] */ | ||
| 2607 | #define ARIZONA_IN4R_HPF_WIDTH 1 /* IN4R_HPF - [15] */ | ||
| 2608 | |||
| 2609 | /* | ||
| 2538 | * R813 (0x32D) - ADC Digital Volume 4R | 2610 | * R813 (0x32D) - ADC Digital Volume 4R |
| 2539 | */ | 2611 | */ |
| 2540 | #define ARIZONA_IN_VU 0x0200 /* IN_VU */ | 2612 | #define ARIZONA_IN_VU 0x0200 /* IN_VU */ |
| @@ -3147,6 +3219,10 @@ | |||
| 3147 | /* | 3219 | /* |
| 3148 | * R1088 (0x440) - DRE Enable | 3220 | * R1088 (0x440) - DRE Enable |
| 3149 | */ | 3221 | */ |
| 3222 | #define ARIZONA_DRE3R_ENA 0x0020 /* DRE3R_ENA */ | ||
| 3223 | #define ARIZONA_DRE3R_ENA_MASK 0x0020 /* DRE3R_ENA */ | ||
| 3224 | #define ARIZONA_DRE3R_ENA_SHIFT 5 /* DRE3R_ENA */ | ||
| 3225 | #define ARIZONA_DRE3R_ENA_WIDTH 1 /* DRE3R_ENA */ | ||
| 3150 | #define ARIZONA_DRE3L_ENA 0x0010 /* DRE3L_ENA */ | 3226 | #define ARIZONA_DRE3L_ENA 0x0010 /* DRE3L_ENA */ |
| 3151 | #define ARIZONA_DRE3L_ENA_MASK 0x0010 /* DRE3L_ENA */ | 3227 | #define ARIZONA_DRE3L_ENA_MASK 0x0010 /* DRE3L_ENA */ |
| 3152 | #define ARIZONA_DRE3L_ENA_SHIFT 4 /* DRE3L_ENA */ | 3228 | #define ARIZONA_DRE3L_ENA_SHIFT 4 /* DRE3L_ENA */ |
| @@ -3269,6 +3345,30 @@ | |||
| 3269 | #define ARIZONA_SPK2_FMT_WIDTH 1 /* SPK2_FMT */ | 3345 | #define ARIZONA_SPK2_FMT_WIDTH 1 /* SPK2_FMT */ |
| 3270 | 3346 | ||
| 3271 | /* | 3347 | /* |
| 3348 | * R1184 (0x4A0) - HP1 Short Circuit Ctrl | ||
| 3349 | */ | ||
| 3350 | #define ARIZONA_HP1_SC_ENA 0x1000 /* HP1_SC_ENA */ | ||
| 3351 | #define ARIZONA_HP1_SC_ENA_MASK 0x1000 /* HP1_SC_ENA */ | ||
| 3352 | #define ARIZONA_HP1_SC_ENA_SHIFT 12 /* HP1_SC_ENA */ | ||
| 3353 | #define ARIZONA_HP1_SC_ENA_WIDTH 1 /* HP1_SC_ENA */ | ||
| 3354 | |||
| 3355 | /* | ||
| 3356 | * R1185 (0x4A1) - HP2 Short Circuit Ctrl | ||
| 3357 | */ | ||
| 3358 | #define ARIZONA_HP2_SC_ENA 0x1000 /* HP2_SC_ENA */ | ||
| 3359 | #define ARIZONA_HP2_SC_ENA_MASK 0x1000 /* HP2_SC_ENA */ | ||
| 3360 | #define ARIZONA_HP2_SC_ENA_SHIFT 12 /* HP2_SC_ENA */ | ||
| 3361 | #define ARIZONA_HP2_SC_ENA_WIDTH 1 /* HP2_SC_ENA */ | ||
| 3362 | |||
| 3363 | /* | ||
| 3364 | * R1186 (0x4A2) - HP3 Short Circuit Ctrl | ||
| 3365 | */ | ||
| 3366 | #define ARIZONA_HP3_SC_ENA 0x1000 /* HP3_SC_ENA */ | ||
| 3367 | #define ARIZONA_HP3_SC_ENA_MASK 0x1000 /* HP3_SC_ENA */ | ||
| 3368 | #define ARIZONA_HP3_SC_ENA_SHIFT 12 /* HP3_SC_ENA */ | ||
| 3369 | #define ARIZONA_HP3_SC_ENA_WIDTH 1 /* HP3_SC_ENA */ | ||
| 3370 | |||
| 3371 | /* | ||
| 3272 | * R1244 (0x4DC) - DAC comp 1 | 3372 | * R1244 (0x4DC) - DAC comp 1 |
| 3273 | */ | 3373 | */ |
| 3274 | #define ARIZONA_OUT_COMP_COEFF_MASK 0xFFFF /* OUT_COMP_COEFF - [15:0] */ | 3374 | #define ARIZONA_OUT_COMP_COEFF_MASK 0xFFFF /* OUT_COMP_COEFF - [15:0] */ |
| @@ -3735,6 +3835,35 @@ | |||
| 3735 | #define ARIZONA_AIF2TX2_SLOT_WIDTH 6 /* AIF2TX2_SLOT - [5:0] */ | 3835 | #define ARIZONA_AIF2TX2_SLOT_WIDTH 6 /* AIF2TX2_SLOT - [5:0] */ |
| 3736 | 3836 | ||
| 3737 | /* | 3837 | /* |
| 3838 | * R1355 (0x54B) - AIF2 Frame Ctrl 5 | ||
| 3839 | */ | ||
| 3840 | #define ARIZONA_AIF2TX3_SLOT_MASK 0x003F /* AIF2TX3_SLOT - [5:0] */ | ||
| 3841 | #define ARIZONA_AIF2TX3_SLOT_SHIFT 0 /* AIF2TX3_SLOT - [5:0] */ | ||
| 3842 | #define ARIZONA_AIF2TX3_SLOT_WIDTH 6 /* AIF2TX3_SLOT - [5:0] */ | ||
| 3843 | |||
| 3844 | /* | ||
| 3845 | * R1356 (0x54C) - AIF2 Frame Ctrl 6 | ||
| 3846 | */ | ||
| 3847 | #define ARIZONA_AIF2TX4_SLOT_MASK 0x003F /* AIF2TX4_SLOT - [5:0] */ | ||
| 3848 | #define ARIZONA_AIF2TX4_SLOT_SHIFT 0 /* AIF2TX4_SLOT - [5:0] */ | ||
| 3849 | #define ARIZONA_AIF2TX4_SLOT_WIDTH 6 /* AIF2TX4_SLOT - [5:0] */ | ||
| 3850 | |||
| 3851 | |||
| 3852 | /* | ||
| 3853 | * R1357 (0x54D) - AIF2 Frame Ctrl 7 | ||
| 3854 | */ | ||
| 3855 | #define ARIZONA_AIF2TX5_SLOT_MASK 0x003F /* AIF2TX5_SLOT - [5:0] */ | ||
| 3856 | #define ARIZONA_AIF2TX5_SLOT_SHIFT 0 /* AIF2TX5_SLOT - [5:0] */ | ||
| 3857 | #define ARIZONA_AIF2TX5_SLOT_WIDTH 6 /* AIF2TX5_SLOT - [5:0] */ | ||
| 3858 | |||
| 3859 | /* | ||
| 3860 | * R1358 (0x54E) - AIF2 Frame Ctrl 8 | ||
| 3861 | */ | ||
| 3862 | #define ARIZONA_AIF2TX6_SLOT_MASK 0x003F /* AIF2TX6_SLOT - [5:0] */ | ||
| 3863 | #define ARIZONA_AIF2TX6_SLOT_SHIFT 0 /* AIF2TX6_SLOT - [5:0] */ | ||
| 3864 | #define ARIZONA_AIF2TX6_SLOT_WIDTH 6 /* AIF2TX6_SLOT - [5:0] */ | ||
| 3865 | |||
| 3866 | /* | ||
| 3738 | * R1361 (0x551) - AIF2 Frame Ctrl 11 | 3867 | * R1361 (0x551) - AIF2 Frame Ctrl 11 |
| 3739 | */ | 3868 | */ |
| 3740 | #define ARIZONA_AIF2RX1_SLOT_MASK 0x003F /* AIF2RX1_SLOT - [5:0] */ | 3869 | #define ARIZONA_AIF2RX1_SLOT_MASK 0x003F /* AIF2RX1_SLOT - [5:0] */ |
| @@ -3749,8 +3878,52 @@ | |||
| 3749 | #define ARIZONA_AIF2RX2_SLOT_WIDTH 6 /* AIF2RX2_SLOT - [5:0] */ | 3878 | #define ARIZONA_AIF2RX2_SLOT_WIDTH 6 /* AIF2RX2_SLOT - [5:0] */ |
| 3750 | 3879 | ||
| 3751 | /* | 3880 | /* |
| 3881 | * R1363 (0x553) - AIF2 Frame Ctrl 13 | ||
| 3882 | */ | ||
| 3883 | #define ARIZONA_AIF2RX3_SLOT_MASK 0x003F /* AIF2RX3_SLOT - [5:0] */ | ||
| 3884 | #define ARIZONA_AIF2RX3_SLOT_SHIFT 0 /* AIF2RX3_SLOT - [5:0] */ | ||
| 3885 | #define ARIZONA_AIF2RX3_SLOT_WIDTH 6 /* AIF2RX3_SLOT - [5:0] */ | ||
| 3886 | |||
| 3887 | /* | ||
| 3888 | * R1364 (0x554) - AIF2 Frame Ctrl 14 | ||
| 3889 | */ | ||
| 3890 | #define ARIZONA_AIF2RX4_SLOT_MASK 0x003F /* AIF2RX4_SLOT - [5:0] */ | ||
| 3891 | #define ARIZONA_AIF2RX4_SLOT_SHIFT 0 /* AIF2RX4_SLOT - [5:0] */ | ||
| 3892 | #define ARIZONA_AIF2RX4_SLOT_WIDTH 6 /* AIF2RX4_SLOT - [5:0] */ | ||
| 3893 | |||
| 3894 | /* | ||
| 3895 | * R1365 (0x555) - AIF2 Frame Ctrl 15 | ||
| 3896 | */ | ||
| 3897 | #define ARIZONA_AIF2RX5_SLOT_MASK 0x003F /* AIF2RX5_SLOT - [5:0] */ | ||
| 3898 | #define ARIZONA_AIF2RX5_SLOT_SHIFT 0 /* AIF2RX5_SLOT - [5:0] */ | ||
| 3899 | #define ARIZONA_AIF2RX5_SLOT_WIDTH 6 /* AIF2RX5_SLOT - [5:0] */ | ||
| 3900 | |||
| 3901 | /* | ||
| 3902 | * R1366 (0x556) - AIF2 Frame Ctrl 16 | ||
| 3903 | */ | ||
| 3904 | #define ARIZONA_AIF2RX6_SLOT_MASK 0x003F /* AIF2RX6_SLOT - [5:0] */ | ||
| 3905 | #define ARIZONA_AIF2RX6_SLOT_SHIFT 0 /* AIF2RX6_SLOT - [5:0] */ | ||
| 3906 | #define ARIZONA_AIF2RX6_SLOT_WIDTH 6 /* AIF2RX6_SLOT - [5:0] */ | ||
| 3907 | |||
| 3908 | /* | ||
| 3752 | * R1369 (0x559) - AIF2 Tx Enables | 3909 | * R1369 (0x559) - AIF2 Tx Enables |
| 3753 | */ | 3910 | */ |
| 3911 | #define ARIZONA_AIF2TX6_ENA 0x0020 /* AIF2TX6_ENA */ | ||
| 3912 | #define ARIZONA_AIF2TX6_ENA_MASK 0x0020 /* AIF2TX6_ENA */ | ||
| 3913 | #define ARIZONA_AIF2TX6_ENA_SHIFT 5 /* AIF2TX6_ENA */ | ||
| 3914 | #define ARIZONA_AIF2TX6_ENA_WIDTH 1 /* AIF2TX6_ENA */ | ||
| 3915 | #define ARIZONA_AIF2TX5_ENA 0x0010 /* AIF2TX5_ENA */ | ||
| 3916 | #define ARIZONA_AIF2TX5_ENA_MASK 0x0010 /* AIF2TX5_ENA */ | ||
| 3917 | #define ARIZONA_AIF2TX5_ENA_SHIFT 4 /* AIF2TX5_ENA */ | ||
| 3918 | #define ARIZONA_AIF2TX5_ENA_WIDTH 1 /* AIF2TX5_ENA */ | ||
| 3919 | #define ARIZONA_AIF2TX4_ENA 0x0008 /* AIF2TX4_ENA */ | ||
| 3920 | #define ARIZONA_AIF2TX4_ENA_MASK 0x0008 /* AIF2TX4_ENA */ | ||
| 3921 | #define ARIZONA_AIF2TX4_ENA_SHIFT 3 /* AIF2TX4_ENA */ | ||
| 3922 | #define ARIZONA_AIF2TX4_ENA_WIDTH 1 /* AIF2TX4_ENA */ | ||
| 3923 | #define ARIZONA_AIF2TX3_ENA 0x0004 /* AIF2TX3_ENA */ | ||
| 3924 | #define ARIZONA_AIF2TX3_ENA_MASK 0x0004 /* AIF2TX3_ENA */ | ||
| 3925 | #define ARIZONA_AIF2TX3_ENA_SHIFT 2 /* AIF2TX3_ENA */ | ||
| 3926 | #define ARIZONA_AIF2TX3_ENA_WIDTH 1 /* AIF2TX3_ENA */ | ||
| 3754 | #define ARIZONA_AIF2TX2_ENA 0x0002 /* AIF2TX2_ENA */ | 3927 | #define ARIZONA_AIF2TX2_ENA 0x0002 /* AIF2TX2_ENA */ |
| 3755 | #define ARIZONA_AIF2TX2_ENA_MASK 0x0002 /* AIF2TX2_ENA */ | 3928 | #define ARIZONA_AIF2TX2_ENA_MASK 0x0002 /* AIF2TX2_ENA */ |
| 3756 | #define ARIZONA_AIF2TX2_ENA_SHIFT 1 /* AIF2TX2_ENA */ | 3929 | #define ARIZONA_AIF2TX2_ENA_SHIFT 1 /* AIF2TX2_ENA */ |
| @@ -3763,6 +3936,22 @@ | |||
| 3763 | /* | 3936 | /* |
| 3764 | * R1370 (0x55A) - AIF2 Rx Enables | 3937 | * R1370 (0x55A) - AIF2 Rx Enables |
| 3765 | */ | 3938 | */ |
| 3939 | #define ARIZONA_AIF2RX6_ENA 0x0020 /* AIF2RX6_ENA */ | ||
| 3940 | #define ARIZONA_AIF2RX6_ENA_MASK 0x0020 /* AIF2RX6_ENA */ | ||
| 3941 | #define ARIZONA_AIF2RX6_ENA_SHIFT 5 /* AIF2RX6_ENA */ | ||
| 3942 | #define ARIZONA_AIF2RX6_ENA_WIDTH 1 /* AIF2RX6_ENA */ | ||
| 3943 | #define ARIZONA_AIF2RX5_ENA 0x0010 /* AIF2RX5_ENA */ | ||
| 3944 | #define ARIZONA_AIF2RX5_ENA_MASK 0x0010 /* AIF2RX5_ENA */ | ||
| 3945 | #define ARIZONA_AIF2RX5_ENA_SHIFT 4 /* AIF2RX5_ENA */ | ||
| 3946 | #define ARIZONA_AIF2RX5_ENA_WIDTH 1 /* AIF2RX5_ENA */ | ||
| 3947 | #define ARIZONA_AIF2RX4_ENA 0x0008 /* AIF2RX4_ENA */ | ||
| 3948 | #define ARIZONA_AIF2RX4_ENA_MASK 0x0008 /* AIF2RX4_ENA */ | ||
| 3949 | #define ARIZONA_AIF2RX4_ENA_SHIFT 3 /* AIF2RX4_ENA */ | ||
| 3950 | #define ARIZONA_AIF2RX4_ENA_WIDTH 1 /* AIF2RX4_ENA */ | ||
| 3951 | #define ARIZONA_AIF2RX3_ENA 0x0004 /* AIF2RX3_ENA */ | ||
| 3952 | #define ARIZONA_AIF2RX3_ENA_MASK 0x0004 /* AIF2RX3_ENA */ | ||
| 3953 | #define ARIZONA_AIF2RX3_ENA_SHIFT 2 /* AIF2RX3_ENA */ | ||
| 3954 | #define ARIZONA_AIF2RX3_ENA_WIDTH 1 /* AIF2RX3_ENA */ | ||
| 3766 | #define ARIZONA_AIF2RX2_ENA 0x0002 /* AIF2RX2_ENA */ | 3955 | #define ARIZONA_AIF2RX2_ENA 0x0002 /* AIF2RX2_ENA */ |
| 3767 | #define ARIZONA_AIF2RX2_ENA_MASK 0x0002 /* AIF2RX2_ENA */ | 3956 | #define ARIZONA_AIF2RX2_ENA_MASK 0x0002 /* AIF2RX2_ENA */ |
| 3768 | #define ARIZONA_AIF2RX2_ENA_SHIFT 1 /* AIF2RX2_ENA */ | 3957 | #define ARIZONA_AIF2RX2_ENA_SHIFT 1 /* AIF2RX2_ENA */ |
diff --git a/include/linux/platform_data/asoc-ti-mcbsp.h b/include/linux/platform_data/asoc-ti-mcbsp.h index c78d90b28b19..3c73c045f8da 100644 --- a/include/linux/platform_data/asoc-ti-mcbsp.h +++ b/include/linux/platform_data/asoc-ti-mcbsp.h | |||
| @@ -1,6 +1,4 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * arch/arm/plat-omap/include/mach/mcbsp.h | ||
| 3 | * | ||
| 4 | * Defines for Multi-Channel Buffered Serial Port | 2 | * Defines for Multi-Channel Buffered Serial Port |
| 5 | * | 3 | * |
| 6 | * Copyright (C) 2002 RidgeRun, Inc. | 4 | * Copyright (C) 2002 RidgeRun, Inc. |
| @@ -21,8 +19,8 @@ | |||
| 21 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| 22 | * | 20 | * |
| 23 | */ | 21 | */ |
| 24 | #ifndef __ASM_ARCH_OMAP_MCBSP_H | 22 | #ifndef __ASOC_TI_MCBSP_H |
| 25 | #define __ASM_ARCH_OMAP_MCBSP_H | 23 | #define __ASOC_TI_MCBSP_H |
| 26 | 24 | ||
| 27 | #include <linux/spinlock.h> | 25 | #include <linux/spinlock.h> |
| 28 | #include <linux/clk.h> | 26 | #include <linux/clk.h> |
diff --git a/include/linux/platform_data/asoc-ux500-msp.h b/include/linux/platform_data/asoc-ux500-msp.h index 9991aea3d577..2f34bb98fe2a 100644 --- a/include/linux/platform_data/asoc-ux500-msp.h +++ b/include/linux/platform_data/asoc-ux500-msp.h | |||
| @@ -10,16 +10,9 @@ | |||
| 10 | 10 | ||
| 11 | #include <linux/platform_data/dma-ste-dma40.h> | 11 | #include <linux/platform_data/dma-ste-dma40.h> |
| 12 | 12 | ||
| 13 | enum msp_i2s_id { | ||
| 14 | MSP_I2S_0 = 0, | ||
| 15 | MSP_I2S_1, | ||
| 16 | MSP_I2S_2, | ||
| 17 | MSP_I2S_3, | ||
| 18 | }; | ||
| 19 | |||
| 20 | /* Platform data structure for a MSP I2S-device */ | 13 | /* Platform data structure for a MSP I2S-device */ |
| 21 | struct msp_i2s_platform_data { | 14 | struct msp_i2s_platform_data { |
| 22 | enum msp_i2s_id id; | 15 | int id; |
| 23 | struct stedma40_chan_cfg *msp_i2s_dma_rx; | 16 | struct stedma40_chan_cfg *msp_i2s_dma_rx; |
| 24 | struct stedma40_chan_cfg *msp_i2s_dma_tx; | 17 | struct stedma40_chan_cfg *msp_i2s_dma_tx; |
| 25 | }; | 18 | }; |
diff --git a/include/linux/platform_data/davinci_asp.h b/include/linux/platform_data/davinci_asp.h index 689a856b86f9..5245992b0367 100644 --- a/include/linux/platform_data/davinci_asp.h +++ b/include/linux/platform_data/davinci_asp.h | |||
| @@ -92,6 +92,7 @@ enum { | |||
| 92 | MCASP_VERSION_1 = 0, /* DM646x */ | 92 | MCASP_VERSION_1 = 0, /* DM646x */ |
| 93 | MCASP_VERSION_2, /* DA8xx/OMAPL1x */ | 93 | MCASP_VERSION_2, /* DA8xx/OMAPL1x */ |
| 94 | MCASP_VERSION_3, /* TI81xx/AM33xx */ | 94 | MCASP_VERSION_3, /* TI81xx/AM33xx */ |
| 95 | MCASP_VERSION_4, /* DRA7xxx */ | ||
| 95 | }; | 96 | }; |
| 96 | 97 | ||
| 97 | enum mcbsp_clk_input_pin { | 98 | enum mcbsp_clk_input_pin { |
diff --git a/include/sound/cs42l52.h b/include/sound/cs42l52.h index 7c2be4a51894..bbabf84bdb44 100644 --- a/include/sound/cs42l52.h +++ b/include/sound/cs42l52.h | |||
| @@ -16,17 +16,11 @@ struct cs42l52_platform_data { | |||
| 16 | /* MICBIAS Level. Check datasheet Pg48 */ | 16 | /* MICBIAS Level. Check datasheet Pg48 */ |
| 17 | unsigned int micbias_lvl; | 17 | unsigned int micbias_lvl; |
| 18 | 18 | ||
| 19 | /* MICA mode selection 0=Single 1=Differential */ | 19 | /* MICA mode selection Differential or Single-ended */ |
| 20 | unsigned int mica_cfg; | 20 | bool mica_diff_cfg; |
| 21 | 21 | ||
| 22 | /* MICB mode selection 0=Single 1=Differential */ | 22 | /* MICB mode selection Differential or Single-ended */ |
| 23 | unsigned int micb_cfg; | 23 | bool micb_diff_cfg; |
| 24 | |||
| 25 | /* MICA Select 0=MIC1A 1=MIC2A */ | ||
| 26 | unsigned int mica_sel; | ||
| 27 | |||
| 28 | /* MICB Select 0=MIC2A 1=MIC2B */ | ||
| 29 | unsigned int micb_sel; | ||
| 30 | 24 | ||
| 31 | /* Charge Pump Freq. Check datasheet Pg73 */ | 25 | /* Charge Pump Freq. Check datasheet Pg73 */ |
| 32 | unsigned int chgfreq; | 26 | unsigned int chgfreq; |
diff --git a/include/sound/dmaengine_pcm.h b/include/sound/dmaengine_pcm.h index 15017311f2e9..eb73a3a39ec2 100644 --- a/include/sound/dmaengine_pcm.h +++ b/include/sound/dmaengine_pcm.h | |||
| @@ -114,6 +114,10 @@ void snd_dmaengine_pcm_set_config_from_dai_data( | |||
| 114 | * @compat_filter_fn: Will be used as the filter function when requesting a | 114 | * @compat_filter_fn: Will be used as the filter function when requesting a |
| 115 | * channel for platforms which do not use devicetree. The filter parameter | 115 | * channel for platforms which do not use devicetree. The filter parameter |
| 116 | * will be the DAI's DMA data. | 116 | * will be the DAI's DMA data. |
| 117 | * @dma_dev: If set, request DMA channel on this device rather than the DAI | ||
| 118 | * device. | ||
| 119 | * @chan_names: If set, these custom DMA channel names will be requested at | ||
| 120 | * registration time. | ||
| 117 | * @pcm_hardware: snd_pcm_hardware struct to be used for the PCM. | 121 | * @pcm_hardware: snd_pcm_hardware struct to be used for the PCM. |
| 118 | * @prealloc_buffer_size: Size of the preallocated audio buffer. | 122 | * @prealloc_buffer_size: Size of the preallocated audio buffer. |
| 119 | * | 123 | * |
| @@ -130,6 +134,8 @@ struct snd_dmaengine_pcm_config { | |||
| 130 | struct snd_soc_pcm_runtime *rtd, | 134 | struct snd_soc_pcm_runtime *rtd, |
| 131 | struct snd_pcm_substream *substream); | 135 | struct snd_pcm_substream *substream); |
| 132 | dma_filter_fn compat_filter_fn; | 136 | dma_filter_fn compat_filter_fn; |
| 137 | struct device *dma_dev; | ||
| 138 | const char *chan_names[SNDRV_PCM_STREAM_LAST + 1]; | ||
| 133 | 139 | ||
| 134 | const struct snd_pcm_hardware *pcm_hardware; | 140 | const struct snd_pcm_hardware *pcm_hardware; |
| 135 | unsigned int prealloc_buffer_size; | 141 | unsigned int prealloc_buffer_size; |
| @@ -140,6 +146,10 @@ int snd_dmaengine_pcm_register(struct device *dev, | |||
| 140 | unsigned int flags); | 146 | unsigned int flags); |
| 141 | void snd_dmaengine_pcm_unregister(struct device *dev); | 147 | void snd_dmaengine_pcm_unregister(struct device *dev); |
| 142 | 148 | ||
| 149 | int devm_snd_dmaengine_pcm_register(struct device *dev, | ||
| 150 | const struct snd_dmaengine_pcm_config *config, | ||
| 151 | unsigned int flags); | ||
| 152 | |||
| 143 | int snd_dmaengine_pcm_prepare_slave_config(struct snd_pcm_substream *substream, | 153 | int snd_dmaengine_pcm_prepare_slave_config(struct snd_pcm_substream *substream, |
| 144 | struct snd_pcm_hw_params *params, | 154 | struct snd_pcm_hw_params *params, |
| 145 | struct dma_slave_config *slave_config); | 155 | struct dma_slave_config *slave_config); |
diff --git a/include/sound/hda_verbs.h b/include/sound/hda_verbs.h new file mode 100644 index 000000000000..d0509db6d0ec --- /dev/null +++ b/include/sound/hda_verbs.h | |||
| @@ -0,0 +1,554 @@ | |||
| 1 | /* | ||
| 2 | * HD-audio codec verbs | ||
| 3 | */ | ||
| 4 | |||
| 5 | #ifndef __SOUND_HDA_VERBS_H | ||
| 6 | #define __SOUND_HDA_VERBS_H | ||
| 7 | |||
| 8 | /* | ||
| 9 | * nodes | ||
| 10 | */ | ||
| 11 | #define AC_NODE_ROOT 0x00 | ||
| 12 | |||
| 13 | /* | ||
| 14 | * function group types | ||
| 15 | */ | ||
| 16 | enum { | ||
| 17 | AC_GRP_AUDIO_FUNCTION = 0x01, | ||
| 18 | AC_GRP_MODEM_FUNCTION = 0x02, | ||
| 19 | }; | ||
| 20 | |||
| 21 | /* | ||
| 22 | * widget types | ||
| 23 | */ | ||
| 24 | enum { | ||
| 25 | AC_WID_AUD_OUT, /* Audio Out */ | ||
| 26 | AC_WID_AUD_IN, /* Audio In */ | ||
| 27 | AC_WID_AUD_MIX, /* Audio Mixer */ | ||
| 28 | AC_WID_AUD_SEL, /* Audio Selector */ | ||
| 29 | AC_WID_PIN, /* Pin Complex */ | ||
| 30 | AC_WID_POWER, /* Power */ | ||
| 31 | AC_WID_VOL_KNB, /* Volume Knob */ | ||
| 32 | AC_WID_BEEP, /* Beep Generator */ | ||
| 33 | AC_WID_VENDOR = 0x0f /* Vendor specific */ | ||
| 34 | }; | ||
| 35 | |||
| 36 | /* | ||
| 37 | * GET verbs | ||
| 38 | */ | ||
| 39 | #define AC_VERB_GET_STREAM_FORMAT 0x0a00 | ||
| 40 | #define AC_VERB_GET_AMP_GAIN_MUTE 0x0b00 | ||
| 41 | #define AC_VERB_GET_PROC_COEF 0x0c00 | ||
| 42 | #define AC_VERB_GET_COEF_INDEX 0x0d00 | ||
| 43 | #define AC_VERB_PARAMETERS 0x0f00 | ||
| 44 | #define AC_VERB_GET_CONNECT_SEL 0x0f01 | ||
| 45 | #define AC_VERB_GET_CONNECT_LIST 0x0f02 | ||
| 46 | #define AC_VERB_GET_PROC_STATE 0x0f03 | ||
| 47 | #define AC_VERB_GET_SDI_SELECT 0x0f04 | ||
| 48 | #define AC_VERB_GET_POWER_STATE 0x0f05 | ||
| 49 | #define AC_VERB_GET_CONV 0x0f06 | ||
| 50 | #define AC_VERB_GET_PIN_WIDGET_CONTROL 0x0f07 | ||
| 51 | #define AC_VERB_GET_UNSOLICITED_RESPONSE 0x0f08 | ||
| 52 | #define AC_VERB_GET_PIN_SENSE 0x0f09 | ||
| 53 | #define AC_VERB_GET_BEEP_CONTROL 0x0f0a | ||
| 54 | #define AC_VERB_GET_EAPD_BTLENABLE 0x0f0c | ||
| 55 | #define AC_VERB_GET_DIGI_CONVERT_1 0x0f0d | ||
| 56 | #define AC_VERB_GET_DIGI_CONVERT_2 0x0f0e /* unused */ | ||
| 57 | #define AC_VERB_GET_VOLUME_KNOB_CONTROL 0x0f0f | ||
| 58 | /* f10-f1a: GPIO */ | ||
| 59 | #define AC_VERB_GET_GPIO_DATA 0x0f15 | ||
| 60 | #define AC_VERB_GET_GPIO_MASK 0x0f16 | ||
| 61 | #define AC_VERB_GET_GPIO_DIRECTION 0x0f17 | ||
| 62 | #define AC_VERB_GET_GPIO_WAKE_MASK 0x0f18 | ||
| 63 | #define AC_VERB_GET_GPIO_UNSOLICITED_RSP_MASK 0x0f19 | ||
| 64 | #define AC_VERB_GET_GPIO_STICKY_MASK 0x0f1a | ||
| 65 | #define AC_VERB_GET_CONFIG_DEFAULT 0x0f1c | ||
| 66 | /* f20: AFG/MFG */ | ||
| 67 | #define AC_VERB_GET_SUBSYSTEM_ID 0x0f20 | ||
| 68 | #define AC_VERB_GET_CVT_CHAN_COUNT 0x0f2d | ||
| 69 | #define AC_VERB_GET_HDMI_DIP_SIZE 0x0f2e | ||
| 70 | #define AC_VERB_GET_HDMI_ELDD 0x0f2f | ||
| 71 | #define AC_VERB_GET_HDMI_DIP_INDEX 0x0f30 | ||
| 72 | #define AC_VERB_GET_HDMI_DIP_DATA 0x0f31 | ||
| 73 | #define AC_VERB_GET_HDMI_DIP_XMIT 0x0f32 | ||
| 74 | #define AC_VERB_GET_HDMI_CP_CTRL 0x0f33 | ||
| 75 | #define AC_VERB_GET_HDMI_CHAN_SLOT 0x0f34 | ||
| 76 | #define AC_VERB_GET_DEVICE_SEL 0xf35 | ||
| 77 | #define AC_VERB_GET_DEVICE_LIST 0xf36 | ||
| 78 | |||
| 79 | /* | ||
| 80 | * SET verbs | ||
| 81 | */ | ||
| 82 | #define AC_VERB_SET_STREAM_FORMAT 0x200 | ||
| 83 | #define AC_VERB_SET_AMP_GAIN_MUTE 0x300 | ||
| 84 | #define AC_VERB_SET_PROC_COEF 0x400 | ||
| 85 | #define AC_VERB_SET_COEF_INDEX 0x500 | ||
| 86 | #define AC_VERB_SET_CONNECT_SEL 0x701 | ||
| 87 | #define AC_VERB_SET_PROC_STATE 0x703 | ||
| 88 | #define AC_VERB_SET_SDI_SELECT 0x704 | ||
| 89 | #define AC_VERB_SET_POWER_STATE 0x705 | ||
| 90 | #define AC_VERB_SET_CHANNEL_STREAMID 0x706 | ||
| 91 | #define AC_VERB_SET_PIN_WIDGET_CONTROL 0x707 | ||
| 92 | #define AC_VERB_SET_UNSOLICITED_ENABLE 0x708 | ||
| 93 | #define AC_VERB_SET_PIN_SENSE 0x709 | ||
| 94 | #define AC_VERB_SET_BEEP_CONTROL 0x70a | ||
| 95 | #define AC_VERB_SET_EAPD_BTLENABLE 0x70c | ||
| 96 | #define AC_VERB_SET_DIGI_CONVERT_1 0x70d | ||
| 97 | #define AC_VERB_SET_DIGI_CONVERT_2 0x70e | ||
| 98 | #define AC_VERB_SET_VOLUME_KNOB_CONTROL 0x70f | ||
| 99 | #define AC_VERB_SET_GPIO_DATA 0x715 | ||
| 100 | #define AC_VERB_SET_GPIO_MASK 0x716 | ||
| 101 | #define AC_VERB_SET_GPIO_DIRECTION 0x717 | ||
| 102 | #define AC_VERB_SET_GPIO_WAKE_MASK 0x718 | ||
| 103 | #define AC_VERB_SET_GPIO_UNSOLICITED_RSP_MASK 0x719 | ||
| 104 | #define AC_VERB_SET_GPIO_STICKY_MASK 0x71a | ||
| 105 | #define AC_VERB_SET_CONFIG_DEFAULT_BYTES_0 0x71c | ||
| 106 | #define AC_VERB_SET_CONFIG_DEFAULT_BYTES_1 0x71d | ||
| 107 | #define AC_VERB_SET_CONFIG_DEFAULT_BYTES_2 0x71e | ||
| 108 | #define AC_VERB_SET_CONFIG_DEFAULT_BYTES_3 0x71f | ||
| 109 | #define AC_VERB_SET_EAPD 0x788 | ||
| 110 | #define AC_VERB_SET_CODEC_RESET 0x7ff | ||
| 111 | #define AC_VERB_SET_CVT_CHAN_COUNT 0x72d | ||
| 112 | #define AC_VERB_SET_HDMI_DIP_INDEX 0x730 | ||
| 113 | #define AC_VERB_SET_HDMI_DIP_DATA 0x731 | ||
| 114 | #define AC_VERB_SET_HDMI_DIP_XMIT 0x732 | ||
| 115 | #define AC_VERB_SET_HDMI_CP_CTRL 0x733 | ||
| 116 | #define AC_VERB_SET_HDMI_CHAN_SLOT 0x734 | ||
| 117 | #define AC_VERB_SET_DEVICE_SEL 0x735 | ||
| 118 | |||
| 119 | /* | ||
| 120 | * Parameter IDs | ||
| 121 | */ | ||
| 122 | #define AC_PAR_VENDOR_ID 0x00 | ||
| 123 | #define AC_PAR_SUBSYSTEM_ID 0x01 | ||
| 124 | #define AC_PAR_REV_ID 0x02 | ||
| 125 | #define AC_PAR_NODE_COUNT 0x04 | ||
| 126 | #define AC_PAR_FUNCTION_TYPE 0x05 | ||
| 127 | #define AC_PAR_AUDIO_FG_CAP 0x08 | ||
| 128 | #define AC_PAR_AUDIO_WIDGET_CAP 0x09 | ||
| 129 | #define AC_PAR_PCM 0x0a | ||
| 130 | #define AC_PAR_STREAM 0x0b | ||
| 131 | #define AC_PAR_PIN_CAP 0x0c | ||
| 132 | #define AC_PAR_AMP_IN_CAP 0x0d | ||
| 133 | #define AC_PAR_CONNLIST_LEN 0x0e | ||
| 134 | #define AC_PAR_POWER_STATE 0x0f | ||
| 135 | #define AC_PAR_PROC_CAP 0x10 | ||
| 136 | #define AC_PAR_GPIO_CAP 0x11 | ||
| 137 | #define AC_PAR_AMP_OUT_CAP 0x12 | ||
| 138 | #define AC_PAR_VOL_KNB_CAP 0x13 | ||
| 139 | #define AC_PAR_DEVLIST_LEN 0x15 | ||
| 140 | #define AC_PAR_HDMI_LPCM_CAP 0x20 | ||
| 141 | |||
| 142 | /* | ||
| 143 | * AC_VERB_PARAMETERS results (32bit) | ||
| 144 | */ | ||
| 145 | |||
| 146 | /* Function Group Type */ | ||
| 147 | #define AC_FGT_TYPE (0xff<<0) | ||
| 148 | #define AC_FGT_TYPE_SHIFT 0 | ||
| 149 | #define AC_FGT_UNSOL_CAP (1<<8) | ||
| 150 | |||
| 151 | /* Audio Function Group Capabilities */ | ||
| 152 | #define AC_AFG_OUT_DELAY (0xf<<0) | ||
| 153 | #define AC_AFG_IN_DELAY (0xf<<8) | ||
| 154 | #define AC_AFG_BEEP_GEN (1<<16) | ||
| 155 | |||
| 156 | /* Audio Widget Capabilities */ | ||
| 157 | #define AC_WCAP_STEREO (1<<0) /* stereo I/O */ | ||
| 158 | #define AC_WCAP_IN_AMP (1<<1) /* AMP-in present */ | ||
| 159 | #define AC_WCAP_OUT_AMP (1<<2) /* AMP-out present */ | ||
| 160 | #define AC_WCAP_AMP_OVRD (1<<3) /* AMP-parameter override */ | ||
| 161 | #define AC_WCAP_FORMAT_OVRD (1<<4) /* format override */ | ||
| 162 | #define AC_WCAP_STRIPE (1<<5) /* stripe */ | ||
| 163 | #define AC_WCAP_PROC_WID (1<<6) /* Proc Widget */ | ||
| 164 | #define AC_WCAP_UNSOL_CAP (1<<7) /* Unsol capable */ | ||
| 165 | #define AC_WCAP_CONN_LIST (1<<8) /* connection list */ | ||
| 166 | #define AC_WCAP_DIGITAL (1<<9) /* digital I/O */ | ||
| 167 | #define AC_WCAP_POWER (1<<10) /* power control */ | ||
| 168 | #define AC_WCAP_LR_SWAP (1<<11) /* L/R swap */ | ||
| 169 | #define AC_WCAP_CP_CAPS (1<<12) /* content protection */ | ||
| 170 | #define AC_WCAP_CHAN_CNT_EXT (7<<13) /* channel count ext */ | ||
| 171 | #define AC_WCAP_DELAY (0xf<<16) | ||
| 172 | #define AC_WCAP_DELAY_SHIFT 16 | ||
| 173 | #define AC_WCAP_TYPE (0xf<<20) | ||
| 174 | #define AC_WCAP_TYPE_SHIFT 20 | ||
| 175 | |||
| 176 | /* supported PCM rates and bits */ | ||
| 177 | #define AC_SUPPCM_RATES (0xfff << 0) | ||
| 178 | #define AC_SUPPCM_BITS_8 (1<<16) | ||
| 179 | #define AC_SUPPCM_BITS_16 (1<<17) | ||
| 180 | #define AC_SUPPCM_BITS_20 (1<<18) | ||
| 181 | #define AC_SUPPCM_BITS_24 (1<<19) | ||
| 182 | #define AC_SUPPCM_BITS_32 (1<<20) | ||
| 183 | |||
| 184 | /* supported PCM stream format */ | ||
| 185 | #define AC_SUPFMT_PCM (1<<0) | ||
| 186 | #define AC_SUPFMT_FLOAT32 (1<<1) | ||
| 187 | #define AC_SUPFMT_AC3 (1<<2) | ||
| 188 | |||
| 189 | /* GP I/O count */ | ||
| 190 | #define AC_GPIO_IO_COUNT (0xff<<0) | ||
| 191 | #define AC_GPIO_O_COUNT (0xff<<8) | ||
| 192 | #define AC_GPIO_O_COUNT_SHIFT 8 | ||
| 193 | #define AC_GPIO_I_COUNT (0xff<<16) | ||
| 194 | #define AC_GPIO_I_COUNT_SHIFT 16 | ||
| 195 | #define AC_GPIO_UNSOLICITED (1<<30) | ||
| 196 | #define AC_GPIO_WAKE (1<<31) | ||
| 197 | |||
| 198 | /* Converter stream, channel */ | ||
| 199 | #define AC_CONV_CHANNEL (0xf<<0) | ||
| 200 | #define AC_CONV_STREAM (0xf<<4) | ||
| 201 | #define AC_CONV_STREAM_SHIFT 4 | ||
| 202 | |||
| 203 | /* Input converter SDI select */ | ||
| 204 | #define AC_SDI_SELECT (0xf<<0) | ||
| 205 | |||
| 206 | /* stream format id */ | ||
| 207 | #define AC_FMT_CHAN_SHIFT 0 | ||
| 208 | #define AC_FMT_CHAN_MASK (0x0f << 0) | ||
| 209 | #define AC_FMT_BITS_SHIFT 4 | ||
| 210 | #define AC_FMT_BITS_MASK (7 << 4) | ||
| 211 | #define AC_FMT_BITS_8 (0 << 4) | ||
| 212 | #define AC_FMT_BITS_16 (1 << 4) | ||
| 213 | #define AC_FMT_BITS_20 (2 << 4) | ||
| 214 | #define AC_FMT_BITS_24 (3 << 4) | ||
| 215 | #define AC_FMT_BITS_32 (4 << 4) | ||
| 216 | #define AC_FMT_DIV_SHIFT 8 | ||
| 217 | #define AC_FMT_DIV_MASK (7 << 8) | ||
| 218 | #define AC_FMT_MULT_SHIFT 11 | ||
| 219 | #define AC_FMT_MULT_MASK (7 << 11) | ||
| 220 | #define AC_FMT_BASE_SHIFT 14 | ||
| 221 | #define AC_FMT_BASE_48K (0 << 14) | ||
| 222 | #define AC_FMT_BASE_44K (1 << 14) | ||
| 223 | #define AC_FMT_TYPE_SHIFT 15 | ||
| 224 | #define AC_FMT_TYPE_PCM (0 << 15) | ||
| 225 | #define AC_FMT_TYPE_NON_PCM (1 << 15) | ||
| 226 | |||
| 227 | /* Unsolicited response control */ | ||
| 228 | #define AC_UNSOL_TAG (0x3f<<0) | ||
| 229 | #define AC_UNSOL_ENABLED (1<<7) | ||
| 230 | #define AC_USRSP_EN AC_UNSOL_ENABLED | ||
| 231 | |||
| 232 | /* Unsolicited responses */ | ||
| 233 | #define AC_UNSOL_RES_TAG (0x3f<<26) | ||
| 234 | #define AC_UNSOL_RES_TAG_SHIFT 26 | ||
| 235 | #define AC_UNSOL_RES_SUBTAG (0x1f<<21) | ||
| 236 | #define AC_UNSOL_RES_SUBTAG_SHIFT 21 | ||
| 237 | #define AC_UNSOL_RES_DE (0x3f<<15) /* Device Entry | ||
| 238 | * (for DP1.2 MST) | ||
| 239 | */ | ||
| 240 | #define AC_UNSOL_RES_DE_SHIFT 15 | ||
| 241 | #define AC_UNSOL_RES_IA (1<<2) /* Inactive (for DP1.2 MST) */ | ||
| 242 | #define AC_UNSOL_RES_ELDV (1<<1) /* ELD Data valid (for HDMI) */ | ||
| 243 | #define AC_UNSOL_RES_PD (1<<0) /* pinsense detect */ | ||
| 244 | #define AC_UNSOL_RES_CP_STATE (1<<1) /* content protection */ | ||
| 245 | #define AC_UNSOL_RES_CP_READY (1<<0) /* content protection */ | ||
| 246 | |||
| 247 | /* Pin widget capabilies */ | ||
| 248 | #define AC_PINCAP_IMP_SENSE (1<<0) /* impedance sense capable */ | ||
| 249 | #define AC_PINCAP_TRIG_REQ (1<<1) /* trigger required */ | ||
| 250 | #define AC_PINCAP_PRES_DETECT (1<<2) /* presence detect capable */ | ||
| 251 | #define AC_PINCAP_HP_DRV (1<<3) /* headphone drive capable */ | ||
| 252 | #define AC_PINCAP_OUT (1<<4) /* output capable */ | ||
| 253 | #define AC_PINCAP_IN (1<<5) /* input capable */ | ||
| 254 | #define AC_PINCAP_BALANCE (1<<6) /* balanced I/O capable */ | ||
| 255 | /* Note: This LR_SWAP pincap is defined in the Realtek ALC883 specification, | ||
| 256 | * but is marked reserved in the Intel HDA specification. | ||
| 257 | */ | ||
| 258 | #define AC_PINCAP_LR_SWAP (1<<7) /* L/R swap */ | ||
| 259 | /* Note: The same bit as LR_SWAP is newly defined as HDMI capability | ||
| 260 | * in HD-audio specification | ||
| 261 | */ | ||
| 262 | #define AC_PINCAP_HDMI (1<<7) /* HDMI pin */ | ||
| 263 | #define AC_PINCAP_DP (1<<24) /* DisplayPort pin, can | ||
| 264 | * coexist with AC_PINCAP_HDMI | ||
| 265 | */ | ||
| 266 | #define AC_PINCAP_VREF (0x37<<8) | ||
| 267 | #define AC_PINCAP_VREF_SHIFT 8 | ||
| 268 | #define AC_PINCAP_EAPD (1<<16) /* EAPD capable */ | ||
| 269 | #define AC_PINCAP_HBR (1<<27) /* High Bit Rate */ | ||
| 270 | /* Vref status (used in pin cap) */ | ||
| 271 | #define AC_PINCAP_VREF_HIZ (1<<0) /* Hi-Z */ | ||
| 272 | #define AC_PINCAP_VREF_50 (1<<1) /* 50% */ | ||
| 273 | #define AC_PINCAP_VREF_GRD (1<<2) /* ground */ | ||
| 274 | #define AC_PINCAP_VREF_80 (1<<4) /* 80% */ | ||
| 275 | #define AC_PINCAP_VREF_100 (1<<5) /* 100% */ | ||
| 276 | |||
| 277 | /* Amplifier capabilities */ | ||
| 278 | #define AC_AMPCAP_OFFSET (0x7f<<0) /* 0dB offset */ | ||
| 279 | #define AC_AMPCAP_OFFSET_SHIFT 0 | ||
| 280 | #define AC_AMPCAP_NUM_STEPS (0x7f<<8) /* number of steps */ | ||
| 281 | #define AC_AMPCAP_NUM_STEPS_SHIFT 8 | ||
| 282 | #define AC_AMPCAP_STEP_SIZE (0x7f<<16) /* step size 0-32dB | ||
| 283 | * in 0.25dB | ||
| 284 | */ | ||
| 285 | #define AC_AMPCAP_STEP_SIZE_SHIFT 16 | ||
| 286 | #define AC_AMPCAP_MUTE (1<<31) /* mute capable */ | ||
| 287 | #define AC_AMPCAP_MUTE_SHIFT 31 | ||
| 288 | |||
| 289 | /* driver-specific amp-caps: using bits 24-30 */ | ||
| 290 | #define AC_AMPCAP_MIN_MUTE (1 << 30) /* min-volume = mute */ | ||
| 291 | |||
| 292 | /* Connection list */ | ||
| 293 | #define AC_CLIST_LENGTH (0x7f<<0) | ||
| 294 | #define AC_CLIST_LONG (1<<7) | ||
| 295 | |||
| 296 | /* Supported power status */ | ||
| 297 | #define AC_PWRST_D0SUP (1<<0) | ||
| 298 | #define AC_PWRST_D1SUP (1<<1) | ||
| 299 | #define AC_PWRST_D2SUP (1<<2) | ||
| 300 | #define AC_PWRST_D3SUP (1<<3) | ||
| 301 | #define AC_PWRST_D3COLDSUP (1<<4) | ||
| 302 | #define AC_PWRST_S3D3COLDSUP (1<<29) | ||
| 303 | #define AC_PWRST_CLKSTOP (1<<30) | ||
| 304 | #define AC_PWRST_EPSS (1U<<31) | ||
| 305 | |||
| 306 | /* Power state values */ | ||
| 307 | #define AC_PWRST_SETTING (0xf<<0) | ||
| 308 | #define AC_PWRST_ACTUAL (0xf<<4) | ||
| 309 | #define AC_PWRST_ACTUAL_SHIFT 4 | ||
| 310 | #define AC_PWRST_D0 0x00 | ||
| 311 | #define AC_PWRST_D1 0x01 | ||
| 312 | #define AC_PWRST_D2 0x02 | ||
| 313 | #define AC_PWRST_D3 0x03 | ||
| 314 | #define AC_PWRST_ERROR (1<<8) | ||
| 315 | #define AC_PWRST_CLK_STOP_OK (1<<9) | ||
| 316 | #define AC_PWRST_SETTING_RESET (1<<10) | ||
| 317 | |||
| 318 | /* Processing capabilies */ | ||
| 319 | #define AC_PCAP_BENIGN (1<<0) | ||
| 320 | #define AC_PCAP_NUM_COEF (0xff<<8) | ||
| 321 | #define AC_PCAP_NUM_COEF_SHIFT 8 | ||
| 322 | |||
| 323 | /* Volume knobs capabilities */ | ||
| 324 | #define AC_KNBCAP_NUM_STEPS (0x7f<<0) | ||
| 325 | #define AC_KNBCAP_DELTA (1<<7) | ||
| 326 | |||
| 327 | /* HDMI LPCM capabilities */ | ||
| 328 | #define AC_LPCMCAP_48K_CP_CHNS (0x0f<<0) /* max channels w/ CP-on */ | ||
| 329 | #define AC_LPCMCAP_48K_NO_CHNS (0x0f<<4) /* max channels w/o CP-on */ | ||
| 330 | #define AC_LPCMCAP_48K_20BIT (1<<8) /* 20b bitrate supported */ | ||
| 331 | #define AC_LPCMCAP_48K_24BIT (1<<9) /* 24b bitrate supported */ | ||
| 332 | #define AC_LPCMCAP_96K_CP_CHNS (0x0f<<10) /* max channels w/ CP-on */ | ||
| 333 | #define AC_LPCMCAP_96K_NO_CHNS (0x0f<<14) /* max channels w/o CP-on */ | ||
| 334 | #define AC_LPCMCAP_96K_20BIT (1<<18) /* 20b bitrate supported */ | ||
| 335 | #define AC_LPCMCAP_96K_24BIT (1<<19) /* 24b bitrate supported */ | ||
| 336 | #define AC_LPCMCAP_192K_CP_CHNS (0x0f<<20) /* max channels w/ CP-on */ | ||
| 337 | #define AC_LPCMCAP_192K_NO_CHNS (0x0f<<24) /* max channels w/o CP-on */ | ||
| 338 | #define AC_LPCMCAP_192K_20BIT (1<<28) /* 20b bitrate supported */ | ||
| 339 | #define AC_LPCMCAP_192K_24BIT (1<<29) /* 24b bitrate supported */ | ||
| 340 | #define AC_LPCMCAP_44K (1<<30) /* 44.1kHz support */ | ||
| 341 | #define AC_LPCMCAP_44K_MS (1<<31) /* 44.1kHz-multiplies support */ | ||
| 342 | |||
| 343 | /* Display pin's device list length */ | ||
| 344 | #define AC_DEV_LIST_LEN_MASK 0x3f | ||
| 345 | #define AC_MAX_DEV_LIST_LEN 64 | ||
| 346 | |||
| 347 | /* | ||
| 348 | * Control Parameters | ||
| 349 | */ | ||
| 350 | |||
| 351 | /* Amp gain/mute */ | ||
| 352 | #define AC_AMP_MUTE (1<<7) | ||
| 353 | #define AC_AMP_GAIN (0x7f) | ||
| 354 | #define AC_AMP_GET_INDEX (0xf<<0) | ||
| 355 | |||
| 356 | #define AC_AMP_GET_LEFT (1<<13) | ||
| 357 | #define AC_AMP_GET_RIGHT (0<<13) | ||
| 358 | #define AC_AMP_GET_OUTPUT (1<<15) | ||
| 359 | #define AC_AMP_GET_INPUT (0<<15) | ||
| 360 | |||
| 361 | #define AC_AMP_SET_INDEX (0xf<<8) | ||
| 362 | #define AC_AMP_SET_INDEX_SHIFT 8 | ||
| 363 | #define AC_AMP_SET_RIGHT (1<<12) | ||
| 364 | #define AC_AMP_SET_LEFT (1<<13) | ||
| 365 | #define AC_AMP_SET_INPUT (1<<14) | ||
| 366 | #define AC_AMP_SET_OUTPUT (1<<15) | ||
| 367 | |||
| 368 | /* DIGITAL1 bits */ | ||
| 369 | #define AC_DIG1_ENABLE (1<<0) | ||
| 370 | #define AC_DIG1_V (1<<1) | ||
| 371 | #define AC_DIG1_VCFG (1<<2) | ||
| 372 | #define AC_DIG1_EMPHASIS (1<<3) | ||
| 373 | #define AC_DIG1_COPYRIGHT (1<<4) | ||
| 374 | #define AC_DIG1_NONAUDIO (1<<5) | ||
| 375 | #define AC_DIG1_PROFESSIONAL (1<<6) | ||
| 376 | #define AC_DIG1_LEVEL (1<<7) | ||
| 377 | |||
| 378 | /* DIGITAL2 bits */ | ||
| 379 | #define AC_DIG2_CC (0x7f<<0) | ||
| 380 | |||
| 381 | /* DIGITAL3 bits */ | ||
| 382 | #define AC_DIG3_ICT (0xf<<0) | ||
| 383 | #define AC_DIG3_KAE (1<<7) | ||
| 384 | |||
| 385 | /* Pin widget control - 8bit */ | ||
| 386 | #define AC_PINCTL_EPT (0x3<<0) | ||
| 387 | #define AC_PINCTL_EPT_NATIVE 0 | ||
| 388 | #define AC_PINCTL_EPT_HBR 3 | ||
| 389 | #define AC_PINCTL_VREFEN (0x7<<0) | ||
| 390 | #define AC_PINCTL_VREF_HIZ 0 /* Hi-Z */ | ||
| 391 | #define AC_PINCTL_VREF_50 1 /* 50% */ | ||
| 392 | #define AC_PINCTL_VREF_GRD 2 /* ground */ | ||
| 393 | #define AC_PINCTL_VREF_80 4 /* 80% */ | ||
| 394 | #define AC_PINCTL_VREF_100 5 /* 100% */ | ||
| 395 | #define AC_PINCTL_IN_EN (1<<5) | ||
| 396 | #define AC_PINCTL_OUT_EN (1<<6) | ||
| 397 | #define AC_PINCTL_HP_EN (1<<7) | ||
| 398 | |||
| 399 | /* Pin sense - 32bit */ | ||
| 400 | #define AC_PINSENSE_IMPEDANCE_MASK (0x7fffffff) | ||
| 401 | #define AC_PINSENSE_PRESENCE (1<<31) | ||
| 402 | #define AC_PINSENSE_ELDV (1<<30) /* ELD valid (HDMI) */ | ||
| 403 | |||
| 404 | /* EAPD/BTL enable - 32bit */ | ||
| 405 | #define AC_EAPDBTL_BALANCED (1<<0) | ||
| 406 | #define AC_EAPDBTL_EAPD (1<<1) | ||
| 407 | #define AC_EAPDBTL_LR_SWAP (1<<2) | ||
| 408 | |||
| 409 | /* HDMI ELD data */ | ||
| 410 | #define AC_ELDD_ELD_VALID (1<<31) | ||
| 411 | #define AC_ELDD_ELD_DATA 0xff | ||
| 412 | |||
| 413 | /* HDMI DIP size */ | ||
| 414 | #define AC_DIPSIZE_ELD_BUF (1<<3) /* ELD buf size of packet size */ | ||
| 415 | #define AC_DIPSIZE_PACK_IDX (0x07<<0) /* packet index */ | ||
| 416 | |||
| 417 | /* HDMI DIP index */ | ||
| 418 | #define AC_DIPIDX_PACK_IDX (0x07<<5) /* packet idnex */ | ||
| 419 | #define AC_DIPIDX_BYTE_IDX (0x1f<<0) /* byte index */ | ||
| 420 | |||
| 421 | /* HDMI DIP xmit (transmit) control */ | ||
| 422 | #define AC_DIPXMIT_MASK (0x3<<6) | ||
| 423 | #define AC_DIPXMIT_DISABLE (0x0<<6) /* disable xmit */ | ||
| 424 | #define AC_DIPXMIT_ONCE (0x2<<6) /* xmit once then disable */ | ||
| 425 | #define AC_DIPXMIT_BEST (0x3<<6) /* best effort */ | ||
| 426 | |||
| 427 | /* HDMI content protection (CP) control */ | ||
| 428 | #define AC_CPCTRL_CES (1<<9) /* current encryption state */ | ||
| 429 | #define AC_CPCTRL_READY (1<<8) /* ready bit */ | ||
| 430 | #define AC_CPCTRL_SUBTAG (0x1f<<3) /* subtag for unsol-resp */ | ||
| 431 | #define AC_CPCTRL_STATE (3<<0) /* current CP request state */ | ||
| 432 | |||
| 433 | /* Converter channel <-> HDMI slot mapping */ | ||
| 434 | #define AC_CVTMAP_HDMI_SLOT (0xf<<0) /* HDMI slot number */ | ||
| 435 | #define AC_CVTMAP_CHAN (0xf<<4) /* converter channel number */ | ||
| 436 | |||
| 437 | /* configuration default - 32bit */ | ||
| 438 | #define AC_DEFCFG_SEQUENCE (0xf<<0) | ||
| 439 | #define AC_DEFCFG_DEF_ASSOC (0xf<<4) | ||
| 440 | #define AC_DEFCFG_ASSOC_SHIFT 4 | ||
| 441 | #define AC_DEFCFG_MISC (0xf<<8) | ||
| 442 | #define AC_DEFCFG_MISC_SHIFT 8 | ||
| 443 | #define AC_DEFCFG_MISC_NO_PRESENCE (1<<0) | ||
| 444 | #define AC_DEFCFG_COLOR (0xf<<12) | ||
| 445 | #define AC_DEFCFG_COLOR_SHIFT 12 | ||
| 446 | #define AC_DEFCFG_CONN_TYPE (0xf<<16) | ||
| 447 | #define AC_DEFCFG_CONN_TYPE_SHIFT 16 | ||
| 448 | #define AC_DEFCFG_DEVICE (0xf<<20) | ||
| 449 | #define AC_DEFCFG_DEVICE_SHIFT 20 | ||
| 450 | #define AC_DEFCFG_LOCATION (0x3f<<24) | ||
| 451 | #define AC_DEFCFG_LOCATION_SHIFT 24 | ||
| 452 | #define AC_DEFCFG_PORT_CONN (0x3<<30) | ||
| 453 | #define AC_DEFCFG_PORT_CONN_SHIFT 30 | ||
| 454 | |||
| 455 | /* Display pin's device list entry */ | ||
| 456 | #define AC_DE_PD (1<<0) | ||
| 457 | #define AC_DE_ELDV (1<<1) | ||
| 458 | #define AC_DE_IA (1<<2) | ||
| 459 | |||
| 460 | /* device device types (0x0-0xf) */ | ||
| 461 | enum { | ||
| 462 | AC_JACK_LINE_OUT, | ||
| 463 | AC_JACK_SPEAKER, | ||
| 464 | AC_JACK_HP_OUT, | ||
| 465 | AC_JACK_CD, | ||
| 466 | AC_JACK_SPDIF_OUT, | ||
| 467 | AC_JACK_DIG_OTHER_OUT, | ||
| 468 | AC_JACK_MODEM_LINE_SIDE, | ||
| 469 | AC_JACK_MODEM_HAND_SIDE, | ||
| 470 | AC_JACK_LINE_IN, | ||
| 471 | AC_JACK_AUX, | ||
| 472 | AC_JACK_MIC_IN, | ||
| 473 | AC_JACK_TELEPHONY, | ||
| 474 | AC_JACK_SPDIF_IN, | ||
| 475 | AC_JACK_DIG_OTHER_IN, | ||
| 476 | AC_JACK_OTHER = 0xf, | ||
| 477 | }; | ||
| 478 | |||
| 479 | /* jack connection types (0x0-0xf) */ | ||
| 480 | enum { | ||
| 481 | AC_JACK_CONN_UNKNOWN, | ||
| 482 | AC_JACK_CONN_1_8, | ||
| 483 | AC_JACK_CONN_1_4, | ||
| 484 | AC_JACK_CONN_ATAPI, | ||
| 485 | AC_JACK_CONN_RCA, | ||
| 486 | AC_JACK_CONN_OPTICAL, | ||
| 487 | AC_JACK_CONN_OTHER_DIGITAL, | ||
| 488 | AC_JACK_CONN_OTHER_ANALOG, | ||
| 489 | AC_JACK_CONN_DIN, | ||
| 490 | AC_JACK_CONN_XLR, | ||
| 491 | AC_JACK_CONN_RJ11, | ||
| 492 | AC_JACK_CONN_COMB, | ||
| 493 | AC_JACK_CONN_OTHER = 0xf, | ||
| 494 | }; | ||
| 495 | |||
| 496 | /* jack colors (0x0-0xf) */ | ||
| 497 | enum { | ||
| 498 | AC_JACK_COLOR_UNKNOWN, | ||
| 499 | AC_JACK_COLOR_BLACK, | ||
| 500 | AC_JACK_COLOR_GREY, | ||
| 501 | AC_JACK_COLOR_BLUE, | ||
| 502 | AC_JACK_COLOR_GREEN, | ||
| 503 | AC_JACK_COLOR_RED, | ||
| 504 | AC_JACK_COLOR_ORANGE, | ||
| 505 | AC_JACK_COLOR_YELLOW, | ||
| 506 | AC_JACK_COLOR_PURPLE, | ||
| 507 | AC_JACK_COLOR_PINK, | ||
| 508 | AC_JACK_COLOR_WHITE = 0xe, | ||
| 509 | AC_JACK_COLOR_OTHER, | ||
| 510 | }; | ||
| 511 | |||
| 512 | /* Jack location (0x0-0x3f) */ | ||
| 513 | /* common case */ | ||
| 514 | enum { | ||
| 515 | AC_JACK_LOC_NONE, | ||
| 516 | AC_JACK_LOC_REAR, | ||
| 517 | AC_JACK_LOC_FRONT, | ||
| 518 | AC_JACK_LOC_LEFT, | ||
| 519 | AC_JACK_LOC_RIGHT, | ||
| 520 | AC_JACK_LOC_TOP, | ||
| 521 | AC_JACK_LOC_BOTTOM, | ||
| 522 | }; | ||
| 523 | /* bits 4-5 */ | ||
| 524 | enum { | ||
| 525 | AC_JACK_LOC_EXTERNAL = 0x00, | ||
| 526 | AC_JACK_LOC_INTERNAL = 0x10, | ||
| 527 | AC_JACK_LOC_SEPARATE = 0x20, | ||
| 528 | AC_JACK_LOC_OTHER = 0x30, | ||
| 529 | }; | ||
| 530 | enum { | ||
| 531 | /* external on primary chasis */ | ||
| 532 | AC_JACK_LOC_REAR_PANEL = 0x07, | ||
| 533 | AC_JACK_LOC_DRIVE_BAY, | ||
| 534 | /* internal */ | ||
| 535 | AC_JACK_LOC_RISER = 0x17, | ||
| 536 | AC_JACK_LOC_HDMI, | ||
| 537 | AC_JACK_LOC_ATAPI, | ||
| 538 | /* others */ | ||
| 539 | AC_JACK_LOC_MOBILE_IN = 0x37, | ||
| 540 | AC_JACK_LOC_MOBILE_OUT, | ||
| 541 | }; | ||
| 542 | |||
| 543 | /* Port connectivity (0-3) */ | ||
| 544 | enum { | ||
| 545 | AC_JACK_PORT_COMPLEX, | ||
| 546 | AC_JACK_PORT_NONE, | ||
| 547 | AC_JACK_PORT_FIXED, | ||
| 548 | AC_JACK_PORT_BOTH, | ||
| 549 | }; | ||
| 550 | |||
| 551 | /* max. codec address */ | ||
| 552 | #define HDA_MAX_CODEC_ADDRESS 0x0f | ||
| 553 | |||
| 554 | #endif /* __SOUND_HDA_VERBS_H */ | ||
diff --git a/include/sound/memalloc.h b/include/sound/memalloc.h index 5f73785f5977..782d1df34208 100644 --- a/include/sound/memalloc.h +++ b/include/sound/memalloc.h | |||
| @@ -149,13 +149,6 @@ int snd_dma_alloc_pages_fallback(int type, struct device *dev, size_t size, | |||
| 149 | struct snd_dma_buffer *dmab); | 149 | struct snd_dma_buffer *dmab); |
| 150 | void snd_dma_free_pages(struct snd_dma_buffer *dmab); | 150 | void snd_dma_free_pages(struct snd_dma_buffer *dmab); |
| 151 | 151 | ||
| 152 | /* buffer-preservation managements */ | ||
| 153 | |||
| 154 | #define snd_dma_pci_buf_id(pci) (((unsigned int)(pci)->vendor << 16) | (pci)->device) | ||
| 155 | |||
| 156 | size_t snd_dma_get_reserved_buf(struct snd_dma_buffer *dmab, unsigned int id); | ||
| 157 | int snd_dma_reserve_buf(struct snd_dma_buffer *dmab, unsigned int id); | ||
| 158 | |||
| 159 | /* basic memory allocation functions */ | 152 | /* basic memory allocation functions */ |
| 160 | void *snd_malloc_pages(size_t size, gfp_t gfp_flags); | 153 | void *snd_malloc_pages(size_t size, gfp_t gfp_flags); |
| 161 | void snd_free_pages(void *ptr, size_t size); | 154 | void snd_free_pages(void *ptr, size_t size); |
diff --git a/include/sound/pcm.h b/include/sound/pcm.h index 84b10f9a2832..4883499ab38b 100644 --- a/include/sound/pcm.h +++ b/include/sound/pcm.h | |||
| @@ -381,7 +381,6 @@ struct snd_pcm_substream { | |||
| 381 | struct pm_qos_request latency_pm_qos_req; /* pm_qos request */ | 381 | struct pm_qos_request latency_pm_qos_req; /* pm_qos request */ |
| 382 | size_t buffer_bytes_max; /* limit ring buffer size */ | 382 | size_t buffer_bytes_max; /* limit ring buffer size */ |
| 383 | struct snd_dma_buffer dma_buffer; | 383 | struct snd_dma_buffer dma_buffer; |
| 384 | unsigned int dma_buf_id; | ||
| 385 | size_t dma_max; | 384 | size_t dma_max; |
| 386 | /* -- hardware operations -- */ | 385 | /* -- hardware operations -- */ |
| 387 | const struct snd_pcm_ops *ops; | 386 | const struct snd_pcm_ops *ops; |
| @@ -901,6 +900,8 @@ extern const struct snd_pcm_hw_constraint_list snd_pcm_known_rates; | |||
| 901 | int snd_pcm_limit_hw_rates(struct snd_pcm_runtime *runtime); | 900 | int snd_pcm_limit_hw_rates(struct snd_pcm_runtime *runtime); |
| 902 | unsigned int snd_pcm_rate_to_rate_bit(unsigned int rate); | 901 | unsigned int snd_pcm_rate_to_rate_bit(unsigned int rate); |
| 903 | unsigned int snd_pcm_rate_bit_to_rate(unsigned int rate_bit); | 902 | unsigned int snd_pcm_rate_bit_to_rate(unsigned int rate_bit); |
| 903 | unsigned int snd_pcm_rate_mask_intersect(unsigned int rates_a, | ||
| 904 | unsigned int rates_b); | ||
| 904 | 905 | ||
| 905 | static inline void snd_pcm_set_runtime_buffer(struct snd_pcm_substream *substream, | 906 | static inline void snd_pcm_set_runtime_buffer(struct snd_pcm_substream *substream, |
| 906 | struct snd_dma_buffer *bufp) | 907 | struct snd_dma_buffer *bufp) |
diff --git a/include/sound/pcm_params.h b/include/sound/pcm_params.h index 37ae12e0ab06..6b1c78f05fab 100644 --- a/include/sound/pcm_params.h +++ b/include/sound/pcm_params.h | |||
| @@ -354,4 +354,16 @@ params_period_bytes(const struct snd_pcm_hw_params *p) | |||
| 354 | params_channels(p)) / 8; | 354 | params_channels(p)) / 8; |
| 355 | } | 355 | } |
| 356 | 356 | ||
| 357 | static inline int | ||
| 358 | params_width(const struct snd_pcm_hw_params *p) | ||
| 359 | { | ||
| 360 | return snd_pcm_format_width(params_format(p)); | ||
| 361 | } | ||
| 362 | |||
| 363 | static inline int | ||
| 364 | params_physical_width(const struct snd_pcm_hw_params *p) | ||
| 365 | { | ||
| 366 | return snd_pcm_format_physical_width(params_format(p)); | ||
| 367 | } | ||
| 368 | |||
| 357 | #endif /* __SOUND_PCM_PARAMS_H */ | 369 | #endif /* __SOUND_PCM_PARAMS_H */ |
diff --git a/include/sound/rcar_snd.h b/include/sound/rcar_snd.h index 12afab18945d..e147498abe50 100644 --- a/include/sound/rcar_snd.h +++ b/include/sound/rcar_snd.h | |||
| @@ -18,7 +18,7 @@ | |||
| 18 | #define RSND_GEN1_ADG 1 | 18 | #define RSND_GEN1_ADG 1 |
| 19 | #define RSND_GEN1_SSI 2 | 19 | #define RSND_GEN1_SSI 2 |
| 20 | 20 | ||
| 21 | #define RSND_GEN2_SRU 0 | 21 | #define RSND_GEN2_SCU 0 |
| 22 | #define RSND_GEN2_ADG 1 | 22 | #define RSND_GEN2_ADG 1 |
| 23 | #define RSND_GEN2_SSIU 2 | 23 | #define RSND_GEN2_SSIU 2 |
| 24 | #define RSND_GEN2_SSI 3 | 24 | #define RSND_GEN2_SSI 3 |
| @@ -58,6 +58,7 @@ struct rsnd_ssi_platform_info { | |||
| 58 | 58 | ||
| 59 | struct rsnd_scu_platform_info { | 59 | struct rsnd_scu_platform_info { |
| 60 | u32 flags; | 60 | u32 flags; |
| 61 | u32 convert_rate; /* sampling rate convert */ | ||
| 61 | }; | 62 | }; |
| 62 | 63 | ||
| 63 | /* | 64 | /* |
diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h index 800c101bb096..71f27c403194 100644 --- a/include/sound/soc-dai.h +++ b/include/sound/soc-dai.h | |||
| @@ -123,6 +123,8 @@ int snd_soc_dai_set_tristate(struct snd_soc_dai *dai, int tristate); | |||
| 123 | int snd_soc_dai_digital_mute(struct snd_soc_dai *dai, int mute, | 123 | int snd_soc_dai_digital_mute(struct snd_soc_dai *dai, int mute, |
| 124 | int direction); | 124 | int direction); |
| 125 | 125 | ||
| 126 | int snd_soc_dai_is_dummy(struct snd_soc_dai *dai); | ||
| 127 | |||
| 126 | struct snd_soc_dai_ops { | 128 | struct snd_soc_dai_ops { |
| 127 | /* | 129 | /* |
| 128 | * DAI clocking configuration, all optional. | 130 | * DAI clocking configuration, all optional. |
| @@ -220,6 +222,8 @@ struct snd_soc_dai_driver { | |||
| 220 | struct snd_soc_pcm_stream capture; | 222 | struct snd_soc_pcm_stream capture; |
| 221 | struct snd_soc_pcm_stream playback; | 223 | struct snd_soc_pcm_stream playback; |
| 222 | unsigned int symmetric_rates:1; | 224 | unsigned int symmetric_rates:1; |
| 225 | unsigned int symmetric_channels:1; | ||
| 226 | unsigned int symmetric_samplebits:1; | ||
| 223 | 227 | ||
| 224 | /* probe ordering - for components with runtime dependencies */ | 228 | /* probe ordering - for components with runtime dependencies */ |
| 225 | int probe_order; | 229 | int probe_order; |
| @@ -244,6 +248,8 @@ struct snd_soc_dai { | |||
| 244 | unsigned int capture_active:1; /* stream is in use */ | 248 | unsigned int capture_active:1; /* stream is in use */ |
| 245 | unsigned int playback_active:1; /* stream is in use */ | 249 | unsigned int playback_active:1; /* stream is in use */ |
| 246 | unsigned int symmetric_rates:1; | 250 | unsigned int symmetric_rates:1; |
| 251 | unsigned int symmetric_channels:1; | ||
| 252 | unsigned int symmetric_samplebits:1; | ||
| 247 | struct snd_pcm_runtime *runtime; | 253 | struct snd_pcm_runtime *runtime; |
| 248 | unsigned int active; | 254 | unsigned int active; |
| 249 | unsigned char probed:1; | 255 | unsigned char probed:1; |
| @@ -258,6 +264,8 @@ struct snd_soc_dai { | |||
| 258 | 264 | ||
| 259 | /* Symmetry data - only valid if symmetry is being enforced */ | 265 | /* Symmetry data - only valid if symmetry is being enforced */ |
| 260 | unsigned int rate; | 266 | unsigned int rate; |
| 267 | unsigned int channels; | ||
| 268 | unsigned int sample_bits; | ||
| 261 | 269 | ||
| 262 | /* parent platform/codec */ | 270 | /* parent platform/codec */ |
| 263 | struct snd_soc_platform *platform; | 271 | struct snd_soc_platform *platform; |
diff --git a/include/sound/soc-dapm.h b/include/sound/soc-dapm.h index 56ebdfca6273..68d92e36facd 100644 --- a/include/sound/soc-dapm.h +++ b/include/sound/soc-dapm.h | |||
| @@ -412,6 +412,7 @@ int snd_soc_dapm_new_controls(struct snd_soc_dapm_context *dapm, | |||
| 412 | int snd_soc_dapm_new_dai_widgets(struct snd_soc_dapm_context *dapm, | 412 | int snd_soc_dapm_new_dai_widgets(struct snd_soc_dapm_context *dapm, |
| 413 | struct snd_soc_dai *dai); | 413 | struct snd_soc_dai *dai); |
| 414 | int snd_soc_dapm_link_dai_widgets(struct snd_soc_card *card); | 414 | int snd_soc_dapm_link_dai_widgets(struct snd_soc_card *card); |
| 415 | void snd_soc_dapm_connect_dai_link_widgets(struct snd_soc_card *card); | ||
| 415 | int snd_soc_dapm_new_pcm(struct snd_soc_card *card, | 416 | int snd_soc_dapm_new_pcm(struct snd_soc_card *card, |
| 416 | const struct snd_soc_pcm_stream *params, | 417 | const struct snd_soc_pcm_stream *params, |
| 417 | struct snd_soc_dapm_widget *source, | 418 | struct snd_soc_dapm_widget *source, |
diff --git a/include/sound/soc-dpcm.h b/include/sound/soc-dpcm.h index 047d657c331c..2883a7a6f9f3 100644 --- a/include/sound/soc-dpcm.h +++ b/include/sound/soc-dpcm.h | |||
| @@ -11,6 +11,7 @@ | |||
| 11 | #ifndef __LINUX_SND_SOC_DPCM_H | 11 | #ifndef __LINUX_SND_SOC_DPCM_H |
| 12 | #define __LINUX_SND_SOC_DPCM_H | 12 | #define __LINUX_SND_SOC_DPCM_H |
| 13 | 13 | ||
| 14 | #include <linux/slab.h> | ||
| 14 | #include <linux/list.h> | 15 | #include <linux/list.h> |
| 15 | #include <sound/pcm.h> | 16 | #include <sound/pcm.h> |
| 16 | 17 | ||
| @@ -135,4 +136,25 @@ int soc_dpcm_be_digital_mute(struct snd_soc_pcm_runtime *fe, int mute); | |||
| 135 | int soc_dpcm_debugfs_add(struct snd_soc_pcm_runtime *rtd); | 136 | int soc_dpcm_debugfs_add(struct snd_soc_pcm_runtime *rtd); |
| 136 | int soc_dpcm_runtime_update(struct snd_soc_card *); | 137 | int soc_dpcm_runtime_update(struct snd_soc_card *); |
| 137 | 138 | ||
| 139 | int dpcm_path_get(struct snd_soc_pcm_runtime *fe, | ||
| 140 | int stream, struct snd_soc_dapm_widget_list **list_); | ||
| 141 | int dpcm_process_paths(struct snd_soc_pcm_runtime *fe, | ||
| 142 | int stream, struct snd_soc_dapm_widget_list **list, int new); | ||
| 143 | int dpcm_be_dai_startup(struct snd_soc_pcm_runtime *fe, int stream); | ||
| 144 | int dpcm_be_dai_shutdown(struct snd_soc_pcm_runtime *fe, int stream); | ||
| 145 | void dpcm_be_disconnect(struct snd_soc_pcm_runtime *fe, int stream); | ||
| 146 | void dpcm_clear_pending_state(struct snd_soc_pcm_runtime *fe, int stream); | ||
| 147 | int dpcm_be_dai_hw_free(struct snd_soc_pcm_runtime *fe, int stream); | ||
| 148 | int dpcm_be_dai_hw_params(struct snd_soc_pcm_runtime *fe, int tream); | ||
| 149 | int dpcm_be_dai_trigger(struct snd_soc_pcm_runtime *fe, int stream, int cmd); | ||
| 150 | int dpcm_be_dai_prepare(struct snd_soc_pcm_runtime *fe, int stream); | ||
| 151 | int dpcm_dapm_stream_event(struct snd_soc_pcm_runtime *fe, int dir, | ||
| 152 | int event); | ||
| 153 | |||
| 154 | static inline void dpcm_path_put(struct snd_soc_dapm_widget_list **list) | ||
| 155 | { | ||
| 156 | kfree(*list); | ||
| 157 | } | ||
| 158 | |||
| 159 | |||
| 138 | #endif | 160 | #endif |
diff --git a/include/sound/soc.h b/include/sound/soc.h index 1f741cb24f33..9a001472b96a 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h | |||
| @@ -334,9 +334,7 @@ struct snd_soc_jack_pin; | |||
| 334 | #include <sound/soc-dapm.h> | 334 | #include <sound/soc-dapm.h> |
| 335 | #include <sound/soc-dpcm.h> | 335 | #include <sound/soc-dpcm.h> |
| 336 | 336 | ||
| 337 | #ifdef CONFIG_GPIOLIB | ||
| 338 | struct snd_soc_jack_gpio; | 337 | struct snd_soc_jack_gpio; |
| 339 | #endif | ||
| 340 | 338 | ||
| 341 | typedef int (*hw_write_t)(void *,const char* ,int); | 339 | typedef int (*hw_write_t)(void *,const char* ,int); |
| 342 | 340 | ||
| @@ -446,6 +444,17 @@ int snd_soc_jack_add_gpios(struct snd_soc_jack *jack, int count, | |||
| 446 | struct snd_soc_jack_gpio *gpios); | 444 | struct snd_soc_jack_gpio *gpios); |
| 447 | void snd_soc_jack_free_gpios(struct snd_soc_jack *jack, int count, | 445 | void snd_soc_jack_free_gpios(struct snd_soc_jack *jack, int count, |
| 448 | struct snd_soc_jack_gpio *gpios); | 446 | struct snd_soc_jack_gpio *gpios); |
| 447 | #else | ||
| 448 | static inline int snd_soc_jack_add_gpios(struct snd_soc_jack *jack, int count, | ||
| 449 | struct snd_soc_jack_gpio *gpios) | ||
| 450 | { | ||
| 451 | return 0; | ||
| 452 | } | ||
| 453 | |||
| 454 | static inline void snd_soc_jack_free_gpios(struct snd_soc_jack *jack, int count, | ||
| 455 | struct snd_soc_jack_gpio *gpios) | ||
| 456 | { | ||
| 457 | } | ||
| 449 | #endif | 458 | #endif |
| 450 | 459 | ||
| 451 | /* codec register bit access */ | 460 | /* codec register bit access */ |
| @@ -580,7 +589,6 @@ struct snd_soc_jack_zone { | |||
| 580 | * to provide more complex checks (eg, reading an | 589 | * to provide more complex checks (eg, reading an |
| 581 | * ADC). | 590 | * ADC). |
| 582 | */ | 591 | */ |
| 583 | #ifdef CONFIG_GPIOLIB | ||
| 584 | struct snd_soc_jack_gpio { | 592 | struct snd_soc_jack_gpio { |
| 585 | unsigned int gpio; | 593 | unsigned int gpio; |
| 586 | const char *name; | 594 | const char *name; |
| @@ -594,7 +602,6 @@ struct snd_soc_jack_gpio { | |||
| 594 | 602 | ||
| 595 | int (*jack_status_check)(void); | 603 | int (*jack_status_check)(void); |
| 596 | }; | 604 | }; |
| 597 | #endif | ||
| 598 | 605 | ||
| 599 | struct snd_soc_jack { | 606 | struct snd_soc_jack { |
| 600 | struct mutex mutex; | 607 | struct mutex mutex; |
| @@ -879,6 +886,8 @@ struct snd_soc_dai_link { | |||
| 879 | 886 | ||
| 880 | /* Symmetry requirements */ | 887 | /* Symmetry requirements */ |
| 881 | unsigned int symmetric_rates:1; | 888 | unsigned int symmetric_rates:1; |
| 889 | unsigned int symmetric_channels:1; | ||
| 890 | unsigned int symmetric_samplebits:1; | ||
| 882 | 891 | ||
| 883 | /* Do not create a PCM for this DAI link (Backend link) */ | 892 | /* Do not create a PCM for this DAI link (Backend link) */ |
| 884 | unsigned int no_pcm:1; | 893 | unsigned int no_pcm:1; |
| @@ -886,6 +895,10 @@ struct snd_soc_dai_link { | |||
| 886 | /* This DAI link can route to other DAI links at runtime (Frontend)*/ | 895 | /* This DAI link can route to other DAI links at runtime (Frontend)*/ |
| 887 | unsigned int dynamic:1; | 896 | unsigned int dynamic:1; |
| 888 | 897 | ||
| 898 | /* DPCM capture and Playback support */ | ||
| 899 | unsigned int dpcm_capture:1; | ||
| 900 | unsigned int dpcm_playback:1; | ||
| 901 | |||
| 889 | /* pmdown_time is ignored at stop */ | 902 | /* pmdown_time is ignored at stop */ |
| 890 | unsigned int ignore_pmdown_time:1; | 903 | unsigned int ignore_pmdown_time:1; |
| 891 | 904 | ||
| @@ -1029,6 +1042,7 @@ struct snd_soc_pcm_runtime { | |||
| 1029 | 1042 | ||
| 1030 | /* Dynamic PCM BE runtime data */ | 1043 | /* Dynamic PCM BE runtime data */ |
| 1031 | struct snd_soc_dpcm_runtime dpcm[2]; | 1044 | struct snd_soc_dpcm_runtime dpcm[2]; |
| 1045 | int fe_compr; | ||
| 1032 | 1046 | ||
| 1033 | long pmdown_time; | 1047 | long pmdown_time; |
| 1034 | unsigned char pop_wait:1; | 1048 | unsigned char pop_wait:1; |
diff --git a/include/sound/spear_dma.h b/include/sound/spear_dma.h index 1b365bfdfb37..65aca51fe255 100644 --- a/include/sound/spear_dma.h +++ b/include/sound/spear_dma.h | |||
| @@ -29,7 +29,6 @@ struct spear_dma_data { | |||
| 29 | dma_addr_t addr; | 29 | dma_addr_t addr; |
| 30 | u32 max_burst; | 30 | u32 max_burst; |
| 31 | enum dma_slave_buswidth addr_width; | 31 | enum dma_slave_buswidth addr_width; |
| 32 | bool (*filter)(struct dma_chan *chan, void *slave); | ||
| 33 | }; | 32 | }; |
| 34 | 33 | ||
| 35 | #endif /* SPEAR_DMA_H */ | 34 | #endif /* SPEAR_DMA_H */ |
diff --git a/include/uapi/sound/compress_params.h b/include/uapi/sound/compress_params.h index 602dc6c45d1a..165e7059de75 100644 --- a/include/uapi/sound/compress_params.h +++ b/include/uapi/sound/compress_params.h | |||
| @@ -57,6 +57,7 @@ | |||
| 57 | #define MAX_NUM_CODECS 32 | 57 | #define MAX_NUM_CODECS 32 |
| 58 | #define MAX_NUM_CODEC_DESCRIPTORS 32 | 58 | #define MAX_NUM_CODEC_DESCRIPTORS 32 |
| 59 | #define MAX_NUM_BITRATES 32 | 59 | #define MAX_NUM_BITRATES 32 |
| 60 | #define MAX_NUM_SAMPLE_RATES 32 | ||
| 60 | 61 | ||
| 61 | /* Codecs are listed linearly to allow for extensibility */ | 62 | /* Codecs are listed linearly to allow for extensibility */ |
| 62 | #define SND_AUDIOCODEC_PCM ((__u32) 0x00000001) | 63 | #define SND_AUDIOCODEC_PCM ((__u32) 0x00000001) |
| @@ -324,7 +325,8 @@ union snd_codec_options { | |||
| 324 | 325 | ||
| 325 | /** struct snd_codec_desc - description of codec capabilities | 326 | /** struct snd_codec_desc - description of codec capabilities |
| 326 | * @max_ch: Maximum number of audio channels | 327 | * @max_ch: Maximum number of audio channels |
| 327 | * @sample_rates: Sampling rates in Hz, use SNDRV_PCM_RATE_xxx for this | 328 | * @sample_rates: Sampling rates in Hz, use values like 48000 for this |
| 329 | * @num_sample_rates: Number of valid values in sample_rates array | ||
| 328 | * @bit_rate: Indexed array containing supported bit rates | 330 | * @bit_rate: Indexed array containing supported bit rates |
| 329 | * @num_bitrates: Number of valid values in bit_rate array | 331 | * @num_bitrates: Number of valid values in bit_rate array |
| 330 | * @rate_control: value is specified by SND_RATECONTROLMODE defines. | 332 | * @rate_control: value is specified by SND_RATECONTROLMODE defines. |
| @@ -346,7 +348,8 @@ union snd_codec_options { | |||
| 346 | 348 | ||
| 347 | struct snd_codec_desc { | 349 | struct snd_codec_desc { |
| 348 | __u32 max_ch; | 350 | __u32 max_ch; |
| 349 | __u32 sample_rates; | 351 | __u32 sample_rates[MAX_NUM_SAMPLE_RATES]; |
| 352 | __u32 num_sample_rates; | ||
| 350 | __u32 bit_rate[MAX_NUM_BITRATES]; | 353 | __u32 bit_rate[MAX_NUM_BITRATES]; |
| 351 | __u32 num_bitrates; | 354 | __u32 num_bitrates; |
| 352 | __u32 rate_control; | 355 | __u32 rate_control; |
| @@ -364,7 +367,8 @@ struct snd_codec_desc { | |||
| 364 | * @ch_out: Number of output channels. In case of contradiction between | 367 | * @ch_out: Number of output channels. In case of contradiction between |
| 365 | * this field and the channelMode field, the channelMode field | 368 | * this field and the channelMode field, the channelMode field |
| 366 | * overrides. | 369 | * overrides. |
| 367 | * @sample_rate: Audio sample rate of input data | 370 | * @sample_rate: Audio sample rate of input data in Hz, use values like 48000 |
| 371 | * for this. | ||
| 368 | * @bit_rate: Bitrate of encoded data. May be ignored by decoders | 372 | * @bit_rate: Bitrate of encoded data. May be ignored by decoders |
| 369 | * @rate_control: Encoding rate control. See SND_RATECONTROLMODE defines. | 373 | * @rate_control: Encoding rate control. See SND_RATECONTROLMODE defines. |
| 370 | * Encoders may rely on profiles for quality levels. | 374 | * Encoders may rely on profiles for quality levels. |
