Commit c155b914 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
  ALSA: ice1724 - Fix a typo in IEC958 PCM name
  ASoC: fix davinci-sffsdr buglet
  ALSA: sound/usb: Use negated usb_endpoint_xfer_control, etc
  ALSA: hda - cxt5051 report jack state
  ALSA: hda - add basic jack reporting functions to patch_conexant.c
  ALSA: Use usb_set/get_intfdata
  ASoC: Clean up kerneldoc warnings
  ASoC: Fix pxa2xx-pcm checks for invalid DMA channels
  LSA: hda - Add HP Acacia detection
  ALSA: hda - fix name for ALC1200
  ALSA: sound/usb: use USB API functions rather than constants
  ASoC: TWL4030: DAPM based capture implementation
  ASoC: TWL4030: Make the enum filter generic for twl4030
parents e9af797d 3a5e1d17
...@@ -25,6 +25,8 @@ ...@@ -25,6 +25,8 @@
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/pci.h> #include <linux/pci.h>
#include <sound/core.h> #include <sound/core.h>
#include <sound/jack.h>
#include "hda_codec.h" #include "hda_codec.h"
#include "hda_local.h" #include "hda_local.h"
...@@ -37,8 +39,21 @@ ...@@ -37,8 +39,21 @@
#define CONEXANT_HP_EVENT 0x37 #define CONEXANT_HP_EVENT 0x37
#define CONEXANT_MIC_EVENT 0x38 #define CONEXANT_MIC_EVENT 0x38
/* Conexant 5051 specific */
#define CXT5051_SPDIF_OUT 0x1C
#define CXT5051_PORTB_EVENT 0x38
#define CXT5051_PORTC_EVENT 0x39
struct conexant_jack {
hda_nid_t nid;
int type;
struct snd_jack *jack;
};
struct conexant_spec { struct conexant_spec {
struct snd_kcontrol_new *mixers[5]; struct snd_kcontrol_new *mixers[5];
...@@ -83,6 +98,9 @@ struct conexant_spec { ...@@ -83,6 +98,9 @@ struct conexant_spec {
unsigned int spdif_route; unsigned int spdif_route;
/* jack detection */
struct snd_array jacks;
/* dynamic controls, init_verbs and input_mux */ /* dynamic controls, init_verbs and input_mux */
struct auto_pin_cfg autocfg; struct auto_pin_cfg autocfg;
struct hda_input_mux private_imux; struct hda_input_mux private_imux;
...@@ -329,6 +347,86 @@ static int conexant_mux_enum_put(struct snd_kcontrol *kcontrol, ...@@ -329,6 +347,86 @@ static int conexant_mux_enum_put(struct snd_kcontrol *kcontrol,
&spec->cur_mux[adc_idx]); &spec->cur_mux[adc_idx]);
} }
static int conexant_add_jack(struct hda_codec *codec,
hda_nid_t nid, int type)
{
struct conexant_spec *spec;
struct conexant_jack *jack;
const char *name;
spec = codec->spec;
snd_array_init(&spec->jacks, sizeof(*jack), 32);
jack = snd_array_new(&spec->jacks);
name = (type == SND_JACK_HEADPHONE) ? "Headphone" : "Mic" ;
if (!jack)
return -ENOMEM;
jack->nid = nid;
jack->type = type;
return snd_jack_new(codec->bus->card, name, type, &jack->jack);
}
static void conexant_report_jack(struct hda_codec *codec, hda_nid_t nid)
{
struct conexant_spec *spec = codec->spec;
struct conexant_jack *jacks = spec->jacks.list;
if (jacks) {
int i;
for (i = 0; i < spec->jacks.used; i++) {
if (jacks->nid == nid) {
unsigned int present;
present = snd_hda_codec_read(codec, nid, 0,
AC_VERB_GET_PIN_SENSE, 0) &
AC_PINSENSE_PRESENCE;
present = (present) ? jacks->type : 0 ;
snd_jack_report(jacks->jack,
present);
}
jacks++;
}
}
}
static int conexant_init_jacks(struct hda_codec *codec)
{
#ifdef CONFIG_SND_JACK
struct conexant_spec *spec = codec->spec;
int i;
for (i = 0; i < spec->num_init_verbs; i++) {
const struct hda_verb *hv;
hv = spec->init_verbs[i];
while (hv->nid) {
int err = 0;
switch (hv->param ^ AC_USRSP_EN) {
case CONEXANT_HP_EVENT:
err = conexant_add_jack(codec, hv->nid,
SND_JACK_HEADPHONE);
conexant_report_jack(codec, hv->nid);
break;
case CXT5051_PORTC_EVENT:
case CONEXANT_MIC_EVENT:
err = conexant_add_jack(codec, hv->nid,
SND_JACK_MICROPHONE);
conexant_report_jack(codec, hv->nid);
break;
}
if (err < 0)
return err;
++hv;
}
}
#endif
return 0;
}
static int conexant_init(struct hda_codec *codec) static int conexant_init(struct hda_codec *codec)
{ {
struct conexant_spec *spec = codec->spec; struct conexant_spec *spec = codec->spec;
...@@ -341,6 +439,16 @@ static int conexant_init(struct hda_codec *codec) ...@@ -341,6 +439,16 @@ static int conexant_init(struct hda_codec *codec)
static void conexant_free(struct hda_codec *codec) static void conexant_free(struct hda_codec *codec)
{ {
#ifdef CONFIG_SND_JACK
struct conexant_spec *spec = codec->spec;
if (spec->jacks.list) {
struct conexant_jack *jacks = spec->jacks.list;
int i;
for (i = 0; i < spec->jacks.used; i++)
snd_device_free(codec->bus->card, &jacks[i].jack);
snd_array_free(&spec->jacks);
}
#endif
kfree(codec->spec); kfree(codec->spec);
} }
...@@ -1526,9 +1634,6 @@ static int patch_cxt5047(struct hda_codec *codec) ...@@ -1526,9 +1634,6 @@ static int patch_cxt5047(struct hda_codec *codec)
/* Conexant 5051 specific */ /* Conexant 5051 specific */
static hda_nid_t cxt5051_dac_nids[1] = { 0x10 }; static hda_nid_t cxt5051_dac_nids[1] = { 0x10 };
static hda_nid_t cxt5051_adc_nids[2] = { 0x14, 0x15 }; static hda_nid_t cxt5051_adc_nids[2] = { 0x14, 0x15 };
#define CXT5051_SPDIF_OUT 0x1C
#define CXT5051_PORTB_EVENT 0x38
#define CXT5051_PORTC_EVENT 0x39
static struct hda_channel_mode cxt5051_modes[1] = { static struct hda_channel_mode cxt5051_modes[1] = {
{ 2, NULL }, { 2, NULL },
...@@ -1608,6 +1713,7 @@ static void cxt5051_hp_automute(struct hda_codec *codec) ...@@ -1608,6 +1713,7 @@ static void cxt5051_hp_automute(struct hda_codec *codec)
static void cxt5051_hp_unsol_event(struct hda_codec *codec, static void cxt5051_hp_unsol_event(struct hda_codec *codec,
unsigned int res) unsigned int res)
{ {
int nid = (res & AC_UNSOL_RES_SUBTAG) >> 20;
switch (res >> 26) { switch (res >> 26) {
case CONEXANT_HP_EVENT: case CONEXANT_HP_EVENT:
cxt5051_hp_automute(codec); cxt5051_hp_automute(codec);
...@@ -1619,6 +1725,7 @@ static void cxt5051_hp_unsol_event(struct hda_codec *codec, ...@@ -1619,6 +1725,7 @@ static void cxt5051_hp_unsol_event(struct hda_codec *codec,
cxt5051_portc_automic(codec); cxt5051_portc_automic(codec);
break; break;
} }
conexant_report_jack(codec, nid);
} }
static struct snd_kcontrol_new cxt5051_mixers[] = { static struct snd_kcontrol_new cxt5051_mixers[] = {
...@@ -1693,6 +1800,7 @@ static struct hda_verb cxt5051_init_verbs[] = { ...@@ -1693,6 +1800,7 @@ static struct hda_verb cxt5051_init_verbs[] = {
static int cxt5051_init(struct hda_codec *codec) static int cxt5051_init(struct hda_codec *codec)
{ {
conexant_init(codec); conexant_init(codec);
conexant_init_jacks(codec);
if (codec->patch_ops.unsol_event) { if (codec->patch_ops.unsol_event) {
cxt5051_hp_automute(codec); cxt5051_hp_automute(codec);
cxt5051_portb_automic(codec); cxt5051_portb_automic(codec);
......
...@@ -8467,6 +8467,7 @@ static struct snd_pci_quirk alc883_cfg_tbl[] = { ...@@ -8467,6 +8467,7 @@ static struct snd_pci_quirk alc883_cfg_tbl[] = {
SND_PCI_QUIRK(0x103c, 0x2a4f, "HP Samba", ALC888_3ST_HP), SND_PCI_QUIRK(0x103c, 0x2a4f, "HP Samba", ALC888_3ST_HP),
SND_PCI_QUIRK(0x103c, 0x2a60, "HP Lucknow", ALC888_3ST_HP), SND_PCI_QUIRK(0x103c, 0x2a60, "HP Lucknow", ALC888_3ST_HP),
SND_PCI_QUIRK(0x103c, 0x2a61, "HP Nettle", ALC883_6ST_DIG), SND_PCI_QUIRK(0x103c, 0x2a61, "HP Nettle", ALC883_6ST_DIG),
SND_PCI_QUIRK(0x103c, 0x2a66, "HP Acacia", ALC888_3ST_HP),
SND_PCI_QUIRK(0x1043, 0x1873, "Asus M90V", ALC888_ASUS_M90V), SND_PCI_QUIRK(0x1043, 0x1873, "Asus M90V", ALC888_ASUS_M90V),
SND_PCI_QUIRK(0x1043, 0x8249, "Asus M2A-VM HDMI", ALC883_3ST_6ch_DIG), SND_PCI_QUIRK(0x1043, 0x8249, "Asus M2A-VM HDMI", ALC883_3ST_6ch_DIG),
SND_PCI_QUIRK(0x1043, 0x82fe, "Asus P5Q-EM HDMI", ALC1200_ASUS_P5Q), SND_PCI_QUIRK(0x1043, 0x82fe, "Asus P5Q-EM HDMI", ALC1200_ASUS_P5Q),
...@@ -16638,9 +16639,9 @@ static struct hda_codec_preset snd_hda_preset_realtek[] = { ...@@ -16638,9 +16639,9 @@ static struct hda_codec_preset snd_hda_preset_realtek[] = {
.patch = patch_alc882 }, /* should be patch_alc883() in future */ .patch = patch_alc882 }, /* should be patch_alc883() in future */
{ .id = 0x10ec0885, .name = "ALC885", .patch = patch_alc882 }, { .id = 0x10ec0885, .name = "ALC885", .patch = patch_alc882 },
{ .id = 0x10ec0887, .name = "ALC887", .patch = patch_alc883 }, { .id = 0x10ec0887, .name = "ALC887", .patch = patch_alc883 },
{ .id = 0x10ec0888, .name = "ALC888", .patch = patch_alc883 },
{ .id = 0x10ec0888, .rev = 0x100101, .name = "ALC1200", { .id = 0x10ec0888, .rev = 0x100101, .name = "ALC1200",
.patch = patch_alc883 }, .patch = patch_alc883 },
{ .id = 0x10ec0888, .name = "ALC888", .patch = patch_alc883 },
{ .id = 0x10ec0889, .name = "ALC889", .patch = patch_alc883 }, { .id = 0x10ec0889, .name = "ALC889", .patch = patch_alc883 },
{} /* terminator */ {} /* terminator */
}; };
......
...@@ -1239,7 +1239,7 @@ static int __devinit snd_vt1724_pcm_spdif(struct snd_ice1712 *ice, int device) ...@@ -1239,7 +1239,7 @@ static int __devinit snd_vt1724_pcm_spdif(struct snd_ice1712 *ice, int device)
if (ice->force_pdma4 || ice->force_rdma1) if (ice->force_pdma4 || ice->force_rdma1)
name = "ICE1724 Secondary"; name = "ICE1724 Secondary";
else else
name = "IEC1724 IEC958"; name = "ICE1724 IEC958";
err = snd_pcm_new(ice->card, name, device, play, capt, &pcm); err = snd_pcm_new(ice->card, name, device, play, capt, &pcm);
if (err < 0) if (err < 0)
return err; return err;
......
This diff is collapsed.
...@@ -147,6 +147,13 @@ ...@@ -147,6 +147,13 @@
#define TWL4030_AVADC_CLK_PRIORITY 0x04 #define TWL4030_AVADC_CLK_PRIORITY 0x04
#define TWL4030_ADCR_EN 0x02 #define TWL4030_ADCR_EN 0x02
/* TWL4030_REG_ADCMICSEL (0x08) Fields */
#define TWL4030_DIGMIC1_EN 0x08
#define TWL4030_TX2IN_SEL 0x04
#define TWL4030_DIGMIC0_EN 0x02
#define TWL4030_TX1IN_SEL 0x01
/* AUDIO_IF (0x0E) Fields */ /* AUDIO_IF (0x0E) Fields */
#define TWL4030_AIF_SLAVE_EN 0x80 #define TWL4030_AIF_SLAVE_EN 0x80
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include <sound/soc-dapm.h> #include <sound/soc-dapm.h>
#include <asm/dma.h> #include <asm/dma.h>
#include <asm/mach-types.h>
#include <asm/plat-sffsdr/sffsdr-fpga.h> #include <asm/plat-sffsdr/sffsdr-fpga.h>
#include <mach/mcbsp.h> #include <mach/mcbsp.h>
...@@ -115,6 +116,9 @@ static int __init sffsdr_init(void) ...@@ -115,6 +116,9 @@ static int __init sffsdr_init(void)
{ {
int ret; int ret;
if (!machine_is_sffsdr())
return -EINVAL;
sffsdr_snd_device = platform_device_alloc("soc-audio", 0); sffsdr_snd_device = platform_device_alloc("soc-audio", 0);
if (!sffsdr_snd_device) { if (!sffsdr_snd_device) {
printk(KERN_ERR "platform device allocation failed\n"); printk(KERN_ERR "platform device allocation failed\n");
......
...@@ -61,9 +61,9 @@ static int pxa2xx_pcm_hw_free(struct snd_pcm_substream *substream) ...@@ -61,9 +61,9 @@ static int pxa2xx_pcm_hw_free(struct snd_pcm_substream *substream)
__pxa2xx_pcm_hw_free(substream); __pxa2xx_pcm_hw_free(substream);
if (prtd->dma_ch) { if (prtd->dma_ch >= 0) {
pxa_free_dma(prtd->dma_ch); pxa_free_dma(prtd->dma_ch);
prtd->dma_ch = 0; prtd->dma_ch = -1;
} }
return 0; return 0;
......
...@@ -1300,6 +1300,8 @@ EXPORT_SYMBOL_GPL(snd_soc_test_bits); ...@@ -1300,6 +1300,8 @@ EXPORT_SYMBOL_GPL(snd_soc_test_bits);
/** /**
* snd_soc_new_pcms - create new sound card and pcms * snd_soc_new_pcms - create new sound card and pcms
* @socdev: the SoC audio device * @socdev: the SoC audio device
* @idx: ALSA card index
* @xid: card identification
* *
* Create a new sound card based upon the codec and interface pcms. * Create a new sound card based upon the codec and interface pcms.
* *
...@@ -1472,7 +1474,7 @@ EXPORT_SYMBOL_GPL(snd_soc_set_runtime_hwparams); ...@@ -1472,7 +1474,7 @@ EXPORT_SYMBOL_GPL(snd_soc_set_runtime_hwparams);
* snd_soc_cnew - create new control * snd_soc_cnew - create new control
* @_template: control template * @_template: control template
* @data: control private data * @data: control private data
* @lnng_name: control long name * @long_name: control long name
* *
* Create a new mixer control from a template control. * Create a new mixer control from a template control.
* *
...@@ -1522,7 +1524,7 @@ EXPORT_SYMBOL_GPL(snd_soc_info_enum_double); ...@@ -1522,7 +1524,7 @@ EXPORT_SYMBOL_GPL(snd_soc_info_enum_double);
/** /**
* snd_soc_get_enum_double - enumerated double mixer get callback * snd_soc_get_enum_double - enumerated double mixer get callback
* @kcontrol: mixer control * @kcontrol: mixer control
* @uinfo: control element information * @ucontrol: control element information
* *
* Callback to get the value of a double enumerated mixer. * Callback to get the value of a double enumerated mixer.
* *
...@@ -1551,7 +1553,7 @@ EXPORT_SYMBOL_GPL(snd_soc_get_enum_double); ...@@ -1551,7 +1553,7 @@ EXPORT_SYMBOL_GPL(snd_soc_get_enum_double);
/** /**
* snd_soc_put_enum_double - enumerated double mixer put callback * snd_soc_put_enum_double - enumerated double mixer put callback
* @kcontrol: mixer control * @kcontrol: mixer control
* @uinfo: control element information * @ucontrol: control element information
* *
* Callback to set the value of a double enumerated mixer. * Callback to set the value of a double enumerated mixer.
* *
...@@ -1668,7 +1670,7 @@ EXPORT_SYMBOL_GPL(snd_soc_info_volsw); ...@@ -1668,7 +1670,7 @@ EXPORT_SYMBOL_GPL(snd_soc_info_volsw);
/** /**
* snd_soc_get_volsw - single mixer get callback * snd_soc_get_volsw - single mixer get callback
* @kcontrol: mixer control * @kcontrol: mixer control
* @uinfo: control element information * @ucontrol: control element information
* *
* Callback to get the value of a single mixer control. * Callback to get the value of a single mixer control.
* *
...@@ -1707,7 +1709,7 @@ EXPORT_SYMBOL_GPL(snd_soc_get_volsw); ...@@ -1707,7 +1709,7 @@ EXPORT_SYMBOL_GPL(snd_soc_get_volsw);
/** /**
* snd_soc_put_volsw - single mixer put callback * snd_soc_put_volsw - single mixer put callback
* @kcontrol: mixer control * @kcontrol: mixer control
* @uinfo: control element information * @ucontrol: control element information
* *
* Callback to set the value of a single mixer control. * Callback to set the value of a single mixer control.
* *
...@@ -1775,7 +1777,7 @@ EXPORT_SYMBOL_GPL(snd_soc_info_volsw_2r); ...@@ -1775,7 +1777,7 @@ EXPORT_SYMBOL_GPL(snd_soc_info_volsw_2r);
/** /**
* snd_soc_get_volsw_2r - double mixer get callback * snd_soc_get_volsw_2r - double mixer get callback
* @kcontrol: mixer control * @kcontrol: mixer control
* @uinfo: control element information * @ucontrol: control element information
* *
* Callback to get the value of a double mixer control that spans 2 registers. * Callback to get the value of a double mixer control that spans 2 registers.
* *
...@@ -1812,7 +1814,7 @@ EXPORT_SYMBOL_GPL(snd_soc_get_volsw_2r); ...@@ -1812,7 +1814,7 @@ EXPORT_SYMBOL_GPL(snd_soc_get_volsw_2r);
/** /**
* snd_soc_put_volsw_2r - double mixer set callback * snd_soc_put_volsw_2r - double mixer set callback
* @kcontrol: mixer control * @kcontrol: mixer control
* @uinfo: control element information * @ucontrol: control element information
* *
* Callback to set the value of a double mixer control that spans 2 registers. * Callback to set the value of a double mixer control that spans 2 registers.
* *
...@@ -1882,7 +1884,7 @@ EXPORT_SYMBOL_GPL(snd_soc_info_volsw_s8); ...@@ -1882,7 +1884,7 @@ EXPORT_SYMBOL_GPL(snd_soc_info_volsw_s8);
/** /**
* snd_soc_get_volsw_s8 - signed mixer get callback * snd_soc_get_volsw_s8 - signed mixer get callback
* @kcontrol: mixer control * @kcontrol: mixer control
* @uinfo: control element information * @ucontrol: control element information
* *
* Callback to get the value of a signed mixer control. * Callback to get the value of a signed mixer control.
* *
...@@ -1909,7 +1911,7 @@ EXPORT_SYMBOL_GPL(snd_soc_get_volsw_s8); ...@@ -1909,7 +1911,7 @@ EXPORT_SYMBOL_GPL(snd_soc_get_volsw_s8);
/** /**
* snd_soc_put_volsw_sgn - signed mixer put callback * snd_soc_put_volsw_sgn - signed mixer put callback
* @kcontrol: mixer control * @kcontrol: mixer control
* @uinfo: control element information * @ucontrol: control element information
* *
* Callback to set the value of a signed mixer control. * Callback to set the value of a signed mixer control.
* *
...@@ -1954,7 +1956,7 @@ EXPORT_SYMBOL_GPL(snd_soc_dai_set_sysclk); ...@@ -1954,7 +1956,7 @@ EXPORT_SYMBOL_GPL(snd_soc_dai_set_sysclk);
/** /**
* snd_soc_dai_set_clkdiv - configure DAI clock dividers. * snd_soc_dai_set_clkdiv - configure DAI clock dividers.
* @dai: DAI * @dai: DAI
* @clk_id: DAI specific clock divider ID * @div_id: DAI specific clock divider ID
* @div: new clock divisor. * @div: new clock divisor.
* *
* Configures the clock dividers. This is used to derive the best DAI bit and * Configures the clock dividers. This is used to derive the best DAI bit and
...@@ -2060,7 +2062,7 @@ EXPORT_SYMBOL_GPL(snd_soc_dai_digital_mute); ...@@ -2060,7 +2062,7 @@ EXPORT_SYMBOL_GPL(snd_soc_dai_digital_mute);
/** /**
* snd_soc_register_card - Register a card with the ASoC core * snd_soc_register_card - Register a card with the ASoC core
* *
* @param card Card to register * @card: Card to register
* *
* Note that currently this is an internal only function: it will be * Note that currently this is an internal only function: it will be
* exposed to machine drivers after further backporting of ASoC v2 * exposed to machine drivers after further backporting of ASoC v2
...@@ -2087,7 +2089,7 @@ static int snd_soc_register_card(struct snd_soc_card *card) ...@@ -2087,7 +2089,7 @@ static int snd_soc_register_card(struct snd_soc_card *card)
/** /**
* snd_soc_unregister_card - Unregister a card with the ASoC core * snd_soc_unregister_card - Unregister a card with the ASoC core
* *
* @param card Card to unregister * @card: Card to unregister
* *
* Note that currently this is an internal only function: it will be * Note that currently this is an internal only function: it will be
* exposed to machine drivers after further backporting of ASoC v2 * exposed to machine drivers after further backporting of ASoC v2
...@@ -2107,7 +2109,7 @@ static int snd_soc_unregister_card(struct snd_soc_card *card) ...@@ -2107,7 +2109,7 @@ static int snd_soc_unregister_card(struct snd_soc_card *card)
/** /**
* snd_soc_register_dai - Register a DAI with the ASoC core * snd_soc_register_dai - Register a DAI with the ASoC core
* *
* @param dai DAI to register * @dai: DAI to register
*/ */
int snd_soc_register_dai(struct snd_soc_dai *dai) int snd_soc_register_dai(struct snd_soc_dai *dai)
{ {
...@@ -2134,7 +2136,7 @@ EXPORT_SYMBOL_GPL(snd_soc_register_dai); ...@@ -2134,7 +2136,7 @@ EXPORT_SYMBOL_GPL(snd_soc_register_dai);
/** /**
* snd_soc_unregister_dai - Unregister a DAI from the ASoC core * snd_soc_unregister_dai - Unregister a DAI from the ASoC core
* *
* @param dai DAI to unregister * @dai: DAI to unregister
*/ */
void snd_soc_unregister_dai(struct snd_soc_dai *dai) void snd_soc_unregister_dai(struct snd_soc_dai *dai)
{ {
...@@ -2149,8 +2151,8 @@ EXPORT_SYMBOL_GPL(snd_soc_unregister_dai); ...@@ -2149,8 +2151,8 @@ EXPORT_SYMBOL_GPL(snd_soc_unregister_dai);
/** /**
* snd_soc_register_dais - Register multiple DAIs with the ASoC core * snd_soc_register_dais - Register multiple DAIs with the ASoC core
* *
* @param dai Array of DAIs to register * @dai: Array of DAIs to register
* @param count Number of DAIs * @count: Number of DAIs
*/ */
int snd_soc_register_dais(struct snd_soc_dai *dai, size_t count) int snd_soc_register_dais(struct snd_soc_dai *dai, size_t count)
{ {
...@@ -2175,8 +2177,8 @@ EXPORT_SYMBOL_GPL(snd_soc_register_dais); ...@@ -2175,8 +2177,8 @@ EXPORT_SYMBOL_GPL(snd_soc_register_dais);
/** /**
* snd_soc_unregister_dais - Unregister multiple DAIs from the ASoC core * snd_soc_unregister_dais - Unregister multiple DAIs from the ASoC core
* *
* @param dai Array of DAIs to unregister * @dai: Array of DAIs to unregister
* @param count Number of DAIs * @count: Number of DAIs
*/ */
void snd_soc_unregister_dais(struct snd_soc_dai *dai, size_t count) void snd_soc_unregister_dais(struct snd_soc_dai *dai, size_t count)
{ {
...@@ -2190,7 +2192,7 @@ EXPORT_SYMBOL_GPL(snd_soc_unregister_dais); ...@@ -2190,7 +2192,7 @@ EXPORT_SYMBOL_GPL(snd_soc_unregister_dais);
/** /**
* snd_soc_register_platform - Register a platform with the ASoC core * snd_soc_register_platform - Register a platform with the ASoC core
* *
* @param platform platform to register * @platform: platform to register
*/ */
int snd_soc_register_platform(struct snd_soc_platform *platform) int snd_soc_register_platform(struct snd_soc_platform *platform)
{ {
...@@ -2213,7 +2215,7 @@ EXPORT_SYMBOL_GPL(snd_soc_register_platform); ...@@ -2213,7 +2215,7 @@ EXPORT_SYMBOL_GPL(snd_soc_register_platform);
/** /**
* snd_soc_unregister_platform - Unregister a platform from the ASoC core * snd_soc_unregister_platform - Unregister a platform from the ASoC core
* *
* @param platform platform to unregister * @platform: platform to unregister
*/ */
void snd_soc_unregister_platform(struct snd_soc_platform *platform) void snd_soc_unregister_platform(struct snd_soc_platform *platform)
{ {
...@@ -2228,7 +2230,7 @@ EXPORT_SYMBOL_GPL(snd_soc_unregister_platform); ...@@ -2228,7 +2230,7 @@ EXPORT_SYMBOL_GPL(snd_soc_unregister_platform);
/** /**
* snd_soc_register_codec - Register a codec with the ASoC core * snd_soc_register_codec - Register a codec with the ASoC core
* *
* @param codec codec to register * @codec: codec to register
*/ */
int snd_soc_register_codec(struct snd_soc_codec *codec) int snd_soc_register_codec(struct snd_soc_codec *codec)
{ {
...@@ -2255,7 +2257,7 @@ EXPORT_SYMBOL_GPL(snd_soc_register_codec); ...@@ -2255,7 +2257,7 @@ EXPORT_SYMBOL_GPL(snd_soc_register_codec);
/** /**
* snd_soc_unregister_codec - Unregister a codec from the ASoC core * snd_soc_unregister_codec - Unregister a codec from the ASoC core
* *
* @param codec codec to unregister * @codec: codec to unregister
*/ */
void snd_soc_unregister_codec(struct snd_soc_codec *codec) void snd_soc_unregister_codec(struct snd_soc_codec *codec)
{ {
......
...@@ -1077,7 +1077,7 @@ EXPORT_SYMBOL_GPL(snd_soc_dapm_new_widgets); ...@@ -1077,7 +1077,7 @@ EXPORT_SYMBOL_GPL(snd_soc_dapm_new_widgets);
/** /**
* snd_soc_dapm_get_volsw - dapm mixer get callback * snd_soc_dapm_get_volsw - dapm mixer get callback
* @kcontrol: mixer control * @kcontrol: mixer control
* @uinfo: control element information * @ucontrol: control element information
* *
* Callback to get the value of a dapm mixer control. * Callback to get the value of a dapm mixer control.
* *
...@@ -1122,7 +1122,7 @@ EXPORT_SYMBOL_GPL(snd_soc_dapm_get_volsw); ...@@ -1122,7 +1122,7 @@ EXPORT_SYMBOL_GPL(snd_soc_dapm_get_volsw);
/** /**
* snd_soc_dapm_put_volsw - dapm mixer set callback * snd_soc_dapm_put_volsw - dapm mixer set callback
* @kcontrol: mixer control * @kcontrol: mixer control
* @uinfo: control element information * @ucontrol: control element information
* *
* Callback to set the value of a dapm mixer control. * Callback to set the value of a dapm mixer control.
* *
...@@ -1193,7 +1193,7 @@ EXPORT_SYMBOL_GPL(snd_soc_dapm_put_volsw); ...@@ -1193,7 +1193,7 @@ EXPORT_SYMBOL_GPL(snd_soc_dapm_put_volsw);
/** /**
* snd_soc_dapm_get_enum_double - dapm enumerated double mixer get callback * snd_soc_dapm_get_enum_double - dapm enumerated double mixer get callback
* @kcontrol: mixer control * @kcontrol: mixer control
* @uinfo: control element information * @ucontrol: control element information
* *
* Callback to get the value of a dapm enumerated double mixer control. * Callback to get the value of a dapm enumerated double mixer control.
* *
...@@ -1221,7 +1221,7 @@ EXPORT_SYMBOL_GPL(snd_soc_dapm_get_enum_double); ...@@ -1221,7 +1221,7 @@ EXPORT_SYMBOL_GPL(snd_soc_dapm_get_enum_double);
/** /**
* snd_soc_dapm_put_enum_double - dapm enumerated double mixer set callback * snd_soc_dapm_put_enum_double - dapm enumerated double mixer set callback
* @kcontrol: mixer control * @kcontrol: mixer control
* @uinfo: control element information * @ucontrol: control element information
* *
* Callback to set the value of a dapm enumerated double mixer control. * Callback to set the value of a dapm enumerated double mixer control.
* *
...@@ -1419,7 +1419,7 @@ int snd_soc_dapm_set_bias_level(struct snd_soc_device *socdev, ...@@ -1419,7 +1419,7 @@ int snd_soc_dapm_set_bias_level(struct snd_soc_device *socdev,
/** /**
* snd_soc_dapm_enable_pin - enable pin. * snd_soc_dapm_enable_pin - enable pin.
* @snd_soc_codec: SoC codec * @codec: SoC codec
* @pin: pin name * @pin: pin name
* *
* Enables input/output pin and it's parents or children widgets iff there is * Enables input/output pin and it's parents or children widgets iff there is
......
...@@ -446,7 +446,7 @@ static int __devinit snd_probe(struct usb_interface *intf, ...@@ -446,7 +446,7 @@ static int __devinit snd_probe(struct usb_interface *intf,
if (!card) if (!card)
return -ENOMEM; return -ENOMEM;
dev_set_drvdata(&intf->dev, card); usb_set_intfdata(intf, card);
ret = init_card(caiaqdev(card)); ret = init_card(caiaqdev(card));
if (ret < 0) { if (ret < 0) {
log("unable to init card! (ret=%d)\n", ret); log("unable to init card! (ret=%d)\n", ret);
...@@ -460,7 +460,7 @@ static int __devinit snd_probe(struct usb_interface *intf, ...@@ -460,7 +460,7 @@ static int __devinit snd_probe(struct usb_interface *intf,
static void snd_disconnect(struct usb_interface *intf) static void snd_disconnect(struct usb_interface *intf)
{ {
struct snd_usb_caiaqdev *dev; struct snd_usb_caiaqdev *dev;
struct snd_card *card = dev_get_drvdata(&intf->dev); struct snd_card *card = usb_get_intfdata(intf);
debug("%s(%p)\n", __func__, intf); debug("%s(%p)\n", __func__, intf);
......
...@@ -3709,7 +3709,7 @@ static int usb_audio_probe(struct usb_interface *intf, ...@@ -3709,7 +3709,7 @@ static int usb_audio_probe(struct usb_interface *intf,
void *chip; void *chip;
chip = snd_usb_audio_probe(interface_to_usbdev(intf), intf, id); chip = snd_usb_audio_probe(interface_to_usbdev(intf), intf, id);
if (chip) { if (chip) {
dev_set_drvdata(&intf->dev, chip); usb_set_intfdata(intf, chip);
return 0; return 0;
} else } else
return -EIO; return -EIO;
...@@ -3718,13 +3718,13 @@ static int usb_audio_probe(struct usb_interface *intf, ...@@ -3718,13 +3718,13 @@ static int usb_audio_probe(struct usb_interface *intf,
static void usb_audio_disconnect(struct usb_interface *intf) static void usb_audio_disconnect(struct usb_interface *intf)
{ {
snd_usb_audio_disconnect(interface_to_usbdev(intf), snd_usb_audio_disconnect(interface_to_usbdev(intf),
dev_get_drvdata(&intf->dev)); usb_get_intfdata(intf));
} }
#ifdef CONFIG_PM #ifdef CONFIG_PM
static int usb_audio_suspend(struct usb_interface *intf, pm_message_t message) static int usb_audio_suspend(struct usb_interface *intf, pm_message_t message)
{ {
struct snd_usb_audio *chip = dev_get_drvdata(&intf->dev); struct snd_usb_audio *chip = usb_get_intfdata(intf);
struct list_head *p; struct list_head *p;
struct snd_usb_stream *as; struct snd_usb_stream *as;
...@@ -3744,7 +3744,7 @@ static int usb_audio_suspend(struct usb_interface *intf, pm_message_t message) ...@@ -3744,7 +3744,7 @@ static int usb_audio_suspend(struct usb_interface *intf, pm_message_t message)
static int usb_audio_resume(struct usb_interface *intf) static int usb_audio_resume(struct usb_interface *intf)
{ {
struct snd_usb_audio *chip = dev_get_drvdata(&intf->dev); struct snd_usb_audio *chip = usb_get_intfdata(intf);
if (chip == (void *)-1L) if (chip == (void *)-1L)
return 0; return 0;
......
...@@ -1392,8 +1392,7 @@ static int snd_usbmidi_get_ms_info(struct snd_usb_midi* umidi, ...@@ -1392,8 +1392,7 @@ static int snd_usbmidi_get_ms_info(struct snd_usb_midi* umidi,
for (i = 0; i < intfd->bNumEndpoints; ++i) { for (i = 0; i < intfd->bNumEndpoints; ++i) {
hostep = &hostif->endpoint[i]; hostep = &hostif->endpoint[i];
ep = get_ep_desc(hostep); ep = get_ep_desc(hostep);
if ((ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) != USB_ENDPOINT_XFER_BULK && if (!usb_endpoint_xfer_bulk(ep) && !usb_endpoint_xfer_int(ep))
(ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) != USB_ENDPOINT_XFER_INT)
continue; continue;
ms_ep = (struct usb_ms_endpoint_descriptor*)hostep->extra; ms_ep = (struct usb_ms_endpoint_descriptor*)hostep->extra;
if (hostep->extralen < 4 || if (hostep->extralen < 4 ||
...@@ -1401,15 +1400,15 @@ static int snd_usbmidi_get_ms_info(struct snd_usb_midi* umidi, ...@@ -1401,15 +1400,15 @@ static int snd_usbmidi_get_ms_info(struct snd_usb_midi* umidi,
ms_ep->bDescriptorType != USB_DT_CS_ENDPOINT || ms_ep->bDescriptorType != USB_DT_CS_ENDPOINT ||
ms_ep->bDescriptorSubtype != MS_GENERAL) ms_ep->bDescriptorSubtype != MS_GENERAL)
continue; continue;
if ((ep->bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT) { if (usb_endpoint_dir_out(ep)) {
if (endpoints[epidx].out_ep) { if (endpoints[epidx].out_ep) {
if (++epidx >= MIDI_MAX_ENDPOINTS) { if (++epidx >= MIDI_MAX_ENDPOINTS) {
snd_printk(KERN_WARNING "too many endpoints\n"); snd_printk(KERN_WARNING "too many endpoints\n");
break; break;
} }
} }
endpoints[epidx].out_ep = ep->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK; endpoints[epidx].out_ep = usb_endpoint_num(ep);
if ((ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_INT) if (usb_endpoint_xfer_int(ep))
endpoints[epidx].out_interval = ep->bInterval; endpoints[epidx].out_interval = ep->bInterval;
else if (snd_usb_get_speed(umidi->chip->dev) == USB_SPEED_LOW) else if (snd_usb_get_speed(umidi->chip->dev) == USB_SPEED_LOW)
/* /*
...@@ -1428,8 +1427,8 @@ static int snd_usbmidi_get_ms_info(struct snd_usb_midi* umidi, ...@@ -1428,8 +1427,8 @@ static int snd_usbmidi_get_ms_info(struct snd_usb_midi* umidi,
break; break;
} }
} }
endpoints[epidx].in_ep = ep->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK; endpoints[epidx].in_ep = usb_endpoint_num(ep);
if ((ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_INT) if (usb_endpoint_xfer_int(ep))
endpoints[epidx].in_interval = ep->bInterval; endpoints[epidx].in_interval = ep->bInterval;
else if (snd_usb_get_speed(umidi->chip->dev) == USB_SPEED_LOW) else if (snd_usb_get_speed(umidi->chip->dev) == USB_SPEED_LOW)
endpoints[epidx].in_interval = 1; endpoints[epidx].in_interval = 1;
...@@ -1495,20 +1494,20 @@ static int snd_usbmidi_detect_endpoints(struct snd_usb_midi* umidi, ...@@ -1495,20 +1494,20 @@ static int snd_usbmidi_detect_endpoints(struct snd_usb_midi* umidi,
for (i = 0; i < intfd->bNumEndpoints; ++i) { for (i = 0; i < intfd->bNumEndpoints; ++i) {
epd = get_endpoint(hostif, i); epd = get_endpoint(hostif, i);
if ((epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) != USB_ENDPOINT_XFER_BULK && if (!usb_endpoint_xfer_bulk(epd) &&
(epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) != USB_ENDPOINT_XFER_INT) !usb_endpoint_xfer_int(epd))
continue; continue;
if (out_eps < max_endpoints && if (out_eps < max_endpoints &&
(epd->bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT) { usb_endpoint_dir_out(epd)) {
endpoint[out_eps].out_ep = epd->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK; endpoint[out_eps].out_ep = usb_endpoint_num(epd);
if ((epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_INT) if (usb_endpoint_xfer_int(epd))
endpoint[out_eps].out_interval = epd->bInterval; endpoint[out_eps].out_interval = epd->bInterval;
++out_eps; ++out_eps;
} }
if (in_eps < max_endpoints && if (in_eps < max_endpoints &&
(epd->bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) { usb_endpoint_dir_in(epd)) {
endpoint[in_eps].in_ep = epd->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK; endpoint[in_eps].in_ep = usb_endpoint_num(epd);
if ((epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_INT) if (usb_endpoint_xfer_int(epd))
endpoint[in_eps].in_interval = epd->bInterval; endpoint[in_eps].in_interval = epd->bInterval;
++in_eps; ++in_eps;
} }
...@@ -1607,21 +1606,19 @@ static int snd_usbmidi_create_endpoints_midiman(struct snd_usb_midi* umidi, ...@@ -1607,21 +1606,19 @@ static int snd_usbmidi_create_endpoints_midiman(struct snd_usb_midi* umidi,
} }
epd = get_endpoint(hostif, 0); epd = get_endpoint(hostif, 0);
if ((epd->bEndpointAddress & USB_ENDPOINT_DIR_MASK) != USB_DIR_IN || if (!usb_endpoint_dir_in(epd) || !usb_endpoint_xfer_int(epd)) {
(epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) != USB_ENDPOINT_XFER_INT) {
snd_printdd(KERN_ERR "endpoint[0] isn't interrupt\n"); snd_printdd(KERN_ERR "endpoint[0] isn't interrupt\n");
return -ENXIO; return -ENXIO;
} }
epd = get_endpoint(hostif, 2); epd = get_endpoint(hostif, 2);
if ((epd->bEndpointAddress & USB_ENDPOINT_DIR_MASK) != USB_DIR_OUT || if (!usb_endpoint_dir_out(epd) || !usb_endpoint_xfer_bulk(epd)) {
(epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) != USB_ENDPOINT_XFER_BULK) {
snd_printdd(KERN_ERR "endpoint[2] isn't bulk output\n"); snd_printdd(KERN_ERR "endpoint[2] isn't bulk output\n");
return -ENXIO; return -ENXIO;
} }
if (endpoint->out_cables > 0x0001) { if (endpoint->out_cables > 0x0001) {
epd = get_endpoint(hostif, 4); epd = get_endpoint(hostif, 4);
if ((epd->bEndpointAddress & USB_ENDPOINT_DIR_MASK) != USB_DIR_OUT || if (!usb_endpoint_dir_out(epd) ||
(epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) != USB_ENDPOINT_XFER_BULK) { !usb_endpoint_xfer_bulk(epd)) {
snd_printdd(KERN_ERR "endpoint[4] isn't bulk output\n"); snd_printdd(KERN_ERR "endpoint[4] isn't bulk output\n");
return -ENXIO; return -ENXIO;
} }
......
...@@ -1755,11 +1755,10 @@ static int snd_usb_mixer_status_create(struct usb_mixer_interface *mixer) ...@@ -1755,11 +1755,10 @@ static int snd_usb_mixer_status_create(struct usb_mixer_interface *mixer)
if (get_iface_desc(hostif)->bNumEndpoints < 1) if (get_iface_desc(hostif)->bNumEndpoints < 1)
return 0; return 0;
ep = get_endpoint(hostif, 0); ep = get_endpoint(hostif, 0);
if ((ep->bEndpointAddress & USB_ENDPOINT_DIR_MASK) != USB_DIR_IN || if (!usb_endpoint_dir_in(ep) || !usb_endpoint_xfer_int(ep))
(ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) != USB_ENDPOINT_XFER_INT)
return 0; return 0;
epnum = ep->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK; epnum = usb_endpoint_num(ep);
buffer_length = le16_to_cpu(ep->wMaxPacketSize); buffer_length = le16_to_cpu(ep->wMaxPacketSize);
transfer_buffer = kmalloc(buffer_length, GFP_KERNEL); transfer_buffer = kmalloc(buffer_length, GFP_KERNEL);
if (!transfer_buffer) if (!transfer_buffer)
......
...@@ -589,7 +589,7 @@ static int snd_us122l_suspend(struct usb_interface *intf, pm_message_t message) ...@@ -589,7 +589,7 @@ static int snd_us122l_suspend(struct usb_interface *intf, pm_message_t message)
struct us122l *us122l; struct us122l *us122l;
struct list_head *p; struct list_head *p;
card = dev_get_drvdata(&intf->dev); card = usb_get_intfdata(intf);
if (!card) if (!card)
return 0; return 0;
snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
...@@ -615,7 +615,7 @@ static int snd_us122l_resume(struct usb_interface *intf) ...@@ -615,7 +615,7 @@ static int snd_us122l_resume(struct usb_interface *intf)
struct list_head *p; struct list_head *p;
int err; int err;
card = dev_get_drvdata(&intf->dev); card = usb_get_intfdata(intf);
if (!card) if (!card)
return 0; return 0;
......
...@@ -392,7 +392,7 @@ static int snd_usX2Y_probe(struct usb_interface *intf, const struct usb_device_i ...@@ -392,7 +392,7 @@ static int snd_usX2Y_probe(struct usb_interface *intf, const struct usb_device_i
void *chip; void *chip;
chip = usX2Y_usb_probe(interface_to_usbdev(intf), intf, id); chip = usX2Y_usb_probe(interface_to_usbdev(intf), intf, id);
if (chip) { if (chip) {
dev_set_drvdata(&intf->dev, chip); usb_set_intfdata(intf, chip);
return 0; return 0;
} else } else
return -EIO; return -EIO;
...@@ -401,7 +401,7 @@ static int snd_usX2Y_probe(struct usb_interface *intf, const struct usb_device_i ...@@ -401,7 +401,7 @@ static int snd_usX2Y_probe(struct usb_interface *intf, const struct usb_device_i
static void snd_usX2Y_disconnect(struct usb_interface *intf) static void snd_usX2Y_disconnect(struct usb_interface *intf)
{ {
usX2Y_usb_disconnect(interface_to_usbdev(intf), usX2Y_usb_disconnect(interface_to_usbdev(intf),
dev_get_drvdata(&intf->dev)); usb_get_intfdata(intf));
} }
MODULE_DEVICE_TABLE(usb, snd_usX2Y_usb_id_table); MODULE_DEVICE_TABLE(usb, snd_usX2Y_usb_id_table);
......
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