anx78xx            82 drivers/gpu/drm/bridge/analogix-anx78xx.c static inline struct anx78xx *connector_to_anx78xx(struct drm_connector *c)
anx78xx            84 drivers/gpu/drm/bridge/analogix-anx78xx.c 	return container_of(c, struct anx78xx, connector);
anx78xx            87 drivers/gpu/drm/bridge/analogix-anx78xx.c static inline struct anx78xx *bridge_to_anx78xx(struct drm_bridge *bridge)
anx78xx            89 drivers/gpu/drm/bridge/analogix-anx78xx.c 	return container_of(bridge, struct anx78xx, bridge);
anx78xx           102 drivers/gpu/drm/bridge/analogix-anx78xx.c static bool anx78xx_aux_op_finished(struct anx78xx *anx78xx)
anx78xx           107 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_read(anx78xx->map[I2C_IDX_TX_P0], SP_DP_AUX_CH_CTRL2_REG,
anx78xx           115 drivers/gpu/drm/bridge/analogix-anx78xx.c static int anx78xx_aux_wait(struct anx78xx *anx78xx)
anx78xx           123 drivers/gpu/drm/bridge/analogix-anx78xx.c 	while (!anx78xx_aux_op_finished(anx78xx)) {
anx78xx           125 drivers/gpu/drm/bridge/analogix-anx78xx.c 			if (!anx78xx_aux_op_finished(anx78xx)) {
anx78xx           137 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_read(anx78xx->map[I2C_IDX_TX_P0], SP_AUX_CH_STATUS_REG,
anx78xx           153 drivers/gpu/drm/bridge/analogix-anx78xx.c static int anx78xx_aux_address(struct anx78xx *anx78xx, unsigned int addr)
anx78xx           157 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P0], SP_AUX_ADDR_7_0_REG,
anx78xx           162 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P0], SP_AUX_ADDR_15_8_REG,
anx78xx           172 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_update_bits(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           186 drivers/gpu/drm/bridge/analogix-anx78xx.c 	struct anx78xx *anx78xx = container_of(aux, struct anx78xx, aux);
anx78xx           204 drivers/gpu/drm/bridge/analogix-anx78xx.c 		err = regmap_bulk_write(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           212 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_aux_address(anx78xx, msg->address);
anx78xx           216 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P0], SP_DP_AUX_CH_CTRL1_REG,
anx78xx           222 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_update_bits(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           228 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_aux_wait(anx78xx);
anx78xx           236 drivers/gpu/drm/bridge/analogix-anx78xx.c 		err = regmap_bulk_read(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           243 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           251 drivers/gpu/drm/bridge/analogix-anx78xx.c static int anx78xx_set_hpd(struct anx78xx *anx78xx)
anx78xx           255 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_RX_P0],
anx78xx           260 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P2], SP_VID_CTRL3_REG,
anx78xx           268 drivers/gpu/drm/bridge/analogix-anx78xx.c static int anx78xx_clear_hpd(struct anx78xx *anx78xx)
anx78xx           272 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P2], SP_VID_CTRL3_REG,
anx78xx           277 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_bits(anx78xx->map[I2C_IDX_RX_P0],
anx78xx           295 drivers/gpu/drm/bridge/analogix-anx78xx.c static int anx78xx_rx_initialization(struct anx78xx *anx78xx)
anx78xx           299 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_RX_P0], SP_HDMI_MUTE_CTRL_REG,
anx78xx           304 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_bits(anx78xx->map[I2C_IDX_RX_P0], SP_CHIP_CTRL_REG,
anx78xx           310 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_bits(anx78xx->map[I2C_IDX_RX_P0],
anx78xx           316 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_RX_P0],
anx78xx           323 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_bits(anx78xx->map[I2C_IDX_RX_P0],
anx78xx           329 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_bits(anx78xx->map[I2C_IDX_RX_P0],
anx78xx           335 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_bits(anx78xx->map[I2C_IDX_RX_P0], SP_AUDVID_CTRL_REG,
anx78xx           340 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_RX_P0],
anx78xx           345 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_bits(anx78xx->map[I2C_IDX_RX_P0],
anx78xx           351 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           357 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_multi_reg_write(anx78xx->map[I2C_IDX_RX_P0],
anx78xx           363 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_clear_hpd(anx78xx);
anx78xx           376 drivers/gpu/drm/bridge/analogix-anx78xx.c static int anx78xx_link_phy_initialization(struct anx78xx *anx78xx)
anx78xx           384 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P2], SP_ANALOG_CTRL0_REG,
anx78xx           392 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_bulk_write(anx78xx->map[I2C_IDX_TX_P1],
anx78xx           403 drivers/gpu/drm/bridge/analogix-anx78xx.c static int anx78xx_xtal_clk_sel(struct anx78xx *anx78xx)
anx78xx           408 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_update_bits(anx78xx->map[I2C_IDX_TX_P2],
anx78xx           415 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P0], SP_DP_AUX_CH_CTRL3_REG,
anx78xx           420 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P0], SP_DP_AUX_CH_CTRL4_REG,
anx78xx           425 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           430 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           436 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P0], SP_AUX_MISC_CTRL_REG,
anx78xx           441 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_read(anx78xx->map[I2C_IDX_RX_P0],
anx78xx           447 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_RX_P0],
anx78xx           463 drivers/gpu/drm/bridge/analogix-anx78xx.c static int anx78xx_tx_initialization(struct anx78xx *anx78xx)
anx78xx           468 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P0], SP_DP_AUX_CH_CTRL2_REG,
anx78xx           474 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           479 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           485 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_multi_reg_write(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           491 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           496 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P2], SP_VID_CTRL8_REG,
anx78xx           505 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P0], SP_HDCP_AUTO_TIMER_REG,
anx78xx           510 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           515 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           520 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P2],
anx78xx           525 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_xtal_clk_sel(anx78xx);
anx78xx           529 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P0], SP_AUX_DEFER_CTRL_REG,
anx78xx           534 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           544 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           549 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           555 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           560 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_link_phy_initialization(anx78xx);
anx78xx           565 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           573 drivers/gpu/drm/bridge/analogix-anx78xx.c static int anx78xx_enable_interrupts(struct anx78xx *anx78xx)
anx78xx           581 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P2], SP_INT_CTRL_REG, 0x01);
anx78xx           585 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P2],
anx78xx           590 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P2], SP_DP_INT_MASK1_REG,
anx78xx           595 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_RX_P0], SP_INT_MASK1_REG,
anx78xx           603 drivers/gpu/drm/bridge/analogix-anx78xx.c static void anx78xx_poweron(struct anx78xx *anx78xx)
anx78xx           605 drivers/gpu/drm/bridge/analogix-anx78xx.c 	struct anx78xx_platform_data *pdata = &anx78xx->pdata;
anx78xx           608 drivers/gpu/drm/bridge/analogix-anx78xx.c 	if (WARN_ON(anx78xx->powered))
anx78xx           631 drivers/gpu/drm/bridge/analogix-anx78xx.c 	anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P2], SP_POWERDOWN_CTRL_REG,
anx78xx           633 drivers/gpu/drm/bridge/analogix-anx78xx.c 	anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P2], SP_POWERDOWN_CTRL_REG,
anx78xx           636 drivers/gpu/drm/bridge/analogix-anx78xx.c 	anx78xx->powered = true;
anx78xx           639 drivers/gpu/drm/bridge/analogix-anx78xx.c static void anx78xx_poweroff(struct anx78xx *anx78xx)
anx78xx           641 drivers/gpu/drm/bridge/analogix-anx78xx.c 	struct anx78xx_platform_data *pdata = &anx78xx->pdata;
anx78xx           644 drivers/gpu/drm/bridge/analogix-anx78xx.c 	if (WARN_ON(!anx78xx->powered))
anx78xx           664 drivers/gpu/drm/bridge/analogix-anx78xx.c 	anx78xx->powered = false;
anx78xx           667 drivers/gpu/drm/bridge/analogix-anx78xx.c static int anx78xx_start(struct anx78xx *anx78xx)
anx78xx           672 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P2],
anx78xx           677 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_enable_interrupts(anx78xx);
anx78xx           683 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_rx_initialization(anx78xx);
anx78xx           689 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_tx_initialization(anx78xx);
anx78xx           705 drivers/gpu/drm/bridge/analogix-anx78xx.c 	anx78xx_poweroff(anx78xx);
anx78xx           710 drivers/gpu/drm/bridge/analogix-anx78xx.c static int anx78xx_init_pdata(struct anx78xx *anx78xx)
anx78xx           712 drivers/gpu/drm/bridge/analogix-anx78xx.c 	struct anx78xx_platform_data *pdata = &anx78xx->pdata;
anx78xx           713 drivers/gpu/drm/bridge/analogix-anx78xx.c 	struct device *dev = &anx78xx->client->dev;
anx78xx           740 drivers/gpu/drm/bridge/analogix-anx78xx.c static int anx78xx_dp_link_training(struct anx78xx *anx78xx)
anx78xx           745 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_RX_P0], SP_HDMI_MUTE_CTRL_REG,
anx78xx           750 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P2],
anx78xx           756 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = drm_dp_dpcd_readb(&anx78xx->aux, DP_MAX_LINK_RATE, &dp_bw);
anx78xx           771 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P2], SP_VID_CTRL1_REG,
anx78xx           776 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P2],
anx78xx           782 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = drm_dp_dpcd_read(&anx78xx->aux, DP_DPCD_REV,
anx78xx           783 drivers/gpu/drm/bridge/analogix-anx78xx.c 			       &anx78xx->dpcd, DP_RECEIVER_CAP_SIZE);
anx78xx           790 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           796 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = drm_dp_link_probe(&anx78xx->aux, &anx78xx->link);
anx78xx           803 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = drm_dp_link_power_up(&anx78xx->aux, &anx78xx->link);
anx78xx           810 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           815 drivers/gpu/drm/bridge/analogix-anx78xx.c 	if (anx78xx->dpcd[DP_MAX_DOWNSPREAD] & DP_MAX_DOWNSPREAD_0_5) {
anx78xx           818 drivers/gpu/drm/bridge/analogix-anx78xx.c 		err = regmap_write(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           823 drivers/gpu/drm/bridge/analogix-anx78xx.c 		err = drm_dp_dpcd_writeb(&anx78xx->aux, DP_DOWNSPREAD_CTRL,
anx78xx           828 drivers/gpu/drm/bridge/analogix-anx78xx.c 		err = drm_dp_dpcd_writeb(&anx78xx->aux, DP_DOWNSPREAD_CTRL, 0);
anx78xx           834 drivers/gpu/drm/bridge/analogix-anx78xx.c 	if (drm_dp_enhanced_frame_cap(anx78xx->dpcd))
anx78xx           835 drivers/gpu/drm/bridge/analogix-anx78xx.c 		err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           839 drivers/gpu/drm/bridge/analogix-anx78xx.c 		err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           845 drivers/gpu/drm/bridge/analogix-anx78xx.c 	value = drm_dp_link_rate_to_bw_code(anx78xx->link.rate);
anx78xx           846 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           851 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = drm_dp_link_configure(&anx78xx->aux, &anx78xx->link);
anx78xx           858 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P0], SP_DP_LT_CTRL_REG,
anx78xx           866 drivers/gpu/drm/bridge/analogix-anx78xx.c static int anx78xx_config_dp_output(struct anx78xx *anx78xx)
anx78xx           870 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P2], SP_VID_CTRL1_REG,
anx78xx           876 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P2], SP_VID_CTRL1_REG,
anx78xx           884 drivers/gpu/drm/bridge/analogix-anx78xx.c static int anx78xx_send_video_infoframe(struct anx78xx *anx78xx,
anx78xx           896 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           901 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_bulk_write(anx78xx->map[I2C_IDX_TX_P2],
anx78xx           907 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           912 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P0],
anx78xx           920 drivers/gpu/drm/bridge/analogix-anx78xx.c static int anx78xx_get_downstream_info(struct anx78xx *anx78xx)
anx78xx           925 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = drm_dp_dpcd_readb(&anx78xx->aux, DP_SINK_COUNT, &value);
anx78xx           941 drivers/gpu/drm/bridge/analogix-anx78xx.c 	struct anx78xx *anx78xx = connector_to_anx78xx(connector);
anx78xx           944 drivers/gpu/drm/bridge/analogix-anx78xx.c 	if (WARN_ON(!anx78xx->powered))
anx78xx           947 drivers/gpu/drm/bridge/analogix-anx78xx.c 	if (anx78xx->edid)
anx78xx           948 drivers/gpu/drm/bridge/analogix-anx78xx.c 		return drm_add_edid_modes(connector, anx78xx->edid);
anx78xx           950 drivers/gpu/drm/bridge/analogix-anx78xx.c 	mutex_lock(&anx78xx->lock);
anx78xx           952 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_get_downstream_info(anx78xx);
anx78xx           958 drivers/gpu/drm/bridge/analogix-anx78xx.c 	anx78xx->edid = drm_get_edid(connector, &anx78xx->aux.ddc);
anx78xx           959 drivers/gpu/drm/bridge/analogix-anx78xx.c 	if (!anx78xx->edid) {
anx78xx           965 drivers/gpu/drm/bridge/analogix-anx78xx.c 						 anx78xx->edid);
anx78xx           971 drivers/gpu/drm/bridge/analogix-anx78xx.c 	num_modes = drm_add_edid_modes(connector, anx78xx->edid);
anx78xx           974 drivers/gpu/drm/bridge/analogix-anx78xx.c 	mutex_unlock(&anx78xx->lock);
anx78xx           986 drivers/gpu/drm/bridge/analogix-anx78xx.c 	struct anx78xx *anx78xx = connector_to_anx78xx(connector);
anx78xx           988 drivers/gpu/drm/bridge/analogix-anx78xx.c 	if (!gpiod_get_value(anx78xx->pdata.gpiod_hpd))
anx78xx          1005 drivers/gpu/drm/bridge/analogix-anx78xx.c 	struct anx78xx *anx78xx = bridge_to_anx78xx(bridge);
anx78xx          1014 drivers/gpu/drm/bridge/analogix-anx78xx.c 	anx78xx->aux.name = "DP-AUX";
anx78xx          1015 drivers/gpu/drm/bridge/analogix-anx78xx.c 	anx78xx->aux.dev = &anx78xx->client->dev;
anx78xx          1016 drivers/gpu/drm/bridge/analogix-anx78xx.c 	anx78xx->aux.transfer = anx78xx_aux_transfer;
anx78xx          1018 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = drm_dp_aux_register(&anx78xx->aux);
anx78xx          1024 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = drm_connector_init(bridge->dev, &anx78xx->connector,
anx78xx          1032 drivers/gpu/drm/bridge/analogix-anx78xx.c 	drm_connector_helper_add(&anx78xx->connector,
anx78xx          1035 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = drm_connector_register(&anx78xx->connector);
anx78xx          1041 drivers/gpu/drm/bridge/analogix-anx78xx.c 	anx78xx->connector.polled = DRM_CONNECTOR_POLL_HPD;
anx78xx          1043 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = drm_connector_attach_encoder(&anx78xx->connector,
anx78xx          1069 drivers/gpu/drm/bridge/analogix-anx78xx.c 	struct anx78xx *anx78xx = bridge_to_anx78xx(bridge);
anx78xx          1072 drivers/gpu/drm/bridge/analogix-anx78xx.c 	anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P2], SP_POWERDOWN_CTRL_REG,
anx78xx          1080 drivers/gpu/drm/bridge/analogix-anx78xx.c 	struct anx78xx *anx78xx = bridge_to_anx78xx(bridge);
anx78xx          1084 drivers/gpu/drm/bridge/analogix-anx78xx.c 	if (WARN_ON(!anx78xx->powered))
anx78xx          1087 drivers/gpu/drm/bridge/analogix-anx78xx.c 	mutex_lock(&anx78xx->lock);
anx78xx          1090 drivers/gpu/drm/bridge/analogix-anx78xx.c 						       &anx78xx->connector,
anx78xx          1097 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_send_video_infoframe(anx78xx, &frame);
anx78xx          1102 drivers/gpu/drm/bridge/analogix-anx78xx.c 	mutex_unlock(&anx78xx->lock);
anx78xx          1107 drivers/gpu/drm/bridge/analogix-anx78xx.c 	struct anx78xx *anx78xx = bridge_to_anx78xx(bridge);
anx78xx          1110 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_start(anx78xx);
anx78xx          1116 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_set_hpd(anx78xx);
anx78xx          1131 drivers/gpu/drm/bridge/analogix-anx78xx.c 	struct anx78xx *anx78xx = data;
anx78xx          1134 drivers/gpu/drm/bridge/analogix-anx78xx.c 	if (anx78xx->powered)
anx78xx          1137 drivers/gpu/drm/bridge/analogix-anx78xx.c 	mutex_lock(&anx78xx->lock);
anx78xx          1140 drivers/gpu/drm/bridge/analogix-anx78xx.c 	anx78xx_poweron(anx78xx);
anx78xx          1142 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_enable_interrupts(anx78xx);
anx78xx          1146 drivers/gpu/drm/bridge/analogix-anx78xx.c 	mutex_unlock(&anx78xx->lock);
anx78xx          1151 drivers/gpu/drm/bridge/analogix-anx78xx.c static int anx78xx_handle_dp_int_1(struct anx78xx *anx78xx, u8 irq)
anx78xx          1157 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P2], SP_DP_INT_STATUS1_REG,
anx78xx          1164 drivers/gpu/drm/bridge/analogix-anx78xx.c 		err = anx78xx_config_dp_output(anx78xx);
anx78xx          1170 drivers/gpu/drm/bridge/analogix-anx78xx.c static bool anx78xx_handle_common_int_4(struct anx78xx *anx78xx, u8 irq)
anx78xx          1177 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_TX_P2],
anx78xx          1187 drivers/gpu/drm/bridge/analogix-anx78xx.c 		anx78xx_poweroff(anx78xx);
anx78xx          1189 drivers/gpu/drm/bridge/analogix-anx78xx.c 		kfree(anx78xx->edid);
anx78xx          1190 drivers/gpu/drm/bridge/analogix-anx78xx.c 		anx78xx->edid = NULL;
anx78xx          1199 drivers/gpu/drm/bridge/analogix-anx78xx.c static void anx78xx_handle_hdmi_int_1(struct anx78xx *anx78xx, u8 irq)
anx78xx          1206 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_write(anx78xx->map[I2C_IDX_RX_P0], SP_INT_STATUS1_REG,
anx78xx          1216 drivers/gpu/drm/bridge/analogix-anx78xx.c 		err = regmap_read(anx78xx->map[I2C_IDX_RX_P0],
anx78xx          1233 drivers/gpu/drm/bridge/analogix-anx78xx.c 		err = anx78xx_dp_link_training(anx78xx);
anx78xx          1241 drivers/gpu/drm/bridge/analogix-anx78xx.c 	struct anx78xx *anx78xx = data;
anx78xx          1246 drivers/gpu/drm/bridge/analogix-anx78xx.c 	mutex_lock(&anx78xx->lock);
anx78xx          1248 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_read(anx78xx->map[I2C_IDX_TX_P2], SP_DP_INT_STATUS1_REG,
anx78xx          1256 drivers/gpu/drm/bridge/analogix-anx78xx.c 		anx78xx_handle_dp_int_1(anx78xx, irq);
anx78xx          1258 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_read(anx78xx->map[I2C_IDX_TX_P2],
anx78xx          1267 drivers/gpu/drm/bridge/analogix-anx78xx.c 		event = anx78xx_handle_common_int_4(anx78xx, irq);
anx78xx          1270 drivers/gpu/drm/bridge/analogix-anx78xx.c 	if (!anx78xx->powered)
anx78xx          1273 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_read(anx78xx->map[I2C_IDX_RX_P0], SP_INT_STATUS1_REG,
anx78xx          1281 drivers/gpu/drm/bridge/analogix-anx78xx.c 		anx78xx_handle_hdmi_int_1(anx78xx, irq);
anx78xx          1284 drivers/gpu/drm/bridge/analogix-anx78xx.c 	mutex_unlock(&anx78xx->lock);
anx78xx          1287 drivers/gpu/drm/bridge/analogix-anx78xx.c 		drm_helper_hpd_irq_event(anx78xx->connector.dev);
anx78xx          1292 drivers/gpu/drm/bridge/analogix-anx78xx.c static void unregister_i2c_dummy_clients(struct anx78xx *anx78xx)
anx78xx          1296 drivers/gpu/drm/bridge/analogix-anx78xx.c 	for (i = 0; i < ARRAY_SIZE(anx78xx->i2c_dummy); i++)
anx78xx          1297 drivers/gpu/drm/bridge/analogix-anx78xx.c 		i2c_unregister_device(anx78xx->i2c_dummy[i]);
anx78xx          1314 drivers/gpu/drm/bridge/analogix-anx78xx.c 	struct anx78xx *anx78xx;
anx78xx          1320 drivers/gpu/drm/bridge/analogix-anx78xx.c 	anx78xx = devm_kzalloc(&client->dev, sizeof(*anx78xx), GFP_KERNEL);
anx78xx          1321 drivers/gpu/drm/bridge/analogix-anx78xx.c 	if (!anx78xx)
anx78xx          1324 drivers/gpu/drm/bridge/analogix-anx78xx.c 	pdata = &anx78xx->pdata;
anx78xx          1326 drivers/gpu/drm/bridge/analogix-anx78xx.c 	mutex_init(&anx78xx->lock);
anx78xx          1329 drivers/gpu/drm/bridge/analogix-anx78xx.c 	anx78xx->bridge.of_node = client->dev.of_node;
anx78xx          1332 drivers/gpu/drm/bridge/analogix-anx78xx.c 	anx78xx->client = client;
anx78xx          1333 drivers/gpu/drm/bridge/analogix-anx78xx.c 	i2c_set_clientdata(client, anx78xx);
anx78xx          1335 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = anx78xx_init_pdata(anx78xx);
anx78xx          1357 drivers/gpu/drm/bridge/analogix-anx78xx.c 		anx78xx->i2c_dummy[i] = i2c_new_dummy(client->adapter,
anx78xx          1359 drivers/gpu/drm/bridge/analogix-anx78xx.c 		if (!anx78xx->i2c_dummy[i]) {
anx78xx          1366 drivers/gpu/drm/bridge/analogix-anx78xx.c 		anx78xx->map[i] = devm_regmap_init_i2c(anx78xx->i2c_dummy[i],
anx78xx          1368 drivers/gpu/drm/bridge/analogix-anx78xx.c 		if (IS_ERR(anx78xx->map[i])) {
anx78xx          1369 drivers/gpu/drm/bridge/analogix-anx78xx.c 			err = PTR_ERR(anx78xx->map[i]);
anx78xx          1377 drivers/gpu/drm/bridge/analogix-anx78xx.c 	anx78xx_poweron(anx78xx);
anx78xx          1379 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_read(anx78xx->map[I2C_IDX_TX_P2], SP_DEVICE_IDL_REG,
anx78xx          1384 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_read(anx78xx->map[I2C_IDX_TX_P2], SP_DEVICE_IDH_REG,
anx78xx          1389 drivers/gpu/drm/bridge/analogix-anx78xx.c 	anx78xx->chipid = (u8)idl | ((u8)idh << 8);
anx78xx          1391 drivers/gpu/drm/bridge/analogix-anx78xx.c 	err = regmap_read(anx78xx->map[I2C_IDX_TX_P2], SP_DEVICE_VERSION_REG,
anx78xx          1397 drivers/gpu/drm/bridge/analogix-anx78xx.c 		if (anx78xx->chipid == anx78xx_chipid_list[i]) {
anx78xx          1399 drivers/gpu/drm/bridge/analogix-anx78xx.c 				 anx78xx->chipid, version);
anx78xx          1407 drivers/gpu/drm/bridge/analogix-anx78xx.c 			  anx78xx->chipid, version);
anx78xx          1415 drivers/gpu/drm/bridge/analogix-anx78xx.c 					"anx78xx-hpd", anx78xx);
anx78xx          1425 drivers/gpu/drm/bridge/analogix-anx78xx.c 					"anx78xx-intp", anx78xx);
anx78xx          1431 drivers/gpu/drm/bridge/analogix-anx78xx.c 	anx78xx->bridge.funcs = &anx78xx_bridge_funcs;
anx78xx          1433 drivers/gpu/drm/bridge/analogix-anx78xx.c 	drm_bridge_add(&anx78xx->bridge);
anx78xx          1436 drivers/gpu/drm/bridge/analogix-anx78xx.c 	if (!gpiod_get_value(anx78xx->pdata.gpiod_hpd))
anx78xx          1437 drivers/gpu/drm/bridge/analogix-anx78xx.c 		anx78xx_poweroff(anx78xx);
anx78xx          1442 drivers/gpu/drm/bridge/analogix-anx78xx.c 	anx78xx_poweroff(anx78xx);
anx78xx          1445 drivers/gpu/drm/bridge/analogix-anx78xx.c 	unregister_i2c_dummy_clients(anx78xx);
anx78xx          1451 drivers/gpu/drm/bridge/analogix-anx78xx.c 	struct anx78xx *anx78xx = i2c_get_clientdata(client);
anx78xx          1453 drivers/gpu/drm/bridge/analogix-anx78xx.c 	drm_bridge_remove(&anx78xx->bridge);
anx78xx          1455 drivers/gpu/drm/bridge/analogix-anx78xx.c 	unregister_i2c_dummy_clients(anx78xx);
anx78xx          1457 drivers/gpu/drm/bridge/analogix-anx78xx.c 	kfree(anx78xx->edid);