summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2014-03-01 11:41:44 +0100
committerTakashi Iwai <tiwai@suse.de>2014-03-01 11:41:44 +0100
commiteb54c062fe794b670499cd9a9586bfc2c355cd7d (patch)
tree7b6cf039e40b8719a218d013365fc20018fff94c
parentb57f3cf162877d2a4fdaa75dae1f4e8b734df8c9 (diff)
parenta55f805ca22b4b31658f5dc800cdca073deda13f (diff)
downloadalsa-driver-build-unstable-eb54c062fe794b670499cd9a9586bfc2c355cd7d.tar.gz
Merge remote-tracking branch 'stable/build' into build
-rw-r--r--alsa/include/sound/core.patch18
-rw-r--r--alsa/pci/hda/hda_controller.c2
-rw-r--r--alsa/pci/hda/hda_intel.patch111
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
+ }
+