Symbol: cdns
drivers/soundwire/cadence_master.c
1001
cdns_writel(cdns, CDNS_MCP_INTSTAT, int_status);
drivers/soundwire/cadence_master.c
1008
struct sdw_cdns *cdns =
drivers/soundwire/cadence_master.c
1015
val = cdns_readl(cdns, CDNS_MCP_SLAVE_STAT);
drivers/soundwire/cadence_master.c
1020
dev_dbg(cdns->dev, "Peripheral %d status: %d\n", i, status[i]);
drivers/soundwire/cadence_master.c
1024
mutex_lock(&cdns->status_update_lock);
drivers/soundwire/cadence_master.c
1025
ret = sdw_handle_slave_status(&cdns->bus, status);
drivers/soundwire/cadence_master.c
1026
mutex_unlock(&cdns->status_update_lock);
drivers/soundwire/cadence_master.c
1028
dev_err(cdns->dev, "%s: sdw_handle_slave_status failed: %d\n", __func__, ret);
drivers/soundwire/cadence_master.c
1039
struct sdw_cdns *cdns =
drivers/soundwire/cadence_master.c
1050
cdns_writel(cdns, CDNS_MCP_INTSTAT, CDNS_MCP_INT_SLAVE_MASK);
drivers/soundwire/cadence_master.c
1052
slave0 = cdns_readl(cdns, CDNS_MCP_SLAVE_INTSTAT0);
drivers/soundwire/cadence_master.c
1053
slave1 = cdns_readl(cdns, CDNS_MCP_SLAVE_INTSTAT1);
drivers/soundwire/cadence_master.c
1059
cdns_writel(cdns, CDNS_MCP_SLAVE_INTSTAT0, slave0);
drivers/soundwire/cadence_master.c
1060
cdns_writel(cdns, CDNS_MCP_SLAVE_INTSTAT1, slave1);
drivers/soundwire/cadence_master.c
1065
dev_dbg_ratelimited(cdns->dev, "Slave status change: 0x%llx\n", slave_intstat);
drivers/soundwire/cadence_master.c
1068
cdns_update_slave_status(cdns, slave_intstat);
drivers/soundwire/cadence_master.c
1092
device0_status = cdns_readl(cdns, CDNS_MCP_SLAVE_STAT);
drivers/soundwire/cadence_master.c
1097
dev_dbg_ratelimited(cdns->dev,
drivers/soundwire/cadence_master.c
1103
dev_err_ratelimited(cdns->dev,
drivers/soundwire/cadence_master.c
1110
cdns_updatel(cdns, CDNS_MCP_INTMASK,
drivers/soundwire/cadence_master.c
1116
void sdw_cdns_check_self_clearing_bits(struct sdw_cdns *cdns, const char *string,
drivers/soundwire/cadence_master.c
1127
ip_mcp_control = cdns_ip_readl(cdns, CDNS_IP_MCP_CONTROL);
drivers/soundwire/cadence_master.c
1131
dev_err(cdns->dev, "%s failed: IP_MCP_CONTROL_SW_RST is not cleared\n", string);
drivers/soundwire/cadence_master.c
1133
mcp_control = cdns_readl(cdns, CDNS_MCP_CONTROL);
drivers/soundwire/cadence_master.c
1137
dev_err(cdns->dev, "%s failed: MCP_CONTROL_CMD_RST is not cleared\n", string);
drivers/soundwire/cadence_master.c
1139
dev_err(cdns->dev, "%s failed: MCP_CONTROL_SOFT_RST is not cleared\n", string);
drivers/soundwire/cadence_master.c
1141
dev_err(cdns->dev, "%s failed: MCP_CONTROL_CLK_STOP_CLR is not cleared\n", string);
drivers/soundwire/cadence_master.c
1143
mcp_config_update = cdns_readl(cdns, CDNS_MCP_CONFIG_UPDATE);
drivers/soundwire/cadence_master.c
1145
dev_err(cdns->dev, "%s failed: MCP_CONFIG_UPDATE_BIT is not cleared\n", string);
drivers/soundwire/cadence_master.c
1150
dev_err(cdns->dev, "%s failed: MCP_CONTROL_HW_RST is not cleared\n", string);
drivers/soundwire/cadence_master.c
1154
dev_dbg(cdns->dev, "%s: MCP_CONTROL_HW_RST is not cleared at iteration %d\n", string, i);
drivers/soundwire/cadence_master.c
1158
mcp_control = cdns_readl(cdns, CDNS_MCP_CONTROL);
drivers/soundwire/cadence_master.c
1172
int sdw_cdns_exit_reset(struct sdw_cdns *cdns)
drivers/soundwire/cadence_master.c
1177
cdns_updatel(cdns, CDNS_MCP_CONTROL,
drivers/soundwire/cadence_master.c
1182
return cdns_config_update(cdns);
drivers/soundwire/cadence_master.c
1191
static void cdns_enable_slave_interrupts(struct sdw_cdns *cdns, bool state)
drivers/soundwire/cadence_master.c
1195
mask = cdns_readl(cdns, CDNS_MCP_INTMASK);
drivers/soundwire/cadence_master.c
1201
cdns_writel(cdns, CDNS_MCP_INTMASK, mask);
drivers/soundwire/cadence_master.c
1209
int sdw_cdns_enable_interrupt(struct sdw_cdns *cdns, bool state)
drivers/soundwire/cadence_master.c
1229
if (cdns->bus.params.m_data_mode != SDW_PORT_DATA_MODE_NORMAL)
drivers/soundwire/cadence_master.c
1249
slave_state = cdns_readl(cdns, CDNS_MCP_SLAVE_INTSTAT0);
drivers/soundwire/cadence_master.c
1250
cdns_writel(cdns, CDNS_MCP_SLAVE_INTSTAT0, slave_state);
drivers/soundwire/cadence_master.c
1251
slave_state = cdns_readl(cdns, CDNS_MCP_SLAVE_INTSTAT1);
drivers/soundwire/cadence_master.c
1252
cdns_writel(cdns, CDNS_MCP_SLAVE_INTSTAT1, slave_state);
drivers/soundwire/cadence_master.c
1254
cdns->interrupt_enabled = state;
drivers/soundwire/cadence_master.c
1266
cancel_work_sync(&cdns->work);
drivers/soundwire/cadence_master.c
1268
cdns_writel(cdns, CDNS_MCP_SLAVE_INTMASK0, slave_intmask0);
drivers/soundwire/cadence_master.c
1269
cdns_writel(cdns, CDNS_MCP_SLAVE_INTMASK1, slave_intmask1);
drivers/soundwire/cadence_master.c
1270
cdns_writel(cdns, CDNS_MCP_INTMASK, mask);
drivers/soundwire/cadence_master.c
1276
static int cdns_allocate_pdi(struct sdw_cdns *cdns,
drivers/soundwire/cadence_master.c
1286
pdi = devm_kcalloc(cdns->dev, num, sizeof(*pdi), GFP_KERNEL);
drivers/soundwire/cadence_master.c
1304
int sdw_cdns_pdi_init(struct sdw_cdns *cdns,
drivers/soundwire/cadence_master.c
1310
cdns->pcm.num_bd = config.pcm_bd;
drivers/soundwire/cadence_master.c
1311
cdns->pcm.num_in = config.pcm_in;
drivers/soundwire/cadence_master.c
1312
cdns->pcm.num_out = config.pcm_out;
drivers/soundwire/cadence_master.c
1315
stream = &cdns->pcm;
drivers/soundwire/cadence_master.c
1318
ret = cdns_allocate_pdi(cdns, &stream->bd, stream->num_bd);
drivers/soundwire/cadence_master.c
1322
ret = cdns_allocate_pdi(cdns, &stream->in, stream->num_in);
drivers/soundwire/cadence_master.c
1326
ret = cdns_allocate_pdi(cdns, &stream->out, stream->num_out);
drivers/soundwire/cadence_master.c
1332
cdns->num_ports = stream->num_pdi;
drivers/soundwire/cadence_master.c
1353
static int cdns_init_clock_ctrl(struct sdw_cdns *cdns)
drivers/soundwire/cadence_master.c
1355
struct sdw_bus *bus = &cdns->bus;
drivers/soundwire/cadence_master.c
1361
dev_dbg(cdns->dev, "mclk %d max %d row %d col %d\n",
drivers/soundwire/cadence_master.c
1368
dev_err(cdns->dev, "Default frame_rate %d or row %d is invalid\n",
drivers/soundwire/cadence_master.c
1377
cdns_updatel(cdns, CDNS_MCP_CLK_CTRL0,
drivers/soundwire/cadence_master.c
1379
cdns_updatel(cdns, CDNS_MCP_CLK_CTRL1,
drivers/soundwire/cadence_master.c
1392
cdns_writel(cdns, CDNS_MCP_FRAME_SHAPE_INIT, val);
drivers/soundwire/cadence_master.c
1396
cdns_writel(cdns, CDNS_MCP_SSP_CTRL0, ssp_interval);
drivers/soundwire/cadence_master.c
1397
cdns_writel(cdns, CDNS_MCP_SSP_CTRL1, ssp_interval);
drivers/soundwire/cadence_master.c
1406
int sdw_cdns_soft_reset(struct sdw_cdns *cdns)
drivers/soundwire/cadence_master.c
1410
cdns_updatel(cdns, CDNS_MCP_CONTROL, CDNS_MCP_CONTROL_SOFT_RST,
drivers/soundwire/cadence_master.c
1413
ret = cdns_config_update(cdns);
drivers/soundwire/cadence_master.c
1415
dev_err(cdns->dev, "%s: config update failed\n", __func__);
drivers/soundwire/cadence_master.c
1419
ret = cdns_set_wait(cdns, CDNS_MCP_CONTROL, CDNS_MCP_CONTROL_SOFT_RST, 0);
drivers/soundwire/cadence_master.c
1421
dev_err(cdns->dev, "%s: Soft Reset timed out\n", __func__);
drivers/soundwire/cadence_master.c
1431
int sdw_cdns_init(struct sdw_cdns *cdns)
drivers/soundwire/cadence_master.c
1436
ret = cdns_init_clock_ctrl(cdns);
drivers/soundwire/cadence_master.c
1440
sdw_cdns_check_self_clearing_bits(cdns, __func__, false, 0);
drivers/soundwire/cadence_master.c
1443
cdns->msg_count = cdns_readl(cdns, CDNS_MCP_FIFOLEVEL);
drivers/soundwire/cadence_master.c
1446
cdns_updatel(cdns, CDNS_MCP_CONTROL, CDNS_MCP_CONTROL_CMD_RST,
drivers/soundwire/cadence_master.c
1450
cdns_ip_updatel(cdns, CDNS_IP_MCP_CONTROL, CDNS_IP_MCP_CONTROL_CMD_ACCEPT,
drivers/soundwire/cadence_master.c
1454
cdns_ip_updatel(cdns, CDNS_IP_MCP_CONTROL,
drivers/soundwire/cadence_master.c
1459
val = cdns_readl(cdns, CDNS_MCP_CONFIG);
drivers/soundwire/cadence_master.c
1464
cdns_writel(cdns, CDNS_MCP_CONFIG, val);
drivers/soundwire/cadence_master.c
1467
val = cdns_ip_readl(cdns, CDNS_IP_MCP_CONFIG);
drivers/soundwire/cadence_master.c
1479
if (cdns->bus.multi_link)
drivers/soundwire/cadence_master.c
1487
cdns_ip_writel(cdns, CDNS_IP_MCP_CONFIG, val);
drivers/soundwire/cadence_master.c
1497
struct sdw_cdns *cdns = bus_to_cdns(bus);
drivers/soundwire/cadence_master.c
1502
dev_err(cdns->dev, "NULL curr_dr_freq\n");
drivers/soundwire/cadence_master.c
1515
cdns_updatel(cdns, mcp_clkctrl_off, CDNS_MCP_CLK_MCLKD_MASK, divider);
drivers/soundwire/cadence_master.c
1524
struct sdw_cdns *cdns = bus_to_cdns(bus);
drivers/soundwire/cadence_master.c
1532
if (target_num == cdns->pdi_loopback_target &&
drivers/soundwire/cadence_master.c
1533
cdns->pdi_loopback_source != -1) {
drivers/soundwire/cadence_master.c
1534
source_num = cdns->pdi_loopback_source;
drivers/soundwire/cadence_master.c
1546
dpn_config = cdns_readl(cdns, dpn_config_off_source);
drivers/soundwire/cadence_master.c
1555
cdns_writel(cdns, dpn_config_off_target, dpn_config);
drivers/soundwire/cadence_master.c
1564
struct sdw_cdns *cdns = bus_to_cdns(bus);
drivers/soundwire/cadence_master.c
1581
if (target_num == cdns->pdi_loopback_target &&
drivers/soundwire/cadence_master.c
1582
cdns->pdi_loopback_source != -1) {
drivers/soundwire/cadence_master.c
1583
source_num = cdns->pdi_loopback_source;
drivers/soundwire/cadence_master.c
1615
dpn_config = cdns_readl(cdns, dpn_config_off_source);
drivers/soundwire/cadence_master.c
1620
cdns_writel(cdns, dpn_config_off_target, dpn_config);
drivers/soundwire/cadence_master.c
1627
dpn_offsetctrl = cdns_readl(cdns, dpn_offsetctrl_off_source);
drivers/soundwire/cadence_master.c
1629
cdns_writel(cdns, dpn_offsetctrl_off_target, dpn_offsetctrl);
drivers/soundwire/cadence_master.c
1637
dpn_hctrl = cdns_readl(cdns, dpn_hctrl_off_source);
drivers/soundwire/cadence_master.c
1639
cdns_writel(cdns, dpn_hctrl_off_target, dpn_hctrl);
drivers/soundwire/cadence_master.c
1644
dpn_samplectrl = cdns_readl(cdns, dpn_samplectrl_off_source);
drivers/soundwire/cadence_master.c
1645
cdns_writel(cdns, dpn_samplectrl_off_target, dpn_samplectrl);
drivers/soundwire/cadence_master.c
1653
struct sdw_cdns *cdns = bus_to_cdns(bus);
drivers/soundwire/cadence_master.c
1662
cdns_writel(cdns, dpn_chnen_off, ch_mask);
drivers/soundwire/cadence_master.c
1678
bool sdw_cdns_is_clock_stop(struct sdw_cdns *cdns)
drivers/soundwire/cadence_master.c
1680
return !!(cdns_readl(cdns, CDNS_MCP_STAT) & CDNS_MCP_STAT_CLK_STOP);
drivers/soundwire/cadence_master.c
1690
int sdw_cdns_clock_stop(struct sdw_cdns *cdns, bool block_wake)
drivers/soundwire/cadence_master.c
1696
sdw_cdns_check_self_clearing_bits(cdns, __func__, false, 0);
drivers/soundwire/cadence_master.c
1699
if (sdw_cdns_is_clock_stop(cdns)) {
drivers/soundwire/cadence_master.c
1700
dev_dbg(cdns->dev, "Clock is already stopped\n");
drivers/soundwire/cadence_master.c
1709
cdns_enable_slave_interrupts(cdns, false);
drivers/soundwire/cadence_master.c
1717
cdns_ip_updatel(cdns, CDNS_IP_MCP_CONTROL,
drivers/soundwire/cadence_master.c
1721
list_for_each_entry(slave, &cdns->bus.slaves, node) {
drivers/soundwire/cadence_master.c
1730
ret = cdns_config_update(cdns);
drivers/soundwire/cadence_master.c
1732
dev_err(cdns->dev, "%s: config_update failed\n", __func__);
drivers/soundwire/cadence_master.c
1738
ret = sdw_bus_prep_clk_stop(&cdns->bus);
drivers/soundwire/cadence_master.c
1740
dev_err(cdns->dev, "prepare clock stop failed %d\n", ret);
drivers/soundwire/cadence_master.c
1749
ret = sdw_bus_clk_stop(&cdns->bus);
drivers/soundwire/cadence_master.c
1751
dev_err(cdns->dev, "bus clock stop failed %d\n", ret);
drivers/soundwire/cadence_master.c
1755
ret = cdns_set_wait(cdns, CDNS_MCP_STAT,
drivers/soundwire/cadence_master.c
1759
dev_err(cdns->dev, "Clock stop failed %d\n", ret);
drivers/soundwire/cadence_master.c
1772
int sdw_cdns_clock_restart(struct sdw_cdns *cdns, bool bus_reset)
drivers/soundwire/cadence_master.c
1777
cdns_enable_slave_interrupts(cdns, true);
drivers/soundwire/cadence_master.c
1779
ret = cdns_clear_bit(cdns, CDNS_MCP_CONTROL,
drivers/soundwire/cadence_master.c
1782
dev_err(cdns->dev, "Couldn't exit from clock stop\n");
drivers/soundwire/cadence_master.c
1786
ret = cdns_set_wait(cdns, CDNS_MCP_STAT, CDNS_MCP_STAT_CLK_STOP, 0);
drivers/soundwire/cadence_master.c
1788
dev_err(cdns->dev, "clock stop exit failed %d\n", ret);
drivers/soundwire/cadence_master.c
1792
cdns_ip_updatel(cdns, CDNS_IP_MCP_CONTROL,
drivers/soundwire/cadence_master.c
1795
cdns_ip_updatel(cdns, CDNS_IP_MCP_CONTROL, CDNS_IP_MCP_CONTROL_CMD_ACCEPT,
drivers/soundwire/cadence_master.c
1801
cdns_ip_updatel(cdns, CDNS_IP_MCP_CONFIG,
drivers/soundwire/cadence_master.c
1805
ret = cdns_config_update(cdns);
drivers/soundwire/cadence_master.c
1807
dev_err(cdns->dev, "%s: config_update failed\n", __func__);
drivers/soundwire/cadence_master.c
1811
ret = sdw_bus_exit_clk_stop(&cdns->bus);
drivers/soundwire/cadence_master.c
1813
dev_err(cdns->dev, "bus failed to exit clock stop %d\n", ret);
drivers/soundwire/cadence_master.c
1824
int sdw_cdns_probe(struct sdw_cdns *cdns)
drivers/soundwire/cadence_master.c
1826
init_completion(&cdns->tx_complete);
drivers/soundwire/cadence_master.c
1827
cdns->bus.port_ops = &cdns_port_ops;
drivers/soundwire/cadence_master.c
1829
mutex_init(&cdns->status_update_lock);
drivers/soundwire/cadence_master.c
1831
INIT_WORK(&cdns->work, cdns_update_slave_status_work);
drivers/soundwire/cadence_master.c
1832
INIT_DELAYED_WORK(&cdns->attach_dwork, cdns_check_attached_status_dwork);
drivers/soundwire/cadence_master.c
1841
struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai);
drivers/soundwire/cadence_master.c
1844
dai_runtime = cdns->dai_runtime_array[dai->id];
drivers/soundwire/cadence_master.c
1862
dai_runtime->bus = &cdns->bus;
drivers/soundwire/cadence_master.c
1863
dai_runtime->link_id = cdns->instance;
drivers/soundwire/cadence_master.c
1868
cdns->dai_runtime_array[dai->id] = dai_runtime;
drivers/soundwire/cadence_master.c
1880
cdns->dai_runtime_array[dai->id] = NULL;
drivers/soundwire/cadence_master.c
1897
static struct sdw_cdns_pdi *cdns_find_pdi(struct sdw_cdns *cdns,
drivers/soundwire/cadence_master.c
1919
void sdw_cdns_config_stream(struct sdw_cdns *cdns,
drivers/soundwire/cadence_master.c
1927
if (cdns->bus.params.m_data_mode != SDW_PORT_DATA_MODE_NORMAL)
drivers/soundwire/cadence_master.c
1933
cdns_updatel(cdns, offset,
drivers/soundwire/cadence_master.c
1945
cdns_writel(cdns, CDNS_PDI_CONFIG(pdi->num), val);
drivers/soundwire/cadence_master.c
1958
struct sdw_cdns_pdi *sdw_cdns_alloc_pdi(struct sdw_cdns *cdns,
drivers/soundwire/cadence_master.c
1965
pdi = cdns_find_pdi(cdns, stream->num_in, stream->in,
drivers/soundwire/cadence_master.c
1968
pdi = cdns_find_pdi(cdns, stream->num_out, stream->out,
drivers/soundwire/cadence_master.c
1973
pdi = cdns_find_pdi(cdns, stream->num_bd, stream->bd,
drivers/soundwire/cadence_master.c
205
static inline u32 cdns_readl(struct sdw_cdns *cdns, int offset)
drivers/soundwire/cadence_master.c
207
return readl(cdns->registers + offset);
drivers/soundwire/cadence_master.c
210
static inline void cdns_writel(struct sdw_cdns *cdns, int offset, u32 value)
drivers/soundwire/cadence_master.c
212
writel(value, cdns->registers + offset);
drivers/soundwire/cadence_master.c
215
static inline u32 cdns_ip_readl(struct sdw_cdns *cdns, int offset)
drivers/soundwire/cadence_master.c
217
return cdns_readl(cdns, cdns->ip_offset + offset);
drivers/soundwire/cadence_master.c
220
static inline void cdns_ip_writel(struct sdw_cdns *cdns, int offset, u32 value)
drivers/soundwire/cadence_master.c
222
return cdns_writel(cdns, cdns->ip_offset + offset, value);
drivers/soundwire/cadence_master.c
225
static inline void cdns_updatel(struct sdw_cdns *cdns,
drivers/soundwire/cadence_master.c
230
tmp = cdns_readl(cdns, offset);
drivers/soundwire/cadence_master.c
232
cdns_writel(cdns, offset, tmp);
drivers/soundwire/cadence_master.c
235
static inline void cdns_ip_updatel(struct sdw_cdns *cdns,
drivers/soundwire/cadence_master.c
238
cdns_updatel(cdns, cdns->ip_offset + offset, mask, val);
drivers/soundwire/cadence_master.c
241
static int cdns_set_wait(struct sdw_cdns *cdns, int offset, u32 mask, u32 value)
drivers/soundwire/cadence_master.c
248
reg_read = readl(cdns->registers + offset);
drivers/soundwire/cadence_master.c
259
static int cdns_clear_bit(struct sdw_cdns *cdns, int offset, u32 value)
drivers/soundwire/cadence_master.c
261
writel(value, cdns->registers + offset);
drivers/soundwire/cadence_master.c
264
return cdns_set_wait(cdns, offset, value, 0);
drivers/soundwire/cadence_master.c
271
static int cdns_config_update(struct sdw_cdns *cdns)
drivers/soundwire/cadence_master.c
275
if (sdw_cdns_is_clock_stop(cdns)) {
drivers/soundwire/cadence_master.c
276
dev_err(cdns->dev, "Cannot program MCP_CONFIG_UPDATE in ClockStopMode\n");
drivers/soundwire/cadence_master.c
280
ret = cdns_clear_bit(cdns, CDNS_MCP_CONFIG_UPDATE,
drivers/soundwire/cadence_master.c
283
dev_err(cdns->dev, "Config update timedout\n");
drivers/soundwire/cadence_master.c
292
void sdw_cdns_config_update(struct sdw_cdns *cdns)
drivers/soundwire/cadence_master.c
295
cdns_writel(cdns, CDNS_MCP_CONFIG_UPDATE, CDNS_MCP_CONFIG_UPDATE_BIT);
drivers/soundwire/cadence_master.c
303
int sdw_cdns_config_update_set_wait(struct sdw_cdns *cdns)
drivers/soundwire/cadence_master.c
306
return cdns_set_wait(cdns, CDNS_MCP_CONFIG_UPDATE,
drivers/soundwire/cadence_master.c
318
static ssize_t cdns_sprintf(struct sdw_cdns *cdns,
drivers/soundwire/cadence_master.c
322
"%4x\t%8x\n", reg, cdns_readl(cdns, reg));
drivers/soundwire/cadence_master.c
327
struct sdw_cdns *cdns = s->private;
drivers/soundwire/cadence_master.c
340
ret += cdns_sprintf(cdns, buf, ret, i);
drivers/soundwire/cadence_master.c
346
ret += cdns_sprintf(cdns, buf, ret, i);
drivers/soundwire/cadence_master.c
350
ret += cdns_sprintf(cdns, buf, ret, CDNS_MCP_SSP_CTRL0);
drivers/soundwire/cadence_master.c
351
ret += cdns_sprintf(cdns, buf, ret, CDNS_MCP_SSP_CTRL1);
drivers/soundwire/cadence_master.c
352
ret += cdns_sprintf(cdns, buf, ret, CDNS_MCP_CLK_CTRL0);
drivers/soundwire/cadence_master.c
353
ret += cdns_sprintf(cdns, buf, ret, CDNS_MCP_CLK_CTRL1);
drivers/soundwire/cadence_master.c
358
num_ports = cdns->num_ports;
drivers/soundwire/cadence_master.c
365
ret += cdns_sprintf(cdns, buf, ret, j);
drivers/soundwire/cadence_master.c
376
ret += cdns_sprintf(cdns, buf, ret, j);
drivers/soundwire/cadence_master.c
382
ret += cdns_sprintf(cdns, buf, ret,
drivers/soundwire/cadence_master.c
390
ret += cdns_sprintf(cdns, buf, ret, CDNS_PDI_CONFIG(i));
drivers/soundwire/cadence_master.c
400
struct sdw_cdns *cdns = data;
drivers/soundwire/cadence_master.c
409
ret = sdw_cdns_exit_reset(cdns);
drivers/soundwire/cadence_master.c
411
dev_dbg(cdns->dev, "link hw_reset done: %d\n", ret);
drivers/soundwire/cadence_master.c
420
struct sdw_cdns *cdns = data;
drivers/soundwire/cadence_master.c
427
bus = &cdns->bus;
drivers/soundwire/cadence_master.c
435
dev_err_ratelimited(cdns->dev,
drivers/soundwire/cadence_master.c
454
cdns_ip_updatel(cdns, CDNS_IP_MCP_CMDCTRL,
drivers/soundwire/cadence_master.c
459
ret = cdns_clear_bit(cdns, CDNS_MCP_CONFIG_UPDATE, CDNS_MCP_CONFIG_UPDATE_BIT);
drivers/soundwire/cadence_master.c
464
ret = sdw_bread_no_pm_unlocked(&cdns->bus, 0xf, SDW_SCP_DEVID_0);
drivers/soundwire/cadence_master.c
465
dev_info(cdns->dev, "parity error injection, read: %d\n", ret);
drivers/soundwire/cadence_master.c
468
cdns_ip_updatel(cdns, CDNS_IP_MCP_CMDCTRL,
drivers/soundwire/cadence_master.c
473
ret = cdns_clear_bit(cdns, CDNS_MCP_CONFIG_UPDATE, CDNS_MCP_CONFIG_UPDATE_BIT);
drivers/soundwire/cadence_master.c
499
struct sdw_cdns *cdns = data;
drivers/soundwire/cadence_master.c
500
unsigned int pdi_out_num = cdns->pcm.num_bd + cdns->pcm.num_out;
drivers/soundwire/cadence_master.c
508
cdns->pdi_loopback_source = value;
drivers/soundwire/cadence_master.c
516
struct sdw_cdns *cdns = data;
drivers/soundwire/cadence_master.c
517
unsigned int pdi_in_num = cdns->pcm.num_bd + cdns->pcm.num_in;
drivers/soundwire/cadence_master.c
525
cdns->pdi_loopback_target = value;
drivers/soundwire/cadence_master.c
536
void sdw_cdns_debugfs_init(struct sdw_cdns *cdns, struct dentry *root)
drivers/soundwire/cadence_master.c
538
debugfs_create_file("cdns-registers", 0400, root, cdns, &cdns_reg_fops);
drivers/soundwire/cadence_master.c
540
debugfs_create_file("cdns-hw-reset", 0200, root, cdns,
drivers/soundwire/cadence_master.c
543
debugfs_create_file("cdns-parity-error-injection", 0200, root, cdns,
drivers/soundwire/cadence_master.c
546
cdns->pdi_loopback_source = -1;
drivers/soundwire/cadence_master.c
547
cdns->pdi_loopback_target = -1;
drivers/soundwire/cadence_master.c
549
debugfs_create_file("cdns-pdi-loopback-source", 0200, root, cdns,
drivers/soundwire/cadence_master.c
552
debugfs_create_file("cdns-pdi-loopback-target", 0200, root, cdns,
drivers/soundwire/cadence_master.c
564
cdns_fill_msg_resp(struct sdw_cdns *cdns,
drivers/soundwire/cadence_master.c
572
if (!(cdns->response_buf[i] & CDNS_MCP_RESP_ACK)) {
drivers/soundwire/cadence_master.c
574
dev_vdbg(cdns->dev, "Msg Ack not received, cmd %d\n", i);
drivers/soundwire/cadence_master.c
576
if (cdns->response_buf[i] & CDNS_MCP_RESP_NACK) {
drivers/soundwire/cadence_master.c
578
dev_err_ratelimited(cdns->dev, "Msg NACK received, cmd %d\n", i);
drivers/soundwire/cadence_master.c
583
dev_err_ratelimited(cdns->dev, "Msg NACKed for Slave %d\n", msg->dev_num);
drivers/soundwire/cadence_master.c
588
dev_dbg_ratelimited(cdns->dev, "Msg ignored for Slave %d\n", msg->dev_num);
drivers/soundwire/cadence_master.c
596
cdns->response_buf[i]);
drivers/soundwire/cadence_master.c
602
static void cdns_read_response(struct sdw_cdns *cdns)
drivers/soundwire/cadence_master.c
608
BUILD_BUG_ON(ARRAY_SIZE(cdns->response_buf) < CDNS_MCP_CMD_LEN + 2);
drivers/soundwire/cadence_master.c
610
num_resp = cdns_readl(cdns, CDNS_MCP_FIFOSTAT);
drivers/soundwire/cadence_master.c
612
if (num_resp > ARRAY_SIZE(cdns->response_buf)) {
drivers/soundwire/cadence_master.c
613
dev_warn(cdns->dev, "RX AVAIL %d too long\n", num_resp);
drivers/soundwire/cadence_master.c
614
num_resp = ARRAY_SIZE(cdns->response_buf);
drivers/soundwire/cadence_master.c
620
cdns->response_buf[i] = cdns_ip_readl(cdns, cmd_base);
drivers/soundwire/cadence_master.c
626
_cdns_xfer_msg(struct sdw_cdns *cdns, struct sdw_msg *msg, int cmd,
drivers/soundwire/cadence_master.c
634
if (cdns->msg_count != count) {
drivers/soundwire/cadence_master.c
635
cdns_writel(cdns, CDNS_MCP_FIFOLEVEL, count);
drivers/soundwire/cadence_master.c
636
cdns->msg_count = count;
drivers/soundwire/cadence_master.c
652
cdns_ip_writel(cdns, base, data);
drivers/soundwire/cadence_master.c
660
time = wait_for_completion_timeout(&cdns->tx_complete,
drivers/soundwire/cadence_master.c
663
dev_err(cdns->dev, "IO transfer timed out, cmd %d device %d addr %x len %d\n",
drivers/soundwire/cadence_master.c
668
cdns_read_response(cdns);
drivers/soundwire/cadence_master.c
673
return cdns_fill_msg_resp(cdns, msg, count, offset);
drivers/soundwire/cadence_master.c
677
cdns_program_scp_addr(struct sdw_cdns *cdns, struct sdw_msg *msg)
drivers/soundwire/cadence_master.c
685
if (cdns->msg_count != CDNS_SCP_RX_FIFOLEVEL) {
drivers/soundwire/cadence_master.c
686
cdns_writel(cdns, CDNS_MCP_FIFOLEVEL, CDNS_SCP_RX_FIFOLEVEL);
drivers/soundwire/cadence_master.c
687
cdns->msg_count = CDNS_SCP_RX_FIFOLEVEL;
drivers/soundwire/cadence_master.c
701
cdns_ip_writel(cdns, base, data[0]);
drivers/soundwire/cadence_master.c
703
cdns_ip_writel(cdns, base, data[1]);
drivers/soundwire/cadence_master.c
705
time = wait_for_completion_timeout(&cdns->tx_complete,
drivers/soundwire/cadence_master.c
708
dev_err(cdns->dev, "SCP Msg trf timed out\n");
drivers/soundwire/cadence_master.c
715
if (!(cdns->response_buf[i] & CDNS_MCP_RESP_ACK)) {
drivers/soundwire/cadence_master.c
717
dev_err(cdns->dev, "Program SCP Ack not received\n");
drivers/soundwire/cadence_master.c
718
if (cdns->response_buf[i] & CDNS_MCP_RESP_NACK) {
drivers/soundwire/cadence_master.c
720
dev_err(cdns->dev, "Program SCP NACK received\n");
drivers/soundwire/cadence_master.c
727
dev_err_ratelimited(cdns->dev,
drivers/soundwire/cadence_master.c
733
dev_dbg_ratelimited(cdns->dev,
drivers/soundwire/cadence_master.c
741
static int cdns_prep_msg(struct sdw_cdns *cdns, struct sdw_msg *msg, int *cmd)
drivers/soundwire/cadence_master.c
746
ret = cdns_program_scp_addr(cdns, msg);
drivers/soundwire/cadence_master.c
763
dev_err(cdns->dev, "Invalid msg cmd: %d\n", msg->flags);
drivers/soundwire/cadence_master.c
773
struct sdw_cdns *cdns = bus_to_cdns(bus);
drivers/soundwire/cadence_master.c
776
ret = cdns_prep_msg(cdns, msg, &cmd);
drivers/soundwire/cadence_master.c
781
ret = _cdns_xfer_msg(cdns, msg, cmd, i * CDNS_MCP_CMD_LEN,
drivers/soundwire/cadence_master.c
790
return _cdns_xfer_msg(cdns, msg, cmd, i * CDNS_MCP_CMD_LEN,
drivers/soundwire/cadence_master.c
798
struct sdw_cdns *cdns = bus_to_cdns(bus);
drivers/soundwire/cadence_master.c
807
ret = cdns_prep_msg(cdns, msg, &cmd);
drivers/soundwire/cadence_master.c
811
return _cdns_xfer_msg(cdns, msg, cmd, 0, msg->len, true);
drivers/soundwire/cadence_master.c
817
struct sdw_cdns *cdns = bus_to_cdns(bus);
drivers/soundwire/cadence_master.c
819
return cdns_readl(cdns, CDNS_MCP_SLAVE_STAT);
drivers/soundwire/cadence_master.c
827
static int cdns_update_slave_status(struct sdw_cdns *cdns,
drivers/soundwire/cadence_master.c
873
val = cdns_readl(cdns, CDNS_MCP_SLAVE_STAT);
drivers/soundwire/cadence_master.c
897
mutex_lock(&cdns->status_update_lock);
drivers/soundwire/cadence_master.c
898
ret = sdw_handle_slave_status(&cdns->bus, status);
drivers/soundwire/cadence_master.c
899
mutex_unlock(&cdns->status_update_lock);
drivers/soundwire/cadence_master.c
913
struct sdw_cdns *cdns = dev_id;
drivers/soundwire/cadence_master.c
917
if (!cdns->link_up)
drivers/soundwire/cadence_master.c
920
int_status = cdns_readl(cdns, CDNS_MCP_INTSTAT);
drivers/soundwire/cadence_master.c
930
struct sdw_bus *bus = &cdns->bus;
drivers/soundwire/cadence_master.c
933
cdns_read_response(cdns);
drivers/soundwire/cadence_master.c
940
cdns_writel(cdns, CDNS_MCP_INTSTAT, CDNS_MCP_INT_RX_WL);
drivers/soundwire/cadence_master.c
944
cdns_fill_msg_resp(cdns, defer->msg,
drivers/soundwire/cadence_master.c
948
complete(&cdns->tx_complete);
drivers/soundwire/cadence_master.c
954
dev_err_ratelimited(cdns->dev, "Parity error\n");
drivers/soundwire/cadence_master.c
959
dev_err_ratelimited(cdns->dev, "Bus clash for control word\n");
drivers/soundwire/cadence_master.c
967
dev_err_ratelimited(cdns->dev, "Bus clash for data word\n");
drivers/soundwire/cadence_master.c
970
if (cdns->bus.params.m_data_mode != SDW_PORT_DATA_MODE_NORMAL &&
drivers/soundwire/cadence_master.c
975
port_intstat = cdns_readl(cdns, CDNS_MCP_PORT_INTSTAT);
drivers/soundwire/cadence_master.c
976
dev_err_ratelimited(cdns->dev, "DP interrupt: PortIntStat %8x\n",
drivers/soundwire/cadence_master.c
980
cdns_writel(cdns, CDNS_MCP_PORT_INTSTAT, port_intstat);
drivers/soundwire/cadence_master.c
985
cdns_updatel(cdns, CDNS_MCP_INTMASK,
drivers/soundwire/cadence_master.c
997
if (cdns->interrupt_enabled)
drivers/soundwire/cadence_master.c
998
schedule_work(&cdns->work);
drivers/soundwire/cadence_master.h
167
int sdw_cdns_probe(struct sdw_cdns *cdns);
drivers/soundwire/cadence_master.h
172
int sdw_cdns_soft_reset(struct sdw_cdns *cdns);
drivers/soundwire/cadence_master.h
173
int sdw_cdns_init(struct sdw_cdns *cdns);
drivers/soundwire/cadence_master.h
174
int sdw_cdns_pdi_init(struct sdw_cdns *cdns,
drivers/soundwire/cadence_master.h
176
int sdw_cdns_exit_reset(struct sdw_cdns *cdns);
drivers/soundwire/cadence_master.h
177
int sdw_cdns_enable_interrupt(struct sdw_cdns *cdns, bool state);
drivers/soundwire/cadence_master.h
179
bool sdw_cdns_is_clock_stop(struct sdw_cdns *cdns);
drivers/soundwire/cadence_master.h
180
int sdw_cdns_clock_stop(struct sdw_cdns *cdns, bool block_wake);
drivers/soundwire/cadence_master.h
181
int sdw_cdns_clock_restart(struct sdw_cdns *cdns, bool bus_reset);
drivers/soundwire/cadence_master.h
184
void sdw_cdns_debugfs_init(struct sdw_cdns *cdns, struct dentry *root);
drivers/soundwire/cadence_master.h
187
struct sdw_cdns_pdi *sdw_cdns_alloc_pdi(struct sdw_cdns *cdns,
drivers/soundwire/cadence_master.h
190
void sdw_cdns_config_stream(struct sdw_cdns *cdns,
drivers/soundwire/cadence_master.h
206
void sdw_cdns_check_self_clearing_bits(struct sdw_cdns *cdns, const char *string,
drivers/soundwire/cadence_master.h
209
void sdw_cdns_config_update(struct sdw_cdns *cdns);
drivers/soundwire/cadence_master.h
210
int sdw_cdns_config_update_set_wait(struct sdw_cdns *cdns);
drivers/soundwire/intel.c
1018
struct sdw_cdns *cdns = &sdw->cdns;
drivers/soundwire/intel.c
1025
ret = sdw_cdns_pdi_init(cdns, config);
drivers/soundwire/intel.c
1029
intel_pdi_stream_ch_update(sdw, &sdw->cdns.pcm);
drivers/soundwire/intel.c
1032
num_dai = cdns->pcm.num_pdi;
drivers/soundwire/intel.c
1034
dai_runtime_array = devm_kcalloc(cdns->dev, num_dai,
drivers/soundwire/intel.c
1039
cdns->dai_runtime_array = dai_runtime_array;
drivers/soundwire/intel.c
1041
dais = devm_kcalloc(cdns->dev, num_dai, sizeof(*dais), GFP_KERNEL);
drivers/soundwire/intel.c
1046
stream = &cdns->pcm;
drivers/soundwire/intel.c
1048
ret = intel_create_dai(cdns, dais, INTEL_PDI_IN, cdns->pcm.num_in,
drivers/soundwire/intel.c
1053
off += cdns->pcm.num_in;
drivers/soundwire/intel.c
1054
ret = intel_create_dai(cdns, dais, INTEL_PDI_OUT, cdns->pcm.num_out,
drivers/soundwire/intel.c
1059
off += cdns->pcm.num_out;
drivers/soundwire/intel.c
1060
ret = intel_create_dai(cdns, dais, INTEL_PDI_BD, cdns->pcm.num_bd,
drivers/soundwire/intel.c
1065
return devm_snd_soc_register_component(cdns->dev, &dai_component,
drivers/soundwire/intel.c
140
struct sdw_bus *bus = &sdw->cdns.bus;
drivers/soundwire/intel.c
158
struct sdw_bus *bus = &sdw->cdns.bus;
drivers/soundwire/intel.c
175
struct dentry *root = sdw->cdns.bus.debugfs;
drivers/soundwire/intel.c
191
sdw_cdns_debugfs_init(&sdw->cdns, sdw->debugfs);
drivers/soundwire/intel.c
342
struct sdw_bus *bus = &sdw->cdns.bus;
drivers/soundwire/intel.c
373
dev_err(sdw->cdns.dev, "%s: invalid clock configuration, mclk %d lcap_mlcs %d\n",
drivers/soundwire/intel.c
393
dev_dbg(sdw->cdns.dev, "powering up all links\n");
drivers/soundwire/intel.c
396
dev_dbg(sdw->cdns.dev,
drivers/soundwire/intel.c
418
dev_err(sdw->cdns.dev, "Failed to power up link: %d\n", ret);
drivers/soundwire/intel.c
426
dev_err(sdw->cdns.dev,
drivers/soundwire/intel.c
441
sdw->cdns.link_up = true;
drivers/soundwire/intel.c
462
dev_err(sdw->cdns.dev,
drivers/soundwire/intel.c
465
sdw->cdns.link_up = false;
drivers/soundwire/intel.c
473
dev_dbg(sdw->cdns.dev, "powering down all links\n");
drivers/soundwire/intel.c
486
dev_err(sdw->cdns.dev, "%s: could not power down link\n", __func__);
drivers/soundwire/intel.c
565
dev_dbg(sdw->cdns.dev, "PCM cap bd:%d in:%d out:%d\n",
drivers/soundwire/intel.c
724
struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai);
drivers/soundwire/intel.c
725
struct sdw_intel *sdw = cdns_to_intel(cdns);
drivers/soundwire/intel.c
732
dai_runtime = cdns->dai_runtime_array[dai->id];
drivers/soundwire/intel.c
742
pdi = sdw_cdns_alloc_pdi(cdns, &cdns->pcm, ch, dir, dai->id);
drivers/soundwire/intel.c
750
sdw_cdns_config_stream(cdns, ch, dir, pdi);
drivers/soundwire/intel.c
779
ret = sdw_stream_add_master(&cdns->bus, &sconfig,
drivers/soundwire/intel.c
782
dev_err(cdns->dev, "add master to stream failed:%d\n", ret);
drivers/soundwire/intel.c
790
struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai);
drivers/soundwire/intel.c
791
struct sdw_intel *sdw = cdns_to_intel(cdns);
drivers/soundwire/intel.c
796
dai_runtime = cdns->dai_runtime_array[dai->id];
drivers/soundwire/intel.c
828
sdw_cdns_config_stream(cdns, ch, dir, dai_runtime->pdi);
drivers/soundwire/intel.c
843
struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai);
drivers/soundwire/intel.c
844
struct sdw_intel *sdw = cdns_to_intel(cdns);
drivers/soundwire/intel.c
848
dai_runtime = cdns->dai_runtime_array[dai->id];
drivers/soundwire/intel.c
858
ret = sdw_stream_remove_master(&cdns->bus, dai_runtime->stream);
drivers/soundwire/intel.c
885
struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai);
drivers/soundwire/intel.c
888
dai_runtime = cdns->dai_runtime_array[dai->id];
drivers/soundwire/intel.c
897
struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai);
drivers/soundwire/intel.c
901
dai_runtime = cdns->dai_runtime_array[dai->id];
drivers/soundwire/intel.c
953
struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai);
drivers/soundwire/intel.c
956
dai_runtime = cdns->dai_runtime_array[dai->id];
drivers/soundwire/intel.c
981
static int intel_create_dai(struct sdw_cdns *cdns,
drivers/soundwire/intel.c
992
dais[i].name = devm_kasprintf(cdns->dev, GFP_KERNEL,
drivers/soundwire/intel.c
994
cdns->instance, i);
drivers/soundwire/intel.h
127
#define cdns_to_intel(_cdns) container_of(_cdns, struct sdw_intel, cdns)
drivers/soundwire/intel.h
48
struct sdw_cdns *cdns;
drivers/soundwire/intel.h
76
struct sdw_cdns cdns;
drivers/soundwire/intel_ace2x.c
1010
static int intel_create_dai(struct sdw_cdns *cdns,
drivers/soundwire/intel_ace2x.c
1021
dais[i].name = devm_kasprintf(cdns->dev, GFP_KERNEL,
drivers/soundwire/intel_ace2x.c
1023
cdns->instance, i);
drivers/soundwire/intel_ace2x.c
103
pdi0 = sdw_cdns_alloc_pdi(cdns, &cdns->pcm, 1, dir, 0);
drivers/soundwire/intel_ace2x.c
1047
struct sdw_cdns *cdns = &sdw->cdns;
drivers/soundwire/intel_ace2x.c
105
dev_err(cdns->dev, "%s: sdw_cdns_alloc_pdi0 failed\n", __func__);
drivers/soundwire/intel_ace2x.c
1056
ret = sdw_cdns_pdi_init(cdns, config);
drivers/soundwire/intel_ace2x.c
1060
intel_pdi_stream_ch_update(sdw, &sdw->cdns.pcm);
drivers/soundwire/intel_ace2x.c
1063
num_dai = cdns->pcm.num_pdi;
drivers/soundwire/intel_ace2x.c
1065
dai_runtime_array = devm_kcalloc(cdns->dev, num_dai,
drivers/soundwire/intel_ace2x.c
1070
cdns->dai_runtime_array = dai_runtime_array;
drivers/soundwire/intel_ace2x.c
1072
dais = devm_kcalloc(cdns->dev, num_dai, sizeof(*dais), GFP_KERNEL);
drivers/soundwire/intel_ace2x.c
1077
stream = &cdns->pcm;
drivers/soundwire/intel_ace2x.c
1079
ret = intel_create_dai(cdns, dais, INTEL_PDI_IN, cdns->pcm.num_in,
drivers/soundwire/intel_ace2x.c
1084
off += cdns->pcm.num_in;
drivers/soundwire/intel_ace2x.c
1085
ret = intel_create_dai(cdns, dais, INTEL_PDI_OUT, cdns->pcm.num_out,
drivers/soundwire/intel_ace2x.c
1090
off += cdns->pcm.num_out;
drivers/soundwire/intel_ace2x.c
1091
ret = intel_create_dai(cdns, dais, INTEL_PDI_BD, cdns->pcm.num_bd,
drivers/soundwire/intel_ace2x.c
1096
return devm_snd_soc_register_component(cdns->dev, &dai_component,
drivers/soundwire/intel_ace2x.c
110
sdw_cdns_config_stream(cdns, 1, dir, pdi0);
drivers/soundwire/intel_ace2x.c
1106
dev_err(sdw->cdns.dev, "%s: could not set lsdiid for link %d %d\n",
drivers/soundwire/intel_ace2x.c
1116
dev_err(sdw->cdns.dev, "%s: could not retrieve link count\n", __func__);
drivers/soundwire/intel_ace2x.c
1121
dev_err(sdw->cdns.dev, "%s: link count %d exceed max %d\n", __func__, ret, SDW_INTEL_MAX_LINKS);
drivers/soundwire/intel_ace2x.c
115
pdi1 = sdw_cdns_alloc_pdi(cdns, &cdns->pcm, 1, dir, 1);
drivers/soundwire/intel_ace2x.c
117
dev_err(cdns->dev, "%s: sdw_cdns_alloc_pdi1 failed\n", __func__);
drivers/soundwire/intel_ace2x.c
122
sdw_cdns_config_stream(cdns, 1, dir, pdi1);
drivers/soundwire/intel_ace2x.c
146
ret = sdw_stream_add_master(&cdns->bus, &sconfig, pconfig, 2, stream);
drivers/soundwire/intel_ace2x.c
150
dev_err(cdns->dev, "add master to stream failed:%d\n", ret);
drivers/soundwire/intel_ace2x.c
154
ret = sdw_prepare_stream(cdns->bus.bpt_stream);
drivers/soundwire/intel_ace2x.c
160
ret = sdw_cdns_bpt_find_bandwidth(command, cdns->bus.params.row,
drivers/soundwire/intel_ace2x.c
161
cdns->bus.params.col,
drivers/soundwire/intel_ace2x.c
173
ret = sdw_cdns_bpt_find_buffer_sizes(command, cdns->bus.params.row,
drivers/soundwire/intel_ace2x.c
174
cdns->bus.params.col,
drivers/soundwire/intel_ace2x.c
197
ret = sdw_cdns_bpt_find_buffer_sizes(command, cdns->bus.params.row,
drivers/soundwire/intel_ace2x.c
198
cdns->bus.params.col,
drivers/soundwire/intel_ace2x.c
229
dev_dbg(cdns->dev, "Message len %d transferred in %d frames (%d per frame)\n",
drivers/soundwire/intel_ace2x.c
231
dev_dbg(cdns->dev, "sizes pdi0 %d pdi1 %d tx_bandwidth %d rx_bandwidth %d\n",
drivers/soundwire/intel_ace2x.c
234
ret = hda_sdw_bpt_open(cdns->dev->parent, /* PCI device */
drivers/soundwire/intel_ace2x.c
240
dev_err(cdns->dev, "%s: hda_sdw_bpt_open failed %d\n", __func__, ret);
drivers/soundwire/intel_ace2x.c
260
dev_err(cdns->dev, "%s: sdw_prepare_%s_dma_buffer failed %d\n",
drivers/soundwire/intel_ace2x.c
263
ret1 = hda_sdw_bpt_close(cdns->dev->parent, /* PCI device */
drivers/soundwire/intel_ace2x.c
267
dev_err(cdns->dev, "%s: hda_sdw_bpt_close failed: ret %d\n",
drivers/soundwire/intel_ace2x.c
271
sdw_deprepare_stream(cdns->bus.bpt_stream);
drivers/soundwire/intel_ace2x.c
274
ret1 = sdw_stream_remove_master(&cdns->bus, cdns->bus.bpt_stream);
drivers/soundwire/intel_ace2x.c
276
dev_err(cdns->dev, "%s: remove master failed: %d\n",
drivers/soundwire/intel_ace2x.c
280
ret1 = sdw_stream_remove_slave(slave, cdns->bus.bpt_stream);
drivers/soundwire/intel_ace2x.c
282
dev_err(cdns->dev, "%s: remove slave failed: %d\n",
drivers/soundwire/intel_ace2x.c
286
sdw_release_stream(cdns->bus.bpt_stream);
drivers/soundwire/intel_ace2x.c
287
cdns->bus.bpt_stream = NULL;
drivers/soundwire/intel_ace2x.c
295
struct sdw_cdns *cdns = &sdw->cdns;
drivers/soundwire/intel_ace2x.c
298
ret = hda_sdw_bpt_close(cdns->dev->parent /* PCI device */, sdw->bpt_ctx.bpt_tx_stream,
drivers/soundwire/intel_ace2x.c
302
dev_err(cdns->dev, "%s: hda_sdw_bpt_close failed: ret %d\n",
drivers/soundwire/intel_ace2x.c
305
ret = sdw_deprepare_stream(cdns->bus.bpt_stream);
drivers/soundwire/intel_ace2x.c
307
dev_err(cdns->dev, "%s: sdw_deprepare_stream failed: ret %d\n",
drivers/soundwire/intel_ace2x.c
310
ret = sdw_stream_remove_master(&cdns->bus, cdns->bus.bpt_stream);
drivers/soundwire/intel_ace2x.c
312
dev_err(cdns->dev, "%s: remove master failed: %d\n",
drivers/soundwire/intel_ace2x.c
315
ret = sdw_stream_remove_slave(slave, cdns->bus.bpt_stream);
drivers/soundwire/intel_ace2x.c
317
dev_err(cdns->dev, "%s: remove slave failed: %d\n",
drivers/soundwire/intel_ace2x.c
320
sdw_release_stream(cdns->bus.bpt_stream);
drivers/soundwire/intel_ace2x.c
321
cdns->bus.bpt_stream = NULL;
drivers/soundwire/intel_ace2x.c
329
struct sdw_cdns *cdns = &sdw->cdns;
drivers/soundwire/intel_ace2x.c
338
dev_err(cdns->dev, "BPT message length %d is less than the minimum bytes %d\n",
drivers/soundwire/intel_ace2x.c
343
dev_dbg(cdns->dev, "BPT Transfer start\n");
drivers/soundwire/intel_ace2x.c
349
ret = hda_sdw_bpt_send_async(cdns->dev->parent, /* PCI device */
drivers/soundwire/intel_ace2x.c
352
dev_err(cdns->dev, "%s: hda_sdw_bpt_send_async failed: %d\n",
drivers/soundwire/intel_ace2x.c
360
ret = sdw_enable_stream(cdns->bus.bpt_stream);
drivers/soundwire/intel_ace2x.c
362
dev_err(cdns->dev, "%s: sdw_stream_enable failed: %d\n",
drivers/soundwire/intel_ace2x.c
373
struct sdw_cdns *cdns = &sdw->cdns;
drivers/soundwire/intel_ace2x.c
376
dev_dbg(cdns->dev, "BPT Transfer wait\n");
drivers/soundwire/intel_ace2x.c
378
ret = hda_sdw_bpt_wait(cdns->dev->parent, /* PCI device */
drivers/soundwire/intel_ace2x.c
381
dev_err(cdns->dev, "%s: hda_sdw_bpt_wait failed: %d\n", __func__, ret);
drivers/soundwire/intel_ace2x.c
383
ret = sdw_disable_stream(cdns->bus.bpt_stream);
drivers/soundwire/intel_ace2x.c
385
dev_err(cdns->dev, "%s: sdw_stream_enable failed: %d\n",
drivers/soundwire/intel_ace2x.c
391
ret = sdw_cdns_check_write_response(cdns->dev, sdw->bpt_ctx.dmab_rx_bdl.area,
drivers/soundwire/intel_ace2x.c
395
dev_err(cdns->dev, "%s: BPT Write failed %d\n", __func__, ret);
drivers/soundwire/intel_ace2x.c
397
ret = sdw_cdns_check_read_response(cdns->dev, sdw->bpt_ctx.dmab_rx_bdl.area,
drivers/soundwire/intel_ace2x.c
402
dev_err(cdns->dev, "%s: BPT Read failed %d\n", __func__, ret);
drivers/soundwire/intel_ace2x.c
418
struct sdw_bus *bus = &sdw->cdns.bus;
drivers/soundwire/intel_ace2x.c
468
dev_dbg(sdw->cdns.dev, "clock source %d LVSCTL %#x\n", source, val);
drivers/soundwire/intel_ace2x.c
517
struct sdw_bus *bus = &sdw->cdns.bus;
drivers/soundwire/intel_ace2x.c
52
struct sdw_cdns *cdns = &sdw->cdns;
drivers/soundwire/intel_ace2x.c
53
struct sdw_bus *bus = &cdns->bus;
drivers/soundwire/intel_ace2x.c
542
dev_err(sdw->cdns.dev, "%s: hdac_bus_eml_sdw_power_up failed: %d\n",
drivers/soundwire/intel_ace2x.c
551
dev_dbg(sdw->cdns.dev, "first link up, programming SYNCPRD\n");
drivers/soundwire/intel_ace2x.c
555
dev_err(sdw->cdns.dev, "%s: hdac_bus_eml_sdw_set_syncprd failed: %d\n",
drivers/soundwire/intel_ace2x.c
563
dev_err(sdw->cdns.dev, "%s: hdac_bus_eml_sdw_wait_syncpu failed: %d\n",
drivers/soundwire/intel_ace2x.c
574
sdw->cdns.link_up = true;
drivers/soundwire/intel_ace2x.c
592
sdw->cdns.link_up = false;
drivers/soundwire/intel_ace2x.c
602
dev_err(sdw->cdns.dev, "%s: hdac_bus_eml_sdw_power_down failed: %d\n",
drivers/soundwire/intel_ace2x.c
633
dev_err(sdw->cdns.dev, "%s: SyncGO clear failed: %d\n", __func__, ret);
drivers/soundwire/intel_ace2x.c
705
struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai);
drivers/soundwire/intel_ace2x.c
706
struct sdw_intel *sdw = cdns_to_intel(cdns);
drivers/soundwire/intel_ace2x.c
713
dai_runtime = cdns->dai_runtime_array[dai->id];
drivers/soundwire/intel_ace2x.c
723
pdi = sdw_cdns_alloc_pdi(cdns, &cdns->pcm, ch, dir, dai->id);
drivers/soundwire/intel_ace2x.c
734
sdw_cdns_config_stream(cdns, ch, dir, pdi);
drivers/soundwire/intel_ace2x.c
763
ret = sdw_stream_add_master(&cdns->bus, &sconfig,
drivers/soundwire/intel_ace2x.c
766
dev_err(cdns->dev, "add master to stream failed:%d\n", ret);
drivers/soundwire/intel_ace2x.c
775
struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai);
drivers/soundwire/intel_ace2x.c
776
struct sdw_intel *sdw = cdns_to_intel(cdns);
drivers/soundwire/intel_ace2x.c
781
dai_runtime = cdns->dai_runtime_array[dai->id];
drivers/soundwire/intel_ace2x.c
809
sdw_cdns_config_stream(cdns, ch, dir, dai_runtime->pdi);
drivers/soundwire/intel_ace2x.c
820
struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai);
drivers/soundwire/intel_ace2x.c
821
struct sdw_intel *sdw = cdns_to_intel(cdns);
drivers/soundwire/intel_ace2x.c
825
dai_runtime = cdns->dai_runtime_array[dai->id];
drivers/soundwire/intel_ace2x.c
835
ret = sdw_stream_remove_master(&cdns->bus, dai_runtime->stream);
drivers/soundwire/intel_ace2x.c
85
if (cdns->bus.bpt_stream) {
drivers/soundwire/intel_ace2x.c
86
dev_err(cdns->dev, "%s: BPT stream already exists\n", __func__);
drivers/soundwire/intel_ace2x.c
862
struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai);
drivers/soundwire/intel_ace2x.c
865
dai_runtime = cdns->dai_runtime_array[dai->id];
drivers/soundwire/intel_ace2x.c
874
struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai);
drivers/soundwire/intel_ace2x.c
875
struct sdw_intel *sdw = cdns_to_intel(cdns);
drivers/soundwire/intel_ace2x.c
890
dai_runtime = cdns->dai_runtime_array[dai->id];
drivers/soundwire/intel_ace2x.c
934
struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai);
drivers/soundwire/intel_ace2x.c
937
dai_runtime = cdns->dai_runtime_array[dai->id];
drivers/soundwire/intel_ace2x.c
94
cdns->bus.bpt_stream = stream;
drivers/soundwire/intel_ace2x.c
967
dev_dbg(sdw->cdns.dev, "PCM cap bd:%d in:%d out:%d\n",
drivers/soundwire/intel_ace2x_debugfs.c
113
struct sdw_bus *bus = &sdw->cdns.bus;
drivers/soundwire/intel_ace2x_debugfs.c
130
struct dentry *root = sdw->cdns.bus.debugfs;
drivers/soundwire/intel_ace2x_debugfs.c
146
sdw_cdns_debugfs_init(&sdw->cdns, sdw->debugfs);
drivers/soundwire/intel_ace2x_debugfs.c
95
struct sdw_bus *bus = &sdw->cdns.bus;
drivers/soundwire/intel_auxdevice.c
102
struct sdw_cdns *cdns = bus_to_cdns(bus);
drivers/soundwire/intel_auxdevice.c
103
struct sdw_intel *sdw = cdns_to_intel(cdns);
drivers/soundwire/intel_auxdevice.c
112
struct sdw_cdns *cdns = bus_to_cdns(bus);
drivers/soundwire/intel_auxdevice.c
113
struct sdw_intel *sdw = cdns_to_intel(cdns);
drivers/soundwire/intel_auxdevice.c
120
struct sdw_cdns *cdns = bus_to_cdns(bus);
drivers/soundwire/intel_auxdevice.c
121
struct sdw_intel *sdw = cdns_to_intel(cdns);
drivers/soundwire/intel_auxdevice.c
130
struct sdw_cdns *cdns = bus_to_cdns(bus);
drivers/soundwire/intel_auxdevice.c
131
struct sdw_intel *sdw = cdns_to_intel(cdns);
drivers/soundwire/intel_auxdevice.c
313
struct sdw_cdns *cdns;
drivers/soundwire/intel_auxdevice.c
321
cdns = &sdw->cdns;
drivers/soundwire/intel_auxdevice.c
322
bus = &cdns->bus;
drivers/soundwire/intel_auxdevice.c
326
cdns->dev = dev;
drivers/soundwire/intel_auxdevice.c
327
cdns->registers = sdw->link_res->registers;
drivers/soundwire/intel_auxdevice.c
328
cdns->ip_offset = sdw->link_res->ip_offset;
drivers/soundwire/intel_auxdevice.c
329
cdns->instance = sdw->instance;
drivers/soundwire/intel_auxdevice.c
330
cdns->msg_count = 0;
drivers/soundwire/intel_auxdevice.c
352
sdw_cdns_probe(cdns);
drivers/soundwire/intel_auxdevice.c
358
auxiliary_set_drvdata(auxdev, cdns);
drivers/soundwire/intel_auxdevice.c
361
sdw->cdns.bus.compute_params = sdw_compute_params;
drivers/soundwire/intel_auxdevice.c
385
struct sdw_cdns *cdns = auxiliary_get_drvdata(auxdev);
drivers/soundwire/intel_auxdevice.c
386
struct sdw_intel *sdw = cdns_to_intel(cdns);
drivers/soundwire/intel_auxdevice.c
387
struct sdw_bus *bus = &cdns->bus;
drivers/soundwire/intel_auxdevice.c
496
struct sdw_cdns *cdns = auxiliary_get_drvdata(auxdev);
drivers/soundwire/intel_auxdevice.c
497
struct sdw_intel *sdw = cdns_to_intel(cdns);
drivers/soundwire/intel_auxdevice.c
498
struct sdw_bus *bus = &cdns->bus;
drivers/soundwire/intel_auxdevice.c
507
cancel_delayed_work_sync(&cdns->attach_dwork);
drivers/soundwire/intel_auxdevice.c
508
sdw_cdns_enable_interrupt(cdns, false);
drivers/soundwire/intel_auxdevice.c
520
bus = &sdw->cdns.bus;
drivers/soundwire/intel_auxdevice.c
575
struct sdw_cdns *cdns = dev_get_drvdata(dev);
drivers/soundwire/intel_auxdevice.c
576
struct sdw_intel *sdw = cdns_to_intel(cdns);
drivers/soundwire/intel_auxdevice.c
577
struct sdw_bus *bus = &cdns->bus;
drivers/soundwire/intel_auxdevice.c
635
struct sdw_cdns *cdns = dev_get_drvdata(dev);
drivers/soundwire/intel_auxdevice.c
636
struct sdw_intel *sdw = cdns_to_intel(cdns);
drivers/soundwire/intel_auxdevice.c
637
struct sdw_bus *bus = &cdns->bus;
drivers/soundwire/intel_auxdevice.c
683
struct sdw_cdns *cdns = dev_get_drvdata(dev);
drivers/soundwire/intel_auxdevice.c
684
struct sdw_intel *sdw = cdns_to_intel(cdns);
drivers/soundwire/intel_auxdevice.c
685
struct sdw_bus *bus = &cdns->bus;
drivers/soundwire/intel_auxdevice.c
722
struct sdw_cdns *cdns = dev_get_drvdata(dev);
drivers/soundwire/intel_auxdevice.c
723
struct sdw_intel *sdw = cdns_to_intel(cdns);
drivers/soundwire/intel_auxdevice.c
724
struct sdw_bus *bus = &cdns->bus;
drivers/soundwire/intel_auxdevice.c
778
struct sdw_cdns *cdns = dev_get_drvdata(dev);
drivers/soundwire/intel_auxdevice.c
779
struct sdw_intel *sdw = cdns_to_intel(cdns);
drivers/soundwire/intel_auxdevice.c
780
struct sdw_bus *bus = &cdns->bus;
drivers/soundwire/intel_auxdevice.c
92
struct sdw_cdns *cdns = bus_to_cdns(bus);
drivers/soundwire/intel_auxdevice.c
93
struct sdw_intel *sdw = cdns_to_intel(cdns);
drivers/soundwire/intel_bus_common.c
113
sdw_cdns_init(&sdw->cdns);
drivers/soundwire/intel_bus_common.c
116
ret = sdw_cdns_enable_interrupt(cdns, true);
drivers/soundwire/intel_bus_common.c
123
ret = sdw_cdns_clock_restart(cdns, !clock_stop0);
drivers/soundwire/intel_bus_common.c
127
sdw_cdns_enable_interrupt(cdns, false);
drivers/soundwire/intel_bus_common.c
132
sdw_cdns_config_update(cdns);
drivers/soundwire/intel_bus_common.c
137
dev_err(sdw->cdns.dev, "sync go failed during resume\n");
drivers/soundwire/intel_bus_common.c
14
struct device *dev = sdw->cdns.dev;
drivers/soundwire/intel_bus_common.c
142
ret = sdw_cdns_config_update_set_wait(cdns);
drivers/soundwire/intel_bus_common.c
148
ret = sdw_cdns_enable_interrupt(cdns, true);
drivers/soundwire/intel_bus_common.c
15
struct sdw_cdns *cdns = &sdw->cdns;
drivers/soundwire/intel_bus_common.c
154
ret = sdw_cdns_exit_reset(cdns);
drivers/soundwire/intel_bus_common.c
16
struct sdw_bus *bus = &cdns->bus;
drivers/soundwire/intel_bus_common.c
161
sdw_cdns_check_self_clearing_bits(cdns, __func__, true, INTEL_MASTER_RESET_ITERATIONS);
drivers/soundwire/intel_bus_common.c
163
schedule_delayed_work(&cdns->attach_dwork,
drivers/soundwire/intel_bus_common.c
171
struct device *dev = sdw->cdns.dev;
drivers/soundwire/intel_bus_common.c
174
clock_stop0 = sdw_cdns_is_clock_stop(&sdw->cdns);
drivers/soundwire/intel_bus_common.c
181
struct device *dev = sdw->cdns.dev;
drivers/soundwire/intel_bus_common.c
182
struct sdw_cdns *cdns = &sdw->cdns;
drivers/soundwire/intel_bus_common.c
185
ret = sdw_cdns_clock_restart(cdns, false);
drivers/soundwire/intel_bus_common.c
19
ret = sdw_cdns_soft_reset(cdns);
drivers/soundwire/intel_bus_common.c
191
ret = sdw_cdns_enable_interrupt(cdns, true);
drivers/soundwire/intel_bus_common.c
197
sdw_cdns_check_self_clearing_bits(cdns, __func__, true, INTEL_MASTER_RESET_ITERATIONS);
drivers/soundwire/intel_bus_common.c
199
schedule_delayed_work(&cdns->attach_dwork,
drivers/soundwire/intel_bus_common.c
207
struct device *dev = sdw->cdns.dev;
drivers/soundwire/intel_bus_common.c
208
struct sdw_cdns *cdns = &sdw->cdns;
drivers/soundwire/intel_bus_common.c
212
cancel_delayed_work_sync(&cdns->attach_dwork);
drivers/soundwire/intel_bus_common.c
215
ret = sdw_cdns_clock_stop(cdns, true);
drivers/soundwire/intel_bus_common.c
222
ret = sdw_cdns_enable_interrupt(cdns, false);
drivers/soundwire/intel_bus_common.c
245
struct sdw_cdns *cdns = &sdw->cdns;
drivers/soundwire/intel_bus_common.c
246
struct sdw_bus *bus = &cdns->bus;
drivers/soundwire/intel_bus_common.c
259
struct sdw_cdns *cdns = &sdw->cdns;
drivers/soundwire/intel_bus_common.c
260
struct sdw_bus *bus = &cdns->bus;
drivers/soundwire/intel_bus_common.c
283
dev_err(sdw->cdns.dev, "Post bank switch failed: %d\n", ret);
drivers/soundwire/intel_bus_common.c
32
ret = sdw_cdns_init(cdns);
drivers/soundwire/intel_bus_common.c
38
sdw_cdns_config_update(cdns);
drivers/soundwire/intel_bus_common.c
48
ret = sdw_cdns_config_update_set_wait(cdns);
drivers/soundwire/intel_bus_common.c
54
ret = sdw_cdns_enable_interrupt(cdns, true);
drivers/soundwire/intel_bus_common.c
60
ret = sdw_cdns_exit_reset(cdns);
drivers/soundwire/intel_bus_common.c
66
sdw_cdns_check_self_clearing_bits(cdns, __func__,
drivers/soundwire/intel_bus_common.c
69
schedule_delayed_work(&cdns->attach_dwork,
drivers/soundwire/intel_bus_common.c
77
struct device *dev = sdw->cdns.dev;
drivers/soundwire/intel_bus_common.c
78
struct sdw_cdns *cdns = &sdw->cdns;
drivers/soundwire/intel_bus_common.c
79
struct sdw_bus *bus = &cdns->bus;
drivers/soundwire/intel_bus_common.c
91
clock_stop0 = sdw_cdns_is_clock_stop(&sdw->cdns);
drivers/soundwire/intel_init.c
149
sdw_cdns_irq(irq, link->cdns);
drivers/soundwire/intel_init.c
238
link->cdns = auxiliary_get_drvdata(&ldev->auxdev);
drivers/soundwire/intel_init.c
240
if (!link->cdns) {
drivers/soundwire/intel_init.c
250
bus = &link->cdns->bus;
drivers/soundwire/intel_init.c
262
bus = &link->cdns->bus;
drivers/soundwire/intel_init.c
363
struct sdw_bus *bus = &link->cdns->bus;
drivers/tty/serial/xilinx_uartps.c
1356
OF_EARLYCON_DECLARE(cdns, "xlnx,xuartps", cdns_early_console_setup);
drivers/tty/serial/xilinx_uartps.c
1357
OF_EARLYCON_DECLARE(cdns, "cdns,uart-r1p8", cdns_early_console_setup);
drivers/tty/serial/xilinx_uartps.c
1358
OF_EARLYCON_DECLARE(cdns, "cdns,uart-r1p12", cdns_early_console_setup);
drivers/tty/serial/xilinx_uartps.c
1359
OF_EARLYCON_DECLARE(cdns, "xlnx,zynqmp-uart", cdns_early_console_setup);
drivers/usb/cdns3/cdns3-gadget.c
1916
struct cdns *cdns = dev_get_drvdata(priv_dev->dev);
drivers/usb/cdns3/cdns3-gadget.c
1920
if (cdns->in_lpm)
drivers/usb/cdns3/cdns3-gadget.c
3260
static void cdns3_gadget_exit(struct cdns *cdns)
drivers/usb/cdns3/cdns3-gadget.c
3264
priv_dev = cdns->gadget_dev;
drivers/usb/cdns3/cdns3-gadget.c
3267
pm_runtime_put_autosuspend(cdns->dev);
drivers/usb/cdns3/cdns3-gadget.c
3270
devm_free_irq(cdns->dev, cdns->dev_irq, priv_dev);
drivers/usb/cdns3/cdns3-gadget.c
3293
cdns->gadget_dev = NULL;
drivers/usb/cdns3/cdns3-gadget.c
3294
cdns_drd_gadget_off(cdns);
drivers/usb/cdns3/cdns3-gadget.c
3297
static int cdns3_gadget_start(struct cdns *cdns)
drivers/usb/cdns3/cdns3-gadget.c
3307
usb_initialize_gadget(cdns->dev, &priv_dev->gadget,
drivers/usb/cdns3/cdns3-gadget.c
3309
cdns->gadget_dev = priv_dev;
drivers/usb/cdns3/cdns3-gadget.c
3310
priv_dev->sysdev = cdns->dev;
drivers/usb/cdns3/cdns3-gadget.c
3311
priv_dev->dev = cdns->dev;
drivers/usb/cdns3/cdns3-gadget.c
3312
priv_dev->regs = cdns->dev_regs;
drivers/usb/cdns3/cdns3-gadget.c
3326
max_speed = usb_get_maximum_speed(cdns->dev);
drivers/usb/cdns3/cdns3-gadget.c
3335
dev_err(cdns->dev, "invalid maximum_speed parameter %d\n",
drivers/usb/cdns3/cdns3-gadget.c
3350
priv_dev->gadget.irq = cdns->dev_irq;
drivers/usb/cdns3/cdns3-gadget.c
3423
cdns->gadget_dev = NULL;
drivers/usb/cdns3/cdns3-gadget.c
3427
static int __cdns3_gadget_init(struct cdns *cdns)
drivers/usb/cdns3/cdns3-gadget.c
3432
ret = dma_set_mask_and_coherent(cdns->dev, DMA_BIT_MASK(32));
drivers/usb/cdns3/cdns3-gadget.c
3434
dev_err(cdns->dev, "Failed to set dma mask: %d\n", ret);
drivers/usb/cdns3/cdns3-gadget.c
3438
cdns_drd_gadget_on(cdns);
drivers/usb/cdns3/cdns3-gadget.c
3439
pm_runtime_get_sync(cdns->dev);
drivers/usb/cdns3/cdns3-gadget.c
3441
ret = cdns3_gadget_start(cdns);
drivers/usb/cdns3/cdns3-gadget.c
3443
pm_runtime_put_sync(cdns->dev);
drivers/usb/cdns3/cdns3-gadget.c
3444
cdns_drd_gadget_off(cdns);
drivers/usb/cdns3/cdns3-gadget.c
3452
ret = devm_request_threaded_irq(cdns->dev, cdns->dev_irq,
drivers/usb/cdns3/cdns3-gadget.c
3455
IRQF_SHARED, dev_name(cdns->dev),
drivers/usb/cdns3/cdns3-gadget.c
3456
cdns->gadget_dev);
drivers/usb/cdns3/cdns3-gadget.c
3463
cdns3_gadget_exit(cdns);
drivers/usb/cdns3/cdns3-gadget.c
3467
static int cdns3_gadget_suspend(struct cdns *cdns, bool do_wakeup)
drivers/usb/cdns3/cdns3-gadget.c
3468
__must_hold(&cdns->lock)
drivers/usb/cdns3/cdns3-gadget.c
3470
struct cdns3_device *priv_dev = cdns->gadget_dev;
drivers/usb/cdns3/cdns3-gadget.c
3472
spin_unlock(&cdns->lock);
drivers/usb/cdns3/cdns3-gadget.c
3474
spin_lock(&cdns->lock);
drivers/usb/cdns3/cdns3-gadget.c
3486
static int cdns3_gadget_resume(struct cdns *cdns, bool lost_power)
drivers/usb/cdns3/cdns3-gadget.c
3488
struct cdns3_device *priv_dev = cdns->gadget_dev;
drivers/usb/cdns3/cdns3-gadget.c
3507
int cdns3_gadget_init(struct cdns *cdns)
drivers/usb/cdns3/cdns3-gadget.c
3511
rdrv = devm_kzalloc(cdns->dev, sizeof(*rdrv), GFP_KERNEL);
drivers/usb/cdns3/cdns3-gadget.c
3521
cdns->roles[USB_ROLE_DEVICE] = rdrv;
drivers/usb/cdns3/cdns3-imx.c
251
struct cdns *cdns = dev_get_drvdata(dev);
drivers/usb/cdns3/cdns3-imx.c
254
void __iomem *otg_regs = (void __iomem *)(cdns->otg_regs);
drivers/usb/cdns3/cdns3-imx.c
255
void __iomem *xhci_regs = cdns->xhci_regs;
drivers/usb/cdns3/cdns3-imx.c
259
if (cdns->role != USB_ROLE_HOST)
drivers/usb/cdns3/cdns3-plat.c
107
cdns->xhci_res[1] = *res;
drivers/usb/cdns3/cdns3-plat.c
109
cdns->dev_irq = platform_get_irq_byname(pdev, "peripheral");
drivers/usb/cdns3/cdns3-plat.c
111
if (cdns->dev_irq < 0)
drivers/usb/cdns3/cdns3-plat.c
112
return dev_err_probe(dev, cdns->dev_irq,
drivers/usb/cdns3/cdns3-plat.c
120
cdns->dev_regs = regs;
drivers/usb/cdns3/cdns3-plat.c
122
if (!cdns->no_drd) {
drivers/usb/cdns3/cdns3-plat.c
123
cdns->otg_irq = platform_get_irq_byname(pdev, "otg");
drivers/usb/cdns3/cdns3-plat.c
124
if (cdns->otg_irq < 0)
drivers/usb/cdns3/cdns3-plat.c
125
return dev_err_probe(dev, cdns->otg_irq,
drivers/usb/cdns3/cdns3-plat.c
133
cdns->otg_res = *res;
drivers/usb/cdns3/cdns3-plat.c
136
cdns->phyrst_a_enable = device_property_read_bool(dev, "cdns,phyrst-a-enable");
drivers/usb/cdns3/cdns3-plat.c
138
cdns->wakeup_irq = platform_get_irq_byname_optional(pdev, "wakeup");
drivers/usb/cdns3/cdns3-plat.c
139
if (cdns->wakeup_irq == -EPROBE_DEFER)
drivers/usb/cdns3/cdns3-plat.c
140
return cdns->wakeup_irq;
drivers/usb/cdns3/cdns3-plat.c
142
if (cdns->wakeup_irq < 0) {
drivers/usb/cdns3/cdns3-plat.c
144
cdns->wakeup_irq = 0x0;
drivers/usb/cdns3/cdns3-plat.c
147
cdns->usb2_phy = devm_phy_optional_get(dev, "cdns3,usb2-phy");
drivers/usb/cdns3/cdns3-plat.c
148
if (IS_ERR(cdns->usb2_phy))
drivers/usb/cdns3/cdns3-plat.c
149
return dev_err_probe(dev, PTR_ERR(cdns->usb2_phy),
drivers/usb/cdns3/cdns3-plat.c
152
cdns->usb3_phy = devm_phy_optional_get(dev, "cdns3,usb3-phy");
drivers/usb/cdns3/cdns3-plat.c
153
if (IS_ERR(cdns->usb3_phy))
drivers/usb/cdns3/cdns3-plat.c
154
return dev_err_probe(dev, PTR_ERR(cdns->usb3_phy),
drivers/usb/cdns3/cdns3-plat.c
157
ret = phy_init(cdns->usb2_phy);
drivers/usb/cdns3/cdns3-plat.c
161
ret = phy_init(cdns->usb3_phy);
drivers/usb/cdns3/cdns3-plat.c
165
ret = set_phy_power_on(cdns);
drivers/usb/cdns3/cdns3-plat.c
169
ret = cdns_init(cdns);
drivers/usb/cdns3/cdns3-plat.c
173
cdns->gadget_init = cdns3_plat_gadget_init;
drivers/usb/cdns3/cdns3-plat.c
174
cdns->host_init = cdns3_plat_host_init;
drivers/usb/cdns3/cdns3-plat.c
175
ret = cdns_core_init_role(cdns);
drivers/usb/cdns3/cdns3-plat.c
182
if (!(cdns->pdata && (cdns->pdata->quirks & CDNS3_DEFAULT_PM_RUNTIME_ALLOW)))
drivers/usb/cdns3/cdns3-plat.c
197
if (cdns->role_sw)
drivers/usb/cdns3/cdns3-plat.c
198
usb_role_switch_unregister(cdns->role_sw);
drivers/usb/cdns3/cdns3-plat.c
200
set_phy_power_off(cdns);
drivers/usb/cdns3/cdns3-plat.c
202
phy_exit(cdns->usb3_phy);
drivers/usb/cdns3/cdns3-plat.c
204
phy_exit(cdns->usb2_phy);
drivers/usb/cdns3/cdns3-plat.c
215
struct cdns *cdns = platform_get_drvdata(pdev);
drivers/usb/cdns3/cdns3-plat.c
216
struct device *dev = cdns->dev;
drivers/usb/cdns3/cdns3-plat.c
219
if (!(cdns->pdata && (cdns->pdata->quirks & CDNS3_DEFAULT_PM_RUNTIME_ALLOW)))
drivers/usb/cdns3/cdns3-plat.c
224
cdns_remove(cdns);
drivers/usb/cdns3/cdns3-plat.c
225
set_phy_power_off(cdns);
drivers/usb/cdns3/cdns3-plat.c
226
phy_exit(cdns->usb2_phy);
drivers/usb/cdns3/cdns3-plat.c
227
phy_exit(cdns->usb3_phy);
drivers/usb/cdns3/cdns3-plat.c
235
struct cdns *cdns = dev_get_drvdata(dev);
drivers/usb/cdns3/cdns3-plat.c
238
if (cdns->pdata && cdns->pdata->platform_suspend)
drivers/usb/cdns3/cdns3-plat.c
239
ret = cdns->pdata->platform_suspend(dev, suspend, wakeup);
drivers/usb/cdns3/cdns3-plat.c
246
struct cdns *cdns = dev_get_drvdata(dev);
drivers/usb/cdns3/cdns3-plat.c
250
if (cdns->in_lpm)
drivers/usb/cdns3/cdns3-plat.c
258
cdns3_set_platform_suspend(cdns->dev, true, wakeup);
drivers/usb/cdns3/cdns3-plat.c
259
set_phy_power_off(cdns);
drivers/usb/cdns3/cdns3-plat.c
260
spin_lock_irqsave(&cdns->lock, flags);
drivers/usb/cdns3/cdns3-plat.c
261
cdns->in_lpm = true;
drivers/usb/cdns3/cdns3-plat.c
262
spin_unlock_irqrestore(&cdns->lock, flags);
drivers/usb/cdns3/cdns3-plat.c
263
dev_dbg(cdns->dev, "%s ends\n", __func__);
drivers/usb/cdns3/cdns3-plat.c
27
static int set_phy_power_on(struct cdns *cdns)
drivers/usb/cdns3/cdns3-plat.c
270
struct cdns *cdns = dev_get_drvdata(dev);
drivers/usb/cdns3/cdns3-plat.c
274
if (!cdns->in_lpm)
drivers/usb/cdns3/cdns3-plat.c
277
if (cdns_power_is_lost(cdns)) {
drivers/usb/cdns3/cdns3-plat.c
278
phy_exit(cdns->usb2_phy);
drivers/usb/cdns3/cdns3-plat.c
279
ret = phy_init(cdns->usb2_phy);
drivers/usb/cdns3/cdns3-plat.c
283
phy_exit(cdns->usb3_phy);
drivers/usb/cdns3/cdns3-plat.c
284
ret = phy_init(cdns->usb3_phy);
drivers/usb/cdns3/cdns3-plat.c
289
ret = set_phy_power_on(cdns);
drivers/usb/cdns3/cdns3-plat.c
293
cdns3_set_platform_suspend(cdns->dev, false, false);
drivers/usb/cdns3/cdns3-plat.c
295
spin_lock_irqsave(&cdns->lock, flags);
drivers/usb/cdns3/cdns3-plat.c
296
cdns_resume(cdns);
drivers/usb/cdns3/cdns3-plat.c
297
cdns->in_lpm = false;
drivers/usb/cdns3/cdns3-plat.c
298
spin_unlock_irqrestore(&cdns->lock, flags);
drivers/usb/cdns3/cdns3-plat.c
299
cdns_set_active(cdns, !PMSG_IS_AUTO(msg));
drivers/usb/cdns3/cdns3-plat.c
300
if (cdns->wakeup_pending) {
drivers/usb/cdns3/cdns3-plat.c
301
cdns->wakeup_pending = false;
drivers/usb/cdns3/cdns3-plat.c
302
enable_irq(cdns->wakeup_irq);
drivers/usb/cdns3/cdns3-plat.c
304
dev_dbg(cdns->dev, "%s ends\n", __func__);
drivers/usb/cdns3/cdns3-plat.c
31
ret = phy_power_on(cdns->usb2_phy);
drivers/usb/cdns3/cdns3-plat.c
323
struct cdns *cdns = dev_get_drvdata(dev);
drivers/usb/cdns3/cdns3-plat.c
326
cdns_suspend(cdns);
drivers/usb/cdns3/cdns3-plat.c
332
if (device_may_wakeup(dev) && cdns->wakeup_irq)
drivers/usb/cdns3/cdns3-plat.c
333
enable_irq_wake(cdns->wakeup_irq);
drivers/usb/cdns3/cdns3-plat.c
35
ret = phy_power_on(cdns->usb3_phy);
drivers/usb/cdns3/cdns3-plat.c
37
phy_power_off(cdns->usb2_phy);
drivers/usb/cdns3/cdns3-plat.c
42
static void set_phy_power_off(struct cdns *cdns)
drivers/usb/cdns3/cdns3-plat.c
44
phy_power_off(cdns->usb3_phy);
drivers/usb/cdns3/cdns3-plat.c
45
phy_power_off(cdns->usb2_phy);
drivers/usb/cdns3/cdns3-plat.c
48
static int cdns3_plat_gadget_init(struct cdns *cdns)
drivers/usb/cdns3/cdns3-plat.c
50
if (cdns->version < CDNSP_CONTROLLER_V2)
drivers/usb/cdns3/cdns3-plat.c
51
return cdns3_gadget_init(cdns);
drivers/usb/cdns3/cdns3-plat.c
53
return cdnsp_gadget_init(cdns);
drivers/usb/cdns3/cdns3-plat.c
56
static int cdns3_plat_host_init(struct cdns *cdns)
drivers/usb/cdns3/cdns3-plat.c
58
return cdns_host_init(cdns);
drivers/usb/cdns3/cdns3-plat.c
71
struct cdns *cdns;
drivers/usb/cdns3/cdns3-plat.c
75
cdns = devm_kzalloc(dev, sizeof(*cdns), GFP_KERNEL);
drivers/usb/cdns3/cdns3-plat.c
76
if (!cdns)
drivers/usb/cdns3/cdns3-plat.c
79
cdns->dev = dev;
drivers/usb/cdns3/cdns3-plat.c
80
cdns->pdata = dev_get_platdata(dev);
drivers/usb/cdns3/cdns3-plat.c
81
if (cdns->pdata && cdns->pdata->override_apb_timeout)
drivers/usb/cdns3/cdns3-plat.c
82
cdns->override_apb_timeout = cdns->pdata->override_apb_timeout;
drivers/usb/cdns3/cdns3-plat.c
85
cdns->no_drd = true;
drivers/usb/cdns3/cdns3-plat.c
86
cdns->version = CDNSP_CONTROLLER_V2;
drivers/usb/cdns3/cdns3-plat.c
90
platform_set_drvdata(pdev, cdns);
drivers/usb/cdns3/cdns3-plat.c
96
cdns->xhci_res[0].start = ret;
drivers/usb/cdns3/cdns3-plat.c
97
cdns->xhci_res[0].end = ret;
drivers/usb/cdns3/cdns3-plat.c
98
cdns->xhci_res[0].flags = IORESOURCE_IRQ | irq_get_trigger_type(ret);
drivers/usb/cdns3/cdns3-plat.c
99
cdns->xhci_res[0].name = "host";
drivers/usb/cdns3/cdnsp-gadget.c
153
struct cdns *cdns = dev_get_drvdata(pdev->dev);
drivers/usb/cdns3/cdnsp-gadget.c
159
if (!cdns->override_apb_timeout)
drivers/usb/cdns3/cdnsp-gadget.c
1590
struct cdns *cdns = dev_get_drvdata(pdev->dev);
drivers/usb/cdns3/cdnsp-gadget.c
1599
disable_irq(cdns->dev_irq);
drivers/usb/cdns3/cdnsp-gadget.c
1604
cdns_clear_vbus(cdns);
drivers/usb/cdns3/cdnsp-gadget.c
1606
cdns_set_vbus(cdns);
drivers/usb/cdns3/cdnsp-gadget.c
1610
enable_irq(cdns->dev_irq);
drivers/usb/cdns3/cdnsp-gadget.c
167
val = CHICKEN_APB_TIMEOUT_SET(val, cdns->override_apb_timeout);
drivers/usb/cdns3/cdnsp-gadget.c
1917
static int __cdnsp_gadget_init(struct cdns *cdns)
drivers/usb/cdns3/cdnsp-gadget.c
1923
cdns_drd_gadget_on(cdns);
drivers/usb/cdns3/cdnsp-gadget.c
1929
pm_runtime_get_sync(cdns->dev);
drivers/usb/cdns3/cdnsp-gadget.c
1931
cdns->gadget_dev = pdev;
drivers/usb/cdns3/cdnsp-gadget.c
1932
pdev->dev = cdns->dev;
drivers/usb/cdns3/cdnsp-gadget.c
1933
pdev->regs = cdns->dev_regs;
drivers/usb/cdns3/cdnsp-gadget.c
1934
max_speed = usb_get_maximum_speed(cdns->dev);
drivers/usb/cdns3/cdnsp-gadget.c
1943
dev_err(cdns->dev, "invalid speed parameter %d\n", max_speed);
drivers/usb/cdns3/cdnsp-gadget.c
1986
ret = devm_request_threaded_irq(pdev->dev, cdns->dev_irq,
drivers/usb/cdns3/cdnsp-gadget.c
2014
static void cdnsp_gadget_exit(struct cdns *cdns)
drivers/usb/cdns3/cdnsp-gadget.c
2016
struct cdnsp_device *pdev = cdns->gadget_dev;
drivers/usb/cdns3/cdnsp-gadget.c
2018
devm_free_irq(pdev->dev, cdns->dev_irq, pdev);
drivers/usb/cdns3/cdnsp-gadget.c
2019
pm_runtime_put_autosuspend(cdns->dev);
drivers/usb/cdns3/cdnsp-gadget.c
2025
cdns->gadget_dev = NULL;
drivers/usb/cdns3/cdnsp-gadget.c
2026
cdns_drd_gadget_off(cdns);
drivers/usb/cdns3/cdnsp-gadget.c
2029
static int cdnsp_gadget_suspend(struct cdns *cdns, bool do_wakeup)
drivers/usb/cdns3/cdnsp-gadget.c
2031
struct cdnsp_device *pdev = cdns->gadget_dev;
drivers/usb/cdns3/cdnsp-gadget.c
2045
static int cdnsp_gadget_resume(struct cdns *cdns, bool lost_power)
drivers/usb/cdns3/cdnsp-gadget.c
2047
struct cdnsp_device *pdev = cdns->gadget_dev;
drivers/usb/cdns3/cdnsp-gadget.c
2077
int cdnsp_gadget_init(struct cdns *cdns)
drivers/usb/cdns3/cdnsp-gadget.c
2081
rdrv = devm_kzalloc(cdns->dev, sizeof(*rdrv), GFP_KERNEL);
drivers/usb/cdns3/cdnsp-gadget.c
2091
cdns->roles[USB_ROLE_DEVICE] = rdrv;
drivers/usb/cdns3/core.c
112
best_dr_mode = cdns->dr_mode;
drivers/usb/cdns3/core.c
114
ret = cdns_idle_init(cdns);
drivers/usb/cdns3/core.c
119
best_dr_mode = cdns->dr_mode;
drivers/usb/cdns3/core.c
120
} else if (cdns->dr_mode == USB_DR_MODE_OTG) {
drivers/usb/cdns3/core.c
122
} else if (cdns->dr_mode != dr_mode) {
drivers/usb/cdns3/core.c
130
if (cdns->host_init)
drivers/usb/cdns3/core.c
131
ret = cdns->host_init(cdns);
drivers/usb/cdns3/core.c
143
if (cdns->gadget_init)
drivers/usb/cdns3/core.c
144
ret = cdns->gadget_init(cdns);
drivers/usb/cdns3/core.c
155
cdns->dr_mode = dr_mode;
drivers/usb/cdns3/core.c
157
ret = cdns_drd_update_mode(cdns);
drivers/usb/cdns3/core.c
162
ret = cdns_role_start(cdns, USB_ROLE_NONE);
drivers/usb/cdns3/core.c
166
switch (cdns->dr_mode) {
drivers/usb/cdns3/core.c
168
ret = cdns_hw_role_switch(cdns);
drivers/usb/cdns3/core.c
173
ret = cdns_role_start(cdns, USB_ROLE_DEVICE);
drivers/usb/cdns3/core.c
178
ret = cdns_role_start(cdns, USB_ROLE_HOST);
drivers/usb/cdns3/core.c
191
cdns_exit_roles(cdns);
drivers/usb/cdns3/core.c
202
static enum usb_role cdns_hw_role_state_machine(struct cdns *cdns)
drivers/usb/cdns3/core.c
207
if (cdns->dr_mode != USB_DR_MODE_OTG) {
drivers/usb/cdns3/core.c
208
if (cdns_is_host(cdns))
drivers/usb/cdns3/core.c
210
if (cdns_is_device(cdns))
drivers/usb/cdns3/core.c
216
id = cdns_get_id(cdns);
drivers/usb/cdns3/core.c
217
vbus = cdns_get_vbus(cdns);
drivers/usb/cdns3/core.c
225
role = cdns->role;
drivers/usb/cdns3/core.c
248
dev_dbg(cdns->dev, "role %d -> %d\n", cdns->role, role);
drivers/usb/cdns3/core.c
253
static int cdns_idle_role_start(struct cdns *cdns)
drivers/usb/cdns3/core.c
258
static void cdns_idle_role_stop(struct cdns *cdns)
drivers/usb/cdns3/core.c
26
static int cdns_idle_init(struct cdns *cdns);
drivers/usb/cdns3/core.c
261
phy_reset(cdns->usb3_phy);
drivers/usb/cdns3/core.c
264
static int cdns_idle_init(struct cdns *cdns)
drivers/usb/cdns3/core.c
268
rdrv = devm_kzalloc(cdns->dev, sizeof(*rdrv), GFP_KERNEL);
drivers/usb/cdns3/core.c
279
cdns->roles[USB_ROLE_NONE] = rdrv;
drivers/usb/cdns3/core.c
28
static int cdns_role_start(struct cdns *cdns, enum usb_role role)
drivers/usb/cdns3/core.c
288
int cdns_hw_role_switch(struct cdns *cdns)
drivers/usb/cdns3/core.c
294
if (cdns->role_sw)
drivers/usb/cdns3/core.c
297
pm_runtime_get_sync(cdns->dev);
drivers/usb/cdns3/core.c
299
current_role = cdns->role;
drivers/usb/cdns3/core.c
300
real_role = cdns_hw_role_state_machine(cdns);
drivers/usb/cdns3/core.c
306
cdns_role_stop(cdns);
drivers/usb/cdns3/core.c
308
dev_dbg(cdns->dev, "Switching role %d -> %d", current_role, real_role);
drivers/usb/cdns3/core.c
310
ret = cdns_role_start(cdns, real_role);
drivers/usb/cdns3/core.c
313
dev_err(cdns->dev, "set %d has failed, back to %d\n",
drivers/usb/cdns3/core.c
315
ret = cdns_role_start(cdns, current_role);
drivers/usb/cdns3/core.c
317
dev_err(cdns->dev, "back to %d failed too\n",
drivers/usb/cdns3/core.c
321
pm_runtime_put_sync(cdns->dev);
drivers/usb/cdns3/core.c
334
struct cdns *cdns = usb_role_switch_get_drvdata(sw);
drivers/usb/cdns3/core.c
336
return cdns->role;
drivers/usb/cdns3/core.c
35
mutex_lock(&cdns->mutex);
drivers/usb/cdns3/core.c
350
struct cdns *cdns = usb_role_switch_get_drvdata(sw);
drivers/usb/cdns3/core.c
353
pm_runtime_get_sync(cdns->dev);
drivers/usb/cdns3/core.c
355
if (cdns->role == role)
drivers/usb/cdns3/core.c
358
if (cdns->dr_mode == USB_DR_MODE_HOST) {
drivers/usb/cdns3/core.c
36
cdns->role = role;
drivers/usb/cdns3/core.c
368
if (cdns->dr_mode == USB_DR_MODE_PERIPHERAL) {
drivers/usb/cdns3/core.c
37
mutex_unlock(&cdns->mutex);
drivers/usb/cdns3/core.c
378
cdns_role_stop(cdns);
drivers/usb/cdns3/core.c
379
ret = cdns_role_start(cdns, role);
drivers/usb/cdns3/core.c
381
dev_err(cdns->dev, "set role %d has failed\n", role);
drivers/usb/cdns3/core.c
384
pm_runtime_put_sync(cdns->dev);
drivers/usb/cdns3/core.c
39
if (!cdns->roles[role])
drivers/usb/cdns3/core.c
397
struct cdns *cdns = data;
drivers/usb/cdns3/core.c
399
if (cdns->in_lpm) {
drivers/usb/cdns3/core.c
401
cdns->wakeup_pending = true;
drivers/usb/cdns3/core.c
402
if ((cdns->role == USB_ROLE_HOST) && cdns->host_dev)
drivers/usb/cdns3/core.c
403
pm_request_resume(&cdns->host_dev->dev);
drivers/usb/cdns3/core.c
417
int cdns_init(struct cdns *cdns)
drivers/usb/cdns3/core.c
419
struct device *dev = cdns->dev;
drivers/usb/cdns3/core.c
42
if (cdns->roles[role]->state == CDNS_ROLE_STATE_ACTIVE)
drivers/usb/cdns3/core.c
428
mutex_init(&cdns->mutex);
drivers/usb/cdns3/core.c
436
sw_desc.driver_data = cdns;
drivers/usb/cdns3/core.c
439
cdns->role_sw = usb_role_switch_register(dev, &sw_desc);
drivers/usb/cdns3/core.c
440
if (IS_ERR(cdns->role_sw)) {
drivers/usb/cdns3/core.c
442
return PTR_ERR(cdns->role_sw);
drivers/usb/cdns3/core.c
446
if (cdns->wakeup_irq) {
drivers/usb/cdns3/core.c
447
ret = devm_request_irq(cdns->dev, cdns->wakeup_irq,
drivers/usb/cdns3/core.c
45
mutex_lock(&cdns->mutex);
drivers/usb/cdns3/core.c
450
dev_name(cdns->dev), cdns);
drivers/usb/cdns3/core.c
453
dev_err(cdns->dev, "couldn't register wakeup irq handler\n");
drivers/usb/cdns3/core.c
458
ret = cdns_drd_init(cdns);
drivers/usb/cdns3/core.c
46
ret = cdns->roles[role]->start(cdns);
drivers/usb/cdns3/core.c
462
spin_lock_init(&cdns->lock);
drivers/usb/cdns3/core.c
466
cdns_drd_exit(cdns);
drivers/usb/cdns3/core.c
468
if (cdns->role_sw)
drivers/usb/cdns3/core.c
469
usb_role_switch_unregister(cdns->role_sw);
drivers/usb/cdns3/core.c
48
cdns->roles[role]->state = CDNS_ROLE_STATE_ACTIVE;
drivers/usb/cdns3/core.c
481
int cdns_remove(struct cdns *cdns)
drivers/usb/cdns3/core.c
483
cdns_exit_roles(cdns);
drivers/usb/cdns3/core.c
484
usb_role_switch_unregister(cdns->role_sw);
drivers/usb/cdns3/core.c
49
mutex_unlock(&cdns->mutex);
drivers/usb/cdns3/core.c
491
int cdns_suspend(struct cdns *cdns)
drivers/usb/cdns3/core.c
493
struct device *dev = cdns->dev;
drivers/usb/cdns3/core.c
499
if (cdns->roles[cdns->role]->suspend) {
drivers/usb/cdns3/core.c
500
spin_lock_irqsave(&cdns->lock, flags);
drivers/usb/cdns3/core.c
501
cdns->roles[cdns->role]->suspend(cdns, false);
drivers/usb/cdns3/core.c
502
spin_unlock_irqrestore(&cdns->lock, flags);
drivers/usb/cdns3/core.c
509
int cdns_resume(struct cdns *cdns)
drivers/usb/cdns3/core.c
511
bool power_lost = cdns_power_is_lost(cdns);
drivers/usb/cdns3/core.c
517
if (!cdns->role_sw) {
drivers/usb/cdns3/core.c
518
real_role = cdns_hw_role_state_machine(cdns);
drivers/usb/cdns3/core.c
519
if (real_role != cdns->role) {
drivers/usb/cdns3/core.c
520
ret = cdns_hw_role_switch(cdns);
drivers/usb/cdns3/core.c
528
if (cdns->role == USB_ROLE_HOST)
drivers/usb/cdns3/core.c
529
ret = cdns_drd_host_on(cdns);
drivers/usb/cdns3/core.c
530
else if (cdns->role == USB_ROLE_DEVICE)
drivers/usb/cdns3/core.c
531
ret = cdns_drd_gadget_on(cdns);
drivers/usb/cdns3/core.c
538
if (!role_changed && cdns->roles[cdns->role]->resume)
drivers/usb/cdns3/core.c
539
cdns->roles[cdns->role]->resume(cdns, power_lost);
drivers/usb/cdns3/core.c
54
static void cdns_role_stop(struct cdns *cdns)
drivers/usb/cdns3/core.c
545
void cdns_set_active(struct cdns *cdns, u8 set_active)
drivers/usb/cdns3/core.c
547
struct device *dev = cdns->dev;
drivers/usb/cdns3/core.c
56
enum usb_role role = cdns->role;
drivers/usb/cdns3/core.c
61
if (cdns->roles[role]->state == CDNS_ROLE_STATE_INACTIVE)
drivers/usb/cdns3/core.c
64
mutex_lock(&cdns->mutex);
drivers/usb/cdns3/core.c
65
cdns->roles[role]->stop(cdns);
drivers/usb/cdns3/core.c
66
cdns->roles[role]->state = CDNS_ROLE_STATE_INACTIVE;
drivers/usb/cdns3/core.c
67
mutex_unlock(&cdns->mutex);
drivers/usb/cdns3/core.c
70
static void cdns_exit_roles(struct cdns *cdns)
drivers/usb/cdns3/core.c
72
cdns_role_stop(cdns);
drivers/usb/cdns3/core.c
73
if (!cdns->no_drd)
drivers/usb/cdns3/core.c
74
cdns_drd_exit(cdns);
drivers/usb/cdns3/core.c
83
int cdns_core_init_role(struct cdns *cdns)
drivers/usb/cdns3/core.c
85
struct device *dev = cdns->dev;
drivers/usb/cdns3/core.c
91
cdns->role = USB_ROLE_NONE;
drivers/usb/cdns3/core.h
128
int (*gadget_init)(struct cdns *cdns);
drivers/usb/cdns3/core.h
129
int (*host_init)(struct cdns *cdns);
drivers/usb/cdns3/core.h
133
int cdns_hw_role_switch(struct cdns *cdns);
drivers/usb/cdns3/core.h
134
int cdns_init(struct cdns *cdns);
drivers/usb/cdns3/core.h
135
int cdns_remove(struct cdns *cdns);
drivers/usb/cdns3/core.h
136
int cdns_core_init_role(struct cdns *cdns);
drivers/usb/cdns3/core.h
139
int cdns_resume(struct cdns *cdns);
drivers/usb/cdns3/core.h
140
int cdns_suspend(struct cdns *cdns);
drivers/usb/cdns3/core.h
141
void cdns_set_active(struct cdns *cdns, u8 set_active);
drivers/usb/cdns3/core.h
143
static inline int cdns_resume(struct cdns *cdns)
drivers/usb/cdns3/core.h
145
static inline void cdns_set_active(struct cdns *cdns, u8 set_active) { }
drivers/usb/cdns3/core.h
146
static inline int cdns_suspend(struct cdns *cdns)
drivers/usb/cdns3/core.h
17
struct cdns;
drivers/usb/cdns3/core.h
30
int (*start)(struct cdns *cdns);
drivers/usb/cdns3/core.h
31
void (*stop)(struct cdns *cdns);
drivers/usb/cdns3/core.h
32
int (*suspend)(struct cdns *cdns, bool do_wakeup);
drivers/usb/cdns3/core.h
33
int (*resume)(struct cdns *cdns, bool lost_power);
drivers/usb/cdns3/drd.c
103
vbus = !!(readl(&cdns->otg_regs->sts) & OTGSTS_VBUS_VALID);
drivers/usb/cdns3/drd.c
104
dev_dbg(cdns->dev, "OTG VBUS: %d", vbus);
drivers/usb/cdns3/drd.c
109
void cdns_clear_vbus(struct cdns *cdns)
drivers/usb/cdns3/drd.c
113
if (cdns->version != CDNSP_CONTROLLER_V2 || cdns->no_drd)
drivers/usb/cdns3/drd.c
116
reg = readl(&cdns->otg_cdnsp_regs->override);
drivers/usb/cdns3/drd.c
118
writel(reg, &cdns->otg_cdnsp_regs->override);
drivers/usb/cdns3/drd.c
122
void cdns_set_vbus(struct cdns *cdns)
drivers/usb/cdns3/drd.c
126
if (cdns->version != CDNSP_CONTROLLER_V2 || cdns->no_drd)
drivers/usb/cdns3/drd.c
129
reg = readl(&cdns->otg_cdnsp_regs->override);
drivers/usb/cdns3/drd.c
131
writel(reg, &cdns->otg_cdnsp_regs->override);
drivers/usb/cdns3/drd.c
135
bool cdns_is_host(struct cdns *cdns)
drivers/usb/cdns3/drd.c
137
if (cdns->dr_mode == USB_DR_MODE_HOST)
drivers/usb/cdns3/drd.c
139
else if (cdns_get_id(cdns) == CDNS3_ID_HOST)
drivers/usb/cdns3/drd.c
145
bool cdns_is_device(struct cdns *cdns)
drivers/usb/cdns3/drd.c
147
if (cdns->dr_mode == USB_DR_MODE_PERIPHERAL)
drivers/usb/cdns3/drd.c
149
else if (cdns->dr_mode == USB_DR_MODE_OTG)
drivers/usb/cdns3/drd.c
150
if (cdns_get_id(cdns) == CDNS3_ID_PERIPHERAL)
drivers/usb/cdns3/drd.c
160
static void cdns_otg_disable_irq(struct cdns *cdns)
drivers/usb/cdns3/drd.c
162
if (cdns->version)
drivers/usb/cdns3/drd.c
163
writel(0, &cdns->otg_irq_regs->ien);
drivers/usb/cdns3/drd.c
170
static void cdns_otg_enable_irq(struct cdns *cdns)
drivers/usb/cdns3/drd.c
173
OTGIEN_VBUSVALID_FALL_INT, &cdns->otg_irq_regs->ien);
drivers/usb/cdns3/drd.c
182
int cdns_drd_host_on(struct cdns *cdns)
drivers/usb/cdns3/drd.c
187
if (cdns->no_drd)
drivers/usb/cdns3/drd.c
192
&cdns->otg_regs->cmd);
drivers/usb/cdns3/drd.c
194
if (cdns->version == CDNSP_CONTROLLER_V2)
drivers/usb/cdns3/drd.c
199
dev_dbg(cdns->dev, "Waiting till Host mode is turned on\n");
drivers/usb/cdns3/drd.c
200
ret = readl_poll_timeout_atomic(&cdns->otg_regs->sts, val,
drivers/usb/cdns3/drd.c
204
dev_err(cdns->dev, "timeout waiting for xhci_ready\n");
drivers/usb/cdns3/drd.c
207
phy_set_mode(cdns->usb2_phy, PHY_MODE_USB_HOST);
drivers/usb/cdns3/drd.c
208
phy_set_mode(cdns->usb3_phy, PHY_MODE_USB_HOST);
drivers/usb/cdns3/drd.c
216
void cdns_drd_host_off(struct cdns *cdns)
drivers/usb/cdns3/drd.c
220
if (cdns->no_drd)
drivers/usb/cdns3/drd.c
225
&cdns->otg_regs->cmd);
drivers/usb/cdns3/drd.c
228
readl_poll_timeout_atomic(&cdns->otg_regs->state, val,
drivers/usb/cdns3/drd.c
233
phy_set_mode(cdns->usb2_phy, PHY_MODE_INVALID);
drivers/usb/cdns3/drd.c
234
phy_set_mode(cdns->usb3_phy, PHY_MODE_INVALID);
drivers/usb/cdns3/drd.c
243
int cdns_drd_gadget_on(struct cdns *cdns)
drivers/usb/cdns3/drd.c
249
if (cdns->no_drd)
drivers/usb/cdns3/drd.c
253
writel(OTGCMD_DEV_BUS_REQ | reg, &cdns->otg_regs->cmd);
drivers/usb/cdns3/drd.c
255
dev_dbg(cdns->dev, "Waiting till Device mode is turned on\n");
drivers/usb/cdns3/drd.c
257
if (cdns->version == CDNSP_CONTROLLER_V2)
drivers/usb/cdns3/drd.c
262
ret = readl_poll_timeout_atomic(&cdns->otg_regs->sts, val,
drivers/usb/cdns3/drd.c
265
dev_err(cdns->dev, "timeout waiting for dev_ready\n");
drivers/usb/cdns3/drd.c
270
phy_set_mode(cdns->usb2_phy, PHY_MODE_USB_DEVICE);
drivers/usb/cdns3/drd.c
271
phy_set_mode(cdns->usb3_phy, PHY_MODE_USB_DEVICE);
drivers/usb/cdns3/drd.c
28
static int cdns_set_mode(struct cdns *cdns, enum usb_dr_mode mode)
drivers/usb/cdns3/drd.c
280
void cdns_drd_gadget_off(struct cdns *cdns)
drivers/usb/cdns3/drd.c
284
if (cdns->no_drd)
drivers/usb/cdns3/drd.c
294
&cdns->otg_regs->cmd);
drivers/usb/cdns3/drd.c
296
readl_poll_timeout_atomic(&cdns->otg_regs->state, val,
drivers/usb/cdns3/drd.c
301
phy_set_mode(cdns->usb2_phy, PHY_MODE_INVALID);
drivers/usb/cdns3/drd.c
302
phy_set_mode(cdns->usb3_phy, PHY_MODE_INVALID);
drivers/usb/cdns3/drd.c
312
static int cdns_init_otg_mode(struct cdns *cdns)
drivers/usb/cdns3/drd.c
316
cdns_otg_disable_irq(cdns);
drivers/usb/cdns3/drd.c
318
writel(~0, &cdns->otg_irq_regs->ivect);
drivers/usb/cdns3/drd.c
320
ret = cdns_set_mode(cdns, USB_DR_MODE_OTG);
drivers/usb/cdns3/drd.c
324
cdns_otg_enable_irq(cdns);
drivers/usb/cdns3/drd.c
335
int cdns_drd_update_mode(struct cdns *cdns)
drivers/usb/cdns3/drd.c
339
switch (cdns->dr_mode) {
drivers/usb/cdns3/drd.c
341
ret = cdns_set_mode(cdns, USB_DR_MODE_PERIPHERAL);
drivers/usb/cdns3/drd.c
344
ret = cdns_set_mode(cdns, USB_DR_MODE_HOST);
drivers/usb/cdns3/drd.c
347
ret = cdns_init_otg_mode(cdns);
drivers/usb/cdns3/drd.c
350
dev_err(cdns->dev, "Unsupported mode of operation %d\n",
drivers/usb/cdns3/drd.c
351
cdns->dr_mode);
drivers/usb/cdns3/drd.c
360
struct cdns *cdns = data;
drivers/usb/cdns3/drd.c
362
cdns_hw_role_switch(cdns);
drivers/usb/cdns3/drd.c
378
struct cdns *cdns = data;
drivers/usb/cdns3/drd.c
381
if (cdns->dr_mode != USB_DR_MODE_OTG)
drivers/usb/cdns3/drd.c
384
if (cdns->in_lpm)
drivers/usb/cdns3/drd.c
387
reg = readl(&cdns->otg_irq_regs->ivect);
drivers/usb/cdns3/drd.c
39
dev_dbg(cdns->dev, "Set controller to OTG mode\n");
drivers/usb/cdns3/drd.c
393
dev_dbg(cdns->dev, "OTG IRQ: new ID: %d\n",
drivers/usb/cdns3/drd.c
394
cdns_get_id(cdns));
drivers/usb/cdns3/drd.c
400
dev_dbg(cdns->dev, "OTG IRQ: new VBUS: %d\n",
drivers/usb/cdns3/drd.c
401
cdns_get_vbus(cdns));
drivers/usb/cdns3/drd.c
406
writel(~0, &cdns->otg_irq_regs->ivect);
drivers/usb/cdns3/drd.c
41
if (cdns->version == CDNSP_CONTROLLER_V2)
drivers/usb/cdns3/drd.c
410
int cdns_drd_init(struct cdns *cdns)
drivers/usb/cdns3/drd.c
416
if (cdns->no_drd) {
drivers/usb/cdns3/drd.c
417
cdns->dr_mode = usb_get_dr_mode(cdns->dev);
drivers/usb/cdns3/drd.c
419
if (cdns->dr_mode != USB_DR_MODE_HOST &&
drivers/usb/cdns3/drd.c
42
override_reg = &cdns->otg_cdnsp_regs->override;
drivers/usb/cdns3/drd.c
420
cdns->dr_mode != USB_DR_MODE_PERIPHERAL) {
drivers/usb/cdns3/drd.c
421
dev_err(cdns->dev, "Incorrect dr_mode\n");
drivers/usb/cdns3/drd.c
428
regs = devm_ioremap_resource(cdns->dev, &cdns->otg_res);
drivers/usb/cdns3/drd.c
43
else if (cdns->version == CDNS3_CONTROLLER_V1)
drivers/usb/cdns3/drd.c
44
override_reg = &cdns->otg_v1_regs->override;
drivers/usb/cdns3/drd.c
441
cdns->otg_v0_regs = regs;
drivers/usb/cdns3/drd.c
442
if (!readl(&cdns->otg_v0_regs->cmd)) {
drivers/usb/cdns3/drd.c
443
cdns->version = CDNS3_CONTROLLER_V0;
drivers/usb/cdns3/drd.c
444
cdns->otg_v1_regs = NULL;
drivers/usb/cdns3/drd.c
445
cdns->otg_cdnsp_regs = NULL;
drivers/usb/cdns3/drd.c
446
cdns->otg_regs = regs;
drivers/usb/cdns3/drd.c
447
cdns->otg_irq_regs = (struct cdns_otg_irq_regs __iomem *)
drivers/usb/cdns3/drd.c
448
&cdns->otg_v0_regs->ien;
drivers/usb/cdns3/drd.c
449
writel(1, &cdns->otg_v0_regs->simulate);
drivers/usb/cdns3/drd.c
450
dev_dbg(cdns->dev, "DRD version v0 (%08x)\n",
drivers/usb/cdns3/drd.c
451
readl(&cdns->otg_v0_regs->version));
drivers/usb/cdns3/drd.c
453
cdns->otg_v0_regs = NULL;
drivers/usb/cdns3/drd.c
454
cdns->otg_v1_regs = regs;
drivers/usb/cdns3/drd.c
455
cdns->otg_cdnsp_regs = regs;
drivers/usb/cdns3/drd.c
457
cdns->otg_regs = (void __iomem *)&cdns->otg_v1_regs->cmd;
drivers/usb/cdns3/drd.c
459
state = readl(&cdns->otg_cdnsp_regs->did);
drivers/usb/cdns3/drd.c
46
override_reg = &cdns->otg_v0_regs->ctrl1;
drivers/usb/cdns3/drd.c
462
cdns->otg_irq_regs = (struct cdns_otg_irq_regs __iomem *)
drivers/usb/cdns3/drd.c
463
&cdns->otg_cdnsp_regs->ien;
drivers/usb/cdns3/drd.c
464
cdns->version = CDNSP_CONTROLLER_V2;
drivers/usb/cdns3/drd.c
466
cdns->otg_irq_regs = (struct cdns_otg_irq_regs __iomem *)
drivers/usb/cdns3/drd.c
467
&cdns->otg_v1_regs->ien;
drivers/usb/cdns3/drd.c
468
writel(1, &cdns->otg_v1_regs->simulate);
drivers/usb/cdns3/drd.c
470
if (cdns->pdata &&
drivers/usb/cdns3/drd.c
471
(cdns->pdata->quirks & CDNS3_DRD_SUSPEND_RESIDENCY_ENABLE)) {
drivers/usb/cdns3/drd.c
472
reg = readl(&cdns->otg_v1_regs->susp_ctrl);
drivers/usb/cdns3/drd.c
474
writel(reg, &cdns->otg_v1_regs->susp_ctrl);
drivers/usb/cdns3/drd.c
477
cdns->version = CDNS3_CONTROLLER_V1;
drivers/usb/cdns3/drd.c
479
dev_err(cdns->dev, "not supported DID=0x%08x\n", state);
drivers/usb/cdns3/drd.c
483
dev_dbg(cdns->dev, "DRD version v1 (ID: %08x, rev: %08x)\n",
drivers/usb/cdns3/drd.c
484
readl(&cdns->otg_v1_regs->did),
drivers/usb/cdns3/drd.c
485
readl(&cdns->otg_v1_regs->rid));
drivers/usb/cdns3/drd.c
488
state = OTGSTS_STRAP(readl(&cdns->otg_regs->sts));
drivers/usb/cdns3/drd.c
491
cdns->dr_mode = USB_DR_MODE_OTG;
drivers/usb/cdns3/drd.c
493
if ((cdns->version == CDNSP_CONTROLLER_V2 &&
drivers/usb/cdns3/drd.c
495
(cdns->version != CDNSP_CONTROLLER_V2 &&
drivers/usb/cdns3/drd.c
497
dev_dbg(cdns->dev, "Controller strapped to HOST\n");
drivers/usb/cdns3/drd.c
498
cdns->dr_mode = USB_DR_MODE_HOST;
drivers/usb/cdns3/drd.c
499
} else if ((cdns->version == CDNSP_CONTROLLER_V2 &&
drivers/usb/cdns3/drd.c
50
if (cdns->version != CDNS3_CONTROLLER_V0)
drivers/usb/cdns3/drd.c
501
(cdns->version != CDNSP_CONTROLLER_V2 &&
drivers/usb/cdns3/drd.c
503
dev_dbg(cdns->dev, "Controller strapped to PERIPHERAL\n");
drivers/usb/cdns3/drd.c
504
cdns->dr_mode = USB_DR_MODE_PERIPHERAL;
drivers/usb/cdns3/drd.c
507
ret = devm_request_threaded_irq(cdns->dev, cdns->otg_irq,
drivers/usb/cdns3/drd.c
511
dev_name(cdns->dev), cdns);
drivers/usb/cdns3/drd.c
513
dev_err(cdns->dev, "couldn't get otg_irq\n");
drivers/usb/cdns3/drd.c
517
state = readl(&cdns->otg_regs->sts);
drivers/usb/cdns3/drd.c
519
dev_err(cdns->dev, "Cadence USB3 OTG device not ready\n");
drivers/usb/cdns3/drd.c
526
int cdns_drd_exit(struct cdns *cdns)
drivers/usb/cdns3/drd.c
528
if (cdns->no_drd)
drivers/usb/cdns3/drd.c
531
cdns_otg_disable_irq(cdns);
drivers/usb/cdns3/drd.c
537
bool cdns_power_is_lost(struct cdns *cdns)
drivers/usb/cdns3/drd.c
539
if (cdns->no_drd)
drivers/usb/cdns3/drd.c
542
if (cdns->version == CDNS3_CONTROLLER_V0) {
drivers/usb/cdns3/drd.c
543
if (!(readl(&cdns->otg_v0_regs->simulate) & BIT(0)))
drivers/usb/cdns3/drd.c
546
if (!(readl(&cdns->otg_v1_regs->simulate) & BIT(0)))
drivers/usb/cdns3/drd.c
57
if (cdns->version == CDNS3_CONTROLLER_V1) {
drivers/usb/cdns3/drd.c
64
if (cdns->phyrst_a_enable) {
drivers/usb/cdns3/drd.c
65
reg = readl(&cdns->otg_v1_regs->phyrst_cfg);
drivers/usb/cdns3/drd.c
67
writel(reg, &cdns->otg_v1_regs->phyrst_cfg);
drivers/usb/cdns3/drd.c
79
dev_err(cdns->dev, "Unsupported mode of operation %d\n", mode);
drivers/usb/cdns3/drd.c
86
int cdns_get_id(struct cdns *cdns)
drivers/usb/cdns3/drd.c
90
if (cdns->no_drd)
drivers/usb/cdns3/drd.c
93
id = readl(&cdns->otg_regs->sts) & OTGSTS_ID_VALUE;
drivers/usb/cdns3/drd.c
94
dev_dbg(cdns->dev, "OTG ID: %d", id);
drivers/usb/cdns3/drd.c
99
int cdns_get_vbus(struct cdns *cdns)
drivers/usb/cdns3/drd.h
212
bool cdns_is_host(struct cdns *cdns);
drivers/usb/cdns3/drd.h
213
bool cdns_is_device(struct cdns *cdns);
drivers/usb/cdns3/drd.h
214
int cdns_get_id(struct cdns *cdns);
drivers/usb/cdns3/drd.h
215
int cdns_get_vbus(struct cdns *cdns);
drivers/usb/cdns3/drd.h
216
void cdns_clear_vbus(struct cdns *cdns);
drivers/usb/cdns3/drd.h
217
void cdns_set_vbus(struct cdns *cdns);
drivers/usb/cdns3/drd.h
218
int cdns_drd_init(struct cdns *cdns);
drivers/usb/cdns3/drd.h
219
int cdns_drd_exit(struct cdns *cdns);
drivers/usb/cdns3/drd.h
220
int cdns_drd_update_mode(struct cdns *cdns);
drivers/usb/cdns3/drd.h
221
int cdns_drd_gadget_on(struct cdns *cdns);
drivers/usb/cdns3/drd.h
222
void cdns_drd_gadget_off(struct cdns *cdns);
drivers/usb/cdns3/drd.h
223
int cdns_drd_host_on(struct cdns *cdns);
drivers/usb/cdns3/drd.h
224
void cdns_drd_host_off(struct cdns *cdns);
drivers/usb/cdns3/drd.h
225
bool cdns_power_is_lost(struct cdns *cdns);
drivers/usb/cdns3/gadget-export.h
15
int cdnsp_gadget_init(struct cdns *cdns);
drivers/usb/cdns3/gadget-export.h
16
int cdns3_gadget_init(struct cdns *cdns);
drivers/usb/cdns3/gadget-export.h
19
static inline int cdnsp_gadget_init(struct cdns *cdns)
drivers/usb/cdns3/gadget-export.h
24
static inline int cdns3_gadget_init(struct cdns *cdns)
drivers/usb/cdns3/host-export.h
14
int cdns_host_init(struct cdns *cdns);
drivers/usb/cdns3/host-export.h
18
static inline int cdns_host_init(struct cdns *cdns)
drivers/usb/cdns3/host-export.h
23
static inline void cdns_host_exit(struct cdns *cdns) { }
drivers/usb/cdns3/host.c
100
if (!cdns->xhci_plat_data) {
drivers/usb/cdns3/host.c
105
if (cdns->pdata && (cdns->pdata->quirks & CDNS3_DEFAULT_PM_RUNTIME_ALLOW))
drivers/usb/cdns3/host.c
106
cdns->xhci_plat_data->quirks |= XHCI_DEFAULT_PM_RUNTIME_ALLOW;
drivers/usb/cdns3/host.c
108
ret = platform_device_add_data(xhci, cdns->xhci_plat_data,
drivers/usb/cdns3/host.c
115
dev_err(cdns->dev, "failed to register xHCI device\n");
drivers/usb/cdns3/host.c
122
cdns->xhci_regs = hcd->regs;
drivers/usb/cdns3/host.c
127
kfree(cdns->xhci_plat_data);
drivers/usb/cdns3/host.c
133
static void cdns_host_exit(struct cdns *cdns)
drivers/usb/cdns3/host.c
135
kfree(cdns->xhci_plat_data);
drivers/usb/cdns3/host.c
136
platform_device_unregister(cdns->host_dev);
drivers/usb/cdns3/host.c
137
cdns->host_dev = NULL;
drivers/usb/cdns3/host.c
138
cdns_drd_host_off(cdns);
drivers/usb/cdns3/host.c
141
static int cdns_host_resume(struct cdns *cdns, bool power_lost)
drivers/usb/cdns3/host.c
143
struct usb_hcd *hcd = platform_get_drvdata(cdns->host_dev);
drivers/usb/cdns3/host.c
151
int cdns_host_init(struct cdns *cdns)
drivers/usb/cdns3/host.c
155
rdrv = devm_kzalloc(cdns->dev, sizeof(*rdrv), GFP_KERNEL);
drivers/usb/cdns3/host.c
165
cdns->roles[USB_ROLE_HOST] = rdrv;
drivers/usb/cdns3/host.c
69
static int __cdns_host_init(struct cdns *cdns)
drivers/usb/cdns3/host.c
75
cdns_drd_host_on(cdns);
drivers/usb/cdns3/host.c
79
dev_err(cdns->dev, "couldn't allocate xHCI device\n");
drivers/usb/cdns3/host.c
83
xhci->dev.parent = cdns->dev;
drivers/usb/cdns3/host.c
84
cdns->host_dev = xhci;
drivers/usb/cdns3/host.c
86
ret = platform_device_add_resources(xhci, cdns->xhci_res,
drivers/usb/cdns3/host.c
89
dev_err(cdns->dev, "couldn't add resources to xHCI device\n");
drivers/usb/cdns3/host.c
93
if (cdns->version < CDNSP_CONTROLLER_V2)
drivers/usb/cdns3/host.c
94
cdns->xhci_plat_data = kmemdup(&xhci_plat_cdns3_xhci,
drivers/usb/cdns3/host.c
97
cdns->xhci_plat_data = kmemdup(&xhci_plat_cdnsp_xhci,