mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-04 00:15:49 -04:00
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.
This commit is contained in:
@@ -1922,10 +1922,18 @@ int azx_mixer_create(struct azx *chip)
|
||||
EXPORT_SYMBOL_GPL(azx_mixer_create);
|
||||
|
||||
|
||||
static bool is_input_stream(struct azx *chip, unsigned char index)
|
||||
{
|
||||
return (index >= chip->capture_index_offset &&
|
||||
index < chip->capture_index_offset + chip->capture_streams);
|
||||
}
|
||||
|
||||
/* initialize SD streams */
|
||||
int azx_init_stream(struct azx *chip)
|
||||
{
|
||||
int i;
|
||||
int in_stream_tag = 0;
|
||||
int out_stream_tag = 0;
|
||||
|
||||
/* initialize each stream (aka device)
|
||||
* assign the starting bdl address to each stream (device)
|
||||
@@ -1938,9 +1946,21 @@ int azx_init_stream(struct azx *chip)
|
||||
azx_dev->sd_addr = chip->remap_addr + (0x20 * i + 0x80);
|
||||
/* int mask: SDI0=0x01, SDI1=0x02, ... SDO3=0x80 */
|
||||
azx_dev->sd_int_sta_mask = 1 << i;
|
||||
/* stream tag: must be non-zero and unique */
|
||||
azx_dev->index = i;
|
||||
azx_dev->stream_tag = i + 1;
|
||||
|
||||
/* stream tag must be unique throughout
|
||||
* the stream direction group,
|
||||
* valid values 1...15
|
||||
* use separate stream tag if the flag
|
||||
* AZX_DCAPS_SEPARATE_STREAM_TAG is used
|
||||
*/
|
||||
if (chip->driver_caps & AZX_DCAPS_SEPARATE_STREAM_TAG)
|
||||
azx_dev->stream_tag =
|
||||
is_input_stream(chip, i) ?
|
||||
++in_stream_tag :
|
||||
++out_stream_tag;
|
||||
else
|
||||
azx_dev->stream_tag = i + 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -299,6 +299,9 @@ enum {
|
||||
AZX_DCAPS_PM_RUNTIME | AZX_DCAPS_I915_POWERWELL |\
|
||||
AZX_DCAPS_SNOOP_TYPE(SCH))
|
||||
|
||||
#define AZX_DCAPS_INTEL_SKYLAKE \
|
||||
(AZX_DCAPS_INTEL_PCH | AZX_DCAPS_SEPARATE_STREAM_TAG)
|
||||
|
||||
/* quirks for ATI SB / AMD Hudson */
|
||||
#define AZX_DCAPS_PRESET_ATI_SB \
|
||||
(AZX_DCAPS_NO_TCSEL | AZX_DCAPS_SYNC_WRITE | AZX_DCAPS_POSFIX_LPIB |\
|
||||
@@ -2027,7 +2030,7 @@ static const struct pci_device_id azx_ids[] = {
|
||||
.driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH },
|
||||
/* Sunrise Point-LP */
|
||||
{ PCI_DEVICE(0x8086, 0x9d70),
|
||||
.driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH },
|
||||
.driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_SKYLAKE },
|
||||
/* Haswell */
|
||||
{ PCI_DEVICE(0x8086, 0x0a0c),
|
||||
.driver_data = AZX_DRIVER_HDMI | AZX_DCAPS_INTEL_HASWELL },
|
||||
|
||||
@@ -171,6 +171,7 @@ enum { SDI0, SDI1, SDI2, SDI3, SDO0, SDO1, SDO2, SDO3 };
|
||||
#define AZX_DCAPS_I915_POWERWELL (1 << 27) /* HSW i915 powerwell support */
|
||||
#define AZX_DCAPS_CORBRP_SELF_CLEAR (1 << 28) /* CORBRP clears itself after reset */
|
||||
#define AZX_DCAPS_NO_MSI64 (1 << 29) /* Stick to 32-bit MSIs */
|
||||
#define AZX_DCAPS_SEPARATE_STREAM_TAG (1 << 30) /* capture and playback use separate stream tag */
|
||||
|
||||
enum {
|
||||
AZX_SNOOP_TYPE_NONE ,
|
||||
|
||||
Reference in New Issue
Block a user