[ALSA] hda-intel - Fix PCM device number assignment
In the current scheme, PCM device numbers are assigned incrementally in the order of codecs. This causes problems when the codec number is irregular, e.g. codec #0 for HDMI and codec #1 for analog. Then the HDMI becomes the first PCM, which is picked up as the default output device. Unfortuantely this doesn't work well with normal setups. This patch introduced the fixed device numbers for the PCM types, namely, analog, SPDIF, HDMI and modem. The PCM devices are assigned according to the corresponding PCM type. After this patch, HDMI will be always assigned to PCM #3, SPDIF to PCM #1, and the first analog to PCM #0, etc. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
@@ -590,11 +590,21 @@ struct hda_pcm_stream {
|
||||
struct hda_pcm_ops ops;
|
||||
};
|
||||
|
||||
/* PCM types */
|
||||
enum {
|
||||
HDA_PCM_TYPE_AUDIO,
|
||||
HDA_PCM_TYPE_SPDIF,
|
||||
HDA_PCM_TYPE_HDMI,
|
||||
HDA_PCM_TYPE_MODEM,
|
||||
HDA_PCM_NTYPES
|
||||
};
|
||||
|
||||
/* for PCM creation */
|
||||
struct hda_pcm {
|
||||
char *name;
|
||||
struct hda_pcm_stream stream[2];
|
||||
unsigned int is_modem; /* modem codec? */
|
||||
unsigned int pcm_type; /* HDA_PCM_TYPE_XXX */
|
||||
int device; /* assigned device number */
|
||||
};
|
||||
|
||||
/* codec information */
|
||||
|
Reference in New Issue
Block a user