Lines Matching full:slave
121 if (!rt5682->slave) in rt5682_sdw_hw_params()
132 retval = sdw_stream_add_slave(rt5682->slave, &stream_config, in rt5682_sdw_hw_params()
230 if (!rt5682->slave) in rt5682_sdw_hw_free()
233 sdw_stream_remove_slave(rt5682->slave, sdw_stream); in rt5682_sdw_hw_free()
298 struct sdw_slave *slave) in rt5682_sdw_init() argument
308 rt5682->slave = slave; in rt5682_sdw_init()
368 static int rt5682_io_init(struct device *dev, struct sdw_slave *slave) in rt5682_io_init() argument
385 * PM runtime status is marked as 'active' only when a Slave reports as Attached in rt5682_io_init()
389 pm_runtime_set_active(&slave->dev); in rt5682_io_init()
391 pm_runtime_get_noresume(&slave->dev); in rt5682_io_init()
472 /* Mark Slave initialization complete */ in rt5682_io_init()
477 pm_runtime_mark_last_busy(&slave->dev); in rt5682_io_init()
478 pm_runtime_put_autosuspend(&slave->dev); in rt5682_io_init()
480 dev_dbg(&slave->dev, "%s hw_init complete: %d\n", __func__, ret); in rt5682_io_init()
512 static int rt5682_update_status(struct sdw_slave *slave, in rt5682_update_status() argument
515 struct rt5682_priv *rt5682 = dev_get_drvdata(&slave->dev); in rt5682_update_status()
521 * Perform initialization only if slave status is present and in rt5682_update_status()
527 /* perform I/O transfers required for Slave initialization */ in rt5682_update_status()
528 return rt5682_io_init(&slave->dev, slave); in rt5682_update_status()
531 static int rt5682_read_prop(struct sdw_slave *slave) in rt5682_read_prop() argument
533 struct sdw_slave_prop *prop = &slave->prop; in rt5682_read_prop()
550 prop->src_dpn_prop = devm_kcalloc(&slave->dev, nval, in rt5682_read_prop()
569 prop->sink_dpn_prop = devm_kcalloc(&slave->dev, nval, in rt5682_read_prop()
641 static int rt5682_bus_config(struct sdw_slave *slave, in rt5682_bus_config() argument
644 struct rt5682_priv *rt5682 = dev_get_drvdata(&slave->dev); in rt5682_bus_config()
649 ret = rt5682_clock_config(&slave->dev); in rt5682_bus_config()
651 dev_err(&slave->dev, "%s: Invalid clk config", __func__); in rt5682_bus_config()
656 static int rt5682_interrupt_callback(struct sdw_slave *slave, in rt5682_interrupt_callback() argument
659 struct rt5682_priv *rt5682 = dev_get_drvdata(&slave->dev); in rt5682_interrupt_callback()
661 dev_dbg(&slave->dev, in rt5682_interrupt_callback()
681 static int rt5682_sdw_probe(struct sdw_slave *slave, in rt5682_sdw_probe() argument
687 regmap = devm_regmap_init_sdw(slave, &rt5682_sdw_regmap); in rt5682_sdw_probe()
691 return rt5682_sdw_init(&slave->dev, regmap, slave); in rt5682_sdw_probe()
694 static int rt5682_sdw_remove(struct sdw_slave *slave) in rt5682_sdw_remove() argument
696 struct rt5682_priv *rt5682 = dev_get_drvdata(&slave->dev); in rt5682_sdw_remove()
701 pm_runtime_disable(&slave->dev); in rt5682_sdw_remove()
731 struct sdw_slave *slave = dev_to_sdw_dev(dev); in rt5682_dev_system_suspend() local
744 ret = sdw_update_no_pm(slave, SDW_SCP_INTMASK1, in rt5682_dev_system_suspend()
750 dev_dbg(&slave->dev, "%s: could not disable imp-def interrupts\n:", __func__); in rt5682_dev_system_suspend()
758 struct sdw_slave *slave = dev_to_sdw_dev(dev); in rt5682_dev_resume() local
765 if (!slave->unattach_request) { in rt5682_dev_resume()
768 sdw_write_no_pm(slave, SDW_SCP_INTMASK1, SDW_SCP_INT1_IMPL_DEF); in rt5682_dev_resume()
775 time = wait_for_completion_timeout(&slave->initialization_complete, in rt5682_dev_resume()
778 dev_err(&slave->dev, "%s: Initialization not complete, timed out\n", __func__); in rt5682_dev_resume()
779 sdw_show_ping_status(slave->bus, true); in rt5682_dev_resume()
785 slave->unattach_request = 0; in rt5682_dev_resume()