Lines Matching refs:sublink

191 static int check_sublink_power(u32 __iomem *lctl, int sublink, bool enabled)  in check_sublink_power()  argument
193 int mask = BIT(sublink) << AZX_ML_LCTL_CPA_SHIFT; in check_sublink_power()
216 static int hdaml_link_init(u32 __iomem *lctl, int sublink) in hdaml_link_init() argument
219 u32 mask = BIT(sublink) << AZX_ML_LCTL_SPA_SHIFT; in hdaml_link_init()
226 return check_sublink_power(lctl, sublink, true); in hdaml_link_init()
229 static int hdaml_link_shutdown(u32 __iomem *lctl, int sublink) in hdaml_link_shutdown() argument
235 mask = BIT(sublink) << AZX_ML_LCTL_SPA_SHIFT; in hdaml_link_shutdown()
240 return check_sublink_power(lctl, sublink, false); in hdaml_link_shutdown()
305 static void hdaml_link_sync_arm(u32 __iomem *lsync, int sublink) in hdaml_link_sync_arm() argument
310 val |= (AZX_REG_ML_LSYNC_CMDSYNC << sublink); in hdaml_link_sync_arm()
574 void hdac_bus_eml_sync_arm_unlocked(struct hdac_bus *bus, bool alt, int elid, int sublink) in hdac_bus_eml_sync_arm_unlocked() argument
588 hdaml_link_sync_arm(hlink->ml_addr + AZX_REG_ML_LSYNC, sublink); in hdac_bus_eml_sync_arm_unlocked()
592 void hdac_bus_eml_sdw_sync_arm_unlocked(struct hdac_bus *bus, int sublink) in hdac_bus_eml_sdw_sync_arm_unlocked() argument
594 hdac_bus_eml_sync_arm_unlocked(bus, true, AZX_REG_ML_LEPTR_ID_SDW, sublink); in hdac_bus_eml_sdw_sync_arm_unlocked()
653 static int hdac_bus_eml_power_up_base(struct hdac_bus *bus, bool alt, int elid, int sublink, in hdac_bus_eml_power_up_base() argument
664 if (sublink >= h2link->slcount) in hdac_bus_eml_power_up_base()
676 if (++h2link->sublink_ref_count[sublink] > 1) in hdac_bus_eml_power_up_base()
680 ret = hdaml_link_init(hlink->ml_addr + AZX_REG_ML_LCTL, sublink); in hdac_bus_eml_power_up_base()
689 int hdac_bus_eml_power_up(struct hdac_bus *bus, bool alt, int elid, int sublink) in hdac_bus_eml_power_up() argument
691 return hdac_bus_eml_power_up_base(bus, alt, elid, sublink, true); in hdac_bus_eml_power_up()
695 int hdac_bus_eml_power_up_unlocked(struct hdac_bus *bus, bool alt, int elid, int sublink) in hdac_bus_eml_power_up_unlocked() argument
697 return hdac_bus_eml_power_up_base(bus, alt, elid, sublink, false); in hdac_bus_eml_power_up_unlocked()
701 static int hdac_bus_eml_power_down_base(struct hdac_bus *bus, bool alt, int elid, int sublink, in hdac_bus_eml_power_down_base() argument
712 if (sublink >= h2link->slcount) in hdac_bus_eml_power_down_base()
724 if (--h2link->sublink_ref_count[sublink] > 0) in hdac_bus_eml_power_down_base()
727 ret = hdaml_link_shutdown(hlink->ml_addr + AZX_REG_ML_LCTL, sublink); in hdac_bus_eml_power_down_base()
736 int hdac_bus_eml_power_down(struct hdac_bus *bus, bool alt, int elid, int sublink) in hdac_bus_eml_power_down() argument
738 return hdac_bus_eml_power_down_base(bus, alt, elid, sublink, true); in hdac_bus_eml_power_down()
742 int hdac_bus_eml_power_down_unlocked(struct hdac_bus *bus, bool alt, int elid, int sublink) in hdac_bus_eml_power_down_unlocked() argument
744 return hdac_bus_eml_power_down_base(bus, alt, elid, sublink, false); in hdac_bus_eml_power_down_unlocked()
748 int hdac_bus_eml_sdw_power_up_unlocked(struct hdac_bus *bus, int sublink) in hdac_bus_eml_sdw_power_up_unlocked() argument
750 return hdac_bus_eml_power_up_unlocked(bus, true, AZX_REG_ML_LEPTR_ID_SDW, sublink); in hdac_bus_eml_sdw_power_up_unlocked()
754 int hdac_bus_eml_sdw_power_down_unlocked(struct hdac_bus *bus, int sublink) in hdac_bus_eml_sdw_power_down_unlocked() argument
756 return hdac_bus_eml_power_down_unlocked(bus, true, AZX_REG_ML_LEPTR_ID_SDW, sublink); in hdac_bus_eml_sdw_power_down_unlocked()
760 int hdac_bus_eml_sdw_get_lsdiid_unlocked(struct hdac_bus *bus, int sublink, u16 *lsdiid) in hdac_bus_eml_sdw_get_lsdiid_unlocked() argument
771 *lsdiid = hdaml_link_get_lsdiid(hlink->ml_addr + AZX_REG_ML_LSDIID_OFFSET(sublink)); in hdac_bus_eml_sdw_get_lsdiid_unlocked()
776 int hdac_bus_eml_sdw_set_lsdiid(struct hdac_bus *bus, int sublink, int dev_num) in hdac_bus_eml_sdw_set_lsdiid() argument
789 hdaml_link_set_lsdiid(hlink->ml_addr + AZX_REG_ML_LSDIID_OFFSET(sublink), dev_num); in hdac_bus_eml_sdw_set_lsdiid()
800 int hdac_bus_eml_sdw_map_stream_ch(struct hdac_bus *bus, int sublink, int y, in hdac_bus_eml_sdw_map_stream_ch() argument
814 h2link->instance_offset * sublink + in hdac_bus_eml_sdw_map_stream_ch()
835 sublink, channel_mask, stream_id, dir, val); in hdac_bus_eml_sdw_map_stream_ch()