Lines Matching full:slave

63 					  struct sdw_slave *slave,
84 ret = sdw_write_no_pm(slave, addr1, t_params->offset2);
91 ret = sdw_write_no_pm(slave, addr2, t_params->blk_pkg_mode);
108 ret = sdw_write_no_pm(slave, addr3, wbuf);
118 ret = sdw_write_no_pm(slave, addr4, wbuf);
131 struct sdw_slave_prop *slave_prop = &s_rt->slave->prop;
137 if (s_rt->slave->is_mockup_device)
140 dpn_prop = sdw_get_slave_dpn_prop(s_rt->slave,
166 ret = sdw_update_no_pm(s_rt->slave, addr1, 0xF, wbuf);
168 dev_err(&s_rt->slave->dev,
176 ret = sdw_write_no_pm(s_rt->slave, addr2, (p_params->bps - 1));
178 dev_err(&s_rt->slave->dev,
187 ret = sdw_write_no_pm(s_rt->slave, addr3, wbuf);
189 dev_err(&s_rt->slave->dev,
196 ret = sdw_write_no_pm(s_rt->slave, addr4, t_params->offset1);
198 dev_err(&s_rt->slave->dev,
206 ret = sdw_write_no_pm(s_rt->slave, addr5, t_params->blk_grp_ctrl);
208 dev_err(&s_rt->slave->dev,
217 ret = sdw_write_no_pm(s_rt->slave, addr6, t_params->lane_ctrl);
219 dev_err(&s_rt->slave->dev,
227 ret = _sdw_program_slave_port_params(bus, s_rt->slave,
230 dev_err(&s_rt->slave->dev,
262 * and Slave(s)
273 /* Program transport & port parameters for Slave(s) */
293 * sdw_enable_disable_slave_ports: Enable/disable slave data port
296 * @s_rt: slave runtime
322 ret = sdw_write_no_pm(s_rt->slave, addr, p_rt->ch_mask);
324 ret = sdw_write_no_pm(s_rt->slave, addr, 0x0);
327 dev_err(&s_rt->slave->dev,
328 "Slave chn_en reg write failed:%d port:%d\n",
370 * Slave(s)
381 /* Enable/Disable Slave port(s) */
406 struct sdw_slave *slave = s_rt->slave;
408 mutex_lock(&slave->sdw_dev_lock);
410 if (slave->probed) {
411 struct device *dev = &slave->dev;
415 ret = drv->ops->port_prep(slave, &prep_ch, cmd);
417 dev_err(dev, "Slave Port Prep cmd %d failed: %d\n",
422 mutex_unlock(&slave->sdw_dev_lock);
442 dpn_prop = sdw_get_slave_dpn_prop(s_rt->slave,
447 "Slave Port:%d properties not found\n", prep_ch.num);
465 ret = sdw_configure_dpn_intr(s_rt->slave, p_rt->num, prep,
471 /* Inform slave about the impending port prepare */
474 /* Prepare Slave port implementing CP_SM */
479 ret = sdw_write_no_pm(s_rt->slave, addr, p_rt->ch_mask);
481 ret = sdw_write_no_pm(s_rt->slave, addr, 0x0);
484 dev_err(&s_rt->slave->dev,
485 "Slave prep_ctrl reg write failed\n");
490 port_ready = &s_rt->slave->port_ready[prep_ch.num];
494 val = sdw_read_no_pm(s_rt->slave, SDW_DPN_PREPARESTATUS(p_rt->num));
497 dev_err(&s_rt->slave->dev,
508 ret = sdw_configure_dpn_intr(s_rt->slave, p_rt->num, prep,
544 * Slave(s)
555 /* Prepare/De-prepare Slave port(s) */
580 * This function notifies the Master(s) and Slave(s) of the
587 struct sdw_slave *slave;
597 slave = s_rt->slave;
599 mutex_lock(&slave->sdw_dev_lock);
601 if (slave->probed) {
602 struct device *dev = &slave->dev;
606 ret = drv->ops->bus_config(slave, &bus->params);
608 dev_err(dev, "Notify Slave: %d failed\n",
609 slave->dev_num);
610 mutex_unlock(&slave->sdw_dev_lock);
616 mutex_unlock(&slave->sdw_dev_lock);
624 * and Slave(s)
632 struct sdw_slave *slave;
637 list_for_each_entry(slave, &bus->slaves, node) {
638 if (!slave->dev_num_sticky)
640 if (!is_clock_scaling_supported_by_slave(slave)) {
641 dev_dbg(&slave->dev, "The Peripheral doesn't comply with SDCA\n");
652 list_for_each_entry(slave, &bus->slaves, node) {
656 if (!slave->dev_num_sticky)
658 scale_index = sdw_slave_get_scale_index(slave, &base);
662 ret = sdw_write_no_pm(slave, addr1, scale_index);
664 dev_err(&slave->dev, "SDW_SCP_BUSCLOCK_SCALE register write failed\n");
755 dev_err(bus->dev, "Slave frame_ctrl reg write failed\n");
961 static void sdw_slave_port_free(struct sdw_slave *slave,
970 if (s_rt->slave != slave)
981 static int sdw_slave_port_alloc(struct sdw_slave *slave,
1008 static int sdw_slave_port_config(struct sdw_slave *slave,
1020 * slave
1022 ret = sdw_slave_port_is_valid_range(&slave->dev, port_config[i].num);
1084 * sdw_slave_rt_alloc() - Allocate a Slave runtime handle.
1086 * @slave: Slave handle
1092 *sdw_slave_rt_alloc(struct sdw_slave *slave,
1102 s_rt->slave = slave;
1110 * sdw_slave_rt_config() - Configure a Slave runtime handle.
1112 * @s_rt: Slave runtime handle
1126 static struct sdw_slave_runtime *sdw_slave_rt_find(struct sdw_slave *slave,
1133 /* Retrieve Slave runtime handle */
1136 if (s_rt->slave == slave)
1144 * sdw_slave_rt_free() - Free Slave(s) runtime handle
1146 * @slave: Slave handle.
1151 static void sdw_slave_rt_free(struct sdw_slave *slave,
1156 s_rt = sdw_slave_rt_find(slave, stream);
1250 * It frees the Master runtime handle and associated Slave(s) runtime
1252 * no effect as Slave(s) runtime handle would already be freed up.
1261 sdw_slave_port_free(s_rt->slave, stream);
1262 sdw_slave_rt_free(s_rt->slave, stream);
1278 * @is_slave: is API called from Slave or Master
1319 * sdw_get_slave_dpn_prop() - Get Slave port capabilities
1321 * @slave: Slave handle
1325 struct sdw_dpn_prop *sdw_get_slave_dpn_prop(struct sdw_slave *slave,
1334 num_ports = hweight32(slave->prop.source_ports);
1335 dpn_prop = slave->prop.src_dpn_prop;
1337 num_ports = hweight32(slave->prop.sink_ports);
1338 dpn_prop = slave->prop.sink_dpn_prop;
1402 /* Prepare Master(s) and Slave(s) port(s) associated with stream */
1522 /* Enable Master(s) and Slave(s) port(s) associated with stream */
1954 * check if Master is already allocated (e.g. as a result of Slave adding
2037 * sdw_stream_add_slave() - Allocate and add master/slave runtime to a stream
2039 * @slave: SDW Slave instance
2045 * It is expected that Slave is added before adding Master
2049 int sdw_stream_add_slave(struct sdw_slave *slave,
2062 mutex_lock(&slave->bus->bus_lock);
2068 m_rt = sdw_master_rt_find(slave->bus, stream);
2071 * If this API is invoked by Slave first then m_rt is not valid.
2072 * So, allocate m_rt and add Slave to it.
2074 m_rt = sdw_master_rt_alloc(slave->bus, stream);
2076 dev_err(&slave->dev, "%s: Master runtime alloc failed for stream:%s\n",
2085 s_rt = sdw_slave_rt_find(slave, stream);
2087 s_rt = sdw_slave_rt_alloc(slave, m_rt);
2089 dev_err(&slave->dev, "Slave runtime alloc failed for stream:%s\n",
2099 ret = sdw_slave_port_alloc(slave, s_rt, num_ports);
2112 ret = sdw_config_stream(&slave->dev, stream, stream_config, true);
2116 ret = sdw_slave_port_config(slave, s_rt, port_config);
2121 * Change stream state to CONFIGURED on first Slave add.
2122 * Bus is not aware of number of Slave(s) in a stream at this
2123 * point so cannot depend on all Slave(s) to be added in order to
2138 sdw_slave_rt_free(slave, stream);
2140 mutex_unlock(&slave->bus->bus_lock);
2146 * sdw_stream_remove_slave() - Remove slave from sdw_stream
2148 * @slave: SDW Slave instance
2153 int sdw_stream_remove_slave(struct sdw_slave *slave,
2156 mutex_lock(&slave->bus->bus_lock);
2158 sdw_slave_port_free(slave, stream);
2159 sdw_slave_rt_free(slave, stream);
2161 mutex_unlock(&slave->bus->bus_lock);