Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6bb615bc authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
  sound: pss - don't use the deprecated function check_region
  ALSA: timer - Add NULL-check for invalid slave timer
  ALSA: timer - Fix Oops at closing slave timer
  ASoC: Acknowledge WM8996 interrupts before acting on them
  ASoC: Rename WM8915 to WM8996
  ALSA: Fix dependency of CONFIG_SND_TEA575X
  ALSA: asihpi - use kzalloc()
  ALSA: snd-usb-caiaq: Fix keymap for RigKontrol3
  ALSA: snd-usb: Fix uninitialized variable usage
  ALSA: hda - Fix a complile warning in patch_via.c
  ALSA: hdspm - Fix uninitialized compile warnings
  ALSA: usb-audio - add quirk for Keith McMillen StringPort
  ALSA: snd-usb: operate on given mixer interface only
  ALSA: snd-usb: avoid dividing by zero on invalid input
  ALSA: snd-usb: Accept UAC2 FORMAT_TYPE descriptors with bLength > 6
  sound: oss/pas2: Remove CLOCK_TICK_RATE dependency from PAS16 driver
  ALSA: hda - Use auto-parser for ASUS UX50, Eee PC P901, S101 and P1005
  ALSA: hda - Fix digital-mic mono recording on ASUS Eee PC
  ASoC: sgtl5000: fix cache handling
  ASoC: Disable wm_hubs periodic DC servo update
parents ab04fc58 60b1ae0c
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@
#include <plat/iic.h>
#include <plat/pm.h>

#include <sound/wm8915.h>
#include <sound/wm8996.h>
#include <sound/wm8962.h>
#include <sound/wm9081.h>

@@ -614,7 +614,7 @@ static struct wm831x_pdata glenfarclas_pmic_pdata __initdata = {
	.disable_touch = true,
};

static struct wm8915_retune_mobile_config wm8915_retune[] = {
static struct wm8996_retune_mobile_config wm8996_retune[] = {
	{
		.name = "Sub LPF",
		.rate = 48000,
@@ -635,12 +635,12 @@ static struct wm8915_retune_mobile_config wm8915_retune[] = {
	},
};

static struct wm8915_pdata wm8915_pdata __initdata = {
static struct wm8996_pdata wm8996_pdata __initdata = {
	.ldo_ena = S3C64XX_GPN(7),
	.gpio_base = CODEC_GPIO_BASE,
	.micdet_def = 1,
	.inl_mode = WM8915_DIFFERRENTIAL_1,
	.inr_mode = WM8915_DIFFERRENTIAL_1,
	.inl_mode = WM8996_DIFFERRENTIAL_1,
	.inr_mode = WM8996_DIFFERRENTIAL_1,

	.irq_flags = IRQF_TRIGGER_RISING,

@@ -652,8 +652,8 @@ static struct wm8915_pdata wm8915_pdata __initdata = {
		0x020e, /* GPIO5 == CLKOUT */
	},

	.retune_mobile_cfgs = wm8915_retune,
	.num_retune_mobile_cfgs = ARRAY_SIZE(wm8915_retune),
	.retune_mobile_cfgs = wm8996_retune,
	.num_retune_mobile_cfgs = ARRAY_SIZE(wm8996_retune),
};

static struct wm8962_pdata wm8962_pdata __initdata = {
@@ -679,8 +679,8 @@ static struct i2c_board_info i2c_devs1[] __initdata = {
	  .platform_data = &glenfarclas_pmic_pdata },

