aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/ctxfi/cthardware.h
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pci/ctxfi/cthardware.h')
-rw-r--r--sound/pci/ctxfi/cthardware.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/sound/pci/ctxfi/cthardware.h b/sound/pci/ctxfi/cthardware.h
index af55405f5de..908315bec3b 100644
--- a/sound/pci/ctxfi/cthardware.h
+++ b/sound/pci/ctxfi/cthardware.h
@@ -39,6 +39,7 @@ enum CTCARDS {
39 CT20K2_MODEL_FIRST = CTSB0760, 39 CT20K2_MODEL_FIRST = CTSB0760,
40 CTHENDRIX, 40 CTHENDRIX,
41 CTSB0880, 41 CTSB0880,
42 CTSB1270,
42 CT20K2_UNKNOWN, 43 CT20K2_UNKNOWN,
43 NUM_CTCARDS /* This should always be the last */ 44 NUM_CTCARDS /* This should always be the last */
44}; 45};
@@ -60,6 +61,13 @@ struct card_conf {
60 unsigned int msr; /* master sample rate in rsrs */ 61 unsigned int msr; /* master sample rate in rsrs */
61}; 62};
62 63
64struct capabilities {
65 unsigned int digit_io_switch:1;
66 unsigned int dedicated_mic:1;
67 unsigned int output_switch:1;
68 unsigned int mic_source_switch:1;
69};
70
63struct hw { 71struct hw {
64 int (*card_init)(struct hw *hw, struct card_conf *info); 72 int (*card_init)(struct hw *hw, struct card_conf *info);
65 int (*card_stop)(struct hw *hw); 73 int (*card_stop)(struct hw *hw);
@@ -70,7 +78,11 @@ struct hw {
70#endif 78#endif
71 int (*is_adc_source_selected)(struct hw *hw, enum ADCSRC source); 79 int (*is_adc_source_selected)(struct hw *hw, enum ADCSRC source);
72 int (*select_adc_source)(struct hw *hw, enum ADCSRC source); 80 int (*select_adc_source)(struct hw *hw, enum ADCSRC source);
73 int (*have_digit_io_switch)(struct hw *hw); 81 struct capabilities (*capabilities)(struct hw *hw);
82 int (*output_switch_get)(struct hw *hw);
83 int (*output_switch_put)(struct hw *hw, int position);
84 int (*mic_source_switch_get)(struct hw *hw);
85 int (*mic_source_switch_put)(struct hw *hw, int position);
74 86
75 /* SRC operations */ 87 /* SRC operations */
76 int (*src_rsc_get_ctrl_blk)(void **rblk); 88 int (*src_rsc_get_ctrl_blk)(void **rblk);