Commit 633544a8 authored by Takashi Iwai's avatar Takashi Iwai

Merge branch 'fix/hda' into topic/hda

The fix for buffer-alignment is required for further works.
parents eefad7fd 29c5fbbc
...@@ -469,6 +469,7 @@ struct azx { ...@@ -469,6 +469,7 @@ struct azx {
unsigned int irq_pending_warned :1; unsigned int irq_pending_warned :1;
unsigned int probing :1; /* codec probing phase */ unsigned int probing :1; /* codec probing phase */
unsigned int snoop:1; unsigned int snoop:1;
unsigned int align_buffer_size:1;
/* for debugging */ /* for debugging */
unsigned int last_cmd[AZX_MAX_CODECS]; unsigned int last_cmd[AZX_MAX_CODECS];
...@@ -1690,7 +1691,7 @@ static int azx_pcm_open(struct snd_pcm_substream *substream) ...@@ -1690,7 +1691,7 @@ static int azx_pcm_open(struct snd_pcm_substream *substream)
runtime->hw.rates = hinfo->rates; runtime->hw.rates = hinfo->rates;
snd_pcm_limit_hw_rates(runtime); snd_pcm_limit_hw_rates(runtime);
snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS); snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS);
if (align_buffer_size) if (chip->align_buffer_size)
/* constrain buffer sizes to be multiple of 128 /* constrain buffer sizes to be multiple of 128
bytes. This is more efficient in terms of memory bytes. This is more efficient in terms of memory
access but isn't required by the HDA spec and access but isn't required by the HDA spec and
...@@ -2773,8 +2774,9 @@ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci, ...@@ -2773,8 +2774,9 @@ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci,
} }
/* disable buffer size rounding to 128-byte multiples if supported */ /* disable buffer size rounding to 128-byte multiples if supported */
chip->align_buffer_size = align_buffer_size;
if (chip->driver_caps & AZX_DCAPS_BUFSIZE) if (chip->driver_caps & AZX_DCAPS_BUFSIZE)
align_buffer_size = 0; chip->align_buffer_size = 0;
/* allow 64bit DMA address if supported by H/W */ /* allow 64bit DMA address if supported by H/W */
if ((gcap & ICH6_GCAP_64OK) && !pci_set_dma_mask(pci, DMA_BIT_MASK(64))) if ((gcap & ICH6_GCAP_64OK) && !pci_set_dma_mask(pci, DMA_BIT_MASK(64)))
......
...@@ -3027,7 +3027,7 @@ static const struct snd_pci_quirk cxt5066_cfg_tbl[] = { ...@@ -3027,7 +3027,7 @@ static const struct snd_pci_quirk cxt5066_cfg_tbl[] = {
SND_PCI_QUIRK(0x17aa, 0x20f2, "Lenovo T400s", CXT5066_THINKPAD), SND_PCI_QUIRK(0x17aa, 0x20f2, "Lenovo T400s", CXT5066_THINKPAD),
SND_PCI_QUIRK(0x17aa, 0x21c5, "Thinkpad Edge 13", CXT5066_THINKPAD), SND_PCI_QUIRK(0x17aa, 0x21c5, "Thinkpad Edge 13", CXT5066_THINKPAD),
SND_PCI_QUIRK(0x17aa, 0x21c6, "Thinkpad Edge 13", CXT5066_ASUS), SND_PCI_QUIRK(0x17aa, 0x21c6, "Thinkpad Edge 13", CXT5066_ASUS),
SND_PCI_QUIRK(0x17aa, 0x215e, "Lenovo Thinkpad", CXT5066_THINKPAD), SND_PCI_QUIRK(0x17aa, 0x215e, "Lenovo T510", CXT5066_AUTO),
SND_PCI_QUIRK(0x17aa, 0x21cf, "Lenovo T520 & W520", CXT5066_AUTO), SND_PCI_QUIRK(0x17aa, 0x21cf, "Lenovo T520 & W520", CXT5066_AUTO),
SND_PCI_QUIRK(0x17aa, 0x21da, "Lenovo X220", CXT5066_THINKPAD), SND_PCI_QUIRK(0x17aa, 0x21da, "Lenovo X220", CXT5066_THINKPAD),
SND_PCI_QUIRK(0x17aa, 0x21db, "Lenovo X220-tablet", CXT5066_THINKPAD), SND_PCI_QUIRK(0x17aa, 0x21db, "Lenovo X220-tablet", CXT5066_THINKPAD),
......
...@@ -640,7 +640,6 @@ static void alc_exec_unsol_event(struct hda_codec *codec, int action) ...@@ -640,7 +640,6 @@ static void alc_exec_unsol_event(struct hda_codec *codec, int action)
/* unsolicited event for HP jack sensing */ /* unsolicited event for HP jack sensing */
static void alc_sku_unsol_event(struct hda_codec *codec, unsigned int res) static void alc_sku_unsol_event(struct hda_codec *codec, unsigned int res)
{ {
struct alc_spec *spec = codec->spec;
if (codec->vendor_id == 0x10ec0880) if (codec->vendor_id == 0x10ec0880)
res >>= 28; res >>= 28;
else else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment