diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-01 18:38:47 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-01 18:38:47 -0400 |
| commit | c70929147a10fa4538886cb23b934b509c4c0e49 (patch) | |
| tree | bd7c25f679b271fc81f2cedc7a70ef059586c353 /include/trace | |
| parent | 4b1779c2cf030c68aefe939d946475e4136c1895 (diff) | |
| parent | 69dd89fd2b9406603d218cab8996cfb232d5b8b9 (diff) | |
Merge tag 'sound-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound updates from Takashi Iwai:
"There have been lots of changes in ALSA core, HD-audio and ASoC, also
most of PCI drivers touched by conversions of printks. All these
resulted in a high volume and wide ranged patch sets in this release.
Many changes are fairly trivial, but also lots of nice cleanups and
refactors. There are a few new drivers, most notably, the Intel
Haswell and Baytrail ASoC driver.
Core changes:
- A bit modernization; embed the device struct into snd_card struct,
so that it may be referred from the beginning. A new
snd_card_new() function is introduced for that, and all drivers
have been converted.
- Simplification in the device management code in ALSA core; now
managed by a simple priority list instead
- Converted many kernel messages to use the standard dev_err() & co;
this would be the pretty visible difference, especially for
HD-audio.
HD-audio:
- Conexant codecs use the auto-parser as default now; the old static
code still remains in case of regressions. Some old quirks have
been rewritten with the fixups for auto-parser.
- C-Media codecs also use the auto-parser as default now, too.
- A device struct is assigned to each HD-audio codec, and the
formerly hwdep attributes are accessible over the codec sysfs, too.
hwdep attributes still remain for compatibility.
- Split the PCI-specific stuff for HD-audio controller into a
separate module, ane make a helper module for the generic
controller driver. This is a preliminary change for supporting
Tegra HDMI controller in near future, which slipped from 3.15
merge.
- Device-specific fixes: mute LED support for Lenovo Ideapad, mic LED
fix for HP laptops, more ASUS subwoofer quirks, yet more Dell
laptop headset quirks
- Make the HD-audio codec response a bit more robust
- A few improvements on Realtek ALC282 / 283 about the pop noises
- A couple of Intel HDMI fixes
ASoC:
- Lots of cleanups for enumerations; refactored lots of error prone
original codes to use more modern APIs
- Elimination of the ASoC level wrappers for I2C and SPI moving us
closer to converting to regmap completely and avoiding some
randconfig hassle
- Provide both manually and transparently locked DAPM APIs rather
than a mix of the two fixing some concurrency issues
- Start converting CODEC drivers to use separate bus interface
drivers rather than having them all in one file helping avoid
dependency issues
- DPCM support for Intel Haswell and Bay Trail platforms, lots of
fixes
- Lots of work on improvements for simple-card, DaVinci and the
Renesas rcar drivers.
- New drivers for Analog Devices ADAU1977, TI PCM512x and parts of
the CSR SiRF SoC, TLV320AIC31XXX, Armada 370 DB, Cirrus cs42xx8
- Fixes for the simple-card DAI format DT mess
- DT support for a couple more devices.
- Use of the tdm_slot mapping in a few drivers
Others:
- Support of reset_resume callback for improved S4 in USB-audio
driver; the device with boot quirks have been little tested, which
we need to watch out in this development cycle
- Add PM support for ICE1712 driver (finally!); it's still pretty
partial support, only for M-Audio devices"
* tag 'sound-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (610 commits)
ALSA: ice1712: Add suspend support for M-Audio ICE1712-based cards
ALSA: ice1712: add suspend support for ICE1712 chip
ALSA: hda - Enable beep for ASUS 1015E
ALSA: asihpi: fix some indenting in snd_card_asihpi_pcm_new()
ALSA: hda - add headset mic detect quirks for three Dell laptops
ASoC: tegra: move AC97 clock handling to the machine driver
ASoC: simple-card: Handle many DAI links
ASoC: simple-card: Add DT documentation for multi-DAI links
ASoC: simple-card: dynamically allocate the DAI link and properties
ASoC: imx-ssi: Add .xlate_tdm_slot_mask() support.
ASoC: fsl-esai: Add .xlate_tdm_slot_mask() support.
ASoC: fsl-utils: Add fsl_asoc_xlate_tdm_slot_mask() support.
ASoC: core: remove the 'of_' prefix of of_xlate_tdm_slot_mask.
ASoC: rcar: subnode tidyup for renesas,rsnd.txt
ASoC: Remove name_prefix unset during DAI link init hack
ALSA: hda - Inform the unexpectedly ignored pins by auto-parser
ASoC: rcar: bugfix: it cares about the non-src case
ARM: bockw: fixup SND_SOC_DAIFMT_CBx_CFx flags
ASoC: pcm: Drop incorrect double/extra frees
ASoC: mfld_machine: Fix compile error
...
Diffstat (limited to 'include/trace')
| -rw-r--r-- | include/trace/events/hswadsp.h | 384 | ||||
| -rw-r--r-- | include/trace/events/intel-sst.h | 148 |
2 files changed, 532 insertions, 0 deletions
diff --git a/include/trace/events/hswadsp.h b/include/trace/events/hswadsp.h new file mode 100644 index 000000000000..0f78bbb02002 --- /dev/null +++ b/include/trace/events/hswadsp.h | |||
| @@ -0,0 +1,384 @@ | |||
| 1 | #undef TRACE_SYSTEM | ||
| 2 | #define TRACE_SYSTEM hswadsp | ||
| 3 | |||
| 4 | #if !defined(_TRACE_HSWADSP_H) || defined(TRACE_HEADER_MULTI_READ) | ||
| 5 | #define _TRACE_HSWADSP_H | ||
| 6 | |||
| 7 | #include <linux/types.h> | ||
| 8 | #include <linux/ktime.h> | ||
| 9 | #include <linux/tracepoint.h> | ||
| 10 | |||
| 11 | struct sst_hsw; | ||
| 12 | struct sst_hsw_stream; | ||
| 13 | struct sst_hsw_ipc_stream_free_req; | ||
| 14 | struct sst_hsw_ipc_volume_req; | ||
| 15 | struct sst_hsw_ipc_stream_alloc_req; | ||
| 16 | struct sst_hsw_audio_data_format_ipc; | ||
| 17 | struct sst_hsw_ipc_stream_info_reply; | ||
| 18 | struct sst_hsw_ipc_device_config_req; | ||
| 19 | |||
| 20 | DECLARE_EVENT_CLASS(sst_irq, | ||
| 21 | |||
| 22 | TP_PROTO(uint32_t status, uint32_t mask), | ||
| 23 | |||
| 24 | TP_ARGS(status, mask), | ||
| 25 | |||
| 26 | TP_STRUCT__entry( | ||
| 27 | __field( unsigned int, status ) | ||
| 28 | __field( unsigned int, mask ) | ||
| 29 | ), | ||
| 30 | |||
| 31 | TP_fast_assign( | ||
| 32 | __entry->status = status; | ||
| 33 | __entry->mask = mask; | ||
| 34 | ), | ||
| 35 | |||
| 36 | TP_printk("status 0x%8.8x mask 0x%8.8x", | ||
| 37 | (unsigned int)__entry->status, (unsigned int)__entry->mask) | ||
| 38 | ); | ||
| 39 | |||
| 40 | DEFINE_EVENT(sst_irq, sst_irq_busy, | ||
| 41 | |||
| 42 | TP_PROTO(unsigned int status, unsigned int mask), | ||
| 43 | |||
| 44 | TP_ARGS(status, mask) | ||
| 45 | |||
| 46 | ); | ||
| 47 | |||
| 48 | DEFINE_EVENT(sst_irq, sst_irq_done, | ||
| 49 | |||
| 50 | TP_PROTO(unsigned int status, unsigned int mask), | ||
| 51 | |||
| 52 | TP_ARGS(status, mask) | ||
| 53 | |||
| 54 | ); | ||
| 55 | |||
| 56 | DECLARE_EVENT_CLASS(ipc, | ||
| 57 | |||
| 58 | TP_PROTO(const char *name, int val), | ||
| 59 | |||
| 60 | TP_ARGS(name, val), | ||
| 61 | |||
| 62 | TP_STRUCT__entry( | ||
| 63 | __string( name, name ) | ||
| 64 | __field( unsigned int, val ) | ||
| 65 | ), | ||
| 66 | |||
| 67 | TP_fast_assign( | ||
| 68 | __assign_str(name, name); | ||
| 69 | __entry->val = val; | ||
| 70 | ), | ||
| 71 | |||
| 72 | TP_printk("%s 0x%8.8x", __get_str(name), (unsigned int)__entry->val) | ||
| 73 | |||
| 74 | ); | ||
| 75 | |||
| 76 | DEFINE_EVENT(ipc, ipc_request, | ||
| 77 | |||
| 78 | TP_PROTO(const char *name, int val), | ||
| 79 | |||
| 80 | TP_ARGS(name, val) | ||
| 81 | |||
| 82 | ); | ||
| 83 | |||
| 84 | DEFINE_EVENT(ipc, ipc_reply, | ||
| 85 | |||
| 86 | TP_PROTO(const char *name, int val), | ||
| 87 | |||
| 88 | TP_ARGS(name, val) | ||
| 89 | |||
| 90 | ); | ||
| 91 | |||
| 92 | DEFINE_EVENT(ipc, ipc_pending_reply, | ||
| 93 | |||
| 94 | TP_PROTO(const char *name, int val), | ||
| 95 | |||
| 96 | TP_ARGS(name, val) | ||
| 97 | |||
| 98 | ); | ||
| 99 | |||
| 100 | DEFINE_EVENT(ipc, ipc_notification, | ||
| 101 | |||
| 102 | TP_PROTO(const char *name, int val), | ||
| 103 | |||
| 104 | TP_ARGS(name, val) | ||
| 105 | |||
| 106 | ); | ||
| 107 | |||
| 108 | DEFINE_EVENT(ipc, ipc_error, | ||
| 109 | |||
| 110 | TP_PROTO(const char *name, int val), | ||
| 111 | |||
| 112 | TP_ARGS(name, val) | ||
| 113 | |||
| 114 | ); | ||
| 115 | |||
| 116 | DECLARE_EVENT_CLASS(stream_position, | ||
| 117 | |||
| 118 | TP_PROTO(unsigned int id, unsigned int pos), | ||
| 119 | |||
| 120 | TP_ARGS(id, pos), | ||
| 121 | |||
| 122 | TP_STRUCT__entry( | ||
| 123 | __field( unsigned int, id ) | ||
| 124 | __field( unsigned int, pos ) | ||
| 125 | ), | ||
| 126 | |||
| 127 | TP_fast_assign( | ||
| 128 | __entry->id = id; | ||
| 129 | __entry->pos = pos; | ||
| 130 | ), | ||
| 131 | |||
| 132 | TP_printk("id %d position 0x%x", | ||
| 133 | (unsigned int)__entry->id, (unsigned int)__entry->pos) | ||
| 134 | ); | ||
| 135 | |||
| 136 | DEFINE_EVENT(stream_position, stream_read_position, | ||
| 137 | |||
| 138 | TP_PROTO(unsigned int id, unsigned int pos), | ||
| 139 | |||
| 140 | TP_ARGS(id, pos) | ||
| 141 | |||
| 142 | ); | ||
| 143 | |||
| 144 | DEFINE_EVENT(stream_position, stream_write_position, | ||
| 145 | |||
| 146 | TP_PROTO(unsigned int id, unsigned int pos), | ||
| 147 | |||
| 148 | TP_ARGS(id, pos) | ||
| 149 | |||
| 150 | ); | ||
| 151 | |||
| 152 | TRACE_EVENT(hsw_stream_buffer, | ||
| 153 | |||
| 154 | TP_PROTO(struct sst_hsw_stream *stream), | ||
| 155 | |||
| 156 | TP_ARGS(stream), | ||
| 157 | |||
| 158 | TP_STRUCT__entry( | ||
| 159 | __field( int, id ) | ||
| 160 | __field( int, pt_addr ) | ||
| 161 | __field( int, num_pages ) | ||
| 162 | __field( int, ring_size ) | ||
| 163 | __field( int, ring_offset ) | ||
| 164 | __field( int, first_pfn ) | ||
| 165 | ), | ||
| 166 | |||
| 167 | TP_fast_assign( | ||
| 168 | __entry->id = stream->host_id; | ||
| 169 | __entry->pt_addr = stream->request.ringinfo.ring_pt_address; | ||
| 170 | __entry->num_pages = stream->request.ringinfo.num_pages; | ||
| 171 | __entry->ring_size = stream->request.ringinfo.ring_size; | ||
| 172 | __entry->ring_offset = stream->request.ringinfo.ring_offset; | ||
| 173 | __entry->first_pfn = stream->request.ringinfo.ring_first_pfn; | ||
| 174 | ), | ||
| 175 | |||
| 176 | TP_printk("stream %d ring addr 0x%x pages %d size 0x%x offset 0x%x PFN 0x%x", | ||
| 177 | (int) __entry->id, (int)__entry->pt_addr, | ||
| 178 | (int)__entry->num_pages, (int)__entry->ring_size, | ||
| 179 | (int)__entry->ring_offset, (int)__entry->first_pfn) | ||
| 180 | ); | ||
