Lines Matching +full:bus +full:- +full:powered
1 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
2 // Copyright(c) 2015-2023 Intel Corporation
9 #include "bus.h"
14 struct device *dev = sdw->cdns.dev; in intel_start_bus()
15 struct sdw_cdns *cdns = &sdw->cdns; in intel_start_bus()
16 struct sdw_bus *bus = &cdns->bus; in intel_start_bus() local
21 dev_err(dev, "%s: unable to soft-reset Cadence IP: %d\n", __func__, ret); in intel_start_bus()
29 if (bus->multi_link) in intel_start_bus()
40 if (bus->multi_link) { in intel_start_bus()
62 dev_err(dev, "%s: unable to exit bus reset sequence: %d\n", __func__, ret); in intel_start_bus()
69 schedule_delayed_work(&cdns->attach_dwork, in intel_start_bus()
77 struct device *dev = sdw->cdns.dev; in intel_start_bus_after_reset()
78 struct sdw_cdns *cdns = &sdw->cdns; in intel_start_bus_after_reset()
79 struct sdw_bus *bus = &cdns->bus; in intel_start_bus_after_reset() local
87 * all the masters are powered on for they are in the same power in intel_start_bus_after_reset()
89 * there is no need to clear slave status and reset bus. in intel_start_bus_after_reset()
91 clock_stop0 = sdw_cdns_is_clock_stop(&sdw->cdns); in intel_start_bus_after_reset()
101 sdw_clear_slave_status(bus, status); in intel_start_bus_after_reset()
107 if (bus->multi_link) in intel_start_bus_after_reset()
111 * Re-initialize the IP since it was powered-off in intel_start_bus_after_reset()
113 sdw_cdns_init(&sdw->cdns); in intel_start_bus_after_reset()
134 if (bus->multi_link) { in intel_start_bus_after_reset()
137 dev_err(sdw->cdns.dev, "sync go failed during resume\n"); in intel_start_bus_after_reset()
156 dev_err(dev, "unable to exit bus reset sequence during resume\n"); in intel_start_bus_after_reset()
163 schedule_delayed_work(&cdns->attach_dwork, in intel_start_bus_after_reset()
171 struct device *dev = sdw->cdns.dev; in intel_check_clock_stop()
174 clock_stop0 = sdw_cdns_is_clock_stop(&sdw->cdns); in intel_check_clock_stop()
181 struct device *dev = sdw->cdns.dev; in intel_start_bus_after_clock_stop()
182 struct sdw_cdns *cdns = &sdw->cdns; in intel_start_bus_after_clock_stop()
199 schedule_delayed_work(&cdns->attach_dwork, in intel_start_bus_after_clock_stop()
207 struct device *dev = sdw->cdns.dev; in intel_stop_bus()
208 struct sdw_cdns *cdns = &sdw->cdns; in intel_stop_bus()
212 cancel_delayed_work_sync(&cdns->attach_dwork); in intel_stop_bus()
245 struct sdw_cdns *cdns = &sdw->cdns; in intel_pre_bank_switch()
246 struct sdw_bus *bus = &cdns->bus; in intel_pre_bank_switch() local
248 /* Write to register only for multi-link */ in intel_pre_bank_switch()
249 if (!bus->multi_link) in intel_pre_bank_switch()
259 struct sdw_cdns *cdns = &sdw->cdns; in intel_post_bank_switch()
260 struct sdw_bus *bus = &cdns->bus; in intel_post_bank_switch() local
263 /* Write to register only for multi-link */ in intel_post_bank_switch()
264 if (!bus->multi_link) in intel_post_bank_switch()
267 mutex_lock(sdw->link_res->shim_lock); in intel_post_bank_switch()
270 * post_bank_switch() ops is called from the bus in loop for in intel_post_bank_switch()
280 mutex_unlock(sdw->link_res->shim_lock); in intel_post_bank_switch()
283 dev_err(sdw->cdns.dev, "Post bank switch failed: %d\n", ret); in intel_post_bank_switch()