Commit a17ac45a authored by Krzysztof Helt's avatar Krzysztof Helt Committed by Takashi Iwai

ALSA: ad1816a: enable hardware timer

Enable hardware timer with 10 usec resolution.
Signed-off-by: default avatarKrzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent aa9c293a
...@@ -169,5 +169,7 @@ extern int snd_ad1816a_create(struct snd_card *card, unsigned long port, ...@@ -169,5 +169,7 @@ extern int snd_ad1816a_create(struct snd_card *card, unsigned long port,
extern int snd_ad1816a_pcm(struct snd_ad1816a *chip, int device, struct snd_pcm **rpcm); extern int snd_ad1816a_pcm(struct snd_ad1816a *chip, int device, struct snd_pcm **rpcm);
extern int snd_ad1816a_mixer(struct snd_ad1816a *chip); extern int snd_ad1816a_mixer(struct snd_ad1816a *chip);
extern int snd_ad1816a_timer(struct snd_ad1816a *chip, int device,
struct snd_timer **rtimer);
#endif /* __SOUND_AD1816A_H */ #endif /* __SOUND_AD1816A_H */
...@@ -156,6 +156,7 @@ static int __devinit snd_card_ad1816a_probe(int dev, struct pnp_card_link *pcard ...@@ -156,6 +156,7 @@ static int __devinit snd_card_ad1816a_probe(int dev, struct pnp_card_link *pcard
struct snd_card_ad1816a *acard; struct snd_card_ad1816a *acard;
struct snd_ad1816a *chip; struct snd_ad1816a *chip;
struct snd_opl3 *opl3; struct snd_opl3 *opl3;
struct snd_timer *timer;
if ((card = snd_card_new(index[dev], id[dev], THIS_MODULE, if ((card = snd_card_new(index[dev], id[dev], THIS_MODULE,
sizeof(struct snd_card_ad1816a))) == NULL) sizeof(struct snd_card_ad1816a))) == NULL)
...@@ -194,6 +195,12 @@ static int __devinit snd_card_ad1816a_probe(int dev, struct pnp_card_link *pcard ...@@ -194,6 +195,12 @@ static int __devinit snd_card_ad1816a_probe(int dev, struct pnp_card_link *pcard
return error; return error;
} }
error = snd_ad1816a_timer(chip, 0, &timer);
if (error < 0) {
snd_card_free(card);
return error;
}
if (mpu_port[dev] > 0) { if (mpu_port[dev] > 0) {
if (snd_mpu401_uart_new(card, 0, MPU401_HW_MPU401, if (snd_mpu401_uart_new(card, 0, MPU401_HW_MPU401,
mpu_port[dev], 0, mpu_irq[dev], IRQF_DISABLED, mpu_port[dev], 0, mpu_irq[dev], IRQF_DISABLED,
......
...@@ -377,7 +377,6 @@ static struct snd_pcm_hardware snd_ad1816a_capture = { ...@@ -377,7 +377,6 @@ static struct snd_pcm_hardware snd_ad1816a_capture = {
.fifo_size = 0, .fifo_size = 0,
}; };
#if 0 /* not used now */
static int snd_ad1816a_timer_close(struct snd_timer *timer) static int snd_ad1816a_timer_close(struct snd_timer *timer)
{ {
struct snd_ad1816a *chip = snd_timer_chip(timer); struct snd_ad1816a *chip = snd_timer_chip(timer);
...@@ -442,8 +441,6 @@ static struct snd_timer_hardware snd_ad1816a_timer_table = { ...@@ -442,8 +441,6 @@ static struct snd_timer_hardware snd_ad1816a_timer_table = {
.start = snd_ad1816a_timer_start, .start = snd_ad1816a_timer_start,
.stop = snd_ad1816a_timer_stop, .stop = snd_ad1816a_timer_stop,
}; };
#endif /* not used now */
static int snd_ad1816a_playback_open(struct snd_pcm_substream *substream) static int snd_ad1816a_playback_open(struct snd_pcm_substream *substream)
{ {
...@@ -687,7 +684,6 @@ int __devinit snd_ad1816a_pcm(struct snd_ad1816a *chip, int device, struct snd_p ...@@ -687,7 +684,6 @@ int __devinit snd_ad1816a_pcm(struct snd_ad1816a *chip, int device, struct snd_p
return 0; return 0;
} }
#if 0 /* not used now */
int __devinit snd_ad1816a_timer(struct snd_ad1816a *chip, int device, struct snd_timer **rtimer) int __devinit snd_ad1816a_timer(struct snd_ad1816a *chip, int device, struct snd_timer **rtimer)
{ {
struct snd_timer *timer; struct snd_timer *timer;
...@@ -709,7 +705,6 @@ int __devinit snd_ad1816a_timer(struct snd_ad1816a *chip, int device, struct snd ...@@ -709,7 +705,6 @@ int __devinit snd_ad1816a_timer(struct snd_ad1816a *chip, int device, struct snd
*rtimer = timer; *rtimer = timer;
return 0; return 0;
} }
#endif /* not used now */
/* /*
* *
......
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