Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'sound-3.19-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
"Just a couple of fixes for the new Intel Skylake HD-audio support"

* tag 'sound-3.19-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
ALSA: hda_intel: apply the Seperate stream_tag for Skylake
ALSA: hda_controller: Separate stream_tag for input and output streams.

+27 -3
+22 -2
sound/pci/hda/hda_controller.c
··· 1922 1922 EXPORT_SYMBOL_GPL(azx_mixer_create); 1923 1923 1924 1924 1925 + static bool is_input_stream(struct azx *chip, unsigned char index) 1926 + { 1927 + return (index >= chip->capture_index_offset && 1928 + index < chip->capture_index_offset + chip->capture_streams); 1929 + } 1930 + 1925 1931 /* initialize SD streams */ 1926 1932 int azx_init_stream(struct azx *chip) 1927 1933 { 1928 1934 int i; 1935 + int in_stream_tag = 0; 1936 + int out_stream_tag = 0; 1929 1937 1930 1938 /* initialize each stream (aka device) 1931 1939 * assign the starting bdl address to each stream (device) ··· 1946 1938 azx_dev->sd_addr = chip->remap_addr + (0x20 * i + 0x80); 1947 1939 /* int mask: SDI0=0x01, SDI1=0x02, ... SDO3=0x80 */ 1948 1940 azx_dev->sd_int_sta_mask = 1 << i; 1949 - /* stream tag: must be non-zero and unique */ 1950 1941 azx_dev->index = i; 1951 - azx_dev->stream_tag = i + 1; 1942 + 1943 + /* stream tag must be unique throughout 1944 + * the stream direction group, 1945 + * valid values 1...15 1946 + * use separate stream tag if the flag 1947 + * AZX_DCAPS_SEPARATE_STREAM_TAG is used 1948 + */ 1949 + if (chip->driver_caps & AZX_DCAPS_SEPARATE_STREAM_TAG) 1950 + azx_dev->stream_tag = 1951 + is_input_stream(chip, i) ? 1952 + ++in_stream_tag : 1953 + ++out_stream_tag; 1954 + else 1955 + azx_dev->stream_tag = i + 1; 1952 1956 } 1953 1957 1954 1958 return 0;
+4 -1
sound/pci/hda/hda_intel.c
··· 299 299 AZX_DCAPS_PM_RUNTIME | AZX_DCAPS_I915_POWERWELL |\ 300 300 AZX_DCAPS_SNOOP_TYPE(SCH)) 301 301 302 + #define AZX_DCAPS_INTEL_SKYLAKE \ 303 + (AZX_DCAPS_INTEL_PCH | AZX_DCAPS_SEPARATE_STREAM_TAG) 304 + 302 305 /* quirks for ATI SB / AMD Hudson */ 303 306 #define AZX_DCAPS_PRESET_ATI_SB \ 304 307 (AZX_DCAPS_NO_TCSEL | AZX_DCAPS_SYNC_WRITE | AZX_DCAPS_POSFIX_LPIB |\ ··· 2030 2027 .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH }, 2031 2028 /* Sunrise Point-LP */ 2032 2029 { PCI_DEVICE(0x8086, 0x9d70), 2033 - .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH }, 2030 + .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_SKYLAKE }, 2034 2031 /* Haswell */ 2035 2032 { PCI_DEVICE(0x8086, 0x0a0c), 2036 2033 .driver_data = AZX_DRIVER_HDMI | AZX_DCAPS_INTEL_HASWELL },
+1
sound/pci/hda/hda_priv.h
··· 171 171 #define AZX_DCAPS_I915_POWERWELL (1 << 27) /* HSW i915 powerwell support */ 172 172 #define AZX_DCAPS_CORBRP_SELF_CLEAR (1 << 28) /* CORBRP clears itself after reset */ 173 173 #define AZX_DCAPS_NO_MSI64 (1 << 29) /* Stick to 32-bit MSIs */ 174 + #define AZX_DCAPS_SEPARATE_STREAM_TAG (1 << 30) /* capture and playback use separate stream tag */ 174 175 175 176 enum { 176 177 AZX_SNOOP_TYPE_NONE ,