diff options
author | Takashi Iwai <tiwai@suse.de> | 2014-03-01 11:41:44 +0100 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2014-03-01 11:41:44 +0100 |
commit | eb54c062fe794b670499cd9a9586bfc2c355cd7d (patch) | |
tree | 7b6cf039e40b8719a218d013365fc20018fff94c | |
parent | b57f3cf162877d2a4fdaa75dae1f4e8b734df8c9 (diff) | |
parent | a55f805ca22b4b31658f5dc800cdca073deda13f (diff) | |
download | alsa-driver-build-unstable-eb54c062fe794b670499cd9a9586bfc2c355cd7d.tar.gz |
Merge remote-tracking branch 'stable/build' into build
-rw-r--r-- | alsa/include/sound/core.patch | 18 | ||||
-rw-r--r-- | alsa/pci/hda/hda_controller.c | 2 | ||||
-rw-r--r-- | alsa/pci/hda/hda_intel.patch | 111 |
3 files changed, 36 insertions, 95 deletions
diff --git a/alsa/include/sound/core.patch b/alsa/include/sound/core.patch index e186a057f..7fe01a98d 100644 --- a/alsa/include/sound/core.patch +++ b/alsa/include/sound/core.patch @@ -1,5 +1,5 @@ ---- ../../alsa-kernel/include/core.h 2014-02-27 09:26:54.802204556 +0100 -+++ core.h 2014-02-27 09:28:32.882772147 +0100 +--- ../../alsa-kernel/include/core.h 2014-03-01 11:24:19.732897531 +0100 ++++ core.h 2014-03-01 11:30:39.808708785 +0100 @@ -100,8 +100,16 @@ char shortname[32]; /* short name of this soundcard */ char longname[80]; /* name of this soundcard */ @@ -63,7 +63,7 @@ /* device.c */ -@@ -428,13 +459,21 @@ +@@ -428,10 +459,12 @@ /* for easier backward-porting */ #if defined(CONFIG_GAMEPORT) || defined(CONFIG_GAMEPORT_MODULE) @@ -74,14 +74,18 @@ #endif +#endif - #ifdef CONFIG_PCI /* PCI quirk list helper */ + struct snd_pci_quirk { +@@ -444,6 +477,12 @@ + #endif + }; + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 30) +/* rename for ABI compatibility */ +#define snd_pci_quirk snd_pci_new_quirk +#define snd_pci_quirk_lookup snd_pci_new_quirk_lookup +#endif + - struct snd_pci_quirk { - unsigned short subvendor; /* PCI subvendor ID */ - unsigned short subdevice; /* PCI subdevice ID */ + #define _SND_PCI_QUIRK_ID_MASK(vend, mask, dev) \ + .subvendor = (vend), .subdevice = (dev), .subdevice_mask = (mask) + #define _SND_PCI_QUIRK_ID(vend, dev) \ diff --git a/alsa/pci/hda/hda_controller.c b/alsa/pci/hda/hda_controller.c new file mode 100644 index 000000000..bac0f77f7 --- /dev/null +++ b/alsa/pci/hda/hda_controller.c @@ -0,0 +1,2 @@ +#include "adriver.h" +#include "../../alsa-kernel/pci/hda/hda_controller.c" diff --git a/alsa/pci/hda/hda_intel.patch b/alsa/pci/hda/hda_intel.patch index 5f73c6b65..94e972b5b 100644 --- a/alsa/pci/hda/hda_intel.patch +++ b/alsa/pci/hda/hda_intel.patch @@ -1,5 +1,5 @@ ---- ../../alsa-kernel/pci/hda/hda_intel.c 2014-02-28 09:00:39.850804004 +0100 -+++ hda_intel.c 2014-02-28 12:05:19.806691656 +0100 +--- ../../alsa-kernel/pci/hda/hda_intel.c 2014-03-01 11:24:19.736897582 +0100 ++++ hda_intel.c 2014-03-01 11:38:27.336629926 +0100 @@ -1,3 +1,4 @@ +#include "hda_intel_hack.c" /* @@ -15,19 +15,8 @@ #include <linux/time.h> #include <linux/completion.h> -@@ -422,8 +425,10 @@ - unsigned int wc_marked:1; - unsigned int no_period_wakeup:1; - -+#ifdef HAVE_TIMECOUNTER - struct timecounter azx_tc; - struct cyclecounter azx_cc; -+#endif - - int delay_negative_threshold; - -@@ -690,6 +695,57 @@ - #define get_azx_dev(substream) (substream->runtime->private_data) +@@ -282,6 +285,57 @@ + }; #ifdef CONFIG_X86 +#ifndef CONFIG_HAVE_SET_PAGES_ARRAY @@ -84,53 +73,7 @@ static void __mark_pages_wc(struct azx *chip, struct snd_dma_buffer *dmab, bool on) { int pages; -@@ -1870,6 +1926,7 @@ - azx_dev->opened = 0; - } - -+#ifdef HAVE_TIMECOUNTER - static cycle_t azx_cc_read(const struct cyclecounter *cc) - { - struct azx_dev *azx_dev = container_of(cc, struct azx_dev, azx_cc); -@@ -1948,6 +2005,9 @@ - - return 0; - } -+#else -+#define azx_get_wallclock_tstamp NULL -+#endif - - static struct snd_pcm_hardware azx_pcm_hw = { - .info = (SNDRV_PCM_INFO_MMAP | -@@ -2324,6 +2384,7 @@ - azx_readl(chip, OLD_SSYNC) & ~sbits); - else - azx_writel(chip, SSYNC, azx_readl(chip, SSYNC) & ~sbits); -+#ifdef HAVE_TIMECOUNTER - if (start) { - azx_timecounter_init(substream, 0, 0); - if (nsync > 1) { -@@ -2340,6 +2401,7 @@ - } - } - } -+#endif - spin_unlock(&chip->reg_lock); - return 0; - } -@@ -2573,7 +2635,11 @@ - struct azx_pcm *apcm = snd_pcm_substream_chip(substream); - struct azx *chip = apcm->chip; - if (!azx_snoop(chip)) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) - area->vm_page_prot = pgprot_writecombine(area->vm_page_prot); -+#else -+ area->vm_page_prot = pgprot_noncached(area->vm_page_prot); -+#endif - return snd_pcm_lib_default_mmap(substream, area); - } - #else -@@ -3311,6 +3377,7 @@ +@@ -963,6 +1017,7 @@ static bool check_hdmi_disabled(struct pci_dev *pci) { bool vga_inactive = false; @@ -138,7 +81,7 @@ struct pci_dev *p = get_bound_vga(pci); if (p) { -@@ -3318,6 +3385,7 @@ +@@ -970,10 +1025,15 @@ vga_inactive = true; pci_dev_put(p); } @@ -146,18 +89,15 @@ return vga_inactive; } #endif /* SUPPORT_VGA_SWITCHEROO */ -@@ -3424,6 +3492,10 @@ - } - } +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 31) +#define AZX_ENABLE_MSI_DEFAULT +#endif + /* - * white/black-list for enable_msi + * white/black-listing for position_fix */ -@@ -3441,6 +3513,14 @@ +@@ -1093,6 +1153,14 @@ {} }; @@ -172,7 +112,7 @@ static void check_msi(struct azx *chip) { const struct snd_pci_quirk *q; -@@ -3449,7 +3529,11 @@ +@@ -1101,7 +1169,11 @@ chip->msi = !!enable_msi; return; } @@ -184,24 +124,7 @@ q = snd_pci_quirk_lookup(chip->pci, msi_black_list); if (q) { dev_info(chip->card->dev, -@@ -3458,6 +3542,16 @@ - chip->msi = q->value; - return; - } -+#ifndef AZX_ENABLE_MSI_DEFAULT -+ q = snd_pci_quirk_lookup(chip->pci, msi_white_list); -+ if (q) { -+ printk(KERN_INFO -+ "hda_intel: msi for device %04x:%04x set to %d\n", -+ q->subvendor, q->subdevice, q->value); -+ chip->msi = q->value; -+ return; -+ } -+#endif - - /* NVidia chipsets seem to cause troubles with MSI */ - if (chip->driver_caps & AZX_DCAPS_NO_MSI) { -@@ -3479,7 +3573,7 @@ +@@ -1131,7 +1203,7 @@ if (snoop) { u8 val; pci_read_config_byte(chip->pci, 0x42, &val); @@ -210,7 +133,7 @@ snoop = false; } break; -@@ -3636,7 +3730,7 @@ +@@ -1292,7 +1364,7 @@ PCI_DEVICE_ID_ATI_SBX00_SMBUS, NULL); if (p_smbus) { @@ -219,3 +142,15 @@ gcap &= ~ICH6_GCAP_64OK; pci_dev_put(p_smbus); } +@@ -1532,7 +1604,11 @@ + struct azx_pcm *apcm = snd_pcm_substream_chip(substream); + struct azx *chip = apcm->chip; + if (!azx_snoop(chip)) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) + area->vm_page_prot = pgprot_writecombine(area->vm_page_prot); ++#else ++ area->vm_page_prot = pgprot_noncached(area->vm_page_prot); ++#endif + #endif + } + |