adv7511 382 drivers/gpu/drm/bridge/adv7511/adv7511.h int adv7511_cec_init(struct device *dev, struct adv7511 *adv7511); adv7511 383 drivers/gpu/drm/bridge/adv7511/adv7511.h void adv7511_cec_irq_process(struct adv7511 *adv7511, unsigned int irq1); adv7511 385 drivers/gpu/drm/bridge/adv7511/adv7511.h static inline int adv7511_cec_init(struct device *dev, struct adv7511 *adv7511) adv7511 387 drivers/gpu/drm/bridge/adv7511/adv7511.h unsigned int offset = adv7511->type == ADV7533 ? adv7511 390 drivers/gpu/drm/bridge/adv7511/adv7511.h regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL + offset, adv7511 397 drivers/gpu/drm/bridge/adv7511/adv7511.h void adv7533_dsi_power_on(struct adv7511 *adv); adv7511 398 drivers/gpu/drm/bridge/adv7511/adv7511.h void adv7533_dsi_power_off(struct adv7511 *adv); adv7511 399 drivers/gpu/drm/bridge/adv7511/adv7511.h void adv7533_mode_set(struct adv7511 *adv, const struct drm_display_mode *mode); adv7511 400 drivers/gpu/drm/bridge/adv7511/adv7511.h int adv7533_patch_registers(struct adv7511 *adv); adv7511 401 drivers/gpu/drm/bridge/adv7511/adv7511.h int adv7533_patch_cec_registers(struct adv7511 *adv); adv7511 402 drivers/gpu/drm/bridge/adv7511/adv7511.h int adv7533_attach_dsi(struct adv7511 *adv); adv7511 403 drivers/gpu/drm/bridge/adv7511/adv7511.h void adv7533_detach_dsi(struct adv7511 *adv); adv7511 404 drivers/gpu/drm/bridge/adv7511/adv7511.h int adv7533_parse_dt(struct device_node *np, struct adv7511 *adv); adv7511 406 drivers/gpu/drm/bridge/adv7511/adv7511.h static inline void adv7533_dsi_power_on(struct adv7511 *adv) adv7511 410 drivers/gpu/drm/bridge/adv7511/adv7511.h static inline void adv7533_dsi_power_off(struct adv7511 *adv) adv7511 414 drivers/gpu/drm/bridge/adv7511/adv7511.h static inline void adv7533_mode_set(struct adv7511 *adv, adv7511 419 drivers/gpu/drm/bridge/adv7511/adv7511.h static inline int adv7533_patch_registers(struct adv7511 *adv) adv7511 424 drivers/gpu/drm/bridge/adv7511/adv7511.h static inline int adv7533_patch_cec_registers(struct adv7511 *adv) adv7511 429 drivers/gpu/drm/bridge/adv7511/adv7511.h static inline int adv7533_attach_dsi(struct adv7511 *adv) adv7511 434 drivers/gpu/drm/bridge/adv7511/adv7511.h static inline void adv7533_detach_dsi(struct adv7511 *adv) adv7511 438 drivers/gpu/drm/bridge/adv7511/adv7511.h static inline int adv7533_parse_dt(struct device_node *np, struct adv7511 *adv) adv7511 445 drivers/gpu/drm/bridge/adv7511/adv7511.h int adv7511_audio_init(struct device *dev, struct adv7511 *adv7511); adv7511 446 drivers/gpu/drm/bridge/adv7511/adv7511.h void adv7511_audio_exit(struct adv7511 *adv7511); adv7511 448 drivers/gpu/drm/bridge/adv7511/adv7511.h static inline int adv7511_audio_init(struct device *dev, struct adv7511 *adv7511) adv7511 452 drivers/gpu/drm/bridge/adv7511/adv7511.h static inline void adv7511_audio_exit(struct adv7511 *adv7511) adv7511 35 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c static int adv7511_update_cts_n(struct adv7511 *adv7511) adv7511 40 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c adv7511_calc_cts_n(adv7511->f_tmds, adv7511->f_audio, &cts, &n); adv7511 42 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c regmap_write(adv7511->regmap, ADV7511_REG_N0, (n >> 16) & 0xf); adv7511 43 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c regmap_write(adv7511->regmap, ADV7511_REG_N1, (n >> 8) & 0xff); adv7511 44 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c regmap_write(adv7511->regmap, ADV7511_REG_N2, n & 0xff); adv7511 46 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c regmap_write(adv7511->regmap, ADV7511_REG_CTS_MANUAL0, adv7511 48 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c regmap_write(adv7511->regmap, ADV7511_REG_CTS_MANUAL1, adv7511 50 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c regmap_write(adv7511->regmap, ADV7511_REG_CTS_MANUAL2, adv7511 60 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c struct adv7511 *adv7511 = dev_get_drvdata(dev); adv7511 128 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c regmap_update_bits(adv7511->regmap, ADV7511_REG_AUDIO_SOURCE, 0x70, adv7511 130 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c regmap_update_bits(adv7511->regmap, ADV7511_REG_AUDIO_CONFIG, BIT(6), adv7511 132 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c regmap_update_bits(adv7511->regmap, ADV7511_REG_I2S_CONFIG, 0x03, adv7511 135 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c adv7511->audio_source = audio_source; adv7511 137 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c adv7511->f_audio = hparms->sample_rate; adv7511 139 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c adv7511_update_cts_n(adv7511); adv7511 141 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c regmap_update_bits(adv7511->regmap, ADV7511_REG_AUDIO_CFG3, adv7511 143 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c regmap_update_bits(adv7511->regmap, ADV7511_REG_I2C_FREQ_ID_CFG, adv7511 145 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c regmap_write(adv7511->regmap, 0x73, 0x1); adv7511 152 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c struct adv7511 *adv7511 = dev_get_drvdata(dev); adv7511 154 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c regmap_update_bits(adv7511->regmap, ADV7511_REG_AUDIO_CONFIG, adv7511 158 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c regmap_update_bits(adv7511->regmap, ADV7511_REG_INFOFRAME_UPDATE, adv7511 161 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c regmap_update_bits(adv7511->regmap, ADV7511_REG_PACKET_ENABLE1, adv7511 164 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c regmap_update_bits(adv7511->regmap, ADV7511_REG_PACKET_ENABLE1, adv7511 167 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c regmap_update_bits(adv7511->regmap, ADV7511_REG_AUDIO_CFG1, adv7511 170 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c regmap_update_bits(adv7511->regmap, ADV7511_REG_PACKET_ENABLE1, adv7511 173 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c regmap_update_bits(adv7511->regmap, ADV7511_REG_GC(0), adv7511 176 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c regmap_update_bits(adv7511->regmap, ADV7511_REG_GC(1), adv7511 218 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c int adv7511_audio_init(struct device *dev, struct adv7511 *adv7511) adv7511 220 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c adv7511->audio_pdev = platform_device_register_data(dev, adv7511 225 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c return PTR_ERR_OR_ZERO(adv7511->audio_pdev); adv7511 228 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c void adv7511_audio_exit(struct adv7511 *adv7511) adv7511 230 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c if (adv7511->audio_pdev) { adv7511 231 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c platform_device_unregister(adv7511->audio_pdev); adv7511 232 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c adv7511->audio_pdev = NULL; adv7511 35 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c static void adv_cec_tx_raw_status(struct adv7511 *adv7511, u8 tx_raw_status) adv7511 37 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c unsigned int offset = adv7511->type == ADV7533 ? adv7511 41 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c if (regmap_read(adv7511->regmap_cec, adv7511 49 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c cec_transmit_attempt_done(adv7511->cec_adap, adv7511 65 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c if (regmap_read(adv7511->regmap_cec, adv7511 77 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c cec_transmit_done(adv7511->cec_adap, status, adv7511 82 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c cec_transmit_attempt_done(adv7511->cec_adap, CEC_TX_STATUS_OK); adv7511 87 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c void adv7511_cec_irq_process(struct adv7511 *adv7511, unsigned int irq1) adv7511 89 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c unsigned int offset = adv7511->type == ADV7533 ? adv7511 100 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c adv_cec_tx_raw_status(adv7511, irq1); adv7511 105 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c if (regmap_read(adv7511->regmap_cec, adv7511 118 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_read(adv7511->regmap_cec, adv7511 124 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_write(adv7511->regmap_cec, adv7511 126 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_write(adv7511->regmap_cec, adv7511 128 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c cec_received_msg(adv7511->cec_adap, &msg); adv7511 133 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c struct adv7511 *adv7511 = cec_get_drvdata(adap); adv7511 134 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c unsigned int offset = adv7511->type == ADV7533 ? adv7511 137 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c if (adv7511->i2c_cec == NULL) adv7511 140 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c if (!adv7511->cec_enabled_adap && enable) { adv7511 142 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_update_bits(adv7511->regmap_cec, adv7511 146 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_write(adv7511->regmap_cec, adv7511 148 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_write(adv7511->regmap_cec, adv7511 151 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_update_bits(adv7511->regmap_cec, adv7511 158 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_update_bits(adv7511->regmap, adv7511 161 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c } else if (adv7511->cec_enabled_adap && !enable) { adv7511 162 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_update_bits(adv7511->regmap, adv7511 165 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_update_bits(adv7511->regmap_cec, adv7511 169 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_update_bits(adv7511->regmap_cec, adv7511 172 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c adv7511->cec_valid_addrs = 0; adv7511 174 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c adv7511->cec_enabled_adap = enable; adv7511 180 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c struct adv7511 *adv7511 = cec_get_drvdata(adap); adv7511 181 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c unsigned int offset = adv7511->type == ADV7533 ? adv7511 185 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c if (!adv7511->cec_enabled_adap) adv7511 189 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_update_bits(adv7511->regmap_cec, adv7511 192 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c adv7511->cec_valid_addrs = 0; adv7511 197 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c bool is_valid = adv7511->cec_valid_addrs & (1 << i); adv7511 201 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c if (is_valid && adv7511->cec_addr[i] == addr) adv7511 209 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c adv7511->cec_addr[i] = addr; adv7511 210 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c adv7511->cec_valid_addrs |= 1 << i; adv7511 215 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_update_bits(adv7511->regmap_cec, adv7511 219 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_update_bits(adv7511->regmap_cec, adv7511 225 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_update_bits(adv7511->regmap_cec, adv7511 229 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_update_bits(adv7511->regmap_cec, adv7511 235 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_update_bits(adv7511->regmap_cec, adv7511 239 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_update_bits(adv7511->regmap_cec, adv7511 250 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c struct adv7511 *adv7511 = cec_get_drvdata(adap); adv7511 251 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c unsigned int offset = adv7511->type == ADV7533 ? adv7511 261 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_update_bits(adv7511->regmap_cec, adv7511 266 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_update_bits(adv7511->regmap, ADV7511_REG_INT(1), 0x38, 0x38); adv7511 270 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_write(adv7511->regmap_cec, adv7511 275 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_write(adv7511->regmap_cec, adv7511 278 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_write(adv7511->regmap_cec, adv7511 289 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c static int adv7511_cec_parse_dt(struct device *dev, struct adv7511 *adv7511) adv7511 291 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c adv7511->cec_clk = devm_clk_get(dev, "cec"); adv7511 292 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c if (IS_ERR(adv7511->cec_clk)) { adv7511 293 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c int ret = PTR_ERR(adv7511->cec_clk); adv7511 295 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c adv7511->cec_clk = NULL; adv7511 298 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c clk_prepare_enable(adv7511->cec_clk); adv7511 299 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c adv7511->cec_clk_freq = clk_get_rate(adv7511->cec_clk); adv7511 303 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c int adv7511_cec_init(struct device *dev, struct adv7511 *adv7511) adv7511 305 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c unsigned int offset = adv7511->type == ADV7533 ? adv7511 307 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c int ret = adv7511_cec_parse_dt(dev, adv7511); adv7511 312 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c adv7511->cec_adap = cec_allocate_adapter(&adv7511_cec_adap_ops, adv7511 313 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c adv7511, dev_name(dev), CEC_CAP_DEFAULTS, ADV7511_MAX_ADDRS); adv7511 314 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c if (IS_ERR(adv7511->cec_adap)) { adv7511 315 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c ret = PTR_ERR(adv7511->cec_adap); adv7511 319 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL + offset, 0); adv7511 321 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_write(adv7511->regmap_cec, adv7511 323 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_write(adv7511->regmap_cec, adv7511 327 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_write(adv7511->regmap_cec, adv7511 330 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_write(adv7511->regmap_cec, adv7511 332 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c ((adv7511->cec_clk_freq / 750000) - 1) << 2); adv7511 334 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c ret = cec_register_adapter(adv7511->cec_adap, dev); adv7511 340 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c cec_delete_adapter(adv7511->cec_adap); adv7511 341 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c adv7511->cec_adap = NULL; adv7511 346 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL + offset, adv7511 135 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c static void adv7511_set_colormap(struct adv7511 *adv7511, bool enable, adv7511 141 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_update_bits(adv7511->regmap, ADV7511_REG_CSC_UPPER(1), adv7511 146 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_update_bits(adv7511->regmap, adv7511 149 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_write(adv7511->regmap, adv7511 156 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_update_bits(adv7511->regmap, ADV7511_REG_CSC_UPPER(0), adv7511 159 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_update_bits(adv7511->regmap, ADV7511_REG_CSC_UPPER(0), adv7511 162 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_update_bits(adv7511->regmap, ADV7511_REG_CSC_UPPER(1), adv7511 166 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c static int adv7511_packet_enable(struct adv7511 *adv7511, unsigned int packet) adv7511 169 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_update_bits(adv7511->regmap, ADV7511_REG_PACKET_ENABLE0, adv7511 174 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_update_bits(adv7511->regmap, ADV7511_REG_PACKET_ENABLE1, adv7511 181 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c static int adv7511_packet_disable(struct adv7511 *adv7511, unsigned int packet) adv7511 184 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_update_bits(adv7511->regmap, ADV7511_REG_PACKET_ENABLE0, adv7511 189 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_update_bits(adv7511->regmap, ADV7511_REG_PACKET_ENABLE1, adv7511 203 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c static void adv7511_set_config_csc(struct adv7511 *adv7511, adv7511 260 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511_packet_disable(adv7511, ADV7511_PACKET_ENABLE_AVI_INFOFRAME); adv7511 262 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511_set_colormap(adv7511, config.csc_enable, adv7511 266 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_update_bits(adv7511->regmap, ADV7511_REG_VIDEO_INPUT_CFG1, 0x81, adv7511 269 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_update_bits(adv7511->regmap, ADV7511_REG_HDCP_HDMI_CFG, adv7511 276 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_bulk_write(adv7511->regmap, ADV7511_REG_AVI_INFOFRAME_VERSION, adv7511 279 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511_packet_enable(adv7511, ADV7511_PACKET_ENABLE_AVI_INFOFRAME); adv7511 282 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c static void adv7511_set_link_config(struct adv7511 *adv7511, adv7511 310 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_update_bits(adv7511->regmap, ADV7511_REG_I2C_FREQ_ID_CFG, 0xf, adv7511 312 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_update_bits(adv7511->regmap, ADV7511_REG_VIDEO_INPUT_CFG1, 0x7e, adv7511 315 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_write(adv7511->regmap, ADV7511_REG_VIDEO_INPUT_CFG2, adv7511 317 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_write(adv7511->regmap, ADV7511_REG_TIMING_GEN_SEQ, adv7511 320 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_write(adv7511->regmap, 0xba, clock_delay << 5); adv7511 322 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->embedded_sync = config->embedded_sync; adv7511 323 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->hsync_polarity = config->hsync_polarity; adv7511 324 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->vsync_polarity = config->vsync_polarity; adv7511 325 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->rgb = config->input_colorspace == HDMI_COLORSPACE_RGB; adv7511 328 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c static void __adv7511_power_on(struct adv7511 *adv7511) adv7511 330 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->current_edid_segment = -1; adv7511 332 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_update_bits(adv7511->regmap, ADV7511_REG_POWER, adv7511 334 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (adv7511->i2c_main->irq) { adv7511 340 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_write(adv7511->regmap, ADV7511_REG_INT_ENABLE(0), adv7511 342 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_update_bits(adv7511->regmap, adv7511 356 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_update_bits(adv7511->regmap, ADV7511_REG_POWER2, adv7511 361 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c static void adv7511_power_on(struct adv7511 *adv7511) adv7511 363 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c __adv7511_power_on(adv7511); adv7511 368 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regcache_sync(adv7511->regmap); adv7511 370 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (adv7511->type == ADV7533) adv7511 371 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7533_dsi_power_on(adv7511); adv7511 372 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->powered = true; adv7511 375 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c static void __adv7511_power_off(struct adv7511 *adv7511) adv7511 378 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_update_bits(adv7511->regmap, ADV7511_REG_POWER, adv7511 381 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_update_bits(adv7511->regmap, adv7511 384 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regcache_mark_dirty(adv7511->regmap); adv7511 387 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c static void adv7511_power_off(struct adv7511 *adv7511) adv7511 389 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c __adv7511_power_off(adv7511); adv7511 390 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (adv7511->type == ADV7533) adv7511 391 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7533_dsi_power_off(adv7511); adv7511 392 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->powered = false; adv7511 399 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c static bool adv7511_hpd(struct adv7511 *adv7511) adv7511 404 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = regmap_read(adv7511->regmap, ADV7511_REG_INT(0), &irq0); adv7511 409 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_write(adv7511->regmap, ADV7511_REG_INT(0), adv7511 419 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c struct adv7511 *adv7511 = container_of(work, struct adv7511, hpd_work); adv7511 424 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = regmap_read(adv7511->regmap, ADV7511_REG_STATUS, &val); adv7511 438 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->connector.status == connector_status_disconnected && adv7511 439 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->powered) { adv7511 440 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regcache_mark_dirty(adv7511->regmap); adv7511 441 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511_power_on(adv7511); adv7511 444 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (adv7511->connector.status != status) { adv7511 445 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->connector.status = status; adv7511 447 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c cec_phys_addr_invalidate(adv7511->cec_adap); adv7511 448 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c drm_kms_helper_hotplug_event(adv7511->connector.dev); adv7511 452 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c static int adv7511_irq_process(struct adv7511 *adv7511, bool process_hpd) adv7511 457 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = regmap_read(adv7511->regmap, ADV7511_REG_INT(0), &irq0); adv7511 461 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = regmap_read(adv7511->regmap, ADV7511_REG_INT(1), &irq1); adv7511 465 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_write(adv7511->regmap, ADV7511_REG_INT(0), irq0); adv7511 466 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_write(adv7511->regmap, ADV7511_REG_INT(1), irq1); adv7511 468 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (process_hpd && irq0 & ADV7511_INT0_HPD && adv7511->bridge.encoder) adv7511 469 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c schedule_work(&adv7511->hpd_work); adv7511 472 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->edid_read = true; adv7511 474 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (adv7511->i2c_main->irq) adv7511 475 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c wake_up_all(&adv7511->wq); adv7511 479 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511_cec_irq_process(adv7511, irq1); adv7511 487 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c struct adv7511 *adv7511 = devid; adv7511 490 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = adv7511_irq_process(adv7511, true); adv7511 498 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c static int adv7511_wait_for_edid(struct adv7511 *adv7511, int timeout) adv7511 502 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (adv7511->i2c_main->irq) { adv7511 503 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = wait_event_interruptible_timeout(adv7511->wq, adv7511 504 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->edid_read, msecs_to_jiffies(timeout)); adv7511 507 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = adv7511_irq_process(adv7511, false); adv7511 511 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (adv7511->edid_read) adv7511 518 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c return adv7511->edid_read ? 0 : -EIO; adv7511 524 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c struct adv7511 *adv7511 = data; adv7511 533 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (adv7511->current_edid_segment != block / 2) { adv7511 536 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = regmap_read(adv7511->regmap, ADV7511_REG_DDC_STATUS, adv7511 542 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->edid_read = false; adv7511 543 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_write(adv7511->regmap, ADV7511_REG_EDID_SEGMENT, adv7511 545 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = adv7511_wait_for_edid(adv7511, 200); adv7511 554 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c xfer[0].addr = adv7511->i2c_edid->addr; adv7511 558 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c xfer[1].addr = adv7511->i2c_edid->addr; adv7511 561 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c xfer[1].buf = adv7511->edid_buf; adv7511 566 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = i2c_transfer(adv7511->i2c_edid->adapter, xfer, adv7511 577 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->current_edid_segment = block / 2; adv7511 581 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c memcpy(buf, adv7511->edid_buf, len); adv7511 583 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c memcpy(buf, adv7511->edid_buf + 128, len); adv7511 592 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c static int adv7511_get_modes(struct adv7511 *adv7511, adv7511 599 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (!adv7511->powered) { adv7511 601 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c (adv7511->i2c_edid->addr << 1); adv7511 603 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c __adv7511_power_on(adv7511); adv7511 606 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_write(adv7511->regmap, ADV7511_REG_EDID_I2C_ADDR, adv7511 610 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c edid = drm_do_get_edid(connector, adv7511_get_edid_block, adv7511); adv7511 612 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (!adv7511->powered) adv7511 613 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c __adv7511_power_off(adv7511); adv7511 619 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511_set_config_csc(adv7511, connector, adv7511->rgb, adv7511 622 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c cec_s_phys_addr_from_edid(adv7511->cec_adap, edid); adv7511 630 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511_detect(struct adv7511 *adv7511, struct drm_connector *connector) adv7511 637 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = regmap_read(adv7511->regmap, ADV7511_REG_STATUS, &val); adv7511 646 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c hpd = adv7511_hpd(adv7511); adv7511 652 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (status == connector_status_connected && hpd && adv7511->powered) { adv7511 653 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regcache_mark_dirty(adv7511->regmap); adv7511 654 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511_power_on(adv7511); adv7511 655 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511_get_modes(adv7511, connector); adv7511 656 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (adv7511->status == connector_status_connected) adv7511 660 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_update_bits(adv7511->regmap, ADV7511_REG_POWER2, adv7511 665 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->status = status; adv7511 669 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c static enum drm_mode_status adv7511_mode_valid(struct adv7511 *adv7511, adv7511 678 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c static void adv7511_mode_set(struct adv7511 *adv7511, adv7511 686 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (adv7511->embedded_sync) { adv7511 702 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_write(adv7511->regmap, ADV7511_REG_HSYNC_PLACEMENT_MSB, adv7511 704 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_write(adv7511->regmap, ADV7511_REG_SYNC_DECODER(0), adv7511 706 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_write(adv7511->regmap, ADV7511_REG_SYNC_DECODER(1), adv7511 709 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_write(adv7511->regmap, ADV7511_REG_SYNC_DECODER(2), adv7511 712 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_write(adv7511->regmap, ADV7511_REG_SYNC_DECODER(3), adv7511 715 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_write(adv7511->regmap, ADV7511_REG_SYNC_DECODER(4), adv7511 739 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (adv7511->hsync_polarity != mode_hsync_polarity && adv7511 740 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->hsync_polarity != adv7511 744 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (adv7511->vsync_polarity != mode_vsync_polarity && adv7511 745 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->vsync_polarity != adv7511 759 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_update_bits(adv7511->regmap, 0xfb, adv7511 761 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_update_bits(adv7511->regmap, 0x17, adv7511 764 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (adv7511->type == ADV7533) adv7511 765 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7533_mode_set(adv7511, adj_mode); adv7511 767 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c drm_mode_copy(&adv7511->curr_mode, adj_mode); adv7511 774 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->f_tmds = mode->clock; adv7511 778 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c static struct adv7511 *connector_to_adv7511(struct drm_connector *connector) adv7511 780 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c return container_of(connector, struct adv7511, connector); adv7511 785 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c struct adv7511 *adv = connector_to_adv7511(connector); adv7511 794 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c struct adv7511 *adv = connector_to_adv7511(connector); adv7511 807 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c struct adv7511 *adv = connector_to_adv7511(connector); adv7511 822 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c static struct adv7511 *bridge_to_adv7511(struct drm_bridge *bridge) adv7511 824 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c return container_of(bridge, struct adv7511, bridge); adv7511 829 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c struct adv7511 *adv = bridge_to_adv7511(bridge); adv7511 836 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c struct adv7511 *adv = bridge_to_adv7511(bridge); adv7511 845 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c struct adv7511 *adv = bridge_to_adv7511(bridge); adv7511 852 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c struct adv7511 *adv = bridge_to_adv7511(bridge); adv7511 915 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c static int adv7511_init_regulators(struct adv7511 *adv) adv7511 945 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c static void adv7511_uninit_regulators(struct adv7511 *adv) adv7511 953 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c struct adv7511 *adv7511 = i2c_get_clientdata(i2c); adv7511 955 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (adv7511->type == ADV7533) adv7511 980 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c static int adv7511_init_cec_regmap(struct adv7511 *adv) adv7511 1095 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c struct adv7511 *adv7511; adv7511 1103 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511 = devm_kzalloc(dev, sizeof(*adv7511), GFP_KERNEL); adv7511 1104 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (!adv7511) adv7511 1107 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->i2c_main = i2c; adv7511 1108 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->powered = false; adv7511 1109 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->status = connector_status_disconnected; adv7511 1112 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->type = (enum adv7511_type)of_device_get_match_data(dev); adv7511 1114 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->type = id->driver_data; adv7511 1118 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (adv7511->type == ADV7511) adv7511 1121 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = adv7533_parse_dt(dev->of_node, adv7511); adv7511 1125 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = adv7511_init_regulators(adv7511); adv7511 1135 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->gpio_pd = devm_gpiod_get_optional(dev, "pd", GPIOD_OUT_HIGH); adv7511 1136 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (IS_ERR(adv7511->gpio_pd)) { adv7511 1137 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = PTR_ERR(adv7511->gpio_pd); adv7511 1141 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (adv7511->gpio_pd) { adv7511 1143 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c gpiod_set_value_cansleep(adv7511->gpio_pd, 0); adv7511 1146 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->regmap = devm_regmap_init_i2c(i2c, &adv7511_regmap_config); adv7511 1147 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (IS_ERR(adv7511->regmap)) { adv7511 1148 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = PTR_ERR(adv7511->regmap); adv7511 1152 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = regmap_read(adv7511->regmap, ADV7511_REG_CHIP_REVISION, &val); adv7511 1157 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (adv7511->type == ADV7511) adv7511 1158 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = regmap_register_patch(adv7511->regmap, adv7511 1162 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = adv7533_patch_registers(adv7511); adv7511 1166 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511_packet_disable(adv7511, 0xffff); adv7511 1168 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->i2c_edid = i2c_new_ancillary_device(i2c, "edid", adv7511 1170 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (IS_ERR(adv7511->i2c_edid)) { adv7511 1171 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = PTR_ERR(adv7511->i2c_edid); adv7511 1175 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_write(adv7511->regmap, ADV7511_REG_EDID_I2C_ADDR, adv7511 1176 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->i2c_edid->addr << 1); adv7511 1178 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->i2c_packet = i2c_new_ancillary_device(i2c, "packet", adv7511 1180 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (IS_ERR(adv7511->i2c_packet)) { adv7511 1181 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = PTR_ERR(adv7511->i2c_packet); adv7511 1185 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_write(adv7511->regmap, ADV7511_REG_PACKET_I2C_ADDR, adv7511 1186 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->i2c_packet->addr << 1); adv7511 1188 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = adv7511_init_cec_regmap(adv7511); adv7511 1192 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c regmap_write(adv7511->regmap, ADV7511_REG_CEC_I2C_ADDR, adv7511 1193 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->i2c_cec->addr << 1); adv7511 1195 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c INIT_WORK(&adv7511->hpd_work, adv7511_hpd_work); adv7511 1198 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c init_waitqueue_head(&adv7511->wq); adv7511 1203 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511); adv7511 1208 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511_power_off(adv7511); adv7511 1210 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c i2c_set_clientdata(i2c, adv7511); adv7511 1212 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (adv7511->type == ADV7511) adv7511 1213 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511_set_link_config(adv7511, &link_config); adv7511 1215 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c ret = adv7511_cec_init(dev, adv7511); adv7511 1219 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->bridge.funcs = &adv7511_bridge_funcs; adv7511 1220 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511->bridge.of_node = dev->of_node; adv7511 1222 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c drm_bridge_add(&adv7511->bridge); adv7511 1224 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511_audio_init(dev, adv7511); adv7511 1228 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c i2c_unregister_device(adv7511->i2c_cec); adv7511 1229 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (adv7511->cec_clk) adv7511 1230 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c clk_disable_unprepare(adv7511->cec_clk); adv7511 1232 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c i2c_unregister_device(adv7511->i2c_packet); adv7511 1234 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c i2c_unregister_device(adv7511->i2c_edid); adv7511 1236 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511_uninit_regulators(adv7511); adv7511 1243 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c struct adv7511 *adv7511 = i2c_get_clientdata(i2c); adv7511 1245 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (adv7511->type == ADV7533) adv7511 1246 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7533_detach_dsi(adv7511); adv7511 1247 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c i2c_unregister_device(adv7511->i2c_cec); adv7511 1248 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c if (adv7511->cec_clk) adv7511 1249 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c clk_disable_unprepare(adv7511->cec_clk); adv7511 1251 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511_uninit_regulators(adv7511); adv7511 1253 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c drm_bridge_remove(&adv7511->bridge); adv7511 1255 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c adv7511_audio_exit(adv7511); adv7511 1257 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c cec_unregister_adapter(adv7511->cec_adap); adv7511 1259 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c i2c_unregister_device(adv7511->i2c_packet); adv7511 1260 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c i2c_unregister_device(adv7511->i2c_edid); adv7511 27 drivers/gpu/drm/bridge/adv7511/adv7533.c static void adv7511_dsi_config_timing_gen(struct adv7511 *adv) adv7511 66 drivers/gpu/drm/bridge/adv7511/adv7533.c void adv7533_dsi_power_on(struct adv7511 *adv) adv7511 95 drivers/gpu/drm/bridge/adv7511/adv7533.c void adv7533_dsi_power_off(struct adv7511 *adv) adv7511 103 drivers/gpu/drm/bridge/adv7511/adv7533.c void adv7533_mode_set(struct adv7511 *adv, const struct drm_display_mode *mode) adv7511 125 drivers/gpu/drm/bridge/adv7511/adv7533.c int adv7533_patch_registers(struct adv7511 *adv) adv7511 132 drivers/gpu/drm/bridge/adv7511/adv7533.c int adv7533_patch_cec_registers(struct adv7511 *adv) adv7511 139 drivers/gpu/drm/bridge/adv7511/adv7533.c int adv7533_attach_dsi(struct adv7511 *adv) adv7511 184 drivers/gpu/drm/bridge/adv7511/adv7533.c void adv7533_detach_dsi(struct adv7511 *adv) adv7511 190 drivers/gpu/drm/bridge/adv7511/adv7533.c int adv7533_parse_dt(struct device_node *np, struct adv7511 *adv)