	{ I2C_BOARD_INFO("wm1250-ev1", 0x27) },
	{ I2C_BOARD_INFO("wm8915", 0x1a),
	  .platform_data = &wm8915_pdata,
	{ I2C_BOARD_INFO("wm8996", 0x1a),
	  .platform_data = &wm8996_pdata,
	  .irq = GLENFARCLAS_PMIC_IRQ_BASE + WM831X_IRQ_GPIO_2,
	},
	{ I2C_BOARD_INFO("wm9081", 0x6c),
+14 −14
Original line number Diff line number Diff line
/*
 * linux/sound/wm8915.h -- Platform data for WM8915
 * linux/sound/wm8996.h -- Platform data for WM8996
 *
 * Copyright 2011 Wolfson Microelectronics. PLC.
 *
@@ -8,14 +8,14 @@
 * published by the Free Software Foundation.
 */

#ifndef __LINUX_SND_WM8903_H
#define __LINUX_SND_WM8903_H
#ifndef __LINUX_SND_WM8996_H
#define __LINUX_SND_WM8996_H

enum wm8915_inmode {
	WM8915_DIFFERRENTIAL_1 = 0,   /* IN1xP - IN1xN */
	WM8915_INVERTING = 1,         /* IN1xN */
	WM8915_NON_INVERTING = 2,     /* IN1xP */
	WM8915_DIFFERENTIAL_2 = 3,    /* IN2xP - IN2xP */
enum wm8996_inmode {
	WM8996_DIFFERRENTIAL_1 = 0,   /* IN1xP - IN1xN */
	WM8996_INVERTING = 1,         /* IN1xN */
	WM8996_NON_INVERTING = 2,     /* IN1xP */
	WM8996_DIFFERENTIAL_2 = 3,    /* IN2xP - IN2xP */
};

/**
@@ -25,23 +25,23 @@ enum wm8915_inmode {
 * Configurations are expected to be generated using the ReTune Mobile
 * control panel in WISCE - see http://www.wolfsonmicro.com/wisce/
 */
struct wm8915_retune_mobile_config {
struct wm8996_retune_mobile_config {
	const char *name;
	int rate;
	u16 regs[20];
};

#define WM8915_SET_DEFAULT 0x10000
#define WM8996_SET_DEFAULT 0x10000

struct wm8915_pdata {
struct wm8996_pdata {
	int irq_flags;  /** Set IRQ trigger flags; default active low */

	int ldo_ena;  /** GPIO for LDO1; -1 for none */

	int micdet_def;  /** Default MICDET_SRC/HP1FB_SRC/MICD_BIAS */

	enum wm8915_inmode inl_mode;
	enum wm8915_inmode inr_mode;
	enum wm8996_inmode inl_mode;
	enum wm8996_inmode inr_mode;

	u32 spkmute_seq;  /** Value for register 0x802 */

@@ -49,7 +49,7 @@ struct wm8915_pdata {
	u32 gpio_default[5];

	int num_retune_mobile_cfgs;
	struct wm8915_retune_mobile_config *retune_mobile_cfgs;
	struct wm8996_retune_mobile_config *retune_mobile_cfgs;
};

#endif
+5 −0
Original line number Diff line number Diff line
@@ -328,6 +328,8 @@ int snd_timer_close(struct snd_timer_instance *timeri)
		mutex_unlock(&register_mutex);
	} else {
		timer = timeri->timer;
		if (snd_BUG_ON(!timer))
			goto out;
		/* wait, until the active callback is finished */
		spin_lock_irq(&timer->lock);
		while (timeri->flags & SNDRV_TIMER_IFLG_CALLBACK) {
@@ -353,6 +355,7 @@ int snd_timer_close(struct snd_timer_instance *timeri)
		}
		mutex_unlock(&register_mutex);
	}
 out:
	if (timeri->private_free)
		timeri->private_free(timeri);
	kfree(timeri->owner);
@@ -531,6 +534,8 @@ int snd_timer_stop(struct snd_timer_instance *timeri)
	if (err < 0)
		return err;
	timer = timeri->timer;
	if (!timer)
		return -EINVAL;
	spin_lock_irqsave(&timer->lock, flags);
	timeri->cticks = timeri->ticks;
	timeri->pticks = 0;
+4 −4
Original line number Diff line number Diff line
@@ -63,13 +63,13 @@ static int pcm_set_speed(int arg)

	if (pcm_channels & 2)
	{
		foo = ((CLOCK_TICK_RATE / 2) + (arg / 2)) / arg;
		arg = ((CLOCK_TICK_RATE / 2) + (foo / 2)) / foo;
		foo = ((PIT_TICK_RATE / 2) + (arg / 2)) / arg;
		arg = ((PIT_TICK_RATE / 2) + (foo / 2)) / foo;
	}
	else
	{
		foo = (CLOCK_TICK_RATE + (arg / 2)) / arg;
		arg = (CLOCK_TICK_RATE + (foo / 2)) / foo;
		foo = (PIT_TICK_RATE + (arg / 2)) / arg;
		arg = (PIT_TICK_RATE + (foo / 2)) / foo;
	}

	pcm_speed = arg;
+4 −2
Original line number Diff line number Diff line
@@ -673,7 +673,8 @@ static void configure_nonsound_components(void)

	if (pss_cdrom_port == -1) {	/* If cdrom port enablation wasn't requested */
		printk(KERN_INFO "PSS: CDROM port not enabled.\n");
	} else if (check_region(pss_cdrom_port, 2)) {
	} else if (!request_region(pss_cdrom_port, 2, "PSS CDROM")) {
		pss_cdrom_port = -1;
		printk(KERN_ERR "PSS: CDROM I/O port conflict.\n");
	} else {
		set_io_base(devc, CONF_CDROM, pss_cdrom_port);
@@ -1232,7 +1233,8 @@ static void __exit cleanup_pss(void)
		if(pssmpu)
			unload_pss_mpu(&cfg_mpu);
		unload_pss(&cfg);
	}
	} else if (pss_cdrom_port != -1)
		release_region(pss_cdrom_port, 2);

	if(!pss_keep_settings)	/* Keep hardware settings if asked */
	{
Loading