cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ff-proc.c (1309B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2/*
      3 * ff-proc.c - a part of driver for RME Fireface series
      4 *
      5 * Copyright (c) 2015-2017 Takashi Sakamoto
      6 */
      7
      8#include "./ff.h"
      9
     10const char *snd_ff_proc_get_clk_label(enum snd_ff_clock_src src)
     11{
     12	static const char *const labels[] = {
     13		"Internal",
     14		"S/PDIF",
     15		"ADAT1",
     16		"ADAT2",
     17		"Word",
     18		"LTC",
     19	};
     20
     21	if (src >= ARRAY_SIZE(labels))
     22		return NULL;
     23
     24	return labels[src];
     25}
     26
     27static void proc_dump_status(struct snd_info_entry *entry,
     28			     struct snd_info_buffer *buffer)
     29{
     30	struct snd_ff *ff = entry->private_data;
     31
     32	ff->spec->protocol->dump_status(ff, buffer);
     33}
     34
     35static void add_node(struct snd_ff *ff, struct snd_info_entry *root,
     36		     const char *name,
     37		     void (*op)(struct snd_info_entry *e,
     38				struct snd_info_buffer *b))
     39{
     40	struct snd_info_entry *entry;
     41
     42	entry = snd_info_create_card_entry(ff->card, name, root);
     43	if (entry)
     44		snd_info_set_text_ops(entry, ff, op);
     45}
     46
     47void snd_ff_proc_init(struct snd_ff *ff)
     48{
     49	struct snd_info_entry *root;
     50
     51	/*
     52	 * All nodes are automatically removed at snd_card_disconnect(),
     53	 * by following to link list.
     54	 */
     55	root = snd_info_create_card_entry(ff->card, "firewire",
     56					  ff->card->proc_root);
     57	if (root == NULL)
     58		return;
     59	root->mode = S_IFDIR | 0555;
     60
     61	add_node(ff, root, "status", proc_dump_status);
     62}