Lines Matching refs:bus

214 	struct hdac_bus *bus = azx_bus(chip);  in azx_pcm_trigger()  local
257 spin_lock(&bus->reg_lock); in azx_pcm_trigger()
273 spin_unlock(&bus->reg_lock); in azx_pcm_trigger()
277 spin_lock(&bus->reg_lock); in azx_pcm_trigger()
282 spin_unlock(&bus->reg_lock); in azx_pcm_trigger()
527 struct hdac_bus *bus = &_bus->core; in snd_hda_attach_pcm_stream() local
528 struct azx *chip = bus_to_azx(bus); in snd_hda_attach_pcm_stream()
589 static int azx_rirb_get_response(struct hdac_bus *bus, unsigned int addr, in azx_rirb_get_response() argument
592 struct azx *chip = bus_to_azx(bus); in azx_rirb_get_response()
593 struct hda_bus *hbus = &chip->bus; in azx_rirb_get_response()
602 spin_lock_irq(&bus->reg_lock); in azx_rirb_get_response()
604 snd_hdac_bus_update_rirb(bus); in azx_rirb_get_response()
605 if (!bus->rirb.cmds[addr]) { in azx_rirb_get_response()
609 *res = bus->rirb.res[addr]; /* the last value */ in azx_rirb_get_response()
610 spin_unlock_irq(&bus->reg_lock); in azx_rirb_get_response()
613 spin_unlock_irq(&bus->reg_lock); in azx_rirb_get_response()
630 bus->last_cmd[addr]); in azx_rirb_get_response()
640 bus->last_cmd[addr]); in azx_rirb_get_response()
648 bus->last_cmd[addr]); in azx_rirb_get_response()
673 bus->last_cmd[addr]); in azx_rirb_get_response()
676 snd_hdac_bus_stop_cmd_io(bus); in azx_rirb_get_response()
712 static int azx_single_send_cmd(struct hdac_bus *bus, u32 val) in azx_single_send_cmd() argument
714 struct azx *chip = bus_to_azx(bus); in azx_single_send_cmd()
718 bus->last_cmd[azx_command_addr(val)] = val; in azx_single_send_cmd()
740 static int azx_single_get_response(struct hdac_bus *bus, unsigned int addr, in azx_single_get_response() argument
744 *res = bus->rirb.res[addr]; in azx_single_get_response()
756 static int azx_send_cmd(struct hdac_bus *bus, unsigned int val) in azx_send_cmd() argument
758 struct azx *chip = bus_to_azx(bus); in azx_send_cmd()
763 return azx_single_send_cmd(bus, val); in azx_send_cmd()
765 return snd_hdac_bus_send_cmd(bus, val); in azx_send_cmd()
769 static int azx_get_response(struct hdac_bus *bus, unsigned int addr, in azx_get_response() argument
772 struct azx *chip = bus_to_azx(bus); in azx_get_response()
777 return azx_single_get_response(bus, addr, res); in azx_get_response()
779 return azx_rirb_get_response(bus, addr, res); in azx_get_response()
782 static int azx_link_power(struct hdac_bus *bus, bool enable) in azx_link_power() argument
784 struct azx *chip = bus_to_azx(bus); in azx_link_power()
807 struct hdac_bus *bus = azx_bus(chip); in azx_get_dsp_loader_dev() local
810 list_for_each_entry(s, &bus->stream_list, list) in azx_get_dsp_loader_dev()
821 struct hdac_bus *bus = &codec->bus->core; in snd_hda_codec_load_dsp_prepare() local
822 struct azx *chip = bus_to_azx(bus); in snd_hda_codec_load_dsp_prepare()
830 spin_lock_irq(&bus->reg_lock); in snd_hda_codec_load_dsp_prepare()
835 spin_unlock_irq(&bus->reg_lock); in snd_hda_codec_load_dsp_prepare()
839 spin_lock_irq(&bus->reg_lock); in snd_hda_codec_load_dsp_prepare()
842 spin_unlock_irq(&bus->reg_lock); in snd_hda_codec_load_dsp_prepare()
853 struct hdac_bus *bus = &codec->bus->core; in snd_hda_codec_load_dsp_trigger() local
854 struct azx *chip = bus_to_azx(bus); in snd_hda_codec_load_dsp_trigger()
864 struct hdac_bus *bus = &codec->bus->core; in snd_hda_codec_load_dsp_cleanup() local
865 struct azx *chip = bus_to_azx(bus); in snd_hda_codec_load_dsp_cleanup()
873 spin_lock_irq(&bus->reg_lock); in snd_hda_codec_load_dsp_cleanup()
877 spin_unlock_irq(&bus->reg_lock); in snd_hda_codec_load_dsp_cleanup()
897 struct hdac_bus *bus = azx_bus(chip); in azx_stop_all_streams() local
900 list_for_each_entry(s, &bus->stream_list, list) in azx_stop_all_streams()
914 static void stream_update(struct hdac_bus *bus, struct hdac_stream *s) in stream_update() argument
916 struct azx *chip = bus_to_azx(bus); in stream_update()
922 spin_unlock(&bus->reg_lock); in stream_update()
924 spin_lock(&bus->reg_lock); in stream_update()
931 struct hdac_bus *bus = azx_bus(chip); in azx_interrupt() local
940 spin_lock(&bus->reg_lock); in azx_interrupt()
943 spin_unlock(&bus->reg_lock); in azx_interrupt()
949 spin_unlock(&bus->reg_lock); in azx_interrupt()
953 snd_hdac_bus_handle_stream_irq(bus, status, stream_update); in azx_interrupt()
961 snd_hdac_bus_update_rirb(bus); in azx_interrupt()
966 spin_unlock(&bus->reg_lock); in azx_interrupt()
983 struct hdac_bus *bus = azx_bus(chip); in probe_codec() local
987 mutex_lock(&bus->cmd_mutex); in probe_codec()
989 azx_send_cmd(bus, cmd); in probe_codec()
990 err = azx_get_response(bus, addr, &res); in probe_codec()
992 mutex_unlock(&bus->cmd_mutex); in probe_codec()
999 void snd_hda_bus_reset(struct hda_bus *bus) in snd_hda_bus_reset() argument
1001 struct azx *chip = bus_to_azx(&bus->core); in snd_hda_bus_reset()
1003 bus->in_reset = 1; in snd_hda_bus_reset()
1006 if (bus->core.chip_init) in snd_hda_bus_reset()
1007 snd_hda_bus_reset_codecs(bus); in snd_hda_bus_reset()
1008 bus->in_reset = 0; in snd_hda_bus_reset()
1036 struct hda_bus *bus = &chip->bus; in azx_bus_init() local
1039 err = snd_hdac_bus_init(&bus->core, chip->card->dev, &bus_core_ops, in azx_bus_init()
1044 bus->card = chip->card; in azx_bus_init()
1045 mutex_init(&bus->prepare_mutex); in azx_bus_init()
1046 bus->pci = chip->pci; in azx_bus_init()
1047 bus->modelname = model; in azx_bus_init()
1048 bus->mixer_assigned = -1; in azx_bus_init()
1049 bus->core.snoop = azx_snoop(chip); in azx_bus_init()
1052 bus->core.use_posbuf = true; in azx_bus_init()
1054 bus->core.bdl_pos_adj = chip->bdl_pos_adj[chip->dev_index]; in azx_bus_init()
1056 bus->core.corbrp_self_clear = true; in azx_bus_init()
1060 bus->needs_damn_long_delay = 1; in azx_bus_init()
1064 bus->core.align_bdle_4k = true; in azx_bus_init()
1072 bus->core.sync_write = 1; in azx_bus_init()
1073 bus->allow_bus_reset = 1; in azx_bus_init()
1083 struct hdac_bus *bus = azx_bus(chip); in azx_probe_codecs() local
1092 if ((bus->codec_mask & (1 << c)) & chip->codec_probe_mask) { in azx_probe_codecs()
1099 bus->codec_mask &= ~(1 << c); in azx_probe_codecs()
1115 if ((bus->codec_mask & (1 << c)) & chip->codec_probe_mask) { in azx_probe_codecs()
1117 err = snd_hda_codec_new(&chip->bus, chip->card, c, &codec); in azx_probe_codecs()
1137 list_for_each_codec(codec, &chip->bus) { in azx_codec_configure()
1190 struct hdac_bus *bus = azx_bus(chip); in azx_free_streams() local
1193 while (!list_empty(&bus->stream_list)) { in azx_free_streams()
1194 s = list_first_entry(&bus->stream_list, struct hdac_stream, list); in azx_free_streams()