Loading include/sound/hda_chmap.h +7 −7 Original line number Diff line number Diff line Loading @@ -59,18 +59,18 @@ struct hdac_chmap { void snd_hdac_register_chmap_ops(struct hdac_device *hdac, struct hdac_chmap *chmap); int hdmi_channel_allocation(struct hdac_device *hdac, int spk_alloc, int snd_hdac_channel_allocation(struct hdac_device *hdac, int spk_alloc, int channels, bool chmap_set, bool non_pcm, unsigned char *map); int hdmi_get_active_channels(int ca); void hdmi_setup_channel_mapping(struct hdac_chmap *chmap, int snd_hdac_get_active_channels(int ca); void snd_hdac_setup_channel_mapping(struct hdac_chmap *chmap, hda_nid_t pin_nid, bool non_pcm, int ca, int channels, unsigned char *map, bool chmap_set); void snd_print_channel_allocation(int spk_alloc, char *buf, int buflen); struct hdac_cea_channel_speaker_allocation *hdmi_get_ch_alloc_from_ca(int ca); int to_spk_mask(unsigned char c); int spk_to_chmap(int spk); void snd_hdac_print_channel_allocation(int spk_alloc, char *buf, int buflen); struct hdac_cea_channel_speaker_allocation *snd_hdac_get_ch_alloc_from_ca(int ca); int snd_hdac_chmap_to_spk_mask(unsigned char c); int snd_hdac_spk_to_chmap(int spk); int snd_hdac_add_chmap_ctls(struct snd_pcm *pcm, int pcm_idx, struct hdac_chmap *chmap); #endif /* __SOUND_HDA_CHMAP_H */ sound/hda/hdmi_chmap.c +19 −19 Original line number Diff line number Diff line Loading @@ -243,7 +243,7 @@ static int get_channel_allocation_order(int ca) return i; } void snd_print_channel_allocation(int spk_alloc, char *buf, int buflen) void snd_hdac_print_channel_allocation(int spk_alloc, char *buf, int buflen) { int i, j; Loading @@ -254,7 +254,7 @@ void snd_print_channel_allocation(int spk_alloc, char *buf, int buflen) } buf[j] = '\0'; /* necessary when j == 0 */ } EXPORT_SYMBOL_GPL(snd_print_channel_allocation); EXPORT_SYMBOL_GPL(snd_hdac_print_channel_allocation); /* * The transformation takes two steps: Loading Loading @@ -312,7 +312,7 @@ static int hdmi_channel_allocation_spk_alloc_blk(struct hdac_device *codec, } } snd_print_channel_allocation(spk_alloc, buf, sizeof(buf)); snd_hdac_print_channel_allocation(spk_alloc, buf, sizeof(buf)); dev_dbg(&codec->dev, "HDMI: select CA 0x%x for %d-channel allocation: %s\n", ca, channels, buf); Loading Loading @@ -412,7 +412,7 @@ static struct channel_map_table map_tables[] = { }; /* from ALSA API channel position to speaker bit mask */ int to_spk_mask(unsigned char c) int snd_hdac_chmap_to_spk_mask(unsigned char c) { struct channel_map_table *t = map_tables; Loading @@ -422,12 +422,12 @@ int to_spk_mask(unsigned char c) } return 0; } EXPORT_SYMBOL_GPL(to_spk_mask); EXPORT_SYMBOL_GPL(snd_hdac_chmap_to_spk_mask); /* from ALSA API channel position to CEA slot */ static int to_cea_slot(int ordered_ca, unsigned char pos) { int mask = to_spk_mask(pos); int mask = snd_hdac_chmap_to_spk_mask(pos); int i; if (mask) { Loading @@ -441,7 +441,7 @@ static int to_cea_slot(int ordered_ca, unsigned char pos) } /* from speaker bit mask to ALSA API channel position */ int spk_to_chmap(int spk) int snd_hdac_spk_to_chmap(int spk) { struct channel_map_table *t = map_tables; Loading @@ -451,14 +451,14 @@ int spk_to_chmap(int spk) } return 0; } EXPORT_SYMBOL_GPL(spk_to_chmap); EXPORT_SYMBOL_GPL(snd_hdac_spk_to_chmap); /* from CEA slot to ALSA API channel position */ static int from_cea_slot(int ordered_ca, unsigned char slot) { int mask = channel_allocations[ordered_ca].speakers[7 - slot]; return spk_to_chmap(mask); return snd_hdac_spk_to_chmap(mask); } /* get the CA index corresponding to the given ALSA API channel map */ Loading @@ -467,7 +467,7 @@ static int hdmi_manual_channel_allocation(int chs, unsigned char *map) int i, spks = 0, spk_mask = 0; for (i = 0; i < chs; i++) { int mask = to_spk_mask(map[i]); int mask = snd_hdac_chmap_to_spk_mask(map[i]); if (mask) { spk_mask |= mask; Loading Loading @@ -530,7 +530,7 @@ static void hdmi_setup_fake_chmap(unsigned char *map, int ca) } } void hdmi_setup_channel_mapping(struct hdac_chmap *chmap, void snd_hdac_setup_channel_mapping(struct hdac_chmap *chmap, hda_nid_t pin_nid, bool non_pcm, int ca, int channels, unsigned char *map, bool chmap_set) Loading @@ -545,23 +545,23 @@ void hdmi_setup_channel_mapping(struct hdac_chmap *chmap, hdmi_debug_channel_mapping(chmap, pin_nid); } EXPORT_SYMBOL_GPL(hdmi_setup_channel_mapping); EXPORT_SYMBOL_GPL(snd_hdac_setup_channel_mapping); int hdmi_get_active_channels(int ca) int snd_hdac_get_active_channels(int ca) { int ordered_ca = get_channel_allocation_order(ca); return channel_allocations[ordered_ca].channels; } EXPORT_SYMBOL_GPL(hdmi_get_active_channels); EXPORT_SYMBOL_GPL(snd_hdac_get_active_channels); struct hdac_cea_channel_speaker_allocation *hdmi_get_ch_alloc_from_ca(int ca) struct hdac_cea_channel_speaker_allocation *snd_hdac_get_ch_alloc_from_ca(int ca) { return &channel_allocations[get_channel_allocation_order(ca)]; } EXPORT_SYMBOL_GPL(hdmi_get_ch_alloc_from_ca); EXPORT_SYMBOL_GPL(snd_hdac_get_ch_alloc_from_ca); int hdmi_channel_allocation(struct hdac_device *hdac, int spk_alloc, int snd_hdac_channel_allocation(struct hdac_device *hdac, int spk_alloc, int channels, bool chmap_set, bool non_pcm, unsigned char *map) { int ca; Loading @@ -577,7 +577,7 @@ int hdmi_channel_allocation(struct hdac_device *hdac, int spk_alloc, return ca; } EXPORT_SYMBOL_GPL(hdmi_channel_allocation); EXPORT_SYMBOL_GPL(snd_hdac_channel_allocation); /* * ALSA API channel-map control callbacks Loading Loading @@ -619,7 +619,7 @@ static void hdmi_cea_alloc_to_tlv_chmap(struct hdac_chmap *hchmap, if (!spk) continue; chmap[count++] = spk_to_chmap(spk); chmap[count++] = snd_hdac_spk_to_chmap(spk); } WARN_ON(count != channels); Loading sound/pci/hda/hda_eld.c +2 −2 Original line number Diff line number Diff line Loading @@ -416,7 +416,7 @@ void snd_hdmi_show_eld(struct hda_codec *codec, struct parsed_hdmi_eld *e) if (e->spk_alloc) { char buf[SND_PRINT_CHANNEL_ALLOCATION_ADVISED_BUFSIZE]; snd_print_channel_allocation(e->spk_alloc, buf, sizeof(buf)); snd_hdac_print_channel_allocation(e->spk_alloc, buf, sizeof(buf)); codec_dbg(codec, "HDMI: available speakers:%s\n", buf); } Loading Loading @@ -491,7 +491,7 @@ void snd_hdmi_print_eld_info(struct hdmi_eld *eld, snd_iprintf(buffer, "support_ai\t\t%d\n", e->support_ai); snd_iprintf(buffer, "audio_sync_delay\t%d\n", e->aud_synch_delay); snd_print_channel_allocation(e->spk_alloc, buf, sizeof(buf)); snd_hdac_print_channel_allocation(e->spk_alloc, buf, sizeof(buf)); snd_iprintf(buffer, "speakers\t\t[0x%x]%s\n", e->spk_alloc, buf); snd_iprintf(buffer, "sad_count\t\t%d\n", e->sad_count); Loading sound/pci/hda/patch_hdmi.c +7 −7 Original line number Diff line number Diff line Loading @@ -687,11 +687,11 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec, eld = &per_pin->sink_eld; ca = hdmi_channel_allocation(&codec->core, ca = snd_hdac_channel_allocation(&codec->core, eld->info.spk_alloc, channels, per_pin->chmap_set, non_pcm, per_pin->chmap); active_channels = hdmi_get_active_channels(ca); active_channels = snd_hdac_get_active_channels(ca); chmap->ops.set_channel_count(&codec->core, per_pin->cvt_nid, active_channels); Loading @@ -700,7 +700,7 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec, * always configure channel mapping, it may have been changed by the * user in the meantime */ hdmi_setup_channel_mapping(&spec->chmap, snd_hdac_setup_channel_mapping(&spec->chmap, pin_nid, non_pcm, ca, channels, per_pin->chmap, per_pin->chmap_set); Loading Loading @@ -3115,9 +3115,9 @@ static int atihdmi_paired_chmap_validate(struct hdac_chmap *chmap, /* check that only channel pairs need to be remapped on old pre-rev3 ATI/AMD */ cap = hdmi_get_ch_alloc_from_ca(ca); cap = snd_hdac_get_ch_alloc_from_ca(ca); for (i = 0; i < chs; ++i) { int mask = to_spk_mask(map[i]); int mask = snd_hdac_chmap_to_spk_mask(map[i]); bool ok = false; bool companion_ok = false; Loading @@ -3133,7 +3133,7 @@ static int atihdmi_paired_chmap_validate(struct hdac_chmap *chmap, if (i % 2 == 0 && i + 1 < chs) { /* even channel, check the odd companion */ int comp_chan_idx = 7 - atihdmi_paired_swap_fc_lfe(j + 1); int comp_mask_req = to_spk_mask(map[i+1]); int comp_mask_req = snd_hdac_chmap_to_spk_mask(map[i+1]); int comp_mask_act = cap->speakers[comp_chan_idx]; if (comp_mask_req == comp_mask_act) Loading Loading @@ -3270,7 +3270,7 @@ static void atihdmi_paired_cea_alloc_to_tlv_chmap(struct hdac_chmap *hchmap, continue; } chmap[count++] = spk_to_chmap(spk); chmap[count++] = snd_hdac_spk_to_chmap(spk); } WARN_ON(count != channels); Loading Loading
include/sound/hda_chmap.h +7 −7 Original line number Diff line number Diff line Loading @@ -59,18 +59,18 @@ struct hdac_chmap { void snd_hdac_register_chmap_ops(struct hdac_device *hdac, struct hdac_chmap *chmap); int hdmi_channel_allocation(struct hdac_device *hdac, int spk_alloc, int snd_hdac_channel_allocation(struct hdac_device *hdac, int spk_alloc, int channels, bool chmap_set, bool non_pcm, unsigned char *map); int hdmi_get_active_channels(int ca); void hdmi_setup_channel_mapping(struct hdac_chmap *chmap, int snd_hdac_get_active_channels(int ca); void snd_hdac_setup_channel_mapping(struct hdac_chmap *chmap, hda_nid_t pin_nid, bool non_pcm, int ca, int channels, unsigned char *map, bool chmap_set); void snd_print_channel_allocation(int spk_alloc, char *buf, int buflen); struct hdac_cea_channel_speaker_allocation *hdmi_get_ch_alloc_from_ca(int ca); int to_spk_mask(unsigned char c); int spk_to_chmap(int spk); void snd_hdac_print_channel_allocation(int spk_alloc, char *buf, int buflen); struct hdac_cea_channel_speaker_allocation *snd_hdac_get_ch_alloc_from_ca(int ca); int snd_hdac_chmap_to_spk_mask(unsigned char c); int snd_hdac_spk_to_chmap(int spk); int snd_hdac_add_chmap_ctls(struct snd_pcm *pcm, int pcm_idx, struct hdac_chmap *chmap); #endif /* __SOUND_HDA_CHMAP_H */
sound/hda/hdmi_chmap.c +19 −19 Original line number Diff line number Diff line Loading @@ -243,7 +243,7 @@ static int get_channel_allocation_order(int ca) return i; } void snd_print_channel_allocation(int spk_alloc, char *buf, int buflen) void snd_hdac_print_channel_allocation(int spk_alloc, char *buf, int buflen) { int i, j; Loading @@ -254,7 +254,7 @@ void snd_print_channel_allocation(int spk_alloc, char *buf, int buflen) } buf[j] = '\0'; /* necessary when j == 0 */ } EXPORT_SYMBOL_GPL(snd_print_channel_allocation); EXPORT_SYMBOL_GPL(snd_hdac_print_channel_allocation); /* * The transformation takes two steps: Loading Loading @@ -312,7 +312,7 @@ static int hdmi_channel_allocation_spk_alloc_blk(struct hdac_device *codec, } } snd_print_channel_allocation(spk_alloc, buf, sizeof(buf)); snd_hdac_print_channel_allocation(spk_alloc, buf, sizeof(buf)); dev_dbg(&codec->dev, "HDMI: select CA 0x%x for %d-channel allocation: %s\n", ca, channels, buf); Loading Loading @@ -412,7 +412,7 @@ static struct channel_map_table map_tables[] = { }; /* from ALSA API channel position to speaker bit mask */ int to_spk_mask(unsigned char c) int snd_hdac_chmap_to_spk_mask(unsigned char c) { struct channel_map_table *t = map_tables; Loading @@ -422,12 +422,12 @@ int to_spk_mask(unsigned char c) } return 0; } EXPORT_SYMBOL_GPL(to_spk_mask); EXPORT_SYMBOL_GPL(snd_hdac_chmap_to_spk_mask); /* from ALSA API channel position to CEA slot */ static int to_cea_slot(int ordered_ca, unsigned char pos) { int mask = to_spk_mask(pos); int mask = snd_hdac_chmap_to_spk_mask(pos); int i; if (mask) { Loading @@ -441,7 +441,7 @@ static int to_cea_slot(int ordered_ca, unsigned char pos) } /* from speaker bit mask to ALSA API channel position */ int spk_to_chmap(int spk) int snd_hdac_spk_to_chmap(int spk) { struct channel_map_table *t = map_tables; Loading @@ -451,14 +451,14 @@ int spk_to_chmap(int spk) } return 0; } EXPORT_SYMBOL_GPL(spk_to_chmap); EXPORT_SYMBOL_GPL(snd_hdac_spk_to_chmap); /* from CEA slot to ALSA API channel position */ static int from_cea_slot(int ordered_ca, unsigned char slot) { int mask = channel_allocations[ordered_ca].speakers[7 - slot]; return spk_to_chmap(mask); return snd_hdac_spk_to_chmap(mask); } /* get the CA index corresponding to the given ALSA API channel map */ Loading @@ -467,7 +467,7 @@ static int hdmi_manual_channel_allocation(int chs, unsigned char *map) int i, spks = 0, spk_mask = 0; for (i = 0; i < chs; i++) { int mask = to_spk_mask(map[i]); int mask = snd_hdac_chmap_to_spk_mask(map[i]); if (mask) { spk_mask |= mask; Loading Loading @@ -530,7 +530,7 @@ static void hdmi_setup_fake_chmap(unsigned char *map, int ca) } } void hdmi_setup_channel_mapping(struct hdac_chmap *chmap, void snd_hdac_setup_channel_mapping(struct hdac_chmap *chmap, hda_nid_t pin_nid, bool non_pcm, int ca, int channels, unsigned char *map, bool chmap_set) Loading @@ -545,23 +545,23 @@ void hdmi_setup_channel_mapping(struct hdac_chmap *chmap, hdmi_debug_channel_mapping(chmap, pin_nid); } EXPORT_SYMBOL_GPL(hdmi_setup_channel_mapping); EXPORT_SYMBOL_GPL(snd_hdac_setup_channel_mapping); int hdmi_get_active_channels(int ca) int snd_hdac_get_active_channels(int ca) { int ordered_ca = get_channel_allocation_order(ca); return channel_allocations[ordered_ca].channels; } EXPORT_SYMBOL_GPL(hdmi_get_active_channels); EXPORT_SYMBOL_GPL(snd_hdac_get_active_channels); struct hdac_cea_channel_speaker_allocation *hdmi_get_ch_alloc_from_ca(int ca) struct hdac_cea_channel_speaker_allocation *snd_hdac_get_ch_alloc_from_ca(int ca) { return &channel_allocations[get_channel_allocation_order(ca)]; } EXPORT_SYMBOL_GPL(hdmi_get_ch_alloc_from_ca); EXPORT_SYMBOL_GPL(snd_hdac_get_ch_alloc_from_ca); int hdmi_channel_allocation(struct hdac_device *hdac, int spk_alloc, int snd_hdac_channel_allocation(struct hdac_device *hdac, int spk_alloc, int channels, bool chmap_set, bool non_pcm, unsigned char *map) { int ca; Loading @@ -577,7 +577,7 @@ int hdmi_channel_allocation(struct hdac_device *hdac, int spk_alloc, return ca; } EXPORT_SYMBOL_GPL(hdmi_channel_allocation); EXPORT_SYMBOL_GPL(snd_hdac_channel_allocation); /* * ALSA API channel-map control callbacks Loading Loading @@ -619,7 +619,7 @@ static void hdmi_cea_alloc_to_tlv_chmap(struct hdac_chmap *hchmap, if (!spk) continue; chmap[count++] = spk_to_chmap(spk); chmap[count++] = snd_hdac_spk_to_chmap(spk); } WARN_ON(count != channels); Loading
sound/pci/hda/hda_eld.c +2 −2 Original line number Diff line number Diff line Loading @@ -416,7 +416,7 @@ void snd_hdmi_show_eld(struct hda_codec *codec, struct parsed_hdmi_eld *e) if (e->spk_alloc) { char buf[SND_PRINT_CHANNEL_ALLOCATION_ADVISED_BUFSIZE]; snd_print_channel_allocation(e->spk_alloc, buf, sizeof(buf)); snd_hdac_print_channel_allocation(e->spk_alloc, buf, sizeof(buf)); codec_dbg(codec, "HDMI: available speakers:%s\n", buf); } Loading Loading @@ -491,7 +491,7 @@ void snd_hdmi_print_eld_info(struct hdmi_eld *eld, snd_iprintf(buffer, "support_ai\t\t%d\n", e->support_ai); snd_iprintf(buffer, "audio_sync_delay\t%d\n", e->aud_synch_delay); snd_print_channel_allocation(e->spk_alloc, buf, sizeof(buf)); snd_hdac_print_channel_allocation(e->spk_alloc, buf, sizeof(buf)); snd_iprintf(buffer, "speakers\t\t[0x%x]%s\n", e->spk_alloc, buf); snd_iprintf(buffer, "sad_count\t\t%d\n", e->sad_count); Loading
sound/pci/hda/patch_hdmi.c +7 −7 Original line number Diff line number Diff line Loading @@ -687,11 +687,11 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec, eld = &per_pin->sink_eld; ca = hdmi_channel_allocation(&codec->core, ca = snd_hdac_channel_allocation(&codec->core, eld->info.spk_alloc, channels, per_pin->chmap_set, non_pcm, per_pin->chmap); active_channels = hdmi_get_active_channels(ca); active_channels = snd_hdac_get_active_channels(ca); chmap->ops.set_channel_count(&codec->core, per_pin->cvt_nid, active_channels); Loading @@ -700,7 +700,7 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec, * always configure channel mapping, it may have been changed by the * user in the meantime */ hdmi_setup_channel_mapping(&spec->chmap, snd_hdac_setup_channel_mapping(&spec->chmap, pin_nid, non_pcm, ca, channels, per_pin->chmap, per_pin->chmap_set); Loading Loading @@ -3115,9 +3115,9 @@ static int atihdmi_paired_chmap_validate(struct hdac_chmap *chmap, /* check that only channel pairs need to be remapped on old pre-rev3 ATI/AMD */ cap = hdmi_get_ch_alloc_from_ca(ca); cap = snd_hdac_get_ch_alloc_from_ca(ca); for (i = 0; i < chs; ++i) { int mask = to_spk_mask(map[i]); int mask = snd_hdac_chmap_to_spk_mask(map[i]); bool ok = false; bool companion_ok = false; Loading @@ -3133,7 +3133,7 @@ static int atihdmi_paired_chmap_validate(struct hdac_chmap *chmap, if (i % 2 == 0 && i + 1 < chs) { /* even channel, check the odd companion */ int comp_chan_idx = 7 - atihdmi_paired_swap_fc_lfe(j + 1); int comp_mask_req = to_spk_mask(map[i+1]); int comp_mask_req = snd_hdac_chmap_to_spk_mask(map[i+1]); int comp_mask_act = cap->speakers[comp_chan_idx]; if (comp_mask_req == comp_mask_act) Loading Loading @@ -3270,7 +3270,7 @@ static void atihdmi_paired_cea_alloc_to_tlv_chmap(struct hdac_chmap *hchmap, continue; } chmap[count++] = spk_to_chmap(spk); chmap[count++] = snd_hdac_spk_to_chmap(spk); } WARN_ON(count != channels); Loading