Symbol: anx78xx
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1005
struct anx78xx *anx78xx = data;
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1008
if (anx78xx->powered)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1011
mutex_lock(&anx78xx->lock);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1014
anx78xx_poweron(anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1016
err = anx78xx_enable_interrupts(anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1020
mutex_unlock(&anx78xx->lock);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1025
static int anx78xx_handle_dp_int_1(struct anx78xx *anx78xx, u8 irq)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1031
err = regmap_write(anx78xx->map[I2C_IDX_TX_P2], SP_DP_INT_STATUS1_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1038
err = anx78xx_config_dp_output(anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1044
static bool anx78xx_handle_common_int_4(struct anx78xx *anx78xx, u8 irq)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1051
err = regmap_write(anx78xx->map[I2C_IDX_TX_P2],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1061
anx78xx_poweroff(anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1063
drm_edid_free(anx78xx->drm_edid);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1064
anx78xx->drm_edid = NULL;
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1073
static void anx78xx_handle_hdmi_int_1(struct anx78xx *anx78xx, u8 irq)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1080
err = regmap_write(anx78xx->map[I2C_IDX_RX_P0], SP_INT_STATUS1_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1090
err = regmap_read(anx78xx->map[I2C_IDX_RX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1107
err = anx78xx_dp_link_training(anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
111
struct anx78xx *anx78xx = container_of(aux, struct anx78xx, aux);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1115
struct anx78xx *anx78xx = data;
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
112
return anx_dp_aux_transfer(anx78xx->map[I2C_IDX_TX_P0], msg);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1120
mutex_lock(&anx78xx->lock);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1122
err = regmap_read(anx78xx->map[I2C_IDX_TX_P2], SP_DP_INT_STATUS1_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1130
anx78xx_handle_dp_int_1(anx78xx, irq);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1132
err = regmap_read(anx78xx->map[I2C_IDX_TX_P2],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1141
event = anx78xx_handle_common_int_4(anx78xx, irq);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1144
if (!anx78xx->powered)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1147
err = regmap_read(anx78xx->map[I2C_IDX_RX_P0], SP_INT_STATUS1_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
115
static int anx78xx_set_hpd(struct anx78xx *anx78xx)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1155
anx78xx_handle_hdmi_int_1(anx78xx, irq);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1158
mutex_unlock(&anx78xx->lock);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1161
drm_helper_hpd_irq_event(anx78xx->connector.dev);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1166
static void unregister_i2c_dummy_clients(struct anx78xx *anx78xx)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1170
for (i = 0; i < ARRAY_SIZE(anx78xx->i2c_dummy); i++)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1171
i2c_unregister_device(anx78xx->i2c_dummy[i]);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1189
struct anx78xx *anx78xx;
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
119
err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_RX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1196
anx78xx = devm_drm_bridge_alloc(&client->dev, struct anx78xx, bridge,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1198
if (IS_ERR(anx78xx))
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1199
return PTR_ERR(anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1201
pdata = &anx78xx->pdata;
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1203
mutex_init(&anx78xx->lock);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1205
anx78xx->bridge.of_node = client->dev.of_node;
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1207
anx78xx->client = client;
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1208
i2c_set_clientdata(client, anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1210
err = anx78xx_init_pdata(anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
124
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P2], SP_VID_CTRL3_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1244
anx78xx->i2c_dummy[i] = i2c_dummy;
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1245
anx78xx->map[i] = devm_regmap_init_i2c(anx78xx->i2c_dummy[i],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1247
if (IS_ERR(anx78xx->map[i])) {
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1248
err = PTR_ERR(anx78xx->map[i]);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1256
anx78xx_poweron(anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1258
err = regmap_read(anx78xx->map[I2C_IDX_TX_P2], SP_DEVICE_IDL_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1263
err = regmap_read(anx78xx->map[I2C_IDX_TX_P2], SP_DEVICE_IDH_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1268
anx78xx->chipid = (u8)idl | ((u8)idh << 8);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1270
err = regmap_read(anx78xx->map[I2C_IDX_TX_P2], SP_DEVICE_VERSION_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1276
if (anx78xx->chipid == anx78xx_chipid_list[i]) {
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1278
anx78xx->chipid, version);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1286
anx78xx->chipid, version);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1294
"anx78xx-hpd", anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1304
"anx78xx-intp", anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1310
drm_bridge_add(&anx78xx->bridge);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1313
if (!gpiod_get_value(anx78xx->pdata.gpiod_hpd))
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1314
anx78xx_poweroff(anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1319
anx78xx_poweroff(anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
132
static int anx78xx_clear_hpd(struct anx78xx *anx78xx)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1322
unregister_i2c_dummy_clients(anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1328
struct anx78xx *anx78xx = i2c_get_clientdata(client);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1330
drm_bridge_remove(&anx78xx->bridge);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1332
unregister_i2c_dummy_clients(anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
1334
drm_edid_free(anx78xx->drm_edid);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
136
err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P2], SP_VID_CTRL3_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
141
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_RX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
159
static int anx78xx_rx_initialization(struct anx78xx *anx78xx)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
163
err = regmap_write(anx78xx->map[I2C_IDX_RX_P0], SP_HDMI_MUTE_CTRL_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
168
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_RX_P0], SP_CHIP_CTRL_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
174
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_RX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
180
err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_RX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
187
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_RX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
193
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_RX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
199
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_RX_P0], SP_AUDVID_CTRL_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
204
err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_RX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
209
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_RX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
215
err = regmap_write(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
221
err = regmap_multi_reg_write(anx78xx->map[I2C_IDX_RX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
227
err = anx78xx_clear_hpd(anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
240
static int anx78xx_link_phy_initialization(struct anx78xx *anx78xx)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
248
err = regmap_write(anx78xx->map[I2C_IDX_TX_P2], SP_ANALOG_CTRL0_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
256
err = regmap_bulk_write(anx78xx->map[I2C_IDX_TX_P1],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
267
static int anx78xx_xtal_clk_sel(struct anx78xx *anx78xx)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
272
err = regmap_update_bits(anx78xx->map[I2C_IDX_TX_P2],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
279
err = regmap_write(anx78xx->map[I2C_IDX_TX_P0], SP_DP_AUX_CH_CTRL3_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
284
err = regmap_write(anx78xx->map[I2C_IDX_TX_P0], SP_DP_AUX_CH_CTRL4_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
289
err = regmap_write(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
294
err = regmap_write(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
300
err = regmap_write(anx78xx->map[I2C_IDX_TX_P0], SP_AUX_MISC_CTRL_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
305
err = regmap_read(anx78xx->map[I2C_IDX_RX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
311
err = regmap_write(anx78xx->map[I2C_IDX_RX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
327
static int anx78xx_tx_initialization(struct anx78xx *anx78xx)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
332
err = regmap_write(anx78xx->map[I2C_IDX_TX_P0], SP_DP_AUX_CH_CTRL2_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
338
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
343
err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
349
err = regmap_multi_reg_write(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
355
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
360
err = regmap_write(anx78xx->map[I2C_IDX_TX_P2], SP_VID_CTRL8_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
369
err = regmap_write(anx78xx->map[I2C_IDX_TX_P0], SP_HDCP_AUTO_TIMER_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
374
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
379
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
384
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P2],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
389
err = anx78xx_xtal_clk_sel(anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
393
err = regmap_write(anx78xx->map[I2C_IDX_TX_P0], SP_AUX_DEFER_CTRL_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
398
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
408
err = regmap_write(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
413
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
419
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
424
err = anx78xx_link_phy_initialization(anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
429
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
437
static int anx78xx_enable_interrupts(struct anx78xx *anx78xx)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
445
err = regmap_write(anx78xx->map[I2C_IDX_TX_P2], SP_INT_CTRL_REG, 0x01);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
449
err = regmap_write(anx78xx->map[I2C_IDX_TX_P2],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
454
err = regmap_write(anx78xx->map[I2C_IDX_TX_P2], SP_DP_INT_MASK1_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
459
err = regmap_write(anx78xx->map[I2C_IDX_RX_P0], SP_INT_MASK1_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
467
static void anx78xx_poweron(struct anx78xx *anx78xx)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
469
struct anx78xx_platform_data *pdata = &anx78xx->pdata;
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
472
if (WARN_ON(anx78xx->powered))
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
495
anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P2], SP_POWERDOWN_CTRL_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
497
anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P2], SP_POWERDOWN_CTRL_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
500
anx78xx->powered = true;
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
503
static void anx78xx_poweroff(struct anx78xx *anx78xx)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
505
struct anx78xx_platform_data *pdata = &anx78xx->pdata;
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
508
if (WARN_ON(!anx78xx->powered))
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
528
anx78xx->powered = false;
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
531
static int anx78xx_start(struct anx78xx *anx78xx)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
536
err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P2],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
541
err = anx78xx_enable_interrupts(anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
547
err = anx78xx_rx_initialization(anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
553
err = anx78xx_tx_initialization(anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
569
anx78xx_poweroff(anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
574
static int anx78xx_init_pdata(struct anx78xx *anx78xx)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
576
struct anx78xx_platform_data *pdata = &anx78xx->pdata;
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
577
struct device *dev = &anx78xx->client->dev;
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
604
static int anx78xx_dp_link_training(struct anx78xx *anx78xx)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
609
err = regmap_write(anx78xx->map[I2C_IDX_RX_P0], SP_HDMI_MUTE_CTRL_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
614
err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P2],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
620
err = drm_dp_dpcd_readb(&anx78xx->aux, DP_MAX_LINK_RATE, &dp_bw);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
635
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P2], SP_VID_CTRL1_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
640
err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P2],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
646
err = drm_dp_dpcd_read(&anx78xx->aux, DP_DPCD_REV,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
647
&anx78xx->dpcd, DP_RECEIVER_CAP_SIZE);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
654
err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
659
drm_dp_link_power_up(&anx78xx->aux, anx78xx->dpcd[DP_DPCD_REV]);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
662
err = regmap_write(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
667
if (anx78xx->dpcd[DP_MAX_DOWNSPREAD] & DP_MAX_DOWNSPREAD_0_5) {
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
670
err = regmap_write(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
675
err = drm_dp_dpcd_writeb(&anx78xx->aux, DP_DOWNSPREAD_CTRL,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
680
err = drm_dp_dpcd_writeb(&anx78xx->aux, DP_DOWNSPREAD_CTRL, 0);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
686
if (drm_dp_enhanced_frame_cap(anx78xx->dpcd))
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
687
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
691
err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
697
err = regmap_write(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
699
anx78xx->dpcd[DP_MAX_LINK_RATE]);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
703
dpcd[1] = drm_dp_max_lane_count(anx78xx->dpcd);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
705
if (drm_dp_enhanced_frame_cap(anx78xx->dpcd))
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
708
err = drm_dp_dpcd_write(&anx78xx->aux, DP_LINK_BW_SET, dpcd,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
716
err = regmap_write(anx78xx->map[I2C_IDX_TX_P0], SP_DP_LT_CTRL_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
724
static int anx78xx_config_dp_output(struct anx78xx *anx78xx)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
728
err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P2], SP_VID_CTRL1_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
734
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P2], SP_VID_CTRL1_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
742
static int anx78xx_send_video_infoframe(struct anx78xx *anx78xx,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
754
err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
759
err = regmap_bulk_write(anx78xx->map[I2C_IDX_TX_P2],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
765
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
770
err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
778
static int anx78xx_get_downstream_info(struct anx78xx *anx78xx)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
783
err = drm_dp_dpcd_readb(&anx78xx->aux, DP_SINK_COUNT, &value);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
799
struct anx78xx *anx78xx = connector_to_anx78xx(connector);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
802
if (WARN_ON(!anx78xx->powered))
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
805
if (anx78xx->drm_edid)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
808
mutex_lock(&anx78xx->lock);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
810
err = anx78xx_get_downstream_info(anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
816
anx78xx->drm_edid = drm_edid_read_ddc(connector, &anx78xx->aux.ddc);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
818
err = drm_edid_connector_update(connector, anx78xx->drm_edid);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
820
if (!anx78xx->drm_edid) {
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
833
mutex_unlock(&anx78xx->lock);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
845
struct anx78xx *anx78xx = connector_to_anx78xx(connector);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
847
if (!gpiod_get_value(anx78xx->pdata.gpiod_hpd))
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
866
struct anx78xx *anx78xx = bridge_to_anx78xx(bridge);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
875
anx78xx->aux.name = "DP-AUX";
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
876
anx78xx->aux.dev = &anx78xx->client->dev;
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
877
anx78xx->aux.drm_dev = bridge->dev;
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
878
anx78xx->aux.transfer = anx78xx_aux_transfer;
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
88
static inline struct anx78xx *connector_to_anx78xx(struct drm_connector *c)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
880
err = drm_dp_aux_register(&anx78xx->aux);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
886
err = drm_connector_init(bridge->dev, &anx78xx->connector,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
894
drm_connector_helper_add(&anx78xx->connector,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
897
anx78xx->connector.polled = DRM_CONNECTOR_POLL_HPD;
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
899
err = drm_connector_attach_encoder(&anx78xx->connector,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
90
return container_of(c, struct anx78xx, connector);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
906
err = drm_connector_register(&anx78xx->connector);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
914
drm_connector_cleanup(&anx78xx->connector);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
916
drm_dp_aux_unregister(&anx78xx->aux);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
93
static inline struct anx78xx *bridge_to_anx78xx(struct drm_bridge *bridge)
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
942
struct anx78xx *anx78xx = bridge_to_anx78xx(bridge);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
945
anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P2], SP_POWERDOWN_CTRL_REG,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
95
return container_of(bridge, struct anx78xx, bridge);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
953
struct anx78xx *anx78xx = bridge_to_anx78xx(bridge);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
957
if (WARN_ON(!anx78xx->powered))
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
960
mutex_lock(&anx78xx->lock);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
963
&anx78xx->connector,
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
970
err = anx78xx_send_video_infoframe(anx78xx, &frame);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
975
mutex_unlock(&anx78xx->lock);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
980
struct anx78xx *anx78xx = bridge_to_anx78xx(bridge);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
983
err = anx78xx_start(anx78xx);
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
989
err = anx78xx_set_hpd(anx78xx);