aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/i2c/other/ak4114.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/sound/i2c/other/ak4114.c b/sound/i2c/other/ak4114.c
index 15061bd72776..9a90e830c423 100644
--- a/sound/i2c/other/ak4114.c
+++ b/sound/i2c/other/ak4114.c
@@ -27,6 +27,7 @@
27#include <sound/pcm.h> 27#include <sound/pcm.h>
28#include <sound/ak4114.h> 28#include <sound/ak4114.h>
29#include <sound/asoundef.h> 29#include <sound/asoundef.h>
30#include <sound/info.h>
30 31
31MODULE_AUTHOR("Jaroslav Kysela <perex@perex.cz>"); 32MODULE_AUTHOR("Jaroslav Kysela <perex@perex.cz>");
32MODULE_DESCRIPTION("AK4114 IEC958 (S/PDIF) receiver by Asahi Kasei"); 33MODULE_DESCRIPTION("AK4114 IEC958 (S/PDIF) receiver by Asahi Kasei");
@@ -446,6 +447,26 @@ static struct snd_kcontrol_new snd_ak4114_iec958_controls[] = {
446} 447}
447}; 448};
448 449
450
451static void snd_ak4114_proc_regs_read(struct snd_info_entry *entry,
452 struct snd_info_buffer *buffer)
453{
454 struct ak4114 *ak4114 = entry->private_data;
455 int reg, val;
456 /* all ak4114 registers 0x00 - 0x1f */
457 for (reg = 0; reg < 0x20; reg++) {
458 val = reg_read(ak4114, reg);
459 snd_iprintf(buffer, "0x%02x = 0x%02x\n", reg, val);
460 }
461}
462
463static void snd_ak4114_proc_init(struct ak4114 *ak4114)
464{
465 struct snd_info_entry *entry;
466 if (!snd_card_proc_new(ak4114->card, "ak4114", &entry))
467 snd_info_set_text_ops(entry, ak4114, snd_ak4114_proc_regs_read);
468}
469
449int snd_ak4114_build(struct ak4114 *ak4114, 470int snd_ak4114_build(struct ak4114 *ak4114,
450 struct snd_pcm_substream *ply_substream, 471 struct snd_pcm_substream *ply_substream,
451 struct snd_pcm_substream *cap_substream) 472 struct snd_pcm_substream *cap_substream)
@@ -478,6 +499,7 @@ int snd_ak4114_build(struct ak4114 *ak4114,
478 return err; 499 return err;
479 ak4114->kctls[idx] = kctl; 500 ak4114->kctls[idx] = kctl;
480 } 501 }
502 snd_ak4114_proc_init(ak4114);
481 /* trigger workq */ 503 /* trigger workq */
482 schedule_delayed_work(&ak4114->work, HZ / 10); 504 schedule_delayed_work(&ak4114->work, HZ / 10);
483 return 0; 505 return 0;