mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-13 12:53:27 +00:00
ALSA: hda - Rename to snd_hda_parse_pin_defcfg()
... and add a new bit-flags argument to specify the behavior of the function. The older function is kept as is (as a wrapper). Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
8cd0775da2
commit
d025febcd8
@ -4695,9 +4695,10 @@ static void sort_autocfg_input_pins(struct auto_pin_cfg *cfg)
|
|||||||
* The digital input/output pins are assigned to dig_in_pin and dig_out_pin,
|
* The digital input/output pins are assigned to dig_in_pin and dig_out_pin,
|
||||||
* respectively.
|
* respectively.
|
||||||
*/
|
*/
|
||||||
int snd_hda_parse_pin_def_config(struct hda_codec *codec,
|
int snd_hda_parse_pin_defcfg(struct hda_codec *codec,
|
||||||
struct auto_pin_cfg *cfg,
|
struct auto_pin_cfg *cfg,
|
||||||
const hda_nid_t *ignore_nids)
|
const hda_nid_t *ignore_nids,
|
||||||
|
unsigned int cond_flags)
|
||||||
{
|
{
|
||||||
hda_nid_t nid, end_nid;
|
hda_nid_t nid, end_nid;
|
||||||
short seq, assoc_line_out;
|
short seq, assoc_line_out;
|
||||||
@ -4815,7 +4816,8 @@ int snd_hda_parse_pin_def_config(struct hda_codec *codec,
|
|||||||
* If no line-out is defined but multiple HPs are found,
|
* If no line-out is defined but multiple HPs are found,
|
||||||
* some of them might be the real line-outs.
|
* some of them might be the real line-outs.
|
||||||
*/
|
*/
|
||||||
if (!cfg->line_outs && cfg->hp_outs > 1) {
|
if (!cfg->line_outs && cfg->hp_outs > 1 &&
|
||||||
|
!(cond_flags & HDA_PINCFG_NO_HP_FIXUP)) {
|
||||||
int i = 0;
|
int i = 0;
|
||||||
while (i < cfg->hp_outs) {
|
while (i < cfg->hp_outs) {
|
||||||
/* The real HPs should have the sequence 0x0f */
|
/* The real HPs should have the sequence 0x0f */
|
||||||
@ -4852,7 +4854,8 @@ int snd_hda_parse_pin_def_config(struct hda_codec *codec,
|
|||||||
* FIX-UP: if no line-outs are detected, try to use speaker or HP pin
|
* FIX-UP: if no line-outs are detected, try to use speaker or HP pin
|
||||||
* as a primary output
|
* as a primary output
|
||||||
*/
|
*/
|
||||||
if (!cfg->line_outs) {
|
if (!cfg->line_outs &&
|
||||||
|
!(cond_flags & HDA_PINCFG_NO_LO_FIXUP)) {
|
||||||
if (cfg->speaker_outs) {
|
if (cfg->speaker_outs) {
|
||||||
cfg->line_outs = cfg->speaker_outs;
|
cfg->line_outs = cfg->speaker_outs;
|
||||||
memcpy(cfg->line_out_pins, cfg->speaker_pins,
|
memcpy(cfg->line_out_pins, cfg->speaker_pins,
|
||||||
@ -4922,7 +4925,7 @@ int snd_hda_parse_pin_def_config(struct hda_codec *codec,
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_HDA(snd_hda_parse_pin_def_config);
|
EXPORT_SYMBOL_HDA(snd_hda_parse_pin_defcfg);
|
||||||
|
|
||||||
int snd_hda_get_input_pin_attr(unsigned int def_conf)
|
int snd_hda_get_input_pin_attr(unsigned int def_conf)
|
||||||
{
|
{
|
||||||
|
@ -443,9 +443,18 @@ struct auto_pin_cfg {
|
|||||||
#define get_defcfg_device(cfg) \
|
#define get_defcfg_device(cfg) \
|
||||||
((cfg & AC_DEFCFG_DEVICE) >> AC_DEFCFG_DEVICE_SHIFT)
|
((cfg & AC_DEFCFG_DEVICE) >> AC_DEFCFG_DEVICE_SHIFT)
|
||||||
|
|
||||||
int snd_hda_parse_pin_def_config(struct hda_codec *codec,
|
/* bit-flags for snd_hda_parse_pin_def_config() behavior */
|
||||||
struct auto_pin_cfg *cfg,
|
#define HDA_PINCFG_NO_HP_FIXUP (1 << 0) /* no HP-split */
|
||||||
const hda_nid_t *ignore_nids);
|
#define HDA_PINCFG_NO_LO_FIXUP (1 << 1) /* don't take other outs as LO */
|
||||||
|
|
||||||
|
int snd_hda_parse_pin_defcfg(struct hda_codec *codec,
|
||||||
|
struct auto_pin_cfg *cfg,
|
||||||
|
const hda_nid_t *ignore_nids,
|
||||||
|
unsigned int cond_flags);
|
||||||
|
|
||||||
|
/* older function */
|
||||||
|
#define snd_hda_parse_pin_def_config(codec, cfg, ignore) \
|
||||||
|
snd_hda_parse_pin_defcfg(codec, cfg, ignore, 0)
|
||||||
|
|
||||||
/* amp values */
|
/* amp values */
|
||||||
#define AMP_IN_MUTE(idx) (0x7080 | ((idx)<<8))
|
#define AMP_IN_MUTE(idx) (0x7080 | ((idx)<<8))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user