mirror of
https://github.com/torvalds/linux.git
synced 2024-12-25 12:21:37 +00:00
5765e78e84
Based on 1 normalized pattern(s): this source file is released under gpl v2 license no other versions see the copying file included in the main directory of this source distribution for the license terms and conditions extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 28 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Allison Randal <allison@lohutok.net> Reviewed-by: Armijn Hemel <armijn@tjaldur.nl> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081035.780831265@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
96 lines
2.7 KiB
C
96 lines
2.7 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/**
|
|
* Copyright (C) 2008, Creative Technology Ltd. All Rights Reserved.
|
|
*
|
|
* @File ctamixer.h
|
|
*
|
|
* @Brief
|
|
* This file contains the definition of the Audio Mixer
|
|
* resource management object.
|
|
*
|
|
* @Author Liu Chun
|
|
* @Date May 21 2008
|
|
*/
|
|
|
|
#ifndef CTAMIXER_H
|
|
#define CTAMIXER_H
|
|
|
|
#include "ctresource.h"
|
|
#include <linux/spinlock.h>
|
|
#include <sound/core.h>
|
|
|
|
/* Define the descriptor of a summation node resource */
|
|
struct sum {
|
|
struct rsc rsc; /* Basic resource info */
|
|
unsigned char idx[8];
|
|
};
|
|
|
|
/* Define sum resource request description info */
|
|
struct sum_desc {
|
|
unsigned int msr;
|
|
};
|
|
|
|
struct sum_mgr {
|
|
struct rsc_mgr mgr; /* Basic resource manager info */
|
|
struct snd_card *card; /* pointer to this card */
|
|
spinlock_t mgr_lock;
|
|
|
|
/* request one sum resource */
|
|
int (*get_sum)(struct sum_mgr *mgr,
|
|
const struct sum_desc *desc, struct sum **rsum);
|
|
/* return one sum resource */
|
|
int (*put_sum)(struct sum_mgr *mgr, struct sum *sum);
|
|
};
|
|
|
|
/* Constructor and destructor of daio resource manager */
|
|
int sum_mgr_create(struct hw *hw, struct sum_mgr **rsum_mgr);
|
|
int sum_mgr_destroy(struct sum_mgr *sum_mgr);
|
|
|
|
/* Define the descriptor of a amixer resource */
|
|
struct amixer_rsc_ops;
|
|
|
|
struct amixer {
|
|
struct rsc rsc; /* Basic resource info */
|
|
unsigned char idx[8];
|
|
struct rsc *input; /* pointer to a resource acting as source */
|
|
struct sum *sum; /* Put amixer output to this summation node */
|
|
const struct amixer_rsc_ops *ops; /* AMixer specific operations */
|
|
};
|
|
|
|
struct amixer_rsc_ops {
|
|
int (*set_input)(struct amixer *amixer, struct rsc *rsc);
|
|
int (*set_scale)(struct amixer *amixer, unsigned int scale);
|
|
int (*set_invalid_squash)(struct amixer *amixer, unsigned int iv);
|
|
int (*set_sum)(struct amixer *amixer, struct sum *sum);
|
|
int (*commit_write)(struct amixer *amixer);
|
|
/* Only for interleaved recording */
|
|
int (*commit_raw_write)(struct amixer *amixer);
|
|
int (*setup)(struct amixer *amixer, struct rsc *input,
|
|
unsigned int scale, struct sum *sum);
|
|
int (*get_scale)(struct amixer *amixer);
|
|
};
|
|
|
|
/* Define amixer resource request description info */
|
|
struct amixer_desc {
|
|
unsigned int msr;
|
|
};
|
|
|
|
struct amixer_mgr {
|
|
struct rsc_mgr mgr; /* Basic resource manager info */
|
|
struct snd_card *card; /* pointer to this card */
|
|
spinlock_t mgr_lock;
|
|
|
|
/* request one amixer resource */
|
|
int (*get_amixer)(struct amixer_mgr *mgr,
|
|
const struct amixer_desc *desc,
|
|
struct amixer **ramixer);
|
|
/* return one amixer resource */
|
|
int (*put_amixer)(struct amixer_mgr *mgr, struct amixer *amixer);
|
|
};
|
|
|
|
/* Constructor and destructor of amixer resource manager */
|
|
int amixer_mgr_create(struct hw *hw, struct amixer_mgr **ramixer_mgr);
|
|
int amixer_mgr_destroy(struct amixer_mgr *amixer_mgr);
|
|
|
|
#endif /* CTAMIXER_H */
|