• Home
  • Raw
  • Download

Lines Matching refs:encoder

266 cec_write(struct drm_encoder *encoder, uint16_t addr, uint8_t val)  in cec_write()  argument
268 struct i2c_client *client = to_tda998x_priv(encoder)->cec; in cec_write()
278 cec_read(struct drm_encoder *encoder, uint8_t addr) in cec_read() argument
280 struct i2c_client *client = to_tda998x_priv(encoder)->cec; in cec_read()
300 set_page(struct drm_encoder *encoder, uint16_t reg) in set_page() argument
302 struct tda998x_priv *priv = to_tda998x_priv(encoder); in set_page()
305 struct i2c_client *client = drm_i2c_encoder_get_client(encoder); in set_page()
318 reg_read_range(struct drm_encoder *encoder, uint16_t reg, char *buf, int cnt) in reg_read_range() argument
320 struct i2c_client *client = drm_i2c_encoder_get_client(encoder); in reg_read_range()
324 set_page(encoder, reg); in reg_read_range()
342 reg_read(struct drm_encoder *encoder, uint16_t reg) in reg_read() argument
345 reg_read_range(encoder, reg, &val, sizeof(val)); in reg_read()
350 reg_write(struct drm_encoder *encoder, uint16_t reg, uint8_t val) in reg_write() argument
352 struct i2c_client *client = drm_i2c_encoder_get_client(encoder); in reg_write()
356 set_page(encoder, reg); in reg_write()
364 reg_write16(struct drm_encoder *encoder, uint16_t reg, uint16_t val) in reg_write16() argument
366 struct i2c_client *client = drm_i2c_encoder_get_client(encoder); in reg_write16()
370 set_page(encoder, reg); in reg_write16()
378 reg_set(struct drm_encoder *encoder, uint16_t reg, uint8_t val) in reg_set() argument
380 reg_write(encoder, reg, reg_read(encoder, reg) | val); in reg_set()
384 reg_clear(struct drm_encoder *encoder, uint16_t reg, uint8_t val) in reg_clear() argument
386 reg_write(encoder, reg, reg_read(encoder, reg) & ~val); in reg_clear()
390 tda998x_reset(struct drm_encoder *encoder) in tda998x_reset() argument
393 reg_set(encoder, REG_SOFTRESET, SOFTRESET_AUDIO | SOFTRESET_I2C_MASTER); in tda998x_reset()
395 reg_clear(encoder, REG_SOFTRESET, SOFTRESET_AUDIO | SOFTRESET_I2C_MASTER); in tda998x_reset()
399 reg_set(encoder, REG_MAIN_CNTRL0, MAIN_CNTRL0_SR); in tda998x_reset()
400 reg_clear(encoder, REG_MAIN_CNTRL0, MAIN_CNTRL0_SR); in tda998x_reset()
403 reg_write(encoder, REG_PLL_SERIAL_1, 0x00); in tda998x_reset()
404 reg_write(encoder, REG_PLL_SERIAL_2, PLL_SERIAL_2_SRL_NOSC(1)); in tda998x_reset()
405 reg_write(encoder, REG_PLL_SERIAL_3, 0x00); in tda998x_reset()
406 reg_write(encoder, REG_SERIALIZER, 0x00); in tda998x_reset()
407 reg_write(encoder, REG_BUFFER_OUT, 0x00); in tda998x_reset()
408 reg_write(encoder, REG_PLL_SCG1, 0x00); in tda998x_reset()
409 reg_write(encoder, REG_AUDIO_DIV, 0x03); in tda998x_reset()
410 reg_write(encoder, REG_SEL_CLK, SEL_CLK_SEL_CLK1 | SEL_CLK_ENA_SC_CLK); in tda998x_reset()
411 reg_write(encoder, REG_PLL_SCGN1, 0xfa); in tda998x_reset()
412 reg_write(encoder, REG_PLL_SCGN2, 0x00); in tda998x_reset()
413 reg_write(encoder, REG_PLL_SCGR1, 0x5b); in tda998x_reset()
414 reg_write(encoder, REG_PLL_SCGR2, 0x00); in tda998x_reset()
415 reg_write(encoder, REG_PLL_SCG2, 0x10); in tda998x_reset()
421 tda998x_encoder_set_config(struct drm_encoder *encoder, void *params) in tda998x_encoder_set_config() argument
426 tda998x_encoder_dpms(struct drm_encoder *encoder, int mode) in tda998x_encoder_dpms() argument
428 struct tda998x_priv *priv = to_tda998x_priv(encoder); in tda998x_encoder_dpms()
440 reg_write(encoder, REG_ENA_AP, 0xff); in tda998x_encoder_dpms()
441 reg_write(encoder, REG_ENA_VP_0, 0xff); in tda998x_encoder_dpms()
442 reg_write(encoder, REG_ENA_VP_1, 0xff); in tda998x_encoder_dpms()
443 reg_write(encoder, REG_ENA_VP_2, 0xff); in tda998x_encoder_dpms()
445 reg_write(encoder, REG_VIP_CNTRL_0, in tda998x_encoder_dpms()
447 reg_write(encoder, REG_VIP_CNTRL_1, in tda998x_encoder_dpms()
449 reg_write(encoder, REG_VIP_CNTRL_2, in tda998x_encoder_dpms()
454 reg_write(encoder, REG_ENA_AP, 0x00); in tda998x_encoder_dpms()
455 reg_write(encoder, REG_ENA_VP_0, 0x00); in tda998x_encoder_dpms()
456 reg_write(encoder, REG_ENA_VP_1, 0x00); in tda998x_encoder_dpms()
457 reg_write(encoder, REG_ENA_VP_2, 0x00); in tda998x_encoder_dpms()
465 tda998x_encoder_save(struct drm_encoder *encoder) in tda998x_encoder_save() argument
471 tda998x_encoder_restore(struct drm_encoder *encoder) in tda998x_encoder_restore() argument
477 tda998x_encoder_mode_fixup(struct drm_encoder *encoder, in tda998x_encoder_mode_fixup() argument
485 tda998x_encoder_mode_valid(struct drm_encoder *encoder, in tda998x_encoder_mode_valid() argument
492 tda998x_encoder_mode_set(struct drm_encoder *encoder, in tda998x_encoder_mode_set() argument
496 struct tda998x_priv *priv = to_tda998x_priv(encoder); in tda998x_encoder_mode_set()
535 reg_set(encoder, REG_AIP_CNTRL_0, AIP_CNTRL_0_RST_FIFO); in tda998x_encoder_mode_set()
538 reg_set(encoder, REG_TBG_CNTRL_1, TBG_CNTRL_1_DWIN_DIS); in tda998x_encoder_mode_set()
539 reg_clear(encoder, REG_TX33, TX33_HDMI); in tda998x_encoder_mode_set()
541 reg_write(encoder, REG_ENC_CNTRL, ENC_CNTRL_CTL_CODE(0)); in tda998x_encoder_mode_set()
543 reg_write(encoder, REG_HVF_CNTRL_0, HVF_CNTRL_0_PREFIL(0) | in tda998x_encoder_mode_set()
545 reg_write(encoder, REG_VIP_CNTRL_5, VIP_CNTRL_5_SP_CNT(0)); in tda998x_encoder_mode_set()
546 reg_write(encoder, REG_VIP_CNTRL_4, VIP_CNTRL_4_BLANKIT(0) | in tda998x_encoder_mode_set()
548 reg_clear(encoder, REG_PLL_SERIAL_3, PLL_SERIAL_3_SRL_CCIR); in tda998x_encoder_mode_set()
550 reg_clear(encoder, REG_PLL_SERIAL_1, PLL_SERIAL_1_SRL_MAN_IZ); in tda998x_encoder_mode_set()
551 reg_clear(encoder, REG_PLL_SERIAL_3, PLL_SERIAL_3_SRL_DE); in tda998x_encoder_mode_set()
552 reg_write(encoder, REG_SERIALIZER, 0); in tda998x_encoder_mode_set()
553 reg_write(encoder, REG_HVF_CNTRL_1, HVF_CNTRL_1_VQR(0)); in tda998x_encoder_mode_set()
557 reg_write(encoder, REG_RPT_CNTRL, 0); in tda998x_encoder_mode_set()
558 reg_write(encoder, REG_SEL_CLK, SEL_CLK_SEL_VRF_CLK(0) | in tda998x_encoder_mode_set()
561 reg_write(encoder, REG_PLL_SERIAL_2, PLL_SERIAL_2_SRL_NOSC(div) | in tda998x_encoder_mode_set()
564 reg_write16(encoder, REG_VS_PIX_STRT_2_MSB, pix_start2); in tda998x_encoder_mode_set()
565 reg_write16(encoder, REG_VS_PIX_END_2_MSB, pix_start2); in tda998x_encoder_mode_set()
568 reg_set(encoder, REG_MAT_CONTRL, MAT_CONTRL_MAT_BP); in tda998x_encoder_mode_set()
571 reg_write(encoder, REG_ANA_GENERAL, 0x09); in tda998x_encoder_mode_set()
573 reg_clear(encoder, REG_TBG_CNTRL_0, TBG_CNTRL_0_SYNC_MTHD); in tda998x_encoder_mode_set()
575 reg_write(encoder, REG_VIP_CNTRL_3, 0); in tda998x_encoder_mode_set()
576 reg_set(encoder, REG_VIP_CNTRL_3, VIP_CNTRL_3_SYNC_HS); in tda998x_encoder_mode_set()
578 reg_set(encoder, REG_VIP_CNTRL_3, VIP_CNTRL_3_V_TGL); in tda998x_encoder_mode_set()
581 reg_set(encoder, REG_VIP_CNTRL_3, VIP_CNTRL_3_H_TGL); in tda998x_encoder_mode_set()
583 reg_write(encoder, REG_VIDFORMAT, 0x00); in tda998x_encoder_mode_set()
584 reg_write16(encoder, REG_NPIX_MSB, mode->hdisplay - 1); in tda998x_encoder_mode_set()
585 reg_write16(encoder, REG_NLINE_MSB, mode->vdisplay - 1); in tda998x_encoder_mode_set()
586 reg_write16(encoder, REG_VS_LINE_STRT_1_MSB, line_start); in tda998x_encoder_mode_set()
587 reg_write16(encoder, REG_VS_LINE_END_1_MSB, line_end); in tda998x_encoder_mode_set()
588 reg_write16(encoder, REG_VS_PIX_STRT_1_MSB, hs_start); in tda998x_encoder_mode_set()
589 reg_write16(encoder, REG_VS_PIX_END_1_MSB, hs_start); in tda998x_encoder_mode_set()
590 reg_write16(encoder, REG_HS_PIX_START_MSB, hs_start); in tda998x_encoder_mode_set()
591 reg_write16(encoder, REG_HS_PIX_STOP_MSB, hs_end); in tda998x_encoder_mode_set()
592 reg_write16(encoder, REG_VWIN_START_1_MSB, vwin_start); in tda998x_encoder_mode_set()
593 reg_write16(encoder, REG_VWIN_END_1_MSB, vwin_end); in tda998x_encoder_mode_set()
594 reg_write16(encoder, REG_DE_START_MSB, de_start); in tda998x_encoder_mode_set()
595 reg_write16(encoder, REG_DE_STOP_MSB, de_end); in tda998x_encoder_mode_set()
599 reg_write(encoder, REG_ENABLE_SPACE, 0x01); in tda998x_encoder_mode_set()
602 reg_write16(encoder, REG_REFPIX_MSB, ref_pix); in tda998x_encoder_mode_set()
603 reg_write16(encoder, REG_REFLINE_MSB, ref_line); in tda998x_encoder_mode_set()
612 reg_set(encoder, REG_TBG_CNTRL_1, reg); in tda998x_encoder_mode_set()
615 reg_clear(encoder, REG_TBG_CNTRL_0, TBG_CNTRL_0_SYNC_ONCE); in tda998x_encoder_mode_set()
619 tda998x_encoder_detect(struct drm_encoder *encoder, in tda998x_encoder_detect() argument
622 uint8_t val = cec_read(encoder, REG_CEC_RXSHPDLEV); in tda998x_encoder_detect()
628 read_edid_block(struct drm_encoder *encoder, uint8_t *buf, int blk) in read_edid_block() argument
634 reg_set(encoder, REG_INT_FLAGS_2, INT_FLAGS_2_EDID_BLK_RD); in read_edid_block()
639 reg_write(encoder, REG_DDC_ADDR, 0xa0); in read_edid_block()
640 reg_write(encoder, REG_DDC_OFFS, offset); in read_edid_block()
641 reg_write(encoder, REG_DDC_SEGM_ADDR, 0x60); in read_edid_block()
642 reg_write(encoder, REG_DDC_SEGM, segptr); in read_edid_block()
645 reg_write(encoder, REG_EDID_CTRL, 0x1); in read_edid_block()
648 reg_write(encoder, REG_EDID_CTRL, 0x0); in read_edid_block()
652 uint8_t val = reg_read(encoder, REG_INT_FLAGS_2); in read_edid_block()
661 ret = reg_read_range(encoder, REG_EDID_DATA_0, buf, EDID_LENGTH); in read_edid_block()
663 dev_err(encoder->dev->dev, "failed to read edid block %d: %d", in read_edid_block()
668 reg_clear(encoder, REG_INT_FLAGS_2, INT_FLAGS_2_EDID_BLK_RD); in read_edid_block()
674 do_get_edid(struct drm_encoder *encoder) in do_get_edid() argument
684 if (read_edid_block(encoder, block, 0)) in do_get_edid()
701 if (read_edid_block(encoder, ext_block, j)) in do_get_edid()
722 dev_warn(encoder->dev->dev, "failed to read EDID\n"); in do_get_edid()
728 tda998x_encoder_get_modes(struct drm_encoder *encoder, in tda998x_encoder_get_modes() argument
731 struct edid *edid = (struct edid *)do_get_edid(encoder); in tda998x_encoder_get_modes()
744 tda998x_encoder_create_resources(struct drm_encoder *encoder, in tda998x_encoder_create_resources() argument
752 tda998x_encoder_set_property(struct drm_encoder *encoder, in tda998x_encoder_set_property() argument
762 tda998x_encoder_destroy(struct drm_encoder *encoder) in tda998x_encoder_destroy() argument
764 struct tda998x_priv *priv = to_tda998x_priv(encoder); in tda998x_encoder_destroy()
765 drm_i2c_encoder_destroy(encoder); in tda998x_encoder_destroy()
803 struct drm_encoder *encoder = &encoder_slave->base; in tda998x_encoder_init() local
818 cec_write(encoder, REG_CEC_ENAMODS, in tda998x_encoder_init()
821 tda998x_reset(encoder); in tda998x_encoder_init()
824 priv->rev = reg_read(encoder, REG_VERSION_LSB) | in tda998x_encoder_init()
825 reg_read(encoder, REG_VERSION_MSB) << 8; in tda998x_encoder_init()
841 reg_write(encoder, REG_DDC_DISABLE, 0x00); in tda998x_encoder_init()
844 reg_write(encoder, REG_TX3, 39); in tda998x_encoder_init()
848 reg_set(encoder, REG_I2C_MASTER, I2C_MASTER_DIS_MM); in tda998x_encoder_init()
850 cec_write(encoder, REG_CEC_FRO_IM_CLK_CTRL, in tda998x_encoder_init()