1 // SPDX-License-Identifier: GPL-2.0-only 1 2 /* 3 * digi00x-proc.c - a part of driver for Digid 4 * 5 * Copyright (c) 2014-2015 Takashi Sakamoto 6 */ 7 8 #include "digi00x.h" 9 10 static int get_optical_iface_mode(struct snd_d 11 enum snd_dg0 12 { 13 __be32 data; 14 int err; 15 16 err = snd_fw_transaction(dg00x->unit, 17 DG00X_ADDR_BA 18 &data, sizeof 19 if (err >= 0) 20 *mode = be32_to_cpu(data) & 0x 21 22 return err; 23 } 24 25 static void proc_read_clock(struct snd_info_en 26 struct snd_info_bu 27 { 28 static const char *const source_name[] 29 [SND_DG00X_CLOCK_INTERNAL] = " 30 [SND_DG00X_CLOCK_SPDIF] = "s/p 31 [SND_DG00X_CLOCK_ADAT] = "adat 32 [SND_DG00X_CLOCK_WORD] = "word 33 }; 34 static const char *const optical_name[ 35 [SND_DG00X_OPT_IFACE_MODE_ADAT 36 [SND_DG00X_OPT_IFACE_MODE_SPDI 37 }; 38 struct snd_dg00x *dg00x = entry->priva 39 enum snd_dg00x_optical_mode mode; 40 unsigned int rate; 41 enum snd_dg00x_clock clock; 42 bool detect; 43 44 if (get_optical_iface_mode(dg00x, &mod 45 return; 46 if (snd_dg00x_stream_get_local_rate(dg 47 return; 48 if (snd_dg00x_stream_get_clock(dg00x, 49 return; 50 51 snd_iprintf(buf, "Optical mode: %s\n", 52 snd_iprintf(buf, "Sampling Rate: %d\n" 53 snd_iprintf(buf, "Clock Source: %s\n", 54 55 if (clock == SND_DG00X_CLOCK_INTERNAL) 56 return; 57 58 if (snd_dg00x_stream_check_external_cl 59 return; 60 snd_iprintf(buf, "External source: %s\ 61 if (!detect) 62 return; 63 64 if (snd_dg00x_stream_get_external_rate 65 snd_iprintf(buf, "External sam 66 } 67 68 void snd_dg00x_proc_init(struct snd_dg00x *dg0 69 { 70 struct snd_info_entry *root, *entry; 71 72 /* 73 * All nodes are automatically removed 74 * by following to link list. 75 */ 76 root = snd_info_create_card_entry(dg00 77 dg00 78 if (root == NULL) 79 return; 80 81 root->mode = S_IFDIR | 0555; 82 83 entry = snd_info_create_card_entry(dg0 84 if (entry) 85 snd_info_set_text_ops(entry, d 86 } 87
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.