[alsa-devel] [RFCv2 07/22] ALSA: hda - Add jackpoll_ms to struct azx
Dylan Reid
dgreid at chromium.org
Sat Mar 1 00:41:18 CET 2014
Keeping a pointer to the jackpoll_ms array in the chip will allow
azx_codec_create to be shared between hda_intel and hda_platform
drivers. Also modify get_jackpoll_ms to make the jackpoll_ms member
optional, this way a platform driver can leave it out if it's not
needed.
Signed-off-by: Dylan Reid <dgreid at chromium.org>
---
sound/pci/hda/hda_intel.c | 8 +++++++-
sound/pci/hda/hda_priv.h | 1 +
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 7cdb4dd..1e7d3f3 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -1324,8 +1324,13 @@ static void azx_bus_reset(struct hda_bus *bus)
static int get_jackpoll_interval(struct azx *chip)
{
- int i = jackpoll_ms[chip->dev_index];
+ int i;
unsigned int j;
+
+ if (!chip->jackpoll_ms)
+ return 0;
+
+ i = chip->jackpoll_ms[chip->dev_index];
if (i == 0)
return 0;
if (i < 50 || i > 60000)
@@ -3172,6 +3177,7 @@ static int azx_create(struct snd_card *card, struct pci_dev *pci,
chip->driver_type = driver_caps & 0xff;
check_msi(chip);
chip->dev_index = dev;
+ chip->jackpoll_ms = jackpoll_ms;
INIT_WORK(&chip->irq_pending_work, azx_irq_pending_work);
INIT_LIST_HEAD(&chip->pcm_list);
INIT_LIST_HEAD(&chip->list);
diff --git a/sound/pci/hda/hda_priv.h b/sound/pci/hda/hda_priv.h
index c231c11..0a56e8e 100644
--- a/sound/pci/hda/hda_priv.h
+++ b/sound/pci/hda/hda_priv.h
@@ -321,6 +321,7 @@ struct azx {
int capture_streams;
int capture_index_offset;
int num_streams;
+ const int *jackpoll_ms; /* per-card jack poll interval */
/* Register interaction. */
const struct hda_controller_ops *ops;
--
1.8.1.3.605.g02339dd
More information about the Alsa-devel
mailing list