hdmi 424 drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c dw_hdmi_set_sample_rate(dw->data.hdmi, runtime->rate); hdmi 437 drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c dw_hdmi_set_channel_count(dw->data.hdmi, runtime->channels); hdmi 438 drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c dw_hdmi_set_channel_allocation(dw->data.hdmi, ca); hdmi 472 drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c dw_hdmi_audio_enable(dw->data.hdmi); hdmi 481 drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c dw_hdmi_audio_disable(dw->data.hdmi); hdmi 11 drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h struct dw_hdmi *hdmi; hdmi 16 drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h struct dw_hdmi *hdmi; hdmi 19 drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h void (*write)(struct dw_hdmi *hdmi, u8 val, int offset); hdmi 20 drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h u8 (*read)(struct dw_hdmi *hdmi, int offset); hdmi 55 drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c struct dw_hdmi *hdmi; hdmi 69 drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c cec->ops->write(cec->hdmi, val, offset); hdmi 74 drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c return cec->ops->read(cec->hdmi, offset); hdmi 195 drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c cec->ops->disable(cec->hdmi); hdmi 205 drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c cec->ops->enable(cec->hdmi); hdmi 249 drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c cec->hdmi = data->hdmi; hdmi 7 drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.h void (*write)(struct dw_hdmi *hdmi, u8 val, int offset); hdmi 8 drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.h u8 (*read)(struct dw_hdmi *hdmi, int offset); hdmi 9 drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.h void (*enable)(struct dw_hdmi *hdmi); hdmi 10 drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.h void (*disable)(struct dw_hdmi *hdmi); hdmi 14 drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.h struct dw_hdmi *hdmi; hdmi 25 drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c struct dw_hdmi *hdmi = audio->hdmi; hdmi 27 drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c audio->write(hdmi, val, offset); hdmi 32 drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c struct dw_hdmi *hdmi = audio->hdmi; hdmi 34 drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c return audio->read(hdmi, offset); hdmi 42 drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c struct dw_hdmi *hdmi = audio->hdmi; hdmi 104 drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c dw_hdmi_set_sample_rate(hdmi, hparms->sample_rate); hdmi 105 drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c dw_hdmi_set_channel_count(hdmi, hparms->channels); hdmi 106 drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c dw_hdmi_set_channel_allocation(hdmi, hparms->cea.channel_allocation); hdmi 112 drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c dw_hdmi_audio_enable(hdmi); hdmi 120 drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c struct dw_hdmi *hdmi = audio->hdmi; hdmi 122 drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c dw_hdmi_audio_disable(hdmi); hdmi 129 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c int (*configure)(struct dw_hdmi *hdmi, hdmi 190 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c void (*enable_audio)(struct dw_hdmi *hdmi); hdmi 191 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c void (*disable_audio)(struct dw_hdmi *hdmi); hdmi 205 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static inline void hdmi_writeb(struct dw_hdmi *hdmi, u8 val, int offset) hdmi 207 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c regmap_write(hdmi->regm, offset << hdmi->reg_shift, val); hdmi 210 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static inline u8 hdmi_readb(struct dw_hdmi *hdmi, int offset) hdmi 214 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c regmap_read(hdmi->regm, offset << hdmi->reg_shift, &val); hdmi 219 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void hdmi_modb(struct dw_hdmi *hdmi, u8 data, u8 mask, unsigned reg) hdmi 221 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c regmap_update_bits(hdmi->regm, reg << hdmi->reg_shift, mask, data); hdmi 224 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void hdmi_mask_writeb(struct dw_hdmi *hdmi, u8 data, unsigned int reg, hdmi 227 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_modb(hdmi, data << shift, mask, reg); hdmi 230 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_i2c_init(struct dw_hdmi *hdmi) hdmi 232 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, HDMI_PHY_I2CM_INT_ADDR_DONE_POL, hdmi 235 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, HDMI_PHY_I2CM_CTLINT_ADDR_NAC_POL | hdmi 240 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0x00, HDMI_I2CM_SOFTRSTZ); hdmi 243 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0x00, HDMI_I2CM_DIV); hdmi 246 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, HDMI_I2CM_INT_DONE_POL, HDMI_I2CM_INT); hdmi 247 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, HDMI_I2CM_CTLINT_NAC_POL | HDMI_I2CM_CTLINT_ARB_POL, hdmi 251 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, HDMI_IH_I2CM_STAT0_ERROR | HDMI_IH_I2CM_STAT0_DONE, hdmi 255 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, HDMI_IH_I2CM_STAT0_ERROR | HDMI_IH_I2CM_STAT0_DONE, hdmi 259 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static bool dw_hdmi_i2c_unwedge(struct dw_hdmi *hdmi) hdmi 262 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (!hdmi->unwedge_state) hdmi 265 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_info(hdmi->dev, "Attempting to unwedge stuck i2c bus\n"); hdmi 299 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c pinctrl_select_state(hdmi->pinctrl, hdmi->unwedge_state); hdmi 301 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c pinctrl_select_state(hdmi->pinctrl, hdmi->default_state); hdmi 306 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static int dw_hdmi_i2c_wait(struct dw_hdmi *hdmi) hdmi 308 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct dw_hdmi_i2c *i2c = hdmi->i2c; hdmi 314 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (!dw_hdmi_i2c_unwedge(hdmi)) hdmi 330 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static int dw_hdmi_i2c_read(struct dw_hdmi *hdmi, hdmi 333 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct dw_hdmi_i2c *i2c = hdmi->i2c; hdmi 337 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_dbg(hdmi->dev, "set read register address to 0\n"); hdmi 345 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, i2c->slave_reg++, HDMI_I2CM_ADDRESS); hdmi 347 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, HDMI_I2CM_OPERATION_READ_EXT, hdmi 350 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, HDMI_I2CM_OPERATION_READ, hdmi 353 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ret = dw_hdmi_i2c_wait(hdmi); hdmi 357 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c *buf++ = hdmi_readb(hdmi, HDMI_I2CM_DATAI); hdmi 364 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static int dw_hdmi_i2c_write(struct dw_hdmi *hdmi, hdmi 367 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct dw_hdmi_i2c *i2c = hdmi->i2c; hdmi 381 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, *buf++, HDMI_I2CM_DATAO); hdmi 382 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, i2c->slave_reg++, HDMI_I2CM_ADDRESS); hdmi 383 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, HDMI_I2CM_OPERATION_WRITE, hdmi 386 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ret = dw_hdmi_i2c_wait(hdmi); hdmi 397 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct dw_hdmi *hdmi = i2c_get_adapdata(adap); hdmi 398 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct dw_hdmi_i2c *i2c = hdmi->i2c; hdmi 411 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_dbg(hdmi->dev, "xfer: num: %d, addr: %#x\n", num, addr); hdmi 415 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_dbg(hdmi->dev, hdmi 425 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0x00, HDMI_IH_MUTE_I2CM_STAT0); hdmi 428 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, addr, HDMI_I2CM_SLAVE); hdmi 437 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_dbg(hdmi->dev, "xfer: num: %d/%d, len: %d, flags: %#x\n", hdmi 441 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, DDC_SEGMENT_ADDR, HDMI_I2CM_SEGADDR); hdmi 442 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, *msgs[i].buf, HDMI_I2CM_SEGPTR); hdmi 445 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ret = dw_hdmi_i2c_read(hdmi, msgs[i].buf, hdmi 448 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ret = dw_hdmi_i2c_write(hdmi, msgs[i].buf, hdmi 459 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, HDMI_IH_I2CM_STAT0_ERROR | HDMI_IH_I2CM_STAT0_DONE, hdmi 477 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static struct i2c_adapter *dw_hdmi_i2c_adapter(struct dw_hdmi *hdmi) hdmi 483 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c i2c = devm_kzalloc(hdmi->dev, sizeof(*i2c), GFP_KERNEL); hdmi 493 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c adap->dev.parent = hdmi->dev; hdmi 496 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c i2c_set_adapdata(adap, hdmi); hdmi 500 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_warn(hdmi->dev, "cannot add %s I2C adapter\n", adap->name); hdmi 501 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c devm_kfree(hdmi->dev, i2c); hdmi 505 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->i2c = i2c; hdmi 507 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_info(hdmi->dev, "registered %s I2C bus driver\n", adap->name); hdmi 512 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void hdmi_set_cts_n(struct dw_hdmi *hdmi, unsigned int cts, hdmi 516 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_modb(hdmi, 0, HDMI_AUD_CTS3_CTS_MANUAL, HDMI_AUD_CTS3); hdmi 519 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_modb(hdmi, 0, HDMI_AUD_CTS3_N_SHIFT_MASK, HDMI_AUD_CTS3); hdmi 523 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, ((cts >> 16) & hdmi 528 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0, HDMI_AUD_CTS3); hdmi 529 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, (cts >> 8) & 0xff, HDMI_AUD_CTS2); hdmi 530 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, cts & 0xff, HDMI_AUD_CTS1); hdmi 532 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, (n >> 16) & 0x0f, HDMI_AUD_N3); hdmi 533 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, (n >> 8) & 0xff, HDMI_AUD_N2); hdmi 534 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, n & 0xff, HDMI_AUD_N1); hdmi 593 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void hdmi_set_clk_regenerator(struct dw_hdmi *hdmi, hdmi 603 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c config3 = hdmi_readb(hdmi, HDMI_CONFIG3_ID); hdmi 618 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_dbg(hdmi->dev, "%s: fs=%uHz ftdms=%lu.%03luMHz N=%d cts=%d\n", hdmi 626 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c spin_lock_irq(&hdmi->audio_lock); hdmi 627 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->audio_n = n; hdmi 628 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->audio_cts = cts; hdmi 629 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_set_cts_n(hdmi, cts, hdmi->audio_enable ? n : 0); hdmi 630 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c spin_unlock_irq(&hdmi->audio_lock); hdmi 633 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void hdmi_init_clk_regenerator(struct dw_hdmi *hdmi) hdmi 635 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_lock(&hdmi->audio_mutex); hdmi 636 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_set_clk_regenerator(hdmi, 74250000, hdmi->sample_rate); hdmi 637 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_unlock(&hdmi->audio_mutex); hdmi 640 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void hdmi_clk_regenerator_update_pixel_clock(struct dw_hdmi *hdmi) hdmi 642 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_lock(&hdmi->audio_mutex); hdmi 643 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_set_clk_regenerator(hdmi, hdmi->hdmi_data.video_mode.mtmdsclock, hdmi 644 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->sample_rate); hdmi 645 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_unlock(&hdmi->audio_mutex); hdmi 648 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c void dw_hdmi_set_sample_rate(struct dw_hdmi *hdmi, unsigned int rate) hdmi 650 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_lock(&hdmi->audio_mutex); hdmi 651 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->sample_rate = rate; hdmi 652 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_set_clk_regenerator(hdmi, hdmi->hdmi_data.video_mode.mtmdsclock, hdmi 653 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->sample_rate); hdmi 654 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_unlock(&hdmi->audio_mutex); hdmi 658 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c void dw_hdmi_set_channel_count(struct dw_hdmi *hdmi, unsigned int cnt) hdmi 662 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_lock(&hdmi->audio_mutex); hdmi 673 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_modb(hdmi, layout, HDMI_FC_AUDSCONF_AUD_PACKET_LAYOUT_MASK, hdmi 677 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_modb(hdmi, (cnt - 1) << HDMI_FC_AUDICONF0_CC_OFFSET, hdmi 680 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_unlock(&hdmi->audio_mutex); hdmi 684 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c void dw_hdmi_set_channel_allocation(struct dw_hdmi *hdmi, unsigned int ca) hdmi 686 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_lock(&hdmi->audio_mutex); hdmi 688 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, ca, HDMI_FC_AUDICONF2); hdmi 690 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_unlock(&hdmi->audio_mutex); hdmi 694 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void hdmi_enable_audio_clk(struct dw_hdmi *hdmi, bool enable) hdmi 697 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->mc_clkdis &= ~HDMI_MC_CLKDIS_AUDCLK_DISABLE; hdmi 699 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->mc_clkdis |= HDMI_MC_CLKDIS_AUDCLK_DISABLE; hdmi 700 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, hdmi->mc_clkdis, HDMI_MC_CLKDIS); hdmi 703 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_ahb_audio_enable(struct dw_hdmi *hdmi) hdmi 705 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_set_cts_n(hdmi, hdmi->audio_cts, hdmi->audio_n); hdmi 708 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_ahb_audio_disable(struct dw_hdmi *hdmi) hdmi 710 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_set_cts_n(hdmi, hdmi->audio_cts, 0); hdmi 713 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_i2s_audio_enable(struct dw_hdmi *hdmi) hdmi 715 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_set_cts_n(hdmi, hdmi->audio_cts, hdmi->audio_n); hdmi 716 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_enable_audio_clk(hdmi, true); hdmi 719 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_i2s_audio_disable(struct dw_hdmi *hdmi) hdmi 721 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_enable_audio_clk(hdmi, false); hdmi 724 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c void dw_hdmi_audio_enable(struct dw_hdmi *hdmi) hdmi 728 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c spin_lock_irqsave(&hdmi->audio_lock, flags); hdmi 729 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->audio_enable = true; hdmi 730 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->enable_audio) hdmi 731 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->enable_audio(hdmi); hdmi 732 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c spin_unlock_irqrestore(&hdmi->audio_lock, flags); hdmi 736 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c void dw_hdmi_audio_disable(struct dw_hdmi *hdmi) hdmi 740 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c spin_lock_irqsave(&hdmi->audio_lock, flags); hdmi 741 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->audio_enable = false; hdmi 742 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->disable_audio) hdmi 743 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->disable_audio(hdmi); hdmi 744 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c spin_unlock_irqrestore(&hdmi->audio_lock, flags); hdmi 841 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void hdmi_video_sample(struct dw_hdmi *hdmi) hdmi 846 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c switch (hdmi->hdmi_data.enc_in_bus_format) { hdmi 894 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, val, HDMI_TX_INVID0); hdmi 900 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, val, HDMI_TX_INSTUFFING); hdmi 901 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0x0, HDMI_TX_GYDATA0); hdmi 902 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0x0, HDMI_TX_GYDATA1); hdmi 903 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0x0, HDMI_TX_RCRDATA0); hdmi 904 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0x0, HDMI_TX_RCRDATA1); hdmi 905 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0x0, HDMI_TX_BCBDATA0); hdmi 906 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0x0, HDMI_TX_BCBDATA1); hdmi 909 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static int is_color_space_conversion(struct dw_hdmi *hdmi) hdmi 911 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c return hdmi->hdmi_data.enc_in_bus_format != hdmi->hdmi_data.enc_out_bus_format; hdmi 914 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static int is_color_space_decimation(struct dw_hdmi *hdmi) hdmi 916 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (!hdmi_bus_fmt_is_yuv422(hdmi->hdmi_data.enc_out_bus_format)) hdmi 919 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi_bus_fmt_is_rgb(hdmi->hdmi_data.enc_in_bus_format) || hdmi 920 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_bus_fmt_is_yuv444(hdmi->hdmi_data.enc_in_bus_format)) hdmi 926 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static int is_color_space_interpolation(struct dw_hdmi *hdmi) hdmi 928 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (!hdmi_bus_fmt_is_yuv422(hdmi->hdmi_data.enc_in_bus_format)) hdmi 931 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi_bus_fmt_is_rgb(hdmi->hdmi_data.enc_out_bus_format) || hdmi 932 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_bus_fmt_is_yuv444(hdmi->hdmi_data.enc_out_bus_format)) hdmi 938 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_update_csc_coeffs(struct dw_hdmi *hdmi) hdmi 944 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (is_color_space_conversion(hdmi)) { hdmi 945 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi_bus_fmt_is_rgb(hdmi->hdmi_data.enc_out_bus_format)) { hdmi 946 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->hdmi_data.enc_out_encoding == hdmi 952 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->hdmi_data.enc_in_bus_format)) { hdmi 953 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->hdmi_data.enc_out_encoding == hdmi 968 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, coeff_a & 0xff, HDMI_CSC_COEF_A1_LSB + i * 2); hdmi 969 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, coeff_a >> 8, HDMI_CSC_COEF_A1_MSB + i * 2); hdmi 970 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, coeff_b & 0xff, HDMI_CSC_COEF_B1_LSB + i * 2); hdmi 971 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, coeff_b >> 8, HDMI_CSC_COEF_B1_MSB + i * 2); hdmi 972 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, coeff_c & 0xff, HDMI_CSC_COEF_C1_LSB + i * 2); hdmi 973 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, coeff_c >> 8, HDMI_CSC_COEF_C1_MSB + i * 2); hdmi 976 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_modb(hdmi, csc_scale, HDMI_CSC_SCALE_CSCSCALE_MASK, hdmi 980 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void hdmi_video_csc(struct dw_hdmi *hdmi) hdmi 987 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (is_color_space_interpolation(hdmi)) hdmi 989 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c else if (is_color_space_decimation(hdmi)) hdmi 992 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c switch (hdmi_bus_fmt_color_depth(hdmi->hdmi_data.enc_out_bus_format)) { hdmi 1011 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, interpolation | decimation, HDMI_CSC_CFG); hdmi 1012 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_modb(hdmi, color_depth, HDMI_CSC_SCALE_CSC_COLORDE_PTH_MASK, hdmi 1015 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_update_csc_coeffs(hdmi); hdmi 1023 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void hdmi_video_packetize(struct dw_hdmi *hdmi) hdmi 1028 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct hdmi_data_info *hdmi_data = &hdmi->hdmi_data; hdmi 1031 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi_bus_fmt_is_rgb(hdmi->hdmi_data.enc_out_bus_format) || hdmi 1032 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_bus_fmt_is_yuv444(hdmi->hdmi_data.enc_out_bus_format) || hdmi 1033 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_bus_fmt_is_yuv420(hdmi->hdmi_data.enc_out_bus_format)) { hdmi 1035 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->hdmi_data.enc_out_bus_format)) { hdmi 1052 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c } else if (hdmi_bus_fmt_is_yuv422(hdmi->hdmi_data.enc_out_bus_format)) { hdmi 1054 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->hdmi_data.enc_out_bus_format)) { hdmi 1080 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, val, HDMI_VP_PR_CD); hdmi 1082 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_modb(hdmi, HDMI_VP_STUFF_PR_STUFFING_STUFFING_MODE, hdmi 1094 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_modb(hdmi, vp_conf, hdmi 1098 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_modb(hdmi, 1 << HDMI_VP_STUFF_IDEFAULT_PHASE_OFFSET, hdmi 1101 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, remap_size, HDMI_VP_REMAP); hdmi 1119 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_modb(hdmi, vp_conf, hdmi 1123 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_modb(hdmi, HDMI_VP_STUFF_PP_STUFFING_STUFFING_MODE | hdmi 1128 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_modb(hdmi, output_select, HDMI_VP_CONF_OUTPUT_SELECTOR_MASK, hdmi 1136 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static inline void hdmi_phy_test_clear(struct dw_hdmi *hdmi, hdmi 1139 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_modb(hdmi, bit << HDMI_PHY_TST0_TSTCLR_OFFSET, hdmi 1143 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static bool hdmi_phy_wait_i2c_done(struct dw_hdmi *hdmi, int msec) hdmi 1147 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c while ((val = hdmi_readb(hdmi, HDMI_IH_I2CMPHY_STAT0) & 0x3) == 0) { hdmi 1152 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, val, HDMI_IH_I2CMPHY_STAT0); hdmi 1157 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c void dw_hdmi_phy_i2c_write(struct dw_hdmi *hdmi, unsigned short data, hdmi 1160 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xFF, HDMI_IH_I2CMPHY_STAT0); hdmi 1161 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, addr, HDMI_PHY_I2CM_ADDRESS_ADDR); hdmi 1162 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, (unsigned char)(data >> 8), hdmi 1164 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, (unsigned char)(data >> 0), hdmi 1166 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, HDMI_PHY_I2CM_OPERATION_ADDR_WRITE, hdmi 1168 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_phy_wait_i2c_done(hdmi, 1000); hdmi 1173 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static bool dw_hdmi_support_scdc(struct dw_hdmi *hdmi) hdmi 1175 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct drm_display_info *display = &hdmi->connector.display_info; hdmi 1178 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->version < 0x200a) hdmi 1182 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (!hdmi->ddc) hdmi 1186 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (!display->hdmi.scdc.supported || hdmi 1187 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c !display->hdmi.scdc.scrambling.supported) hdmi 1194 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (!display->hdmi.scdc.scrambling.low_rates && hdmi 1214 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c void dw_hdmi_set_high_tmds_clock_ratio(struct dw_hdmi *hdmi) hdmi 1216 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c unsigned long mtmdsclock = hdmi->hdmi_data.video_mode.mtmdsclock; hdmi 1219 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (dw_hdmi_support_scdc(hdmi)) { hdmi 1221 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c drm_scdc_set_high_tmds_clock_ratio(hdmi->ddc, 1); hdmi 1223 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c drm_scdc_set_high_tmds_clock_ratio(hdmi->ddc, 0); hdmi 1228 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_phy_enable_powerdown(struct dw_hdmi *hdmi, bool enable) hdmi 1230 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_mask_writeb(hdmi, !enable, HDMI_PHY_CONF0, hdmi 1235 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_phy_enable_tmds(struct dw_hdmi *hdmi, u8 enable) hdmi 1237 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_mask_writeb(hdmi, enable, HDMI_PHY_CONF0, hdmi 1242 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_phy_enable_svsret(struct dw_hdmi *hdmi, u8 enable) hdmi 1244 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_mask_writeb(hdmi, enable, HDMI_PHY_CONF0, hdmi 1249 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c void dw_hdmi_phy_gen2_pddq(struct dw_hdmi *hdmi, u8 enable) hdmi 1251 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_mask_writeb(hdmi, enable, HDMI_PHY_CONF0, hdmi 1257 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c void dw_hdmi_phy_gen2_txpwron(struct dw_hdmi *hdmi, u8 enable) hdmi 1259 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_mask_writeb(hdmi, enable, HDMI_PHY_CONF0, hdmi 1265 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_phy_sel_data_en_pol(struct dw_hdmi *hdmi, u8 enable) hdmi 1267 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_mask_writeb(hdmi, enable, HDMI_PHY_CONF0, hdmi 1272 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_phy_sel_interface_control(struct dw_hdmi *hdmi, u8 enable) hdmi 1274 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_mask_writeb(hdmi, enable, HDMI_PHY_CONF0, hdmi 1279 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c void dw_hdmi_phy_reset(struct dw_hdmi *hdmi) hdmi 1282 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, HDMI_MC_PHYRSTZ_PHYRSTZ, HDMI_MC_PHYRSTZ); hdmi 1283 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0, HDMI_MC_PHYRSTZ); hdmi 1287 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c void dw_hdmi_phy_i2c_set_addr(struct dw_hdmi *hdmi, u8 address) hdmi 1289 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_phy_test_clear(hdmi, 1); hdmi 1290 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, address, HDMI_PHY_I2CM_SLAVE_ADDR); hdmi 1291 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_phy_test_clear(hdmi, 0); hdmi 1295 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_phy_power_off(struct dw_hdmi *hdmi) hdmi 1297 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c const struct dw_hdmi_phy_data *phy = hdmi->phy.data; hdmi 1302 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_enable_tmds(hdmi, 0); hdmi 1303 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_enable_powerdown(hdmi, true); hdmi 1307 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_gen2_txpwron(hdmi, 0); hdmi 1314 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c val = hdmi_readb(hdmi, HDMI_PHY_STAT0); hdmi 1322 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_warn(hdmi->dev, "PHY failed to power down\n"); hdmi 1324 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_dbg(hdmi->dev, "PHY powered down in %u iterations\n", i); hdmi 1326 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_gen2_pddq(hdmi, 1); hdmi 1329 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static int dw_hdmi_phy_power_on(struct dw_hdmi *hdmi) hdmi 1331 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c const struct dw_hdmi_phy_data *phy = hdmi->phy.data; hdmi 1336 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_enable_powerdown(hdmi, false); hdmi 1339 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_enable_tmds(hdmi, 0); hdmi 1340 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_enable_tmds(hdmi, 1); hdmi 1344 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_gen2_txpwron(hdmi, 1); hdmi 1345 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_gen2_pddq(hdmi, 0); hdmi 1349 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c val = hdmi_readb(hdmi, HDMI_PHY_STAT0) & HDMI_PHY_TX_PHY_LOCK; hdmi 1357 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_err(hdmi->dev, "PHY PLL failed to lock\n"); hdmi 1361 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_dbg(hdmi->dev, "PHY PLL locked %u iterations\n", i); hdmi 1370 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static int hdmi_phy_configure_dwc_hdmi_3d_tx(struct dw_hdmi *hdmi, hdmi 1398 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_i2c_write(hdmi, mpll_config->res[0].cpce, hdmi 1400 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_i2c_write(hdmi, mpll_config->res[0].gmp, hdmi 1402 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_i2c_write(hdmi, curr_ctrl->curr[0], hdmi 1405 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_i2c_write(hdmi, 0, HDMI_3D_TX_PHY_PLLPHBYCTRL); hdmi 1406 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_i2c_write(hdmi, HDMI_3D_TX_PHY_MSM_CTRL_CKO_SEL_FB_CLK, hdmi 1409 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_i2c_write(hdmi, phy_config->term, HDMI_3D_TX_PHY_TXTERM); hdmi 1410 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_i2c_write(hdmi, phy_config->sym_ctr, hdmi 1412 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_i2c_write(hdmi, phy_config->vlev_ctr, hdmi 1416 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_i2c_write(hdmi, HDMI_3D_TX_PHY_CKCALCTRL_OVERRIDE, hdmi 1422 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static int hdmi_phy_configure(struct dw_hdmi *hdmi) hdmi 1424 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c const struct dw_hdmi_phy_data *phy = hdmi->phy.data; hdmi 1425 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c const struct dw_hdmi_plat_data *pdata = hdmi->plat_data; hdmi 1426 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c unsigned long mpixelclock = hdmi->hdmi_data.video_mode.mpixelclock; hdmi 1427 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c unsigned long mtmdsclock = hdmi->hdmi_data.video_mode.mtmdsclock; hdmi 1430 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_power_off(hdmi); hdmi 1432 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_set_high_tmds_clock_ratio(hdmi); hdmi 1436 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_enable_svsret(hdmi, 1); hdmi 1438 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_reset(hdmi); hdmi 1440 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, HDMI_MC_HEACPHY_RST_ASSERT, HDMI_MC_HEACPHY_RST); hdmi 1442 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_i2c_set_addr(hdmi, HDMI_PHY_I2CM_SLAVE_ADDR_PHY_GEN2); hdmi 1446 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ret = pdata->configure_phy(hdmi, pdata, mpixelclock); hdmi 1448 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ret = phy->configure(hdmi, pdata, mpixelclock); hdmi 1450 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_err(hdmi->dev, "PHY configuration failed (clock %lu)\n", hdmi 1459 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c return dw_hdmi_phy_power_on(hdmi); hdmi 1462 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static int dw_hdmi_phy_init(struct dw_hdmi *hdmi, void *data, hdmi 1469 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_sel_data_en_pol(hdmi, 1); hdmi 1470 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_sel_interface_control(hdmi, 0); hdmi 1472 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ret = hdmi_phy_configure(hdmi); hdmi 1480 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_phy_disable(struct dw_hdmi *hdmi, void *data) hdmi 1482 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_phy_power_off(hdmi); hdmi 1485 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c enum drm_connector_status dw_hdmi_phy_read_hpd(struct dw_hdmi *hdmi, hdmi 1488 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c return hdmi_readb(hdmi, HDMI_PHY_STAT0) & HDMI_PHY_HPD ? hdmi 1493 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c void dw_hdmi_phy_update_hpd(struct dw_hdmi *hdmi, void *data, hdmi 1496 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c u8 old_mask = hdmi->phy_mask; hdmi 1499 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->phy_mask |= HDMI_PHY_RX_SENSE; hdmi 1501 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->phy_mask &= ~HDMI_PHY_RX_SENSE; hdmi 1503 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (old_mask != hdmi->phy_mask) hdmi 1504 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, hdmi->phy_mask, HDMI_PHY_MASK0); hdmi 1508 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c void dw_hdmi_phy_setup_hpd(struct dw_hdmi *hdmi, void *data) hdmi 1514 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, HDMI_PHY_HPD | HDMI_PHY_RX_SENSE, HDMI_PHY_POL0); hdmi 1515 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, HDMI_IH_PHY_STAT0_HPD | HDMI_IH_PHY_STAT0_RX_SENSE, hdmi 1519 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, hdmi->phy_mask, HDMI_PHY_MASK0); hdmi 1522 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, HDMI_IH_PHY_STAT0_HPD | HDMI_IH_PHY_STAT0_RX_SENSE, hdmi 1524 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, ~(HDMI_IH_PHY_STAT0_HPD | HDMI_IH_PHY_STAT0_RX_SENSE), hdmi 1541 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void hdmi_tx_hdcp_config(struct dw_hdmi *hdmi) hdmi 1545 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->hdmi_data.video_mode.mdataenablepolarity) hdmi 1551 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_modb(hdmi, HDMI_A_HDCPCFG0_RXDETECT_DISABLE, hdmi 1554 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_modb(hdmi, de, HDMI_A_VIDPOLCFG_DATAENPOL_MASK, HDMI_A_VIDPOLCFG); hdmi 1556 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_modb(hdmi, HDMI_A_HDCPCFG1_ENCRYPTIONDISABLE_DISABLE, hdmi 1560 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void hdmi_config_AVI(struct dw_hdmi *hdmi, struct drm_display_mode *mode) hdmi 1567 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c &hdmi->connector, mode); hdmi 1569 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi_bus_fmt_is_yuv444(hdmi->hdmi_data.enc_out_bus_format)) hdmi 1571 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c else if (hdmi_bus_fmt_is_yuv422(hdmi->hdmi_data.enc_out_bus_format)) hdmi 1573 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c else if (hdmi_bus_fmt_is_yuv420(hdmi->hdmi_data.enc_out_bus_format)) hdmi 1579 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (!hdmi_bus_fmt_is_rgb(hdmi->hdmi_data.enc_out_bus_format)) { hdmi 1580 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c switch (hdmi->hdmi_data.enc_out_encoding) { hdmi 1582 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->hdmi_data.enc_in_encoding == V4L2_YCBCR_ENC_XV601) hdmi 1590 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->hdmi_data.enc_in_encoding == V4L2_YCBCR_ENC_XV709) hdmi 1629 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, val, HDMI_FC_AVICONF0); hdmi 1635 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, val, HDMI_FC_AVICONF1); hdmi 1643 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, val, HDMI_FC_AVICONF2); hdmi 1647 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, val, HDMI_FC_AVIVID); hdmi 1650 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c val = (((hdmi->hdmi_data.video_mode.mpixelrepetitioninput + 1) << hdmi 1653 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ((hdmi->hdmi_data.video_mode.mpixelrepetitionoutput << hdmi 1656 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, val, HDMI_FC_PRCONF); hdmi 1664 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, val, HDMI_FC_AVICONF3); hdmi 1667 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, frame.top_bar & 0xff, HDMI_FC_AVIETB0); hdmi 1668 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, (frame.top_bar >> 8) & 0xff, HDMI_FC_AVIETB1); hdmi 1669 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, frame.bottom_bar & 0xff, HDMI_FC_AVISBB0); hdmi 1670 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, (frame.bottom_bar >> 8) & 0xff, HDMI_FC_AVISBB1); hdmi 1671 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, frame.left_bar & 0xff, HDMI_FC_AVIELB0); hdmi 1672 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, (frame.left_bar >> 8) & 0xff, HDMI_FC_AVIELB1); hdmi 1673 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, frame.right_bar & 0xff, HDMI_FC_AVISRB0); hdmi 1674 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, (frame.right_bar >> 8) & 0xff, HDMI_FC_AVISRB1); hdmi 1677 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void hdmi_config_vendor_specific_infoframe(struct dw_hdmi *hdmi, hdmi 1685 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c &hdmi->connector, hdmi 1698 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_err(hdmi->dev, "Failed to pack vendor infoframe: %zd\n", hdmi 1702 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_mask_writeb(hdmi, 0, HDMI_FC_DATAUTO0, HDMI_FC_DATAUTO0_VSD_OFFSET, hdmi 1706 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, buffer[2], HDMI_FC_VSDSIZE); hdmi 1709 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, buffer[4], HDMI_FC_VSDIEEEID0); hdmi 1710 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, buffer[5], HDMI_FC_VSDIEEEID1); hdmi 1711 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, buffer[6], HDMI_FC_VSDIEEEID2); hdmi 1714 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, buffer[7], HDMI_FC_VSDPAYLOAD0); hdmi 1715 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, buffer[8], HDMI_FC_VSDPAYLOAD1); hdmi 1718 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, buffer[9], HDMI_FC_VSDPAYLOAD2); hdmi 1721 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 1, HDMI_FC_DATAUTO1); hdmi 1724 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0x11, HDMI_FC_DATAUTO2); hdmi 1727 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_mask_writeb(hdmi, 1, HDMI_FC_DATAUTO0, HDMI_FC_DATAUTO0_VSD_OFFSET, hdmi 1731 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void hdmi_av_composer(struct dw_hdmi *hdmi, hdmi 1735 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct drm_hdmi_info *hdmi_info = &hdmi->connector.display_info.hdmi; hdmi 1736 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct hdmi_vmode *vmode = &hdmi->hdmi_data.video_mode; hdmi 1742 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_dbg(hdmi->dev, "final pixclk = %d\n", vmode->mpixelclock); hdmi 1744 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi_bus_fmt_is_yuv420(hdmi->hdmi_data.enc_out_bus_format)) hdmi 1748 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c inv_val = (hdmi->hdmi_data.hdcp_enable || hdmi 1749 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c (dw_hdmi_support_scdc(hdmi) && hdmi 1767 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->vic == 39) hdmi 1778 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c inv_val |= hdmi->sink_is_hdmi ? hdmi 1782 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, inv_val, HDMI_FC_INVIDCONF); hdmi 1793 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi_bus_fmt_is_yuv420(hdmi->hdmi_data.enc_out_bus_format)) { hdmi 1817 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (dw_hdmi_support_scdc(hdmi)) { hdmi 1829 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c drm_scdc_readb(hdmi->ddc, SCDC_SINK_VERSION, hdmi 1831 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c drm_scdc_writeb(hdmi->ddc, SCDC_SOURCE_VERSION, hdmi 1835 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c drm_scdc_set_scrambling(hdmi->ddc, 1); hdmi 1844 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, (u8)~HDMI_MC_SWRSTZ_TMDSSWRST_REQ, hdmi 1846 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 1, HDMI_FC_SCRAMBLER_CTRL); hdmi 1848 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0, HDMI_FC_SCRAMBLER_CTRL); hdmi 1849 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, (u8)~HDMI_MC_SWRSTZ_TMDSSWRST_REQ, hdmi 1851 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c drm_scdc_set_scrambling(hdmi->ddc, 0); hdmi 1856 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, hdisplay >> 8, HDMI_FC_INHACTV1); hdmi 1857 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, hdisplay, HDMI_FC_INHACTV0); hdmi 1860 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, vdisplay >> 8, HDMI_FC_INVACTV1); hdmi 1861 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, vdisplay, HDMI_FC_INVACTV0); hdmi 1864 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, hblank >> 8, HDMI_FC_INHBLANK1); hdmi 1865 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, hblank, HDMI_FC_INHBLANK0); hdmi 1868 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, vblank, HDMI_FC_INVBLANK); hdmi 1871 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, h_de_hs >> 8, HDMI_FC_HSYNCINDELAY1); hdmi 1872 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, h_de_hs, HDMI_FC_HSYNCINDELAY0); hdmi 1875 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, v_de_vs, HDMI_FC_VSYNCINDELAY); hdmi 1878 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, hsync_len >> 8, HDMI_FC_HSYNCINWIDTH1); hdmi 1879 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, hsync_len, HDMI_FC_HSYNCINWIDTH0); hdmi 1882 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, vsync_len, HDMI_FC_VSYNCINWIDTH); hdmi 1886 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_enable_video_path(struct dw_hdmi *hdmi) hdmi 1889 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 12, HDMI_FC_CTRLDUR); hdmi 1890 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 32, HDMI_FC_EXCTRLDUR); hdmi 1891 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 1, HDMI_FC_EXCTRLSPAC); hdmi 1894 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0x0B, HDMI_FC_CH0PREAM); hdmi 1895 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0x16, HDMI_FC_CH1PREAM); hdmi 1896 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0x21, HDMI_FC_CH2PREAM); hdmi 1899 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->mc_clkdis |= HDMI_MC_CLKDIS_HDCPCLK_DISABLE | hdmi 1904 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->mc_clkdis &= ~HDMI_MC_CLKDIS_PIXELCLK_DISABLE; hdmi 1905 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, hdmi->mc_clkdis, HDMI_MC_CLKDIS); hdmi 1907 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->mc_clkdis &= ~HDMI_MC_CLKDIS_TMDSCLK_DISABLE; hdmi 1908 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, hdmi->mc_clkdis, HDMI_MC_CLKDIS); hdmi 1911 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (is_color_space_conversion(hdmi)) { hdmi 1912 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->mc_clkdis &= ~HDMI_MC_CLKDIS_CSCCLK_DISABLE; hdmi 1913 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, hdmi->mc_clkdis, HDMI_MC_CLKDIS); hdmi 1917 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (is_color_space_conversion(hdmi)) hdmi 1918 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, HDMI_MC_FLOWCTRL_FEED_THROUGH_OFF_CSC_IN_PATH, hdmi 1921 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, HDMI_MC_FLOWCTRL_FEED_THROUGH_OFF_CSC_BYPASS, hdmi 1926 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_clear_overflow(struct dw_hdmi *hdmi) hdmi 1949 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c switch (hdmi->version) { hdmi 1966 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, (u8)~HDMI_MC_SWRSTZ_TMDSSWRST_REQ, HDMI_MC_SWRSTZ); hdmi 1968 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c val = hdmi_readb(hdmi, HDMI_FC_INVIDCONF); hdmi 1970 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, val, HDMI_FC_INVIDCONF); hdmi 1973 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void hdmi_disable_overflow_interrupts(struct dw_hdmi *hdmi) hdmi 1975 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, HDMI_IH_MUTE_FC_STAT2_OVERFLOW_MASK, hdmi 1979 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static int dw_hdmi_setup(struct dw_hdmi *hdmi, struct drm_display_mode *mode) hdmi 1983 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_disable_overflow_interrupts(hdmi); hdmi 1985 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->vic = drm_match_cea_mode(mode); hdmi 1987 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (!hdmi->vic) { hdmi 1988 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_dbg(hdmi->dev, "Non-CEA mode used in HDMI\n"); hdmi 1990 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_dbg(hdmi->dev, "CEA mode used vic=%d\n", hdmi->vic); hdmi 1993 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if ((hdmi->vic == 6) || (hdmi->vic == 7) || hdmi 1994 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c (hdmi->vic == 21) || (hdmi->vic == 22) || hdmi 1995 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c (hdmi->vic == 2) || (hdmi->vic == 3) || hdmi 1996 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c (hdmi->vic == 17) || (hdmi->vic == 18)) hdmi 1997 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->hdmi_data.enc_out_encoding = V4L2_YCBCR_ENC_601; hdmi 1999 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->hdmi_data.enc_out_encoding = V4L2_YCBCR_ENC_709; hdmi 2001 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->hdmi_data.video_mode.mpixelrepetitionoutput = 0; hdmi 2002 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->hdmi_data.video_mode.mpixelrepetitioninput = 0; hdmi 2005 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->plat_data->input_bus_format) hdmi 2006 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->hdmi_data.enc_in_bus_format = hdmi 2007 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->plat_data->input_bus_format; hdmi 2009 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->hdmi_data.enc_in_bus_format = MEDIA_BUS_FMT_RGB888_1X24; hdmi 2012 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->plat_data->input_bus_encoding) hdmi 2013 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->hdmi_data.enc_in_encoding = hdmi 2014 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->plat_data->input_bus_encoding; hdmi 2016 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->hdmi_data.enc_in_encoding = V4L2_YCBCR_ENC_DEFAULT; hdmi 2019 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->hdmi_data.enc_out_bus_format = MEDIA_BUS_FMT_RGB888_1X24; hdmi 2021 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->hdmi_data.pix_repet_factor = 0; hdmi 2022 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->hdmi_data.hdcp_enable = 0; hdmi 2023 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->hdmi_data.video_mode.mdataenablepolarity = true; hdmi 2026 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_av_composer(hdmi, mode); hdmi 2029 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ret = hdmi->phy.ops->init(hdmi, hdmi->phy.data, &hdmi->previous_mode); hdmi 2032 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->phy.enabled = true; hdmi 2035 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_enable_video_path(hdmi); hdmi 2037 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->sink_has_audio) { hdmi 2038 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_dbg(hdmi->dev, "sink has audio support\n"); hdmi 2041 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_clk_regenerator_update_pixel_clock(hdmi); hdmi 2042 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_enable_audio_clk(hdmi, hdmi->audio_enable); hdmi 2046 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->sink_is_hdmi) { hdmi 2047 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_dbg(hdmi->dev, "%s HDMI mode\n", __func__); hdmi 2050 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_config_AVI(hdmi, mode); hdmi 2051 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_config_vendor_specific_infoframe(hdmi, mode); hdmi 2053 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_dbg(hdmi->dev, "%s DVI mode\n", __func__); hdmi 2056 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_video_packetize(hdmi); hdmi 2057 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_video_csc(hdmi); hdmi 2058 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_video_sample(hdmi); hdmi 2059 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_tx_hdcp_config(hdmi); hdmi 2061 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_clear_overflow(hdmi); hdmi 2066 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void initialize_hdmi_ih_mutes(struct dw_hdmi *hdmi) hdmi 2077 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ih_mute = hdmi_readb(hdmi, HDMI_IH_MUTE) | hdmi 2081 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, ih_mute, HDMI_IH_MUTE); hdmi 2084 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_VP_MASK); hdmi 2085 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_FC_MASK0); hdmi 2086 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_FC_MASK1); hdmi 2087 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_FC_MASK2); hdmi 2088 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_PHY_MASK0); hdmi 2089 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_PHY_I2CM_INT_ADDR); hdmi 2090 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_PHY_I2CM_CTLINT_ADDR); hdmi 2091 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_AUD_INT); hdmi 2092 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_AUD_SPDIFINT); hdmi 2093 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_AUD_HBR_MASK); hdmi 2094 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_GP_MASK); hdmi 2095 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_A_APIINTMSK); hdmi 2096 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_I2CM_INT); hdmi 2097 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_I2CM_CTLINT); hdmi 2100 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_FC_STAT0); hdmi 2101 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_FC_STAT1); hdmi 2102 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_FC_STAT2); hdmi 2103 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_AS_STAT0); hdmi 2104 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_PHY_STAT0); hdmi 2105 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_I2CM_STAT0); hdmi 2106 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_CEC_STAT0); hdmi 2107 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_VP_STAT0); hdmi 2108 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_I2CMPHY_STAT0); hdmi 2109 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, 0xff, HDMI_IH_MUTE_AHBDMAAUD_STAT0); hdmi 2114 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, ih_mute, HDMI_IH_MUTE); hdmi 2117 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_poweron(struct dw_hdmi *hdmi) hdmi 2119 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->bridge_is_on = true; hdmi 2120 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_setup(hdmi, &hdmi->previous_mode); hdmi 2123 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_poweroff(struct dw_hdmi *hdmi) hdmi 2125 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->phy.enabled) { hdmi 2126 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->phy.ops->disable(hdmi, hdmi->phy.data); hdmi 2127 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->phy.enabled = false; hdmi 2130 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->bridge_is_on = false; hdmi 2133 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_update_power(struct dw_hdmi *hdmi) hdmi 2135 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c int force = hdmi->force; hdmi 2137 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->disabled) { hdmi 2140 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->rxsense) hdmi 2147 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->bridge_is_on) hdmi 2148 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_poweroff(hdmi); hdmi 2150 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (!hdmi->bridge_is_on) hdmi 2151 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_poweron(hdmi); hdmi 2167 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_update_phy_mask(struct dw_hdmi *hdmi) hdmi 2169 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->phy.ops->update_hpd) hdmi 2170 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->phy.ops->update_hpd(hdmi, hdmi->phy.data, hdmi 2171 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->force, hdmi->disabled, hdmi 2172 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->rxsense); hdmi 2178 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi, hdmi 2181 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_lock(&hdmi->mutex); hdmi 2182 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->force = DRM_FORCE_UNSPECIFIED; hdmi 2183 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_update_power(hdmi); hdmi 2184 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_update_phy_mask(hdmi); hdmi 2185 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_unlock(&hdmi->mutex); hdmi 2187 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c return hdmi->phy.ops->read_hpd(hdmi, hdmi->phy.data); hdmi 2192 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi, hdmi 2197 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (!hdmi->ddc) hdmi 2200 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c edid = drm_get_edid(connector, hdmi->ddc); hdmi 2202 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_dbg(hdmi->dev, "got edid: width[%d] x height[%d]\n", hdmi 2205 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->sink_is_hdmi = drm_detect_hdmi_monitor(edid); hdmi 2206 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->sink_has_audio = drm_detect_monitor_audio(edid); hdmi 2208 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c cec_notifier_set_phys_addr_from_edid(hdmi->cec_notifier, edid); hdmi 2212 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_dbg(hdmi->dev, "failed to get edid\n"); hdmi 2220 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi, hdmi 2223 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_lock(&hdmi->mutex); hdmi 2224 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->force = connector->force; hdmi 2225 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_update_power(hdmi); hdmi 2226 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_update_phy_mask(hdmi); hdmi 2227 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_unlock(&hdmi->mutex); hdmi 2246 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct dw_hdmi *hdmi = bridge->driver_private; hdmi 2248 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct drm_connector *connector = &hdmi->connector; hdmi 2260 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->ddc); hdmi 2266 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c notifier = cec_notifier_conn_register(hdmi->dev, NULL, &conn_info); hdmi 2270 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_lock(&hdmi->cec_notifier_mutex); hdmi 2271 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->cec_notifier = notifier; hdmi 2272 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_unlock(&hdmi->cec_notifier_mutex); hdmi 2279 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct dw_hdmi *hdmi = bridge->driver_private; hdmi 2281 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_lock(&hdmi->cec_notifier_mutex); hdmi 2282 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c cec_notifier_conn_unregister(hdmi->cec_notifier); hdmi 2283 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->cec_notifier = NULL; hdmi 2284 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_unlock(&hdmi->cec_notifier_mutex); hdmi 2291 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct dw_hdmi *hdmi = bridge->driver_private; hdmi 2292 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct drm_connector *connector = &hdmi->connector; hdmi 2299 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->plat_data->mode_valid) hdmi 2300 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mode_status = hdmi->plat_data->mode_valid(connector, mode); hdmi 2309 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct dw_hdmi *hdmi = bridge->driver_private; hdmi 2311 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_lock(&hdmi->mutex); hdmi 2314 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c memcpy(&hdmi->previous_mode, mode, sizeof(hdmi->previous_mode)); hdmi 2316 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_unlock(&hdmi->mutex); hdmi 2321 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct dw_hdmi *hdmi = bridge->driver_private; hdmi 2323 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_lock(&hdmi->mutex); hdmi 2324 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->disabled = true; hdmi 2325 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_update_power(hdmi); hdmi 2326 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_update_phy_mask(hdmi); hdmi 2327 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_unlock(&hdmi->mutex); hdmi 2332 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct dw_hdmi *hdmi = bridge->driver_private; hdmi 2334 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_lock(&hdmi->mutex); hdmi 2335 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->disabled = false; hdmi 2336 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_update_power(hdmi); hdmi 2337 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_update_phy_mask(hdmi); hdmi 2338 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_unlock(&hdmi->mutex); hdmi 2350 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static irqreturn_t dw_hdmi_i2c_irq(struct dw_hdmi *hdmi) hdmi 2352 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct dw_hdmi_i2c *i2c = hdmi->i2c; hdmi 2355 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c stat = hdmi_readb(hdmi, HDMI_IH_I2CM_STAT0); hdmi 2359 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, stat, HDMI_IH_I2CM_STAT0); hdmi 2370 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct dw_hdmi *hdmi = dev_id; hdmi 2374 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->i2c) hdmi 2375 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ret = dw_hdmi_i2c_irq(hdmi); hdmi 2377 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c intr_stat = hdmi_readb(hdmi, HDMI_IH_PHY_STAT0); hdmi 2379 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, ~0, HDMI_IH_MUTE_PHY_STAT0); hdmi 2386 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c void dw_hdmi_setup_rx_sense(struct dw_hdmi *hdmi, bool hpd, bool rx_sense) hdmi 2388 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_lock(&hdmi->mutex); hdmi 2390 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (!hdmi->force) { hdmi 2396 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->rxsense = false; hdmi 2405 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->rxsense = true; hdmi 2407 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_update_power(hdmi); hdmi 2408 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_update_phy_mask(hdmi); hdmi 2410 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_unlock(&hdmi->mutex); hdmi 2416 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct dw_hdmi *hdmi = dev_id; hdmi 2419 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c intr_stat = hdmi_readb(hdmi, HDMI_IH_PHY_STAT0); hdmi 2420 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c phy_int_pol = hdmi_readb(hdmi, HDMI_PHY_POL0); hdmi 2421 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c phy_stat = hdmi_readb(hdmi, HDMI_PHY_STAT0); hdmi 2436 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_modb(hdmi, ~phy_int_pol, phy_pol_mask, HDMI_PHY_POL0); hdmi 2447 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_setup_rx_sense(hdmi, hdmi 2452 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_lock(&hdmi->cec_notifier_mutex); hdmi 2453 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c cec_notifier_phys_addr_invalidate(hdmi->cec_notifier); hdmi 2454 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_unlock(&hdmi->cec_notifier_mutex); hdmi 2459 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_dbg(hdmi->dev, "EVENT=%s\n", hdmi 2461 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->bridge.dev) hdmi 2462 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c drm_helper_hpd_irq_event(hdmi->bridge.dev); hdmi 2465 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, intr_stat, HDMI_IH_PHY_STAT0); hdmi 2466 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, ~(HDMI_IH_PHY_STAT0_HPD | HDMI_IH_PHY_STAT0_RX_SENSE), hdmi 2511 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static int dw_hdmi_detect_phy(struct dw_hdmi *hdmi) hdmi 2516 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c phy_type = hdmi->plat_data->phy_force_vendor ? hdmi 2518 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_readb(hdmi, HDMI_CONFIG2_ID); hdmi 2522 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (!hdmi->plat_data->phy_ops || !hdmi->plat_data->phy_name) { hdmi 2523 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_err(hdmi->dev, hdmi 2528 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->phy.ops = hdmi->plat_data->phy_ops; hdmi 2529 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->phy.data = hdmi->plat_data->phy_data; hdmi 2530 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->phy.name = hdmi->plat_data->phy_name; hdmi 2537 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->phy.ops = &dw_hdmi_synopsys_phy_ops; hdmi 2538 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->phy.name = dw_hdmi_phys[i].name; hdmi 2539 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->phy.data = (void *)&dw_hdmi_phys[i]; hdmi 2542 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c !hdmi->plat_data->configure_phy) { hdmi 2543 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_err(hdmi->dev, "%s requires platform support\n", hdmi 2544 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->phy.name); hdmi 2552 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_err(hdmi->dev, "Unsupported HDMI PHY type (%02x)\n", phy_type); hdmi 2556 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_cec_enable(struct dw_hdmi *hdmi) hdmi 2558 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_lock(&hdmi->mutex); hdmi 2559 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->mc_clkdis &= ~HDMI_MC_CLKDIS_CECCLK_DISABLE; hdmi 2560 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, hdmi->mc_clkdis, HDMI_MC_CLKDIS); hdmi 2561 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_unlock(&hdmi->mutex); hdmi 2564 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_cec_disable(struct dw_hdmi *hdmi) hdmi 2566 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_lock(&hdmi->mutex); hdmi 2567 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->mc_clkdis |= HDMI_MC_CLKDIS_CECCLK_DISABLE; hdmi 2568 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, hdmi->mc_clkdis, HDMI_MC_CLKDIS); hdmi 2569 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_unlock(&hdmi->mutex); hdmi 2593 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void dw_hdmi_init_hw(struct dw_hdmi *hdmi) hdmi 2595 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c initialize_hdmi_ih_mutes(hdmi); hdmi 2602 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_i2c_init(hdmi); hdmi 2604 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->phy.ops->setup_hpd) hdmi 2605 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->phy.ops->setup_hpd(hdmi, hdmi->phy.data); hdmi 2617 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct dw_hdmi *hdmi; hdmi 2627 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi = devm_kzalloc(dev, sizeof(*hdmi), GFP_KERNEL); hdmi 2628 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (!hdmi) hdmi 2631 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->plat_data = plat_data; hdmi 2632 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->dev = dev; hdmi 2633 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->sample_rate = 48000; hdmi 2634 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->disabled = true; hdmi 2635 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->rxsense = true; hdmi 2636 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->phy_mask = (u8)~(HDMI_PHY_HPD | HDMI_PHY_RX_SENSE); hdmi 2637 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->mc_clkdis = 0x7f; hdmi 2639 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_init(&hdmi->mutex); hdmi 2640 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_init(&hdmi->audio_mutex); hdmi 2641 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c mutex_init(&hdmi->cec_notifier_mutex); hdmi 2642 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c spin_lock_init(&hdmi->audio_lock); hdmi 2646 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->ddc = of_get_i2c_adapter_by_node(ddc_node); hdmi 2648 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (!hdmi->ddc) { hdmi 2649 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_dbg(hdmi->dev, "failed to read ddc node\n"); hdmi 2654 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_dbg(hdmi->dev, "no ddc property found\n"); hdmi 2664 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->reg_shift = 2; hdmi 2675 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->regs = devm_ioremap_resource(dev, iores); hdmi 2676 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (IS_ERR(hdmi->regs)) { hdmi 2677 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ret = PTR_ERR(hdmi->regs); hdmi 2681 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->regm = devm_regmap_init_mmio(dev, hdmi->regs, reg_config); hdmi 2682 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (IS_ERR(hdmi->regm)) { hdmi 2684 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ret = PTR_ERR(hdmi->regm); hdmi 2688 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->regm = plat_data->regm; hdmi 2691 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->isfr_clk = devm_clk_get(hdmi->dev, "isfr"); hdmi 2692 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (IS_ERR(hdmi->isfr_clk)) { hdmi 2693 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ret = PTR_ERR(hdmi->isfr_clk); hdmi 2694 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_err(hdmi->dev, "Unable to get HDMI isfr clk: %d\n", ret); hdmi 2698 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ret = clk_prepare_enable(hdmi->isfr_clk); hdmi 2700 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_err(hdmi->dev, "Cannot enable HDMI isfr clock: %d\n", ret); hdmi 2704 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->iahb_clk = devm_clk_get(hdmi->dev, "iahb"); hdmi 2705 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (IS_ERR(hdmi->iahb_clk)) { hdmi 2706 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ret = PTR_ERR(hdmi->iahb_clk); hdmi 2707 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_err(hdmi->dev, "Unable to get HDMI iahb clk: %d\n", ret); hdmi 2711 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ret = clk_prepare_enable(hdmi->iahb_clk); hdmi 2713 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_err(hdmi->dev, "Cannot enable HDMI iahb clock: %d\n", ret); hdmi 2717 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->cec_clk = devm_clk_get(hdmi->dev, "cec"); hdmi 2718 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (PTR_ERR(hdmi->cec_clk) == -ENOENT) { hdmi 2719 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->cec_clk = NULL; hdmi 2720 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c } else if (IS_ERR(hdmi->cec_clk)) { hdmi 2721 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ret = PTR_ERR(hdmi->cec_clk); hdmi 2723 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_err(hdmi->dev, "Cannot get HDMI cec clock: %d\n", hdmi 2726 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->cec_clk = NULL; hdmi 2729 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ret = clk_prepare_enable(hdmi->cec_clk); hdmi 2731 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_err(hdmi->dev, "Cannot enable HDMI cec clock: %d\n", hdmi 2738 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->version = (hdmi_readb(hdmi, HDMI_DESIGN_ID) << 8) hdmi 2739 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | (hdmi_readb(hdmi, HDMI_REVISION_ID) << 0); hdmi 2740 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c prod_id0 = hdmi_readb(hdmi, HDMI_PRODUCT_ID0); hdmi 2741 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c prod_id1 = hdmi_readb(hdmi, HDMI_PRODUCT_ID1); hdmi 2746 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->version, prod_id0, prod_id1); hdmi 2751 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ret = dw_hdmi_detect_phy(hdmi); hdmi 2756 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->version >> 12, hdmi->version & 0xfff, hdmi 2758 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->phy.name); hdmi 2760 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_init_hw(hdmi); hdmi 2770 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dev_name(dev), hdmi); hdmi 2778 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_init_clk_regenerator(hdmi); hdmi 2781 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (!hdmi->ddc) { hdmi 2783 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->pinctrl = devm_pinctrl_get(dev); hdmi 2784 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (!IS_ERR(hdmi->pinctrl)) { hdmi 2785 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->unwedge_state = hdmi 2786 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c pinctrl_lookup_state(hdmi->pinctrl, "unwedge"); hdmi 2787 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->default_state = hdmi 2788 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c pinctrl_lookup_state(hdmi->pinctrl, "default"); hdmi 2790 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (IS_ERR(hdmi->default_state) || hdmi 2791 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c IS_ERR(hdmi->unwedge_state)) { hdmi 2792 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (!IS_ERR(hdmi->unwedge_state)) hdmi 2795 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->default_state = NULL; hdmi 2796 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->unwedge_state = NULL; hdmi 2800 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->ddc = dw_hdmi_i2c_adapter(hdmi); hdmi 2801 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (IS_ERR(hdmi->ddc)) hdmi 2802 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->ddc = NULL; hdmi 2805 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->bridge.driver_private = hdmi; hdmi 2806 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->bridge.funcs = &dw_hdmi_bridge_funcs; hdmi 2808 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->bridge.of_node = pdev->dev.of_node; hdmi 2815 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c config0 = hdmi_readb(hdmi, HDMI_CONFIG0_ID); hdmi 2816 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c config3 = hdmi_readb(hdmi, HDMI_CONFIG3_ID); hdmi 2822 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c audio.base = hdmi->regs; hdmi 2824 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c audio.hdmi = hdmi; hdmi 2825 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c audio.eld = hdmi->connector.eld; hdmi 2826 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->enable_audio = dw_hdmi_ahb_audio_enable; hdmi 2827 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->disable_audio = dw_hdmi_ahb_audio_disable; hdmi 2833 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->audio = platform_device_register_full(&pdevinfo); hdmi 2837 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c audio.hdmi = hdmi; hdmi 2838 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c audio.eld = hdmi->connector.eld; hdmi 2841 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->enable_audio = dw_hdmi_i2s_audio_enable; hdmi 2842 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->disable_audio = dw_hdmi_i2s_audio_disable; hdmi 2848 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->audio = platform_device_register_full(&pdevinfo); hdmi 2852 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c cec.hdmi = hdmi; hdmi 2861 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->cec = platform_device_register_full(&pdevinfo); hdmi 2864 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c return hdmi; hdmi 2867 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->i2c) { hdmi 2868 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c i2c_del_adapter(&hdmi->i2c->adap); hdmi 2869 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi->ddc = NULL; hdmi 2872 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c clk_disable_unprepare(hdmi->iahb_clk); hdmi 2873 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->cec_clk) hdmi 2874 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c clk_disable_unprepare(hdmi->cec_clk); hdmi 2876 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c clk_disable_unprepare(hdmi->isfr_clk); hdmi 2878 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c i2c_put_adapter(hdmi->ddc); hdmi 2883 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c static void __dw_hdmi_remove(struct dw_hdmi *hdmi) hdmi 2885 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->audio && !IS_ERR(hdmi->audio)) hdmi 2886 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c platform_device_unregister(hdmi->audio); hdmi 2887 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (!IS_ERR(hdmi->cec)) hdmi 2888 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c platform_device_unregister(hdmi->cec); hdmi 2891 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi_writeb(hdmi, ~0, HDMI_IH_MUTE_PHY_STAT0); hdmi 2893 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c clk_disable_unprepare(hdmi->iahb_clk); hdmi 2894 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c clk_disable_unprepare(hdmi->isfr_clk); hdmi 2895 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->cec_clk) hdmi 2896 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c clk_disable_unprepare(hdmi->cec_clk); hdmi 2898 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (hdmi->i2c) hdmi 2899 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c i2c_del_adapter(&hdmi->i2c->adap); hdmi 2901 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c i2c_put_adapter(hdmi->ddc); hdmi 2910 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct dw_hdmi *hdmi; hdmi 2912 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi = __dw_hdmi_probe(pdev, plat_data); hdmi 2913 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (IS_ERR(hdmi)) hdmi 2914 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c return hdmi; hdmi 2916 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c drm_bridge_add(&hdmi->bridge); hdmi 2918 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c return hdmi; hdmi 2922 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c void dw_hdmi_remove(struct dw_hdmi *hdmi) hdmi 2924 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c drm_bridge_remove(&hdmi->bridge); hdmi 2926 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c __dw_hdmi_remove(hdmi); hdmi 2937 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c struct dw_hdmi *hdmi; hdmi 2940 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c hdmi = __dw_hdmi_probe(pdev, plat_data); hdmi 2941 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c if (IS_ERR(hdmi)) hdmi 2942 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c return hdmi; hdmi 2944 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ret = drm_bridge_attach(encoder, &hdmi->bridge, NULL); hdmi 2946 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_remove(hdmi); hdmi 2951 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c return hdmi; hdmi 2955 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c void dw_hdmi_unbind(struct dw_hdmi *hdmi) hdmi 2957 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c __dw_hdmi_remove(hdmi); hdmi 2961 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c void dw_hdmi_resume(struct dw_hdmi *hdmi) hdmi 2963 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c dw_hdmi_init_hw(hdmi); hdmi 3330 drivers/gpu/drm/drm_edid.c struct drm_hdmi_info *hdmi = &info->hdmi; hdmi 3342 drivers/gpu/drm/drm_edid.c bitmap_set(hdmi->y420_vdb_modes, vic, 1); hdmi 3363 drivers/gpu/drm/drm_edid.c struct drm_hdmi_info *hdmi = &connector->display_info.hdmi; hdmi 3368 drivers/gpu/drm/drm_edid.c bitmap_set(hdmi->y420_cmdb_modes, vic, 1); hdmi 3375 drivers/gpu/drm/drm_edid.c struct drm_hdmi_info *hdmi = &connector->display_info.hdmi; hdmi 3390 drivers/gpu/drm/drm_edid.c if (i < 64 && hdmi->y420_cmdb_map & (1ULL << i)) hdmi 3811 drivers/gpu/drm/drm_edid.c struct drm_hdmi_info *hdmi = &info->hdmi; hdmi 3818 drivers/gpu/drm/drm_edid.c hdmi->y420_cmdb_map = U64_MAX; hdmi 3844 drivers/gpu/drm/drm_edid.c hdmi->y420_cmdb_map = map; hdmi 3851 drivers/gpu/drm/drm_edid.c const u8 *db, *hdmi = NULL, *video = NULL; hdmi 3870 drivers/gpu/drm/drm_edid.c hdmi = db; hdmi 3887 drivers/gpu/drm/drm_edid.c if (hdmi) hdmi 3888 drivers/gpu/drm/drm_edid.c modes += do_hdmi_vsdb_modes(connector, hdmi, hdmi_len, video, hdmi 4441 drivers/gpu/drm/drm_edid.c struct drm_hdmi_info *hdmi = &connector->display_info.hdmi; hdmi 4444 drivers/gpu/drm/drm_edid.c hdmi->y420_dc_modes = dc_mask; hdmi 4451 drivers/gpu/drm/drm_edid.c struct drm_hdmi_info *hdmi = &display->hdmi; hdmi 4456 drivers/gpu/drm/drm_edid.c hdmi->scdc.supported = true; hdmi 4458 drivers/gpu/drm/drm_edid.c hdmi->scdc.read_request = true; hdmi 4473 drivers/gpu/drm/drm_edid.c struct drm_scdc *scdc = &hdmi->scdc; hdmi 4494 drivers/gpu/drm/drm_edid.c const u8 *hdmi) hdmi 4502 drivers/gpu/drm/drm_edid.c if (cea_db_payload_len(hdmi) < 6) hdmi 4505 drivers/gpu/drm/drm_edid.c if (hdmi[6] & DRM_EDID_HDMI_DC_30) { hdmi 4512 drivers/gpu/drm/drm_edid.c if (hdmi[6] & DRM_EDID_HDMI_DC_36) { hdmi 4519 drivers/gpu/drm/drm_edid.c if (hdmi[6] & DRM_EDID_HDMI_DC_48) { hdmi 4544 drivers/gpu/drm/drm_edid.c if (hdmi[6] & DRM_EDID_HDMI_DC_Y444) { hdmi 4554 drivers/gpu/drm/drm_edid.c if (!(hdmi[6] & DRM_EDID_HDMI_DC_36)) { hdmi 4636 drivers/gpu/drm/drm_edid.c memset(&info->hdmi, 0, sizeof(info->hdmi)); hdmi 4999 drivers/gpu/drm/drm_edid.c return connector->display_info.hdmi.scdc.supported || hdmi 1210 drivers/gpu/drm/drm_modes.c struct drm_hdmi_info *hdmi = &connector->display_info.hdmi; hdmi 1212 drivers/gpu/drm/drm_modes.c if (test_bit(vic, hdmi->y420_vdb_modes)) { hdmi 2072 drivers/gpu/drm/drm_modes.c return test_bit(vic, display->hdmi.y420_vdb_modes); hdmi 2092 drivers/gpu/drm/drm_modes.c return test_bit(vic, display->hdmi.y420_cmdb_modes); hdmi 827 drivers/gpu/drm/exynos/exynos_hdmi.c ret = drm_hdmi_vendor_infoframe_from_display_mode(&frm.vendor.hdmi, hdmi 830 drivers/gpu/drm/exynos/exynos_hdmi.c ret = hdmi_vendor_infoframe_pack(&frm.vendor.hdmi, buf, hdmi 108 drivers/gpu/drm/exynos/exynos_mixer.c struct clk *hdmi; hdmi 788 drivers/gpu/drm/exynos/exynos_mixer.c mixer_ctx->hdmi = devm_clk_get(dev, "hdmi"); hdmi 789 drivers/gpu/drm/exynos/exynos_mixer.c if (IS_ERR(mixer_ctx->hdmi)) { hdmi 791 drivers/gpu/drm/exynos/exynos_mixer.c return PTR_ERR(mixer_ctx->hdmi); hdmi 1267 drivers/gpu/drm/exynos/exynos_mixer.c clk_disable_unprepare(ctx->hdmi); hdmi 1290 drivers/gpu/drm/exynos/exynos_mixer.c ret = clk_prepare_enable(ctx->hdmi); hdmi 64 drivers/gpu/drm/i2c/tda9950.c struct device *hdmi; hdmi 418 drivers/gpu/drm/i2c/tda9950.c priv->hdmi = dev; hdmi 420 drivers/gpu/drm/i2c/tda9950.c priv->hdmi = glue->parent; hdmi 460 drivers/gpu/drm/i2c/tda9950.c priv->notify = cec_notifier_get(priv->hdmi); hdmi 464 drivers/gpu/drm/i2c/tda9950.c ret = cec_register_adapter(priv->adap, priv->hdmi); hdmi 51 drivers/gpu/drm/i2c/tda998x_drv.c struct i2c_client *hdmi; hdmi 413 drivers/gpu/drm/i2c/tda998x_drv.c ret = i2c_transfer(priv->hdmi->adapter, &msg, 1); hdmi 415 drivers/gpu/drm/i2c/tda998x_drv.c dev_err(&priv->hdmi->dev, "Error %d writing to cec:0x%x\n", hdmi 437 drivers/gpu/drm/i2c/tda998x_drv.c ret = i2c_transfer(priv->hdmi->adapter, msg, ARRAY_SIZE(msg)); hdmi 439 drivers/gpu/drm/i2c/tda998x_drv.c dev_err(&priv->hdmi->dev, "Error %d reading from cec:0x%x\n", hdmi 495 drivers/gpu/drm/i2c/tda998x_drv.c if (priv->hdmi->irq > 0) hdmi 496 drivers/gpu/drm/i2c/tda998x_drv.c disable_irq(priv->hdmi->irq); hdmi 508 drivers/gpu/drm/i2c/tda998x_drv.c if (priv->hdmi->irq > 0) hdmi 509 drivers/gpu/drm/i2c/tda998x_drv.c enable_irq(priv->hdmi->irq); hdmi 518 drivers/gpu/drm/i2c/tda998x_drv.c calib = gpiod_get(&priv->hdmi->dev, "nxp,calib", GPIOD_ASIS); hdmi 520 drivers/gpu/drm/i2c/tda998x_drv.c dev_warn(&priv->hdmi->dev, "failed to get calibration gpio: %ld\n", hdmi 559 drivers/gpu/drm/i2c/tda998x_drv.c struct i2c_client *client = priv->hdmi; hdmi 578 drivers/gpu/drm/i2c/tda998x_drv.c struct i2c_client *client = priv->hdmi; hdmi 609 drivers/gpu/drm/i2c/tda998x_drv.c struct i2c_client *client = priv->hdmi; hdmi 650 drivers/gpu/drm/i2c/tda998x_drv.c struct i2c_client *client = priv->hdmi; hdmi 669 drivers/gpu/drm/i2c/tda998x_drv.c struct i2c_client *client = priv->hdmi; hdmi 834 drivers/gpu/drm/i2c/tda998x_drv.c dev_err(&priv->hdmi->dev, hdmi 874 drivers/gpu/drm/i2c/tda998x_drv.c if (drm_hdmi_vendor_infoframe_from_display_mode(&frame.vendor.hdmi, hdmi 905 drivers/gpu/drm/i2c/tda998x_drv.c dev_err(&priv->hdmi->dev, "no audio configuration found\n"); hdmi 931 drivers/gpu/drm/i2c/tda998x_drv.c dev_dbg(&priv->hdmi->dev, hdmi 983 drivers/gpu/drm/i2c/tda998x_drv.c dev_err(&priv->hdmi->dev, "unsupported bclk ratio %ufs\n", hdmi 1236 drivers/gpu/drm/i2c/tda998x_drv.c if (priv->hdmi->irq) { hdmi 1241 drivers/gpu/drm/i2c/tda998x_drv.c dev_err(&priv->hdmi->dev, "read edid wait err %d\n", i); hdmi 1257 drivers/gpu/drm/i2c/tda998x_drv.c dev_err(&priv->hdmi->dev, "read edid timeout\n"); hdmi 1264 drivers/gpu/drm/i2c/tda998x_drv.c dev_err(&priv->hdmi->dev, "failed to read edid block %d: %d\n", hdmi 1299 drivers/gpu/drm/i2c/tda998x_drv.c dev_warn(&priv->hdmi->dev, "failed to read EDID\n"); hdmi 1338 drivers/gpu/drm/i2c/tda998x_drv.c if (priv->hdmi->irq) hdmi 1692 drivers/gpu/drm/i2c/tda998x_drv.c dev_err(&priv->hdmi->dev, hdmi 1712 drivers/gpu/drm/i2c/tda998x_drv.c dev_err(&priv->hdmi->dev, hdmi 1718 drivers/gpu/drm/i2c/tda998x_drv.c dev_err(&priv->hdmi->dev, "invalid zero port config\n"); hdmi 1723 drivers/gpu/drm/i2c/tda998x_drv.c dev_err(&priv->hdmi->dev, hdmi 1785 drivers/gpu/drm/i2c/tda998x_drv.c if (priv->hdmi->irq) hdmi 1786 drivers/gpu/drm/i2c/tda998x_drv.c free_irq(priv->hdmi->irq, priv); hdmi 1827 drivers/gpu/drm/i2c/tda998x_drv.c priv->hdmi = client; hdmi 2024 drivers/gpu/drm/i915/display/intel_bios.c u16 dp, hdmi; hdmi 2054 drivers/gpu/drm/i915/display/intel_bios.c child->dvo_port == port_mapping[port].hdmi) && hdmi 2104 drivers/gpu/drm/i915/display/intel_bios.c u16 dp, hdmi; hdmi 2128 drivers/gpu/drm/i915/display/intel_bios.c if (child->dvo_port == port_mapping[port].hdmi && hdmi 3240 drivers/gpu/drm/i915/display/intel_ddi.c struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi; hdmi 3388 drivers/gpu/drm/i915/display/intel_ddi.c struct intel_hdmi *intel_hdmi = &dig_port->hdmi; hdmi 3950 drivers/gpu/drm/i915/display/intel_ddi.c &pipe_config->infoframes.hdmi); hdmi 4077 drivers/gpu/drm/i915/display/intel_ddi.c struct intel_hdmi *hdmi = enc_to_intel_hdmi(&encoder->base); hdmi 4078 drivers/gpu/drm/i915/display/intel_ddi.c struct intel_connector *connector = hdmi->attached_connector; hdmi 4080 drivers/gpu/drm/i915/display/intel_ddi.c intel_gmbus_get_adapter(dev_priv, hdmi->ddc_bus); hdmi 4209 drivers/gpu/drm/i915/display/intel_ddi.c intel_dig_port->hdmi.hdmi_reg = DDI_BUF_CTL(port); hdmi 12127 drivers/gpu/drm/i915/display/intel_display.c intel_dump_infoframe(dev_priv, &pipe_config->infoframes.hdmi); hdmi 12842 drivers/gpu/drm/i915/display/intel_display.c PIPE_CONF_CHECK_INFOFRAME(hdmi); hdmi 955 drivers/gpu/drm/i915/display/intel_display_types.h union hdmi_infoframe hdmi; hdmi 1258 drivers/gpu/drm/i915/display/intel_display_types.h struct intel_hdmi hdmi; hdmi 1444 drivers/gpu/drm/i915/display/intel_display_types.h return container_of(intel_hdmi, struct intel_digital_port, hdmi); hdmi 92 drivers/gpu/drm/i915/display/intel_hdmi.c return &intel_dig_port->hdmi; hdmi 777 drivers/gpu/drm/i915/display/intel_hdmi.c &crtc_state->infoframes.hdmi.vendor.hdmi; hdmi 842 drivers/gpu/drm/i915/display/intel_hdmi.c struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi; hdmi 900 drivers/gpu/drm/i915/display/intel_hdmi.c &crtc_state->infoframes.hdmi); hdmi 1025 drivers/gpu/drm/i915/display/intel_hdmi.c struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi; hdmi 1073 drivers/gpu/drm/i915/display/intel_hdmi.c &crtc_state->infoframes.hdmi); hdmi 1122 drivers/gpu/drm/i915/display/intel_hdmi.c &crtc_state->infoframes.hdmi); hdmi 1180 drivers/gpu/drm/i915/display/intel_hdmi.c &crtc_state->infoframes.hdmi); hdmi 1220 drivers/gpu/drm/i915/display/intel_hdmi.c &crtc_state->infoframes.hdmi); hdmi 1226 drivers/gpu/drm/i915/display/intel_hdmi.c void intel_dp_dual_mode_set_tmds_output(struct intel_hdmi *hdmi, bool enable) hdmi 1228 drivers/gpu/drm/i915/display/intel_hdmi.c struct drm_i915_private *dev_priv = to_i915(intel_hdmi_to_dev(hdmi)); hdmi 1230 drivers/gpu/drm/i915/display/intel_hdmi.c intel_gmbus_get_adapter(dev_priv, hdmi->ddc_bus); hdmi 1232 drivers/gpu/drm/i915/display/intel_hdmi.c if (hdmi->dp_dual_mode.type < DRM_DP_DUAL_MODE_TYPE2_DVI) hdmi 1238 drivers/gpu/drm/i915/display/intel_hdmi.c drm_dp_dual_mode_set_tmds_output(hdmi->dp_dual_mode.type, hdmi 1245 drivers/gpu/drm/i915/display/intel_hdmi.c struct intel_hdmi *hdmi = &intel_dig_port->hdmi; hdmi 1249 drivers/gpu/drm/i915/display/intel_hdmi.c hdmi->ddc_bus); hdmi 1275 drivers/gpu/drm/i915/display/intel_hdmi.c struct intel_hdmi *hdmi = &intel_dig_port->hdmi; hdmi 1279 drivers/gpu/drm/i915/display/intel_hdmi.c hdmi->ddc_bus); hdmi 1310 drivers/gpu/drm/i915/display/intel_hdmi.c struct intel_hdmi *hdmi = &intel_dig_port->hdmi; hdmi 1314 drivers/gpu/drm/i915/display/intel_hdmi.c hdmi->ddc_bus); hdmi 1464 drivers/gpu/drm/i915/display/intel_hdmi.c struct intel_hdmi *hdmi = &intel_dig_port->hdmi; hdmi 1465 drivers/gpu/drm/i915/display/intel_hdmi.c struct intel_connector *connector = hdmi->attached_connector; hdmi 1628 drivers/gpu/drm/i915/display/intel_hdmi.c struct intel_hdmi *hdmi = &intel_dig_port->hdmi; hdmi 1629 drivers/gpu/drm/i915/display/intel_hdmi.c struct intel_hdcp *hdcp = &hdmi->attached_connector->hdcp; hdmi 1840 drivers/gpu/drm/i915/display/intel_hdmi.c &pipe_config->infoframes.hdmi); hdmi 2095 drivers/gpu/drm/i915/display/intel_hdmi.c static int hdmi_port_clock_limit(struct intel_hdmi *hdmi, hdmi 2099 drivers/gpu/drm/i915/display/intel_hdmi.c struct intel_encoder *encoder = &hdmi_to_dig_port(hdmi)->base; hdmi 2103 drivers/gpu/drm/i915/display/intel_hdmi.c struct intel_connector *connector = hdmi->attached_connector; hdmi 2106 drivers/gpu/drm/i915/display/intel_hdmi.c if (hdmi->dp_dual_mode.max_tmds_clock) hdmi 2108 drivers/gpu/drm/i915/display/intel_hdmi.c hdmi->dp_dual_mode.max_tmds_clock); hdmi 2113 drivers/gpu/drm/i915/display/intel_hdmi.c else if (!hdmi->has_hdmi_sink || force_dvi) hdmi 2121 drivers/gpu/drm/i915/display/intel_hdmi.c hdmi_port_clock_valid(struct intel_hdmi *hdmi, hdmi 2125 drivers/gpu/drm/i915/display/intel_hdmi.c struct drm_i915_private *dev_priv = to_i915(intel_hdmi_to_dev(hdmi)); hdmi 2129 drivers/gpu/drm/i915/display/intel_hdmi.c if (clock > hdmi_port_clock_limit(hdmi, respect_downstream_limits, force_dvi)) hdmi 2147 drivers/gpu/drm/i915/display/intel_hdmi.c struct intel_hdmi *hdmi = intel_attached_hdmi(connector); hdmi 2148 drivers/gpu/drm/i915/display/intel_hdmi.c struct drm_device *dev = intel_hdmi_to_dev(hdmi); hdmi 2174 drivers/gpu/drm/i915/display/intel_hdmi.c status = hdmi_port_clock_valid(hdmi, clock, true, force_dvi); hdmi 2176 drivers/gpu/drm/i915/display/intel_hdmi.c if (hdmi->has_hdmi_sink && !force_dvi) { hdmi 2179 drivers/gpu/drm/i915/display/intel_hdmi.c status = hdmi_port_clock_valid(hdmi, clock * 3 / 2, hdmi 2184 drivers/gpu/drm/i915/display/intel_hdmi.c status = hdmi_port_clock_valid(hdmi, clock * 5 / 4, hdmi 2229 drivers/gpu/drm/i915/display/intel_hdmi.c const struct drm_hdmi_info *hdmi = &info->hdmi; hdmi 2231 drivers/gpu/drm/i915/display/intel_hdmi.c if (bpc == 12 && !(hdmi->y420_dc_modes & hdmi 2234 drivers/gpu/drm/i915/display/intel_hdmi.c else if (bpc == 10 && !(hdmi->y420_dc_modes & hdmi 2302 drivers/gpu/drm/i915/display/intel_hdmi.c struct drm_scdc *scdc = &connector->display_info.hdmi.scdc; hdmi 2456 drivers/gpu/drm/i915/display/intel_hdmi.c struct intel_hdmi *hdmi = intel_attached_hdmi(connector); hdmi 2457 drivers/gpu/drm/i915/display/intel_hdmi.c enum port port = hdmi_to_dig_port(hdmi)->base.port; hdmi 2459 drivers/gpu/drm/i915/display/intel_hdmi.c intel_gmbus_get_adapter(dev_priv, hdmi->ddc_bus); hdmi 2490 drivers/gpu/drm/i915/display/intel_hdmi.c hdmi->dp_dual_mode.type = type; hdmi 2491 drivers/gpu/drm/i915/display/intel_hdmi.c hdmi->dp_dual_mode.max_tmds_clock = hdmi 2496 drivers/gpu/drm/i915/display/intel_hdmi.c hdmi->dp_dual_mode.max_tmds_clock); hdmi 2852 drivers/gpu/drm/i915/display/intel_hdmi.c &connector->display_info.hdmi.scdc.scrambling; hdmi 3071 drivers/gpu/drm/i915/display/intel_hdmi.c struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi; hdmi 3234 drivers/gpu/drm/i915/display/intel_hdmi.c intel_dig_port->hdmi.hdmi_reg = hdmi_reg; hdmi 39 drivers/gpu/drm/i915/display/intel_hdmi.h void intel_dp_dual_mode_set_tmds_output(struct intel_hdmi *hdmi, bool enable); hdmi 27 drivers/gpu/drm/imx/dw_hdmi-imx.c struct dw_hdmi *hdmi; hdmi 100 drivers/gpu/drm/imx/dw_hdmi-imx.c static int dw_hdmi_imx_parse_dt(struct imx_hdmi *hdmi) hdmi 102 drivers/gpu/drm/imx/dw_hdmi-imx.c struct device_node *np = hdmi->dev->of_node; hdmi 104 drivers/gpu/drm/imx/dw_hdmi-imx.c hdmi->regmap = syscon_regmap_lookup_by_phandle(np, "gpr"); hdmi 105 drivers/gpu/drm/imx/dw_hdmi-imx.c if (IS_ERR(hdmi->regmap)) { hdmi 106 drivers/gpu/drm/imx/dw_hdmi-imx.c dev_err(hdmi->dev, "Unable to get gpr\n"); hdmi 107 drivers/gpu/drm/imx/dw_hdmi-imx.c return PTR_ERR(hdmi->regmap); hdmi 119 drivers/gpu/drm/imx/dw_hdmi-imx.c struct imx_hdmi *hdmi = enc_to_imx_hdmi(encoder); hdmi 120 drivers/gpu/drm/imx/dw_hdmi-imx.c int mux = drm_of_encoder_active_port_id(hdmi->dev->of_node, encoder); hdmi 122 drivers/gpu/drm/imx/dw_hdmi-imx.c regmap_update_bits(hdmi->regmap, IOMUXC_GPR3, hdmi 209 drivers/gpu/drm/imx/dw_hdmi-imx.c struct imx_hdmi *hdmi; hdmi 215 drivers/gpu/drm/imx/dw_hdmi-imx.c hdmi = devm_kzalloc(&pdev->dev, sizeof(*hdmi), GFP_KERNEL); hdmi 216 drivers/gpu/drm/imx/dw_hdmi-imx.c if (!hdmi) hdmi 221 drivers/gpu/drm/imx/dw_hdmi-imx.c hdmi->dev = &pdev->dev; hdmi 222 drivers/gpu/drm/imx/dw_hdmi-imx.c encoder = &hdmi->encoder; hdmi 234 drivers/gpu/drm/imx/dw_hdmi-imx.c ret = dw_hdmi_imx_parse_dt(hdmi); hdmi 242 drivers/gpu/drm/imx/dw_hdmi-imx.c platform_set_drvdata(pdev, hdmi); hdmi 244 drivers/gpu/drm/imx/dw_hdmi-imx.c hdmi->hdmi = dw_hdmi_bind(pdev, encoder, plat_data); hdmi 250 drivers/gpu/drm/imx/dw_hdmi-imx.c if (IS_ERR(hdmi->hdmi)) { hdmi 251 drivers/gpu/drm/imx/dw_hdmi-imx.c ret = PTR_ERR(hdmi->hdmi); hdmi 261 drivers/gpu/drm/imx/dw_hdmi-imx.c struct imx_hdmi *hdmi = dev_get_drvdata(dev); hdmi 263 drivers/gpu/drm/imx/dw_hdmi-imx.c dw_hdmi_unbind(hdmi->hdmi); hdmi 183 drivers/gpu/drm/mediatek/mtk_hdmi.c static u32 mtk_hdmi_read(struct mtk_hdmi *hdmi, u32 offset) hdmi 185 drivers/gpu/drm/mediatek/mtk_hdmi.c return readl(hdmi->regs + offset); hdmi 188 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_write(struct mtk_hdmi *hdmi, u32 offset, u32 val) hdmi 190 drivers/gpu/drm/mediatek/mtk_hdmi.c writel(val, hdmi->regs + offset); hdmi 193 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_clear_bits(struct mtk_hdmi *hdmi, u32 offset, u32 bits) hdmi 195 drivers/gpu/drm/mediatek/mtk_hdmi.c void __iomem *reg = hdmi->regs + offset; hdmi 203 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_set_bits(struct mtk_hdmi *hdmi, u32 offset, u32 bits) hdmi 205 drivers/gpu/drm/mediatek/mtk_hdmi.c void __iomem *reg = hdmi->regs + offset; hdmi 213 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_mask(struct mtk_hdmi *hdmi, u32 offset, u32 val, u32 mask) hdmi 215 drivers/gpu/drm/mediatek/mtk_hdmi.c void __iomem *reg = hdmi->regs + offset; hdmi 223 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_vid_black(struct mtk_hdmi *hdmi, bool black) hdmi 225 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_mask(hdmi, VIDEO_CFG_4, black ? GEN_RGB : NORMAL_PATH, hdmi 229 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_make_reg_writable(struct mtk_hdmi *hdmi, bool enable) hdmi 232 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi_phy *hdmi_phy = phy_get_drvdata(hdmi->phy); hdmi 241 drivers/gpu/drm/mediatek/mtk_hdmi.c regmap_update_bits(hdmi->sys_regmap, hdmi 242 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->sys_offset + HDMI_SYS_CFG20, hdmi 248 drivers/gpu/drm/mediatek/mtk_hdmi.c regmap_update_bits(hdmi->sys_regmap, hdmi->sys_offset + HDMI_SYS_CFG20, hdmi 250 drivers/gpu/drm/mediatek/mtk_hdmi.c regmap_update_bits(hdmi->sys_regmap, hdmi->sys_offset + HDMI_SYS_CFG1C, hdmi 254 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_1p4_version_enable(struct mtk_hdmi *hdmi, bool enable) hdmi 256 drivers/gpu/drm/mediatek/mtk_hdmi.c regmap_update_bits(hdmi->sys_regmap, hdmi->sys_offset + HDMI_SYS_CFG20, hdmi 260 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_aud_mute(struct mtk_hdmi *hdmi) hdmi 262 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_set_bits(hdmi, GRL_AUDIO_CFG, AUDIO_ZERO); hdmi 265 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_aud_unmute(struct mtk_hdmi *hdmi) hdmi 267 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_clear_bits(hdmi, GRL_AUDIO_CFG, AUDIO_ZERO); hdmi 270 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_reset(struct mtk_hdmi *hdmi) hdmi 272 drivers/gpu/drm/mediatek/mtk_hdmi.c regmap_update_bits(hdmi->sys_regmap, hdmi->sys_offset + HDMI_SYS_CFG1C, hdmi 274 drivers/gpu/drm/mediatek/mtk_hdmi.c regmap_update_bits(hdmi->sys_regmap, hdmi->sys_offset + HDMI_SYS_CFG1C, hdmi 276 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_clear_bits(hdmi, GRL_CFG3, CFG3_CONTROL_PACKET_DELAY); hdmi 277 drivers/gpu/drm/mediatek/mtk_hdmi.c regmap_update_bits(hdmi->sys_regmap, hdmi->sys_offset + HDMI_SYS_CFG1C, hdmi 281 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_enable_notice(struct mtk_hdmi *hdmi, bool enable_notice) hdmi 283 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_mask(hdmi, GRL_CFG2, enable_notice ? CFG2_NOTICE_EN : 0, hdmi 287 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_write_int_mask(struct mtk_hdmi *hdmi, u32 int_mask) hdmi 289 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_INT_MASK, int_mask); hdmi 292 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_enable_dvi_mode(struct mtk_hdmi *hdmi, bool enable) hdmi 294 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_mask(hdmi, GRL_CFG1, enable ? CFG1_DVI : 0, CFG1_DVI); hdmi 297 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_send_info_frame(struct mtk_hdmi *hdmi, u8 *buffer, hdmi 319 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_dbg(hdmi->dev, hdmi 341 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_err(hdmi->dev, "Unknown infoframe type %d\n", frame_type); hdmi 344 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_clear_bits(hdmi, ctrl_reg, ctrl_frame_en); hdmi 345 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_INFOFRM_TYPE, frame_type); hdmi 346 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_INFOFRM_VER, frame_ver); hdmi 347 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_INFOFRM_LNG, frame_len); hdmi 349 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_IFM_PORT, checksum); hdmi 351 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_IFM_PORT, frame_data[i]); hdmi 353 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_set_bits(hdmi, ctrl_reg, ctrl_frame_en); hdmi 356 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_send_aud_packet(struct mtk_hdmi *hdmi, bool enable) hdmi 358 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_mask(hdmi, GRL_SHIFT_R2, enable ? 0 : AUDIO_PACKET_OFF, hdmi 362 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_config_sys(struct mtk_hdmi *hdmi) hdmi 364 drivers/gpu/drm/mediatek/mtk_hdmi.c regmap_update_bits(hdmi->sys_regmap, hdmi->sys_offset + HDMI_SYS_CFG20, hdmi 367 drivers/gpu/drm/mediatek/mtk_hdmi.c regmap_update_bits(hdmi->sys_regmap, hdmi->sys_offset + HDMI_SYS_CFG20, hdmi 371 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_set_deep_color_mode(struct mtk_hdmi *hdmi) hdmi 373 drivers/gpu/drm/mediatek/mtk_hdmi.c regmap_update_bits(hdmi->sys_regmap, hdmi->sys_offset + HDMI_SYS_CFG20, hdmi 378 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_send_av_mute(struct mtk_hdmi *hdmi) hdmi 380 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_clear_bits(hdmi, GRL_CFG4, CTRL_AVMUTE); hdmi 382 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_set_bits(hdmi, GRL_CFG4, CTRL_AVMUTE); hdmi 385 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_send_av_unmute(struct mtk_hdmi *hdmi) hdmi 387 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_mask(hdmi, GRL_CFG4, CFG4_AV_UNMUTE_EN, hdmi 390 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_mask(hdmi, GRL_CFG4, CFG4_AV_UNMUTE_SET, hdmi 394 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_ncts_enable(struct mtk_hdmi *hdmi, bool on) hdmi 396 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_mask(hdmi, GRL_CTS_CTRL, on ? 0 : CTS_CTRL_SOFT, hdmi 400 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_ncts_auto_write_enable(struct mtk_hdmi *hdmi, hdmi 403 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_mask(hdmi, GRL_CTS_CTRL, enable ? NCTS_WRI_ANYTIME : 0, hdmi 407 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_msic_setting(struct mtk_hdmi *hdmi, hdmi 410 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_clear_bits(hdmi, GRL_CFG4, CFG4_MHL_MODE); hdmi 415 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_clear_bits(hdmi, GRL_CFG2, CFG2_MHL_DE_SEL); hdmi 417 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_set_bits(hdmi, GRL_CFG2, CFG2_MHL_DE_SEL); hdmi 420 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_aud_set_channel_swap(struct mtk_hdmi *hdmi, hdmi 445 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_mask(hdmi, GRL_CH_SWAP, swap_bit, 0xff); hdmi 448 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_aud_set_bit_num(struct mtk_hdmi *hdmi, hdmi 466 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_mask(hdmi, GRL_AOUT_CFG, val, AOUT_BNUM_SEL_MASK); hdmi 469 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_aud_set_i2s_fmt(struct mtk_hdmi *hdmi, hdmi 474 drivers/gpu/drm/mediatek/mtk_hdmi.c val = mtk_hdmi_read(hdmi, GRL_CFG0); hdmi 498 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_CFG0, val); hdmi 501 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_audio_config(struct mtk_hdmi *hdmi, bool dst) hdmi 507 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_clear_bits(hdmi, GRL_AOUT_CFG, HIGH_BIT_RATE_PACKET_ALIGN); hdmi 514 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_mask(hdmi, GRL_AUDIO_CFG, val, mask); hdmi 517 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_aud_set_i2s_chan_num(struct mtk_hdmi *hdmi, hdmi 555 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_CH_SW0, ch_switch & 0xff); hdmi 556 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_CH_SW1, (ch_switch >> 8) & 0xff); hdmi 557 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_CH_SW2, (ch_switch >> 16) & 0xff); hdmi 558 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_I2S_UV, i2s_uv); hdmi 561 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_aud_set_input_type(struct mtk_hdmi *hdmi, hdmi 566 drivers/gpu/drm/mediatek/mtk_hdmi.c val = mtk_hdmi_read(hdmi, GRL_CFG1); hdmi 574 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_CFG1, val); hdmi 577 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_aud_set_channel_status(struct mtk_hdmi *hdmi, hdmi 583 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_I2S_C_STA0 + i * 4, channel_status[i]); hdmi 584 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_L_STATUS_0 + i * 4, channel_status[i]); hdmi 585 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_R_STATUS_0 + i * 4, channel_status[i]); hdmi 588 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_L_STATUS_0 + i * 4, 0); hdmi 589 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_R_STATUS_0 + i * 4, 0); hdmi 593 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_aud_src_reenable(struct mtk_hdmi *hdmi) hdmi 597 drivers/gpu/drm/mediatek/mtk_hdmi.c val = mtk_hdmi_read(hdmi, GRL_MIX_CTRL); hdmi 600 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_MIX_CTRL, val); hdmi 603 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_MIX_CTRL, val); hdmi 607 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_aud_src_disable(struct mtk_hdmi *hdmi) hdmi 611 drivers/gpu/drm/mediatek/mtk_hdmi.c val = mtk_hdmi_read(hdmi, GRL_MIX_CTRL); hdmi 613 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_MIX_CTRL, val); hdmi 614 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_SHIFT_L1, 0x00); hdmi 617 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_aud_set_mclk(struct mtk_hdmi *hdmi, hdmi 622 drivers/gpu/drm/mediatek/mtk_hdmi.c val = mtk_hdmi_read(hdmi, GRL_CFG5); hdmi 645 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_CFG5, val); hdmi 723 drivers/gpu/drm/mediatek/mtk_hdmi.c static void do_hdmi_hw_aud_set_ncts(struct mtk_hdmi *hdmi, unsigned int n, hdmi 729 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_NCTS, 0); hdmi 730 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_NCTS, 0); hdmi 731 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_NCTS, 0); hdmi 744 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_write(hdmi, GRL_NCTS, val[i]); hdmi 747 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_hw_aud_set_ncts(struct mtk_hdmi *hdmi, hdmi 756 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_dbg(hdmi->dev, "%s: sample_rate=%u, clock=%d, cts=%u, n=%u\n", hdmi 759 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_mask(hdmi, DUMMY_304, AUDIO_I2S_NCTS_SEL_64, hdmi 761 drivers/gpu/drm/mediatek/mtk_hdmi.c do_hdmi_hw_aud_set_ncts(hdmi, n, cts); hdmi 834 drivers/gpu/drm/mediatek/mtk_hdmi.c static int mtk_hdmi_video_change_vpll(struct mtk_hdmi *hdmi, u32 clock) hdmi 840 drivers/gpu/drm/mediatek/mtk_hdmi.c ret = clk_set_rate(hdmi->clk[MTK_HDMI_CLK_HDMI_PLL], clock); hdmi 842 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_err(hdmi->dev, "Failed to set PLL to %u Hz: %d\n", clock, hdmi 847 drivers/gpu/drm/mediatek/mtk_hdmi.c rate = clk_get_rate(hdmi->clk[MTK_HDMI_CLK_HDMI_PLL]); hdmi 850 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_warn(hdmi->dev, "Want PLL %u Hz, got %lu Hz\n", clock, hdmi 853 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_dbg(hdmi->dev, "Want PLL %u Hz, got %lu Hz\n", clock, rate); hdmi 855 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_config_sys(hdmi); hdmi 856 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_set_deep_color_mode(hdmi); hdmi 860 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_video_set_display_mode(struct mtk_hdmi *hdmi, hdmi 863 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_reset(hdmi); hdmi 864 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_enable_notice(hdmi, true); hdmi 865 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_write_int_mask(hdmi, 0xff); hdmi 866 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_enable_dvi_mode(hdmi, hdmi->dvi_mode); hdmi 867 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_ncts_auto_write_enable(hdmi, true); hdmi 869 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_msic_setting(hdmi, mode); hdmi 872 drivers/gpu/drm/mediatek/mtk_hdmi.c static int mtk_hdmi_aud_enable_packet(struct mtk_hdmi *hdmi, bool enable) hdmi 874 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_send_aud_packet(hdmi, enable); hdmi 878 drivers/gpu/drm/mediatek/mtk_hdmi.c static int mtk_hdmi_aud_on_off_hw_ncts(struct mtk_hdmi *hdmi, bool on) hdmi 880 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_ncts_enable(hdmi, on); hdmi 884 drivers/gpu/drm/mediatek/mtk_hdmi.c static int mtk_hdmi_aud_set_input(struct mtk_hdmi *hdmi) hdmi 890 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_aud_set_channel_swap(hdmi, HDMI_AUD_SWAP_LFE_CC); hdmi 891 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_set_bits(hdmi, GRL_MIX_CTRL, MIX_CTRL_FLAT); hdmi 893 drivers/gpu/drm/mediatek/mtk_hdmi.c if (hdmi->aud_param.aud_input_type == HDMI_AUD_INPUT_SPDIF && hdmi 894 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->aud_param.aud_codec == HDMI_AUDIO_CODING_TYPE_DST) { hdmi 895 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_aud_set_bit_num(hdmi, HDMI_AUDIO_SAMPLE_SIZE_24); hdmi 896 drivers/gpu/drm/mediatek/mtk_hdmi.c } else if (hdmi->aud_param.aud_i2s_fmt == HDMI_I2S_MODE_LJT_24BIT) { hdmi 897 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->aud_param.aud_i2s_fmt = HDMI_I2S_MODE_LJT_16BIT; hdmi 900 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_aud_set_i2s_fmt(hdmi, hdmi->aud_param.aud_i2s_fmt); hdmi 901 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_aud_set_bit_num(hdmi, HDMI_AUDIO_SAMPLE_SIZE_24); hdmi 903 drivers/gpu/drm/mediatek/mtk_hdmi.c dst = ((hdmi->aud_param.aud_input_type == HDMI_AUD_INPUT_SPDIF) && hdmi 904 drivers/gpu/drm/mediatek/mtk_hdmi.c (hdmi->aud_param.aud_codec == HDMI_AUDIO_CODING_TYPE_DST)); hdmi 905 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_audio_config(hdmi, dst); hdmi 907 drivers/gpu/drm/mediatek/mtk_hdmi.c if (hdmi->aud_param.aud_input_type == HDMI_AUD_INPUT_SPDIF) hdmi 910 drivers/gpu/drm/mediatek/mtk_hdmi.c chan_type = hdmi->aud_param.aud_input_chan_type; hdmi 912 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_aud_set_i2s_chan_num(hdmi, chan_type, chan_count); hdmi 913 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_aud_set_input_type(hdmi, hdmi->aud_param.aud_input_type); hdmi 918 drivers/gpu/drm/mediatek/mtk_hdmi.c static int mtk_hdmi_aud_set_src(struct mtk_hdmi *hdmi, hdmi 921 drivers/gpu/drm/mediatek/mtk_hdmi.c unsigned int sample_rate = hdmi->aud_param.codec_params.sample_rate; hdmi 923 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_aud_on_off_hw_ncts(hdmi, false); hdmi 924 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_aud_src_disable(hdmi); hdmi 925 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_clear_bits(hdmi, GRL_CFG2, CFG2_ACLK_INV); hdmi 927 drivers/gpu/drm/mediatek/mtk_hdmi.c if (hdmi->aud_param.aud_input_type == HDMI_AUD_INPUT_I2S) { hdmi 938 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_aud_set_mclk(hdmi, hdmi->aud_param.aud_mclk); hdmi 948 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_aud_set_mclk(hdmi, HDMI_AUD_MCLK_128FS); hdmi 951 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_aud_set_ncts(hdmi, sample_rate, display_mode->clock); hdmi 953 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_aud_src_reenable(hdmi); hdmi 957 drivers/gpu/drm/mediatek/mtk_hdmi.c static int mtk_hdmi_aud_output_config(struct mtk_hdmi *hdmi, hdmi 960 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_aud_mute(hdmi); hdmi 961 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_aud_enable_packet(hdmi, false); hdmi 963 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_aud_set_input(hdmi); hdmi 964 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_aud_set_src(hdmi, display_mode); hdmi 965 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_aud_set_channel_status(hdmi, hdmi 966 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->aud_param.codec_params.iec.status); hdmi 970 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_aud_on_off_hw_ncts(hdmi, true); hdmi 971 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_aud_enable_packet(hdmi, true); hdmi 972 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_aud_unmute(hdmi); hdmi 976 drivers/gpu/drm/mediatek/mtk_hdmi.c static int mtk_hdmi_setup_avi_infoframe(struct mtk_hdmi *hdmi, hdmi 984 drivers/gpu/drm/mediatek/mtk_hdmi.c &hdmi->conn, mode); hdmi 986 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_err(hdmi->dev, hdmi 993 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_err(hdmi->dev, "Failed to pack AVI infoframe: %zd\n", err); hdmi 997 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_send_info_frame(hdmi, buffer, sizeof(buffer)); hdmi 1001 drivers/gpu/drm/mediatek/mtk_hdmi.c static int mtk_hdmi_setup_spd_infoframe(struct mtk_hdmi *hdmi, hdmi 1011 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_err(hdmi->dev, "Failed to initialize SPD infoframe: %zd\n", hdmi 1018 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_err(hdmi->dev, "Failed to pack SDP infoframe: %zd\n", err); hdmi 1022 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_send_info_frame(hdmi, buffer, sizeof(buffer)); hdmi 1026 drivers/gpu/drm/mediatek/mtk_hdmi.c static int mtk_hdmi_setup_audio_infoframe(struct mtk_hdmi *hdmi) hdmi 1034 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_err(hdmi->dev, "Failed to setup audio infoframe: %zd\n", hdmi 1043 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->aud_param.aud_input_chan_type); hdmi 1047 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_err(hdmi->dev, "Failed to pack audio infoframe: %zd\n", hdmi 1052 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_send_info_frame(hdmi, buffer, sizeof(buffer)); hdmi 1056 drivers/gpu/drm/mediatek/mtk_hdmi.c static int mtk_hdmi_setup_vendor_specific_infoframe(struct mtk_hdmi *hdmi, hdmi 1064 drivers/gpu/drm/mediatek/mtk_hdmi.c &hdmi->conn, mode); hdmi 1066 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_err(hdmi->dev, hdmi 1073 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_err(hdmi->dev, "Failed to pack vendor infoframe: %zd\n", hdmi 1078 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_send_info_frame(hdmi, buffer, sizeof(buffer)); hdmi 1082 drivers/gpu/drm/mediatek/mtk_hdmi.c static int mtk_hdmi_output_init(struct mtk_hdmi *hdmi) hdmi 1084 drivers/gpu/drm/mediatek/mtk_hdmi.c struct hdmi_audio_param *aud_param = &hdmi->aud_param; hdmi 1086 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->csp = HDMI_COLORSPACE_RGB; hdmi 1097 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_audio_enable(struct mtk_hdmi *hdmi) hdmi 1099 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_aud_enable_packet(hdmi, true); hdmi 1100 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->audio_enable = true; hdmi 1103 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_audio_disable(struct mtk_hdmi *hdmi) hdmi 1105 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_aud_enable_packet(hdmi, false); hdmi 1106 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->audio_enable = false; hdmi 1109 drivers/gpu/drm/mediatek/mtk_hdmi.c static int mtk_hdmi_audio_set_param(struct mtk_hdmi *hdmi, hdmi 1112 drivers/gpu/drm/mediatek/mtk_hdmi.c if (!hdmi->audio_enable) { hdmi 1113 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_err(hdmi->dev, "hdmi audio is in disable state!\n"); hdmi 1116 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_dbg(hdmi->dev, "codec:%d, input:%d, channel:%d, fs:%d\n", hdmi 1119 drivers/gpu/drm/mediatek/mtk_hdmi.c memcpy(&hdmi->aud_param, param, sizeof(*param)); hdmi 1120 drivers/gpu/drm/mediatek/mtk_hdmi.c return mtk_hdmi_aud_output_config(hdmi, &hdmi->mode); hdmi 1123 drivers/gpu/drm/mediatek/mtk_hdmi.c static int mtk_hdmi_output_set_display_mode(struct mtk_hdmi *hdmi, hdmi 1128 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_vid_black(hdmi, true); hdmi 1129 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_aud_mute(hdmi); hdmi 1130 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_send_av_mute(hdmi); hdmi 1131 drivers/gpu/drm/mediatek/mtk_hdmi.c phy_power_off(hdmi->phy); hdmi 1133 drivers/gpu/drm/mediatek/mtk_hdmi.c ret = mtk_hdmi_video_change_vpll(hdmi, hdmi 1136 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_err(hdmi->dev, "Failed to set vpll: %d\n", ret); hdmi 1139 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_video_set_display_mode(hdmi, mode); hdmi 1141 drivers/gpu/drm/mediatek/mtk_hdmi.c phy_power_on(hdmi->phy); hdmi 1142 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_aud_output_config(hdmi, mode); hdmi 1144 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_vid_black(hdmi, false); hdmi 1145 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_aud_unmute(hdmi); hdmi 1146 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_send_av_unmute(hdmi); hdmi 1158 drivers/gpu/drm/mediatek/mtk_hdmi.c static int mtk_hdmi_get_all_clk(struct mtk_hdmi *hdmi, hdmi 1164 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->clk[i] = of_clk_get_by_name(np, hdmi 1166 drivers/gpu/drm/mediatek/mtk_hdmi.c if (IS_ERR(hdmi->clk[i])) hdmi 1167 drivers/gpu/drm/mediatek/mtk_hdmi.c return PTR_ERR(hdmi->clk[i]); hdmi 1172 drivers/gpu/drm/mediatek/mtk_hdmi.c static int mtk_hdmi_clk_enable_audio(struct mtk_hdmi *hdmi) hdmi 1176 drivers/gpu/drm/mediatek/mtk_hdmi.c ret = clk_prepare_enable(hdmi->clk[MTK_HDMI_CLK_AUD_BCLK]); hdmi 1180 drivers/gpu/drm/mediatek/mtk_hdmi.c ret = clk_prepare_enable(hdmi->clk[MTK_HDMI_CLK_AUD_SPDIF]); hdmi 1186 drivers/gpu/drm/mediatek/mtk_hdmi.c clk_disable_unprepare(hdmi->clk[MTK_HDMI_CLK_AUD_BCLK]); hdmi 1190 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_clk_disable_audio(struct mtk_hdmi *hdmi) hdmi 1192 drivers/gpu/drm/mediatek/mtk_hdmi.c clk_disable_unprepare(hdmi->clk[MTK_HDMI_CLK_AUD_BCLK]); hdmi 1193 drivers/gpu/drm/mediatek/mtk_hdmi.c clk_disable_unprepare(hdmi->clk[MTK_HDMI_CLK_AUD_SPDIF]); hdmi 1199 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi *hdmi = hdmi_ctx_from_conn(conn); hdmi 1201 drivers/gpu/drm/mediatek/mtk_hdmi.c return mtk_cec_hpd_high(hdmi->cec_dev) ? hdmi 1207 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi *hdmi = hdmi_ctx_from_conn(conn); hdmi 1209 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_cec_set_hpd_event(hdmi->cec_dev, NULL, NULL); hdmi 1216 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi *hdmi = hdmi_ctx_from_conn(conn); hdmi 1220 drivers/gpu/drm/mediatek/mtk_hdmi.c if (!hdmi->ddc_adpt) hdmi 1223 drivers/gpu/drm/mediatek/mtk_hdmi.c edid = drm_get_edid(conn, hdmi->ddc_adpt); hdmi 1227 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->dvi_mode = !drm_detect_monitor_audio(edid); hdmi 1239 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi *hdmi = hdmi_ctx_from_conn(conn); hdmi 1241 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_dbg(hdmi->dev, "xres=%d, yres=%d, refresh=%d, intl=%d clock=%d\n", hdmi 1245 drivers/gpu/drm/mediatek/mtk_hdmi.c if (hdmi->bridge.next) { hdmi 1249 drivers/gpu/drm/mediatek/mtk_hdmi.c if (!drm_bridge_mode_fixup(hdmi->bridge.next, mode, hdmi 1264 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi *hdmi = hdmi_ctx_from_conn(conn); hdmi 1266 drivers/gpu/drm/mediatek/mtk_hdmi.c return hdmi->bridge.encoder; hdmi 1287 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi *hdmi = dev_get_drvdata(dev); hdmi 1289 drivers/gpu/drm/mediatek/mtk_hdmi.c if (hdmi && hdmi->bridge.encoder && hdmi->bridge.encoder->dev) hdmi 1290 drivers/gpu/drm/mediatek/mtk_hdmi.c drm_helper_hpd_irq_event(hdmi->bridge.encoder->dev); hdmi 1299 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi *hdmi = hdmi_ctx_from_bridge(bridge); hdmi 1302 drivers/gpu/drm/mediatek/mtk_hdmi.c ret = drm_connector_init(bridge->encoder->dev, &hdmi->conn, hdmi 1306 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_err(hdmi->dev, "Failed to initialize connector: %d\n", ret); hdmi 1309 drivers/gpu/drm/mediatek/mtk_hdmi.c drm_connector_helper_add(&hdmi->conn, &mtk_hdmi_connector_helper_funcs); hdmi 1311 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->conn.polled = DRM_CONNECTOR_POLL_HPD; hdmi 1312 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->conn.interlace_allowed = true; hdmi 1313 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->conn.doublescan_allowed = false; hdmi 1315 drivers/gpu/drm/mediatek/mtk_hdmi.c ret = drm_connector_attach_encoder(&hdmi->conn, hdmi 1318 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_err(hdmi->dev, hdmi 1323 drivers/gpu/drm/mediatek/mtk_hdmi.c if (hdmi->next_bridge) { hdmi 1324 drivers/gpu/drm/mediatek/mtk_hdmi.c ret = drm_bridge_attach(bridge->encoder, hdmi->next_bridge, hdmi 1327 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_err(hdmi->dev, hdmi 1333 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_cec_set_hpd_event(hdmi->cec_dev, mtk_hdmi_hpd_event, hdmi->dev); hdmi 1347 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi *hdmi = hdmi_ctx_from_bridge(bridge); hdmi 1349 drivers/gpu/drm/mediatek/mtk_hdmi.c if (!hdmi->enabled) hdmi 1352 drivers/gpu/drm/mediatek/mtk_hdmi.c phy_power_off(hdmi->phy); hdmi 1353 drivers/gpu/drm/mediatek/mtk_hdmi.c clk_disable_unprepare(hdmi->clk[MTK_HDMI_CLK_HDMI_PIXEL]); hdmi 1354 drivers/gpu/drm/mediatek/mtk_hdmi.c clk_disable_unprepare(hdmi->clk[MTK_HDMI_CLK_HDMI_PLL]); hdmi 1356 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->enabled = false; hdmi 1361 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi *hdmi = hdmi_ctx_from_bridge(bridge); hdmi 1363 drivers/gpu/drm/mediatek/mtk_hdmi.c if (!hdmi->powered) hdmi 1366 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_1p4_version_enable(hdmi, true); hdmi 1367 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_make_reg_writable(hdmi, false); hdmi 1369 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->powered = false; hdmi 1376 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi *hdmi = hdmi_ctx_from_bridge(bridge); hdmi 1378 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_dbg(hdmi->dev, "cur info: name:%s, hdisplay:%d\n", hdmi 1380 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_dbg(hdmi->dev, "hsync_start:%d,hsync_end:%d, htotal:%d", hdmi 1383 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_dbg(hdmi->dev, "hskew:%d, vdisplay:%d\n", hdmi 1385 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_dbg(hdmi->dev, "vsync_start:%d, vsync_end:%d, vtotal:%d", hdmi 1388 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_dbg(hdmi->dev, "vscan:%d, flag:%d\n", hdmi 1391 drivers/gpu/drm/mediatek/mtk_hdmi.c drm_mode_copy(&hdmi->mode, adjusted_mode); hdmi 1396 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi *hdmi = hdmi_ctx_from_bridge(bridge); hdmi 1398 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_make_reg_writable(hdmi, true); hdmi 1399 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_1p4_version_enable(hdmi, true); hdmi 1401 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->powered = true; hdmi 1404 drivers/gpu/drm/mediatek/mtk_hdmi.c static void mtk_hdmi_send_infoframe(struct mtk_hdmi *hdmi, hdmi 1407 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_setup_audio_infoframe(hdmi); hdmi 1408 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_setup_avi_infoframe(hdmi, mode); hdmi 1409 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_setup_spd_infoframe(hdmi, "mediatek", "On-chip HDMI"); hdmi 1411 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_setup_vendor_specific_infoframe(hdmi, mode); hdmi 1416 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi *hdmi = hdmi_ctx_from_bridge(bridge); hdmi 1418 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_output_set_display_mode(hdmi, &hdmi->mode); hdmi 1419 drivers/gpu/drm/mediatek/mtk_hdmi.c clk_prepare_enable(hdmi->clk[MTK_HDMI_CLK_HDMI_PLL]); hdmi 1420 drivers/gpu/drm/mediatek/mtk_hdmi.c clk_prepare_enable(hdmi->clk[MTK_HDMI_CLK_HDMI_PIXEL]); hdmi 1421 drivers/gpu/drm/mediatek/mtk_hdmi.c phy_power_on(hdmi->phy); hdmi 1422 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_send_infoframe(hdmi, &hdmi->mode); hdmi 1424 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->enabled = true; hdmi 1437 drivers/gpu/drm/mediatek/mtk_hdmi.c static int mtk_hdmi_dt_parse_pdata(struct mtk_hdmi *hdmi, hdmi 1448 drivers/gpu/drm/mediatek/mtk_hdmi.c ret = mtk_hdmi_get_all_clk(hdmi, np); hdmi 1463 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_err(hdmi->dev, "Waiting for CEC device %pOF\n", hdmi 1469 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->cec_dev = &cec_pdev->dev; hdmi 1478 drivers/gpu/drm/mediatek/mtk_hdmi.c &hdmi->sys_offset); hdmi 1487 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->sys_regmap = regmap; hdmi 1490 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->regs = devm_ioremap_resource(dev, mem); hdmi 1491 drivers/gpu/drm/mediatek/mtk_hdmi.c if (IS_ERR(hdmi->regs)) hdmi 1492 drivers/gpu/drm/mediatek/mtk_hdmi.c return PTR_ERR(hdmi->regs); hdmi 1499 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->next_bridge = of_drm_find_bridge(remote); hdmi 1500 drivers/gpu/drm/mediatek/mtk_hdmi.c if (!hdmi->next_bridge) { hdmi 1516 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->ddc_adpt = of_find_i2c_adapter_by_node(i2c_np); hdmi 1518 drivers/gpu/drm/mediatek/mtk_hdmi.c if (!hdmi->ddc_adpt) { hdmi 1534 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi *hdmi = dev_get_drvdata(dev); hdmi 1538 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_dbg(hdmi->dev, "%s: %u Hz, %d bit, %d channels\n", __func__, hdmi 1541 drivers/gpu/drm/mediatek/mtk_hdmi.c if (!hdmi->bridge.encoder) hdmi 1558 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_err(hdmi->dev, "channel[%d] not supported!\n", chan); hdmi 1572 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_err(hdmi->dev, "rate[%d] not supported!\n", hdmi 1591 drivers/gpu/drm/mediatek/mtk_hdmi.c dev_err(hdmi->dev, "%s: Invalid DAI format %d\n", __func__, hdmi 1599 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_audio_set_param(hdmi, &hdmi_params); hdmi 1606 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi *hdmi = dev_get_drvdata(dev); hdmi 1610 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_audio_enable(hdmi); hdmi 1617 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi *hdmi = dev_get_drvdata(dev); hdmi 1621 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_audio_disable(hdmi); hdmi 1627 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi *hdmi = dev_get_drvdata(dev); hdmi 1632 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_aud_mute(hdmi); hdmi 1634 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_hw_aud_unmute(hdmi); hdmi 1641 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi *hdmi = dev_get_drvdata(dev); hdmi 1645 drivers/gpu/drm/mediatek/mtk_hdmi.c memcpy(buf, hdmi->conn.eld, min(sizeof(hdmi->conn.eld), len)); hdmi 1678 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi *hdmi; hdmi 1682 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi = devm_kzalloc(dev, sizeof(*hdmi), GFP_KERNEL); hdmi 1683 drivers/gpu/drm/mediatek/mtk_hdmi.c if (!hdmi) hdmi 1686 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->dev = dev; hdmi 1688 drivers/gpu/drm/mediatek/mtk_hdmi.c ret = mtk_hdmi_dt_parse_pdata(hdmi, pdev); hdmi 1692 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->phy = devm_phy_get(dev, "hdmi"); hdmi 1693 drivers/gpu/drm/mediatek/mtk_hdmi.c if (IS_ERR(hdmi->phy)) { hdmi 1694 drivers/gpu/drm/mediatek/mtk_hdmi.c ret = PTR_ERR(hdmi->phy); hdmi 1699 drivers/gpu/drm/mediatek/mtk_hdmi.c platform_set_drvdata(pdev, hdmi); hdmi 1701 drivers/gpu/drm/mediatek/mtk_hdmi.c ret = mtk_hdmi_output_init(hdmi); hdmi 1709 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->bridge.funcs = &mtk_hdmi_bridge_funcs; hdmi 1710 drivers/gpu/drm/mediatek/mtk_hdmi.c hdmi->bridge.of_node = pdev->dev.of_node; hdmi 1711 drivers/gpu/drm/mediatek/mtk_hdmi.c drm_bridge_add(&hdmi->bridge); hdmi 1713 drivers/gpu/drm/mediatek/mtk_hdmi.c ret = mtk_hdmi_clk_enable_audio(hdmi); hdmi 1723 drivers/gpu/drm/mediatek/mtk_hdmi.c drm_bridge_remove(&hdmi->bridge); hdmi 1729 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi *hdmi = platform_get_drvdata(pdev); hdmi 1731 drivers/gpu/drm/mediatek/mtk_hdmi.c drm_bridge_remove(&hdmi->bridge); hdmi 1732 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_clk_disable_audio(hdmi); hdmi 1739 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi *hdmi = dev_get_drvdata(dev); hdmi 1741 drivers/gpu/drm/mediatek/mtk_hdmi.c mtk_hdmi_clk_disable_audio(hdmi); hdmi 1748 drivers/gpu/drm/mediatek/mtk_hdmi.c struct mtk_hdmi *hdmi = dev_get_drvdata(dev); hdmi 1751 drivers/gpu/drm/mediatek/mtk_hdmi.c ret = mtk_hdmi_clk_enable_audio(hdmi); hdmi 150 drivers/gpu/drm/meson/meson_dw_hdmi.c struct dw_hdmi *hdmi; hdmi 409 drivers/gpu/drm/meson/meson_dw_hdmi.c static int dw_hdmi_phy_init(struct dw_hdmi *hdmi, void *data, hdmi 478 drivers/gpu/drm/meson/meson_dw_hdmi.c dw_hdmi_set_high_tmds_clock_ratio(hdmi); hdmi 520 drivers/gpu/drm/meson/meson_dw_hdmi.c static void dw_hdmi_phy_disable(struct dw_hdmi *hdmi, hdmi 531 drivers/gpu/drm/meson/meson_dw_hdmi.c static enum drm_connector_status dw_hdmi_read_hpd(struct dw_hdmi *hdmi, hdmi 540 drivers/gpu/drm/meson/meson_dw_hdmi.c static void dw_hdmi_setup_hpd(struct dw_hdmi *hdmi, hdmi 602 drivers/gpu/drm/meson/meson_dw_hdmi.c dw_hdmi_setup_rx_sense(dw_hdmi->hdmi, hpd_connected, hdmi 974 drivers/gpu/drm/meson/meson_dw_hdmi.c meson_dw_hdmi->hdmi = dw_hdmi_bind(pdev, encoder, hdmi 976 drivers/gpu/drm/meson/meson_dw_hdmi.c if (IS_ERR(meson_dw_hdmi->hdmi)) hdmi 977 drivers/gpu/drm/meson/meson_dw_hdmi.c return PTR_ERR(meson_dw_hdmi->hdmi); hdmi 989 drivers/gpu/drm/meson/meson_dw_hdmi.c dw_hdmi_unbind(meson_dw_hdmi->hdmi); hdmi 289 drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c if (priv->hdmi) { hdmi 291 drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c ret = msm_hdmi_modeset_init(priv->hdmi, dev, encoder); hdmi 408 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c if (!priv->hdmi) hdmi 423 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c ret = msm_hdmi_modeset_init(priv->hdmi, dev, encoder); hdmi 14 drivers/gpu/drm/msm/hdmi/hdmi.c void msm_hdmi_set_mode(struct hdmi *hdmi, bool power_on) hdmi 19 drivers/gpu/drm/msm/hdmi/hdmi.c spin_lock_irqsave(&hdmi->reg_lock, flags); hdmi 22 drivers/gpu/drm/msm/hdmi/hdmi.c if (!hdmi->hdmi_mode) { hdmi 24 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi_write(hdmi, REG_HDMI_CTRL, ctrl); hdmi 33 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi_write(hdmi, REG_HDMI_CTRL, ctrl); hdmi 34 drivers/gpu/drm/msm/hdmi/hdmi.c spin_unlock_irqrestore(&hdmi->reg_lock, flags); hdmi 41 drivers/gpu/drm/msm/hdmi/hdmi.c struct hdmi *hdmi = dev_id; hdmi 44 drivers/gpu/drm/msm/hdmi/hdmi.c msm_hdmi_connector_irq(hdmi->connector); hdmi 47 drivers/gpu/drm/msm/hdmi/hdmi.c msm_hdmi_i2c_irq(hdmi->i2c); hdmi 50 drivers/gpu/drm/msm/hdmi/hdmi.c if (hdmi->hdcp_ctrl) hdmi 51 drivers/gpu/drm/msm/hdmi/hdmi.c msm_hdmi_hdcp_irq(hdmi->hdcp_ctrl); hdmi 58 drivers/gpu/drm/msm/hdmi/hdmi.c static void msm_hdmi_destroy(struct hdmi *hdmi) hdmi 64 drivers/gpu/drm/msm/hdmi/hdmi.c if (hdmi->workq) { hdmi 65 drivers/gpu/drm/msm/hdmi/hdmi.c flush_workqueue(hdmi->workq); hdmi 66 drivers/gpu/drm/msm/hdmi/hdmi.c destroy_workqueue(hdmi->workq); hdmi 68 drivers/gpu/drm/msm/hdmi/hdmi.c msm_hdmi_hdcp_destroy(hdmi); hdmi 70 drivers/gpu/drm/msm/hdmi/hdmi.c if (hdmi->phy_dev) { hdmi 71 drivers/gpu/drm/msm/hdmi/hdmi.c put_device(hdmi->phy_dev); hdmi 72 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->phy = NULL; hdmi 73 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->phy_dev = NULL; hdmi 76 drivers/gpu/drm/msm/hdmi/hdmi.c if (hdmi->i2c) hdmi 77 drivers/gpu/drm/msm/hdmi/hdmi.c msm_hdmi_i2c_destroy(hdmi->i2c); hdmi 79 drivers/gpu/drm/msm/hdmi/hdmi.c platform_set_drvdata(hdmi->pdev, NULL); hdmi 82 drivers/gpu/drm/msm/hdmi/hdmi.c static int msm_hdmi_get_phy(struct hdmi *hdmi) hdmi 84 drivers/gpu/drm/msm/hdmi/hdmi.c struct platform_device *pdev = hdmi->pdev; hdmi 96 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->phy = platform_get_drvdata(phy_pdev); hdmi 100 drivers/gpu/drm/msm/hdmi/hdmi.c if (!phy_pdev || !hdmi->phy) { hdmi 105 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->phy_dev = get_device(&phy_pdev->dev); hdmi 114 drivers/gpu/drm/msm/hdmi/hdmi.c static struct hdmi *msm_hdmi_init(struct platform_device *pdev) hdmi 117 drivers/gpu/drm/msm/hdmi/hdmi.c struct hdmi *hdmi = NULL; hdmi 121 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi = devm_kzalloc(&pdev->dev, sizeof(*hdmi), GFP_KERNEL); hdmi 122 drivers/gpu/drm/msm/hdmi/hdmi.c if (!hdmi) { hdmi 127 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->pdev = pdev; hdmi 128 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->config = config; hdmi 129 drivers/gpu/drm/msm/hdmi/hdmi.c spin_lock_init(&hdmi->reg_lock); hdmi 131 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->mmio = msm_ioremap(pdev, config->mmio_name, "HDMI"); hdmi 132 drivers/gpu/drm/msm/hdmi/hdmi.c if (IS_ERR(hdmi->mmio)) { hdmi 133 drivers/gpu/drm/msm/hdmi/hdmi.c ret = PTR_ERR(hdmi->mmio); hdmi 140 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->mmio_phy_addr = res->start; hdmi 142 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->qfprom_mmio = msm_ioremap(pdev, hdmi 144 drivers/gpu/drm/msm/hdmi/hdmi.c if (IS_ERR(hdmi->qfprom_mmio)) { hdmi 146 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->qfprom_mmio = NULL; hdmi 149 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->hpd_regs = devm_kcalloc(&pdev->dev, hdmi 151 drivers/gpu/drm/msm/hdmi/hdmi.c sizeof(hdmi->hpd_regs[0]), hdmi 153 drivers/gpu/drm/msm/hdmi/hdmi.c if (!hdmi->hpd_regs) { hdmi 169 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->hpd_regs[i] = reg; hdmi 172 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->pwr_regs = devm_kcalloc(&pdev->dev, hdmi 174 drivers/gpu/drm/msm/hdmi/hdmi.c sizeof(hdmi->pwr_regs[0]), hdmi 176 drivers/gpu/drm/msm/hdmi/hdmi.c if (!hdmi->pwr_regs) { hdmi 192 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->pwr_regs[i] = reg; hdmi 195 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->hpd_clks = devm_kcalloc(&pdev->dev, hdmi 197 drivers/gpu/drm/msm/hdmi/hdmi.c sizeof(hdmi->hpd_clks[0]), hdmi 199 drivers/gpu/drm/msm/hdmi/hdmi.c if (!hdmi->hpd_clks) { hdmi 214 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->hpd_clks[i] = clk; hdmi 217 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->pwr_clks = devm_kcalloc(&pdev->dev, hdmi 219 drivers/gpu/drm/msm/hdmi/hdmi.c sizeof(hdmi->pwr_clks[0]), hdmi 221 drivers/gpu/drm/msm/hdmi/hdmi.c if (!hdmi->pwr_clks) { hdmi 236 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->pwr_clks[i] = clk; hdmi 241 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->workq = alloc_ordered_workqueue("msm_hdmi", 0); hdmi 243 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->i2c = msm_hdmi_i2c_init(hdmi); hdmi 244 drivers/gpu/drm/msm/hdmi/hdmi.c if (IS_ERR(hdmi->i2c)) { hdmi 245 drivers/gpu/drm/msm/hdmi/hdmi.c ret = PTR_ERR(hdmi->i2c); hdmi 247 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->i2c = NULL; hdmi 251 drivers/gpu/drm/msm/hdmi/hdmi.c ret = msm_hdmi_get_phy(hdmi); hdmi 257 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->hdcp_ctrl = msm_hdmi_hdcp_init(hdmi); hdmi 258 drivers/gpu/drm/msm/hdmi/hdmi.c if (IS_ERR(hdmi->hdcp_ctrl)) { hdmi 260 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->hdcp_ctrl = NULL; hdmi 263 drivers/gpu/drm/msm/hdmi/hdmi.c return hdmi; hdmi 266 drivers/gpu/drm/msm/hdmi/hdmi.c if (hdmi) hdmi 267 drivers/gpu/drm/msm/hdmi/hdmi.c msm_hdmi_destroy(hdmi); hdmi 280 drivers/gpu/drm/msm/hdmi/hdmi.c int msm_hdmi_modeset_init(struct hdmi *hdmi, hdmi 284 drivers/gpu/drm/msm/hdmi/hdmi.c struct platform_device *pdev = hdmi->pdev; hdmi 287 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->dev = dev; hdmi 288 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->encoder = encoder; hdmi 290 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi_audio_infoframe_init(&hdmi->audio.infoframe); hdmi 292 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->bridge = msm_hdmi_bridge_init(hdmi); hdmi 293 drivers/gpu/drm/msm/hdmi/hdmi.c if (IS_ERR(hdmi->bridge)) { hdmi 294 drivers/gpu/drm/msm/hdmi/hdmi.c ret = PTR_ERR(hdmi->bridge); hdmi 296 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->bridge = NULL; hdmi 300 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->connector = msm_hdmi_connector_init(hdmi); hdmi 301 drivers/gpu/drm/msm/hdmi/hdmi.c if (IS_ERR(hdmi->connector)) { hdmi 302 drivers/gpu/drm/msm/hdmi/hdmi.c ret = PTR_ERR(hdmi->connector); hdmi 304 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->connector = NULL; hdmi 308 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->irq = irq_of_parse_and_map(pdev->dev.of_node, 0); hdmi 309 drivers/gpu/drm/msm/hdmi/hdmi.c if (hdmi->irq < 0) { hdmi 310 drivers/gpu/drm/msm/hdmi/hdmi.c ret = hdmi->irq; hdmi 315 drivers/gpu/drm/msm/hdmi/hdmi.c ret = devm_request_irq(&pdev->dev, hdmi->irq, hdmi 317 drivers/gpu/drm/msm/hdmi/hdmi.c "hdmi_isr", hdmi); hdmi 320 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->irq, ret); hdmi 324 drivers/gpu/drm/msm/hdmi/hdmi.c ret = msm_hdmi_hpd_enable(hdmi->connector); hdmi 326 drivers/gpu/drm/msm/hdmi/hdmi.c DRM_DEV_ERROR(&hdmi->pdev->dev, "failed to enable HPD: %d\n", ret); hdmi 330 drivers/gpu/drm/msm/hdmi/hdmi.c encoder->bridge = hdmi->bridge; hdmi 332 drivers/gpu/drm/msm/hdmi/hdmi.c priv->bridges[priv->num_bridges++] = hdmi->bridge; hdmi 333 drivers/gpu/drm/msm/hdmi/hdmi.c priv->connectors[priv->num_connectors++] = hdmi->connector; hdmi 335 drivers/gpu/drm/msm/hdmi/hdmi.c platform_set_drvdata(pdev, hdmi); hdmi 341 drivers/gpu/drm/msm/hdmi/hdmi.c if (hdmi->bridge) { hdmi 342 drivers/gpu/drm/msm/hdmi/hdmi.c msm_hdmi_bridge_destroy(hdmi->bridge); hdmi 343 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->bridge = NULL; hdmi 345 drivers/gpu/drm/msm/hdmi/hdmi.c if (hdmi->connector) { hdmi 346 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->connector->funcs->destroy(hdmi->connector); hdmi 347 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->connector = NULL; hdmi 435 drivers/gpu/drm/msm/hdmi/hdmi.c struct hdmi *hdmi = dev_get_drvdata(dev); hdmi 498 drivers/gpu/drm/msm/hdmi/hdmi.c msm_hdmi_audio_set_sample_rate(hdmi, rate); hdmi 499 drivers/gpu/drm/msm/hdmi/hdmi.c msm_hdmi_audio_info_setup(hdmi, 1, chan, channel_allocation, hdmi 507 drivers/gpu/drm/msm/hdmi/hdmi.c struct hdmi *hdmi = dev_get_drvdata(dev); hdmi 509 drivers/gpu/drm/msm/hdmi/hdmi.c msm_hdmi_audio_info_setup(hdmi, 0, 0, 0, 0, 0); hdmi 523 drivers/gpu/drm/msm/hdmi/hdmi.c static int msm_hdmi_register_audio_driver(struct hdmi *hdmi, struct device *dev) hdmi 525 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->audio_pdev = platform_device_register_data(dev, hdmi 530 drivers/gpu/drm/msm/hdmi/hdmi.c return PTR_ERR_OR_ZERO(hdmi->audio_pdev); hdmi 538 drivers/gpu/drm/msm/hdmi/hdmi.c struct hdmi *hdmi; hdmi 590 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi = msm_hdmi_init(to_platform_device(dev)); hdmi 591 drivers/gpu/drm/msm/hdmi/hdmi.c if (IS_ERR(hdmi)) hdmi 592 drivers/gpu/drm/msm/hdmi/hdmi.c return PTR_ERR(hdmi); hdmi 593 drivers/gpu/drm/msm/hdmi/hdmi.c priv->hdmi = hdmi; hdmi 595 drivers/gpu/drm/msm/hdmi/hdmi.c err = msm_hdmi_register_audio_driver(hdmi, dev); hdmi 598 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->audio_pdev = NULL; hdmi 609 drivers/gpu/drm/msm/hdmi/hdmi.c if (priv->hdmi) { hdmi 610 drivers/gpu/drm/msm/hdmi/hdmi.c if (priv->hdmi->audio_pdev) hdmi 611 drivers/gpu/drm/msm/hdmi/hdmi.c platform_device_unregister(priv->hdmi->audio_pdev); hdmi 613 drivers/gpu/drm/msm/hdmi/hdmi.c msm_hdmi_destroy(priv->hdmi); hdmi 614 drivers/gpu/drm/msm/hdmi/hdmi.c priv->hdmi = NULL; hdmi 115 drivers/gpu/drm/msm/hdmi/hdmi.h void msm_hdmi_set_mode(struct hdmi *hdmi, bool power_on); hdmi 117 drivers/gpu/drm/msm/hdmi/hdmi.h static inline void hdmi_write(struct hdmi *hdmi, u32 reg, u32 data) hdmi 119 drivers/gpu/drm/msm/hdmi/hdmi.h msm_writel(data, hdmi->mmio + reg); hdmi 122 drivers/gpu/drm/msm/hdmi/hdmi.h static inline u32 hdmi_read(struct hdmi *hdmi, u32 reg) hdmi 124 drivers/gpu/drm/msm/hdmi/hdmi.h return msm_readl(hdmi->mmio + reg); hdmi 127 drivers/gpu/drm/msm/hdmi/hdmi.h static inline u32 hdmi_qfprom_read(struct hdmi *hdmi, u32 reg) hdmi 129 drivers/gpu/drm/msm/hdmi/hdmi.h return msm_readl(hdmi->qfprom_mmio + reg); hdmi 217 drivers/gpu/drm/msm/hdmi/hdmi.h int msm_hdmi_audio_update(struct hdmi *hdmi); hdmi 218 drivers/gpu/drm/msm/hdmi/hdmi.h int msm_hdmi_audio_info_setup(struct hdmi *hdmi, bool enabled, hdmi 221 drivers/gpu/drm/msm/hdmi/hdmi.h void msm_hdmi_audio_set_sample_rate(struct hdmi *hdmi, int rate); hdmi 228 drivers/gpu/drm/msm/hdmi/hdmi.h struct drm_bridge *msm_hdmi_bridge_init(struct hdmi *hdmi); hdmi 236 drivers/gpu/drm/msm/hdmi/hdmi.h struct drm_connector *msm_hdmi_connector_init(struct hdmi *hdmi); hdmi 245 drivers/gpu/drm/msm/hdmi/hdmi.h struct i2c_adapter *msm_hdmi_i2c_init(struct hdmi *hdmi); hdmi 251 drivers/gpu/drm/msm/hdmi/hdmi.h struct hdmi_hdcp_ctrl *msm_hdmi_hdcp_init(struct hdmi *hdmi); hdmi 252 drivers/gpu/drm/msm/hdmi/hdmi.h void msm_hdmi_hdcp_destroy(struct hdmi *hdmi); hdmi 257 drivers/gpu/drm/msm/hdmi/hdmi.h static inline struct hdmi_hdcp_ctrl *msm_hdmi_hdcp_init(struct hdmi *hdmi) hdmi 261 drivers/gpu/drm/msm/hdmi/hdmi.h static inline void msm_hdmi_hdcp_destroy(struct hdmi *hdmi) {} hdmi 74 drivers/gpu/drm/msm/hdmi/hdmi_audio.c int msm_hdmi_audio_update(struct hdmi *hdmi) hdmi 76 drivers/gpu/drm/msm/hdmi/hdmi_audio.c struct hdmi_audio *audio = &hdmi->audio; hdmi 87 drivers/gpu/drm/msm/hdmi/hdmi_audio.c DBG("video: power_on=%d, pixclock=%lu", hdmi->power_on, hdmi->pixclock); hdmi 89 drivers/gpu/drm/msm/hdmi/hdmi_audio.c if (enabled && !(hdmi->power_on && hdmi->pixclock)) { hdmi 95 drivers/gpu/drm/msm/hdmi/hdmi_audio.c arcs = get_arcs(hdmi->pixclock); hdmi 98 drivers/gpu/drm/msm/hdmi/hdmi_audio.c hdmi->pixclock); hdmi 104 drivers/gpu/drm/msm/hdmi/hdmi_audio.c acr_pkt_ctrl = hdmi_read(hdmi, REG_HDMI_ACR_PKT_CTRL); hdmi 105 drivers/gpu/drm/msm/hdmi/hdmi_audio.c vbi_pkt_ctrl = hdmi_read(hdmi, REG_HDMI_VBI_PKT_CTRL); hdmi 106 drivers/gpu/drm/msm/hdmi/hdmi_audio.c aud_pkt_ctrl = hdmi_read(hdmi, REG_HDMI_AUDIO_PKT_CTRL1); hdmi 107 drivers/gpu/drm/msm/hdmi/hdmi_audio.c infofrm_ctrl = hdmi_read(hdmi, REG_HDMI_INFOFRAME_CTRL0); hdmi 108 drivers/gpu/drm/msm/hdmi/hdmi_audio.c audio_config = hdmi_read(hdmi, REG_HDMI_AUDIO_CFG); hdmi 152 drivers/gpu/drm/msm/hdmi/hdmi_audio.c hdmi_write(hdmi, REG_HDMI_ACR_0(select - 1), hdmi 154 drivers/gpu/drm/msm/hdmi/hdmi_audio.c hdmi_write(hdmi, REG_HDMI_ACR_1(select - 1), hdmi 157 drivers/gpu/drm/msm/hdmi/hdmi_audio.c hdmi_write(hdmi, REG_HDMI_AUDIO_PKT_CTRL2, hdmi 166 drivers/gpu/drm/msm/hdmi/hdmi_audio.c hdmi_write(hdmi, REG_HDMI_AUDIO_INFO0, hdmi 169 drivers/gpu/drm/msm/hdmi/hdmi_audio.c hdmi_write(hdmi, REG_HDMI_AUDIO_INFO1, hdmi 172 drivers/gpu/drm/msm/hdmi/hdmi_audio.c hdmi_write(hdmi, REG_HDMI_GC, 0); hdmi 200 drivers/gpu/drm/msm/hdmi/hdmi_audio.c hdmi_write(hdmi, REG_HDMI_ACR_PKT_CTRL, acr_pkt_ctrl); hdmi 201 drivers/gpu/drm/msm/hdmi/hdmi_audio.c hdmi_write(hdmi, REG_HDMI_VBI_PKT_CTRL, vbi_pkt_ctrl); hdmi 202 drivers/gpu/drm/msm/hdmi/hdmi_audio.c hdmi_write(hdmi, REG_HDMI_AUDIO_PKT_CTRL1, aud_pkt_ctrl); hdmi 203 drivers/gpu/drm/msm/hdmi/hdmi_audio.c hdmi_write(hdmi, REG_HDMI_INFOFRAME_CTRL0, infofrm_ctrl); hdmi 205 drivers/gpu/drm/msm/hdmi/hdmi_audio.c hdmi_write(hdmi, REG_HDMI_AUD_INT, hdmi 209 drivers/gpu/drm/msm/hdmi/hdmi_audio.c hdmi_write(hdmi, REG_HDMI_AUDIO_CFG, audio_config); hdmi 217 drivers/gpu/drm/msm/hdmi/hdmi_audio.c int msm_hdmi_audio_info_setup(struct hdmi *hdmi, bool enabled, hdmi 223 drivers/gpu/drm/msm/hdmi/hdmi_audio.c if (!hdmi) hdmi 226 drivers/gpu/drm/msm/hdmi/hdmi_audio.c audio = &hdmi->audio; hdmi 237 drivers/gpu/drm/msm/hdmi/hdmi_audio.c return msm_hdmi_audio_update(hdmi); hdmi 240 drivers/gpu/drm/msm/hdmi/hdmi_audio.c void msm_hdmi_audio_set_sample_rate(struct hdmi *hdmi, int rate) hdmi 244 drivers/gpu/drm/msm/hdmi/hdmi_audio.c if (!hdmi) hdmi 247 drivers/gpu/drm/msm/hdmi/hdmi_audio.c audio = &hdmi->audio; hdmi 253 drivers/gpu/drm/msm/hdmi/hdmi_audio.c msm_hdmi_audio_update(hdmi); hdmi 13 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c struct hdmi *hdmi; hdmi 25 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c struct hdmi *hdmi = hdmi_bridge->hdmi; hdmi 26 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c const struct hdmi_platform_config *config = hdmi->config; hdmi 29 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c pm_runtime_get_sync(&hdmi->pdev->dev); hdmi 32 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c ret = regulator_enable(hdmi->pwr_regs[i]); hdmi 40 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c DBG("pixclock: %lu", hdmi->pixclock); hdmi 41 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c ret = clk_set_rate(hdmi->pwr_clks[0], hdmi->pixclock); hdmi 49 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c ret = clk_prepare_enable(hdmi->pwr_clks[i]); hdmi 61 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c struct hdmi *hdmi = hdmi_bridge->hdmi; hdmi 62 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c const struct hdmi_platform_config *config = hdmi->config; hdmi 71 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c clk_disable_unprepare(hdmi->pwr_clks[i]); hdmi 74 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c ret = regulator_disable(hdmi->pwr_regs[i]); hdmi 81 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c pm_runtime_put_autosuspend(&hdmi->pdev->dev); hdmi 86 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c static void msm_hdmi_config_avi_infoframe(struct hdmi *hdmi) hdmi 88 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c struct drm_crtc *crtc = hdmi->encoder->crtc; hdmi 96 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c hdmi->connector, mode); hdmi 100 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c DRM_DEV_ERROR(&hdmi->pdev->dev, hdmi 111 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c hdmi_write(hdmi, REG_HDMI_AVI_INFO(0), hdmi 117 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c hdmi_write(hdmi, REG_HDMI_AVI_INFO(1), hdmi 123 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c hdmi_write(hdmi, REG_HDMI_AVI_INFO(2), hdmi 129 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c hdmi_write(hdmi, REG_HDMI_AVI_INFO(3), hdmi 134 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c hdmi_write(hdmi, REG_HDMI_INFOFRAME_CTRL0, hdmi 138 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c val = hdmi_read(hdmi, REG_HDMI_INFOFRAME_CTRL1); hdmi 141 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c hdmi_write(hdmi, REG_HDMI_INFOFRAME_CTRL1, val); hdmi 147 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c struct hdmi *hdmi = hdmi_bridge->hdmi; hdmi 148 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c struct hdmi_phy *phy = hdmi->phy; hdmi 152 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c if (!hdmi->power_on) { hdmi 155 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c hdmi->power_on = true; hdmi 156 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c if (hdmi->hdmi_mode) { hdmi 157 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c msm_hdmi_config_avi_infoframe(hdmi); hdmi 158 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c msm_hdmi_audio_update(hdmi); hdmi 162 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c msm_hdmi_phy_powerup(phy, hdmi->pixclock); hdmi 164 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c msm_hdmi_set_mode(hdmi, true); hdmi 166 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c if (hdmi->hdcp_ctrl) hdmi 167 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c msm_hdmi_hdcp_on(hdmi->hdcp_ctrl); hdmi 181 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c struct hdmi *hdmi = hdmi_bridge->hdmi; hdmi 182 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c struct hdmi_phy *phy = hdmi->phy; hdmi 184 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c if (hdmi->hdcp_ctrl) hdmi 185 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c msm_hdmi_hdcp_off(hdmi->hdcp_ctrl); hdmi 188 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c msm_hdmi_set_mode(hdmi, false); hdmi 192 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c if (hdmi->power_on) { hdmi 194 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c hdmi->power_on = false; hdmi 195 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c if (hdmi->hdmi_mode) hdmi 196 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c msm_hdmi_audio_update(hdmi); hdmi 206 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c struct hdmi *hdmi = hdmi_bridge->hdmi; hdmi 212 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c hdmi->pixclock = mode->clock * 1000; hdmi 223 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c hdmi_write(hdmi, REG_HDMI_TOTAL, hdmi 227 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c hdmi_write(hdmi, REG_HDMI_ACTIVE_HSYNC, hdmi 230 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c hdmi_write(hdmi, REG_HDMI_ACTIVE_VSYNC, hdmi 235 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c hdmi_write(hdmi, REG_HDMI_VSYNC_TOTAL_F2, hdmi 237 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c hdmi_write(hdmi, REG_HDMI_VSYNC_ACTIVE_F2, hdmi 241 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c hdmi_write(hdmi, REG_HDMI_VSYNC_TOTAL_F2, hdmi 243 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c hdmi_write(hdmi, REG_HDMI_VSYNC_ACTIVE_F2, hdmi 256 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c hdmi_write(hdmi, REG_HDMI_FRAME_CTRL, frame_ctrl); hdmi 258 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c if (hdmi->hdmi_mode) hdmi 259 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c msm_hdmi_audio_update(hdmi); hdmi 272 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c struct drm_bridge *msm_hdmi_bridge_init(struct hdmi *hdmi) hdmi 278 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c hdmi_bridge = devm_kzalloc(hdmi->dev->dev, hdmi 285 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c hdmi_bridge->hdmi = hdmi; hdmi 290 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c ret = drm_bridge_attach(hdmi->encoder, bridge, NULL); hdmi 16 drivers/gpu/drm/msm/hdmi/hdmi_connector.c struct hdmi *hdmi; hdmi 21 drivers/gpu/drm/msm/hdmi/hdmi_connector.c static void msm_hdmi_phy_reset(struct hdmi *hdmi) hdmi 25 drivers/gpu/drm/msm/hdmi/hdmi_connector.c val = hdmi_read(hdmi, REG_HDMI_PHY_CTRL); hdmi 29 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hdmi_write(hdmi, REG_HDMI_PHY_CTRL, hdmi 33 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hdmi_write(hdmi, REG_HDMI_PHY_CTRL, hdmi 39 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hdmi_write(hdmi, REG_HDMI_PHY_CTRL, hdmi 43 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hdmi_write(hdmi, REG_HDMI_PHY_CTRL, hdmi 51 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hdmi_write(hdmi, REG_HDMI_PHY_CTRL, hdmi 55 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hdmi_write(hdmi, REG_HDMI_PHY_CTRL, hdmi 61 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hdmi_write(hdmi, REG_HDMI_PHY_CTRL, hdmi 65 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hdmi_write(hdmi, REG_HDMI_PHY_CTRL, hdmi 70 drivers/gpu/drm/msm/hdmi/hdmi_connector.c static int gpio_config(struct hdmi *hdmi, bool on) hdmi 72 drivers/gpu/drm/msm/hdmi/hdmi_connector.c const struct hdmi_platform_config *config = hdmi->config; hdmi 112 drivers/gpu/drm/msm/hdmi/hdmi_connector.c static void enable_hpd_clocks(struct hdmi *hdmi, bool enable) hdmi 114 drivers/gpu/drm/msm/hdmi/hdmi_connector.c const struct hdmi_platform_config *config = hdmi->config; hdmi 115 drivers/gpu/drm/msm/hdmi/hdmi_connector.c struct device *dev = &hdmi->pdev->dev; hdmi 121 drivers/gpu/drm/msm/hdmi/hdmi_connector.c ret = clk_set_rate(hdmi->hpd_clks[i], hdmi 129 drivers/gpu/drm/msm/hdmi/hdmi_connector.c ret = clk_prepare_enable(hdmi->hpd_clks[i]); hdmi 138 drivers/gpu/drm/msm/hdmi/hdmi_connector.c clk_disable_unprepare(hdmi->hpd_clks[i]); hdmi 145 drivers/gpu/drm/msm/hdmi/hdmi_connector.c struct hdmi *hdmi = hdmi_connector->hdmi; hdmi 146 drivers/gpu/drm/msm/hdmi/hdmi_connector.c const struct hdmi_platform_config *config = hdmi->config; hdmi 147 drivers/gpu/drm/msm/hdmi/hdmi_connector.c struct device *dev = &hdmi->pdev->dev; hdmi 153 drivers/gpu/drm/msm/hdmi/hdmi_connector.c ret = regulator_enable(hdmi->hpd_regs[i]); hdmi 167 drivers/gpu/drm/msm/hdmi/hdmi_connector.c ret = gpio_config(hdmi, true); hdmi 174 drivers/gpu/drm/msm/hdmi/hdmi_connector.c enable_hpd_clocks(hdmi, true); hdmi 176 drivers/gpu/drm/msm/hdmi/hdmi_connector.c msm_hdmi_set_mode(hdmi, false); hdmi 177 drivers/gpu/drm/msm/hdmi/hdmi_connector.c msm_hdmi_phy_reset(hdmi); hdmi 178 drivers/gpu/drm/msm/hdmi/hdmi_connector.c msm_hdmi_set_mode(hdmi, true); hdmi 180 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hdmi_write(hdmi, REG_HDMI_USEC_REFTIMER, 0x0001001b); hdmi 183 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hdmi_write(hdmi, REG_HDMI_HPD_INT_CTRL, hdmi 188 drivers/gpu/drm/msm/hdmi/hdmi_connector.c spin_lock_irqsave(&hdmi->reg_lock, flags); hdmi 189 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hpd_ctrl = hdmi_read(hdmi, REG_HDMI_HPD_CTRL); hdmi 193 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hdmi_write(hdmi, REG_HDMI_HPD_CTRL, hdmi 195 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hdmi_write(hdmi, REG_HDMI_HPD_CTRL, hdmi 197 drivers/gpu/drm/msm/hdmi/hdmi_connector.c spin_unlock_irqrestore(&hdmi->reg_lock, flags); hdmi 207 drivers/gpu/drm/msm/hdmi/hdmi_connector.c struct hdmi *hdmi = hdmi_connector->hdmi; hdmi 208 drivers/gpu/drm/msm/hdmi/hdmi_connector.c const struct hdmi_platform_config *config = hdmi->config; hdmi 209 drivers/gpu/drm/msm/hdmi/hdmi_connector.c struct device *dev = &hdmi->pdev->dev; hdmi 213 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hdmi_write(hdmi, REG_HDMI_HPD_INT_CTRL, 0); hdmi 215 drivers/gpu/drm/msm/hdmi/hdmi_connector.c msm_hdmi_set_mode(hdmi, false); hdmi 217 drivers/gpu/drm/msm/hdmi/hdmi_connector.c enable_hpd_clocks(hdmi, false); hdmi 220 drivers/gpu/drm/msm/hdmi/hdmi_connector.c ret = gpio_config(hdmi, false); hdmi 229 drivers/gpu/drm/msm/hdmi/hdmi_connector.c ret = regulator_disable(hdmi->hpd_regs[i]); hdmi 248 drivers/gpu/drm/msm/hdmi/hdmi_connector.c struct hdmi *hdmi = hdmi_connector->hdmi; hdmi 252 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hpd_int_status = hdmi_read(hdmi, REG_HDMI_HPD_INT_STATUS); hdmi 253 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hpd_int_ctrl = hdmi_read(hdmi, REG_HDMI_HPD_INT_CTRL); hdmi 260 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hdmi_write(hdmi, REG_HDMI_HPD_INT_CTRL, hdmi 269 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hdmi_write(hdmi, REG_HDMI_HPD_INT_CTRL, hpd_int_ctrl); hdmi 271 drivers/gpu/drm/msm/hdmi/hdmi_connector.c queue_work(hdmi->workq, &hdmi_connector->hpd_work); hdmi 275 drivers/gpu/drm/msm/hdmi/hdmi_connector.c static enum drm_connector_status detect_reg(struct hdmi *hdmi) hdmi 279 drivers/gpu/drm/msm/hdmi/hdmi_connector.c pm_runtime_get_sync(&hdmi->pdev->dev); hdmi 280 drivers/gpu/drm/msm/hdmi/hdmi_connector.c enable_hpd_clocks(hdmi, true); hdmi 282 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hpd_int_status = hdmi_read(hdmi, REG_HDMI_HPD_INT_STATUS); hdmi 284 drivers/gpu/drm/msm/hdmi/hdmi_connector.c enable_hpd_clocks(hdmi, false); hdmi 285 drivers/gpu/drm/msm/hdmi/hdmi_connector.c pm_runtime_put_autosuspend(&hdmi->pdev->dev); hdmi 292 drivers/gpu/drm/msm/hdmi/hdmi_connector.c static enum drm_connector_status detect_gpio(struct hdmi *hdmi) hdmi 294 drivers/gpu/drm/msm/hdmi/hdmi_connector.c const struct hdmi_platform_config *config = hdmi->config; hdmi 306 drivers/gpu/drm/msm/hdmi/hdmi_connector.c struct hdmi *hdmi = hdmi_connector->hdmi; hdmi 307 drivers/gpu/drm/msm/hdmi/hdmi_connector.c const struct hdmi_platform_config *config = hdmi->config; hdmi 317 drivers/gpu/drm/msm/hdmi/hdmi_connector.c return detect_reg(hdmi); hdmi 320 drivers/gpu/drm/msm/hdmi/hdmi_connector.c stat_gpio = detect_gpio(hdmi); hdmi 321 drivers/gpu/drm/msm/hdmi/hdmi_connector.c stat_reg = detect_reg(hdmi); hdmi 355 drivers/gpu/drm/msm/hdmi/hdmi_connector.c struct hdmi *hdmi = hdmi_connector->hdmi; hdmi 360 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hdmi_ctrl = hdmi_read(hdmi, REG_HDMI_CTRL); hdmi 361 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hdmi_write(hdmi, REG_HDMI_CTRL, hdmi_ctrl | HDMI_CTRL_ENABLE); hdmi 363 drivers/gpu/drm/msm/hdmi/hdmi_connector.c edid = drm_get_edid(connector, hdmi->i2c); hdmi 365 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hdmi_write(hdmi, REG_HDMI_CTRL, hdmi_ctrl); hdmi 367 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hdmi->hdmi_mode = drm_detect_hdmi_monitor(edid); hdmi 382 drivers/gpu/drm/msm/hdmi/hdmi_connector.c struct hdmi *hdmi = hdmi_connector->hdmi; hdmi 383 drivers/gpu/drm/msm/hdmi/hdmi_connector.c const struct hdmi_platform_config *config = hdmi->config; hdmi 390 drivers/gpu/drm/msm/hdmi/hdmi_connector.c requested, hdmi_connector->hdmi->encoder); hdmi 397 drivers/gpu/drm/msm/hdmi/hdmi_connector.c actual = clk_round_rate(hdmi->pwr_clks[0], actual); hdmi 422 drivers/gpu/drm/msm/hdmi/hdmi_connector.c struct drm_connector *msm_hdmi_connector_init(struct hdmi *hdmi) hdmi 431 drivers/gpu/drm/msm/hdmi/hdmi_connector.c hdmi_connector->hdmi = hdmi; hdmi 436 drivers/gpu/drm/msm/hdmi/hdmi_connector.c drm_connector_init(hdmi->dev, connector, &hdmi_connector_funcs, hdmi 446 drivers/gpu/drm/msm/hdmi/hdmi_connector.c drm_connector_attach_encoder(connector, hdmi->encoder); hdmi 49 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi; hdmi 78 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static int msm_hdmi_ddc_read(struct hdmi *hdmi, u16 addr, u8 offset, hdmi 99 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = i2c_transfer(hdmi->i2c, msgs, 2); hdmi 116 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static int msm_hdmi_ddc_write(struct hdmi *hdmi, u16 addr, u8 offset, hdmi 141 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = i2c_transfer(hdmi->i2c, msgs, 1); hdmi 159 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 167 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c phy_addr = (u32)hdmi->mmio_phy_addr; hdmi 190 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, preg[i], pdata[i]); hdmi 198 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 202 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_lock_irqsave(&hdmi->reg_lock, flags); hdmi 203 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_HDCP_INT_CTRL); hdmi 206 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_unlock_irqrestore(&hdmi->reg_lock, flags); hdmi 214 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_INT_CTRL, reg_val); hdmi 215 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_unlock_irqrestore(&hdmi->reg_lock, flags); hdmi 228 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_HDCP_LINK0_STATUS); hdmi 232 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c queue_work(hdmi->workq, &hdcp_ctrl->hdcp_reauth_work); hdmi 260 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 263 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->aksv_lsb = hdmi_qfprom_read(hdmi, HDCP_KSV_LSB); hdmi 264 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->aksv_msb = hdmi_qfprom_read(hdmi, HDCP_KSV_MSB); hdmi 283 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 288 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_HDCP_DDC_STATUS); hdmi 305 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_DDC_CTRL_0, hdmi 309 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_HDCP_DDC_CTRL_1); hdmi 311 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_DDC_CTRL_1, reg_val); hdmi 314 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_HDCP_DDC_STATUS); hdmi 320 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_DDC_CTRL_0, 0); hdmi 325 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_read(hdmi, REG_HDMI_DDC_SW_STATUS)); hdmi 327 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_DDC_CTRL); hdmi 329 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_DDC_CTRL, reg_val); hdmi 333 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_DDC_CTRL); hdmi 335 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_DDC_CTRL, reg_val); hdmi 338 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_DDC_CTRL); hdmi 340 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_DDC_CTRL, reg_val); hdmi 346 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_DDC_CTRL); hdmi 348 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_DDC_CTRL, reg_val); hdmi 350 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_read(hdmi, REG_HDMI_DDC_SW_STATUS)); hdmi 363 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 365 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c if (hdmi_read(hdmi, REG_HDMI_DDC_HW_STATUS) == 0) hdmi 371 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ddc_status = hdmi_read(hdmi, REG_HDMI_HDCP_DDC_STATUS); hdmi 372 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c ddc_hw_status = hdmi_read(hdmi, REG_HDMI_DDC_HW_STATUS); hdmi 400 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 411 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_lock_irqsave(&hdmi->reg_lock, flags); hdmi 412 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_HPD_CTRL); hdmi 414 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HPD_CTRL, reg_val); hdmi 417 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_INT_CTRL, 0); hdmi 418 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_unlock_irqrestore(&hdmi->reg_lock, flags); hdmi 420 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_RESET, hdmi 430 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_CTRL, 0); hdmi 433 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_lock_irqsave(&hdmi->reg_lock, flags); hdmi 434 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_HPD_CTRL); hdmi 436 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HPD_CTRL, reg_val); hdmi 437 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_unlock_irqrestore(&hdmi->reg_lock, flags); hdmi 452 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c queue_work(hdmi->workq, &hdcp_ctrl->hdcp_auth_work); hdmi 457 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 473 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_lock_irqsave(&hdmi->reg_lock, flags); hdmi 475 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_CTRL); hdmi 477 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_CTRL, reg_val); hdmi 480 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_DDC_ARBITRATION); hdmi 482 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_DDC_ARBITRATION, reg_val); hdmi 483 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_unlock_irqrestore(&hdmi->reg_lock, flags); hdmi 490 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_SW_LOWER_AKSV, hdcp_ctrl->aksv_lsb); hdmi 491 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_SW_UPPER_AKSV, hdcp_ctrl->aksv_msb); hdmi 497 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_ENTROPY_CTRL0, 0xB1FFB0FF); hdmi 498 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_ENTROPY_CTRL1, 0xF00DFACE); hdmi 501 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_HDCP_DEBUG_CTRL); hdmi 503 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_DEBUG_CTRL, reg_val); hdmi 505 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_read(hdmi, REG_HDMI_HDCP_DEBUG_CTRL)); hdmi 518 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_CTRL, HDMI_HDCP_CTRL_ENABLE); hdmi 524 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c link0_status = hdmi_read(hdmi, REG_HDMI_HDCP_LINK0_STATUS); hdmi 539 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 545 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_lock_irqsave(&hdmi->reg_lock, flags); hdmi 546 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_CTRL); hdmi 548 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_CTRL, reg_val); hdmi 549 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_unlock_irqrestore(&hdmi->reg_lock, flags); hdmi 552 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c queue_work(hdmi->workq, &hdcp_ctrl->hdcp_reauth_work); hdmi 557 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 565 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_lock_irqsave(&hdmi->reg_lock, flags); hdmi 566 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_DDC_ARBITRATION); hdmi 568 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_DDC_ARBITRATION, reg_val); hdmi 569 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_unlock_irqrestore(&hdmi->reg_lock, flags); hdmi 572 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_lock_irqsave(&hdmi->reg_lock, flags); hdmi 573 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_CTRL); hdmi 575 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_CTRL, reg_val); hdmi 576 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_unlock_irqrestore(&hdmi->reg_lock, flags); hdmi 593 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 601 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c link0_status = hdmi_read(hdmi, REG_HDMI_HDCP_LINK0_STATUS); hdmi 622 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c link0_status = hdmi_read(hdmi, REG_HDMI_HDCP_LINK0_STATUS); hdmi 648 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 654 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c link0_an[0] = hdmi_read(hdmi, REG_HDMI_HDCP_RCVPORT_DATA5); hdmi 655 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c link0_an[1] = hdmi_read(hdmi, REG_HDMI_HDCP_RCVPORT_DATA6); hdmi 658 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c link0_aksv_0 = hdmi_read(hdmi, REG_HDMI_HDCP_RCVPORT_DATA3); hdmi 659 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c link0_aksv_1 = hdmi_read(hdmi, REG_HDMI_HDCP_RCVPORT_DATA4); hdmi 670 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_ddc_write(hdmi, HDCP_PORT_ADDR, 0x18, (u8 *)link0_an, hdmi 679 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_ddc_write(hdmi, HDCP_PORT_ADDR, 0x10, aksv, 5); hdmi 692 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 697 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_ddc_read(hdmi, HDCP_PORT_ADDR, 0x00, bksv, 5); hdmi 730 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 734 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_ddc_read(hdmi, HDCP_PORT_ADDR, 0x40, &bcaps, 1); hdmi 754 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 776 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_RCVPORT_DATA4, 0); hdmi 793 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_lock_irqsave(&hdmi->reg_lock, flags); hdmi 794 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_INT_CTRL, hdmi 800 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_unlock_irqrestore(&hdmi->reg_lock, flags); hdmi 808 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 821 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_ddc_read(hdmi, HDCP_PORT_ADDR, 0x08, buf, 2); hdmi 829 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_RCVPORT_DATA2_0, hdmi 838 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 849 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c link0_status = hdmi_read(hdmi, REG_HDMI_HDCP_LINK0_STATUS); hdmi 856 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_CTRL, hdmi 867 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 874 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_ddc_read(hdmi, HDCP_PORT_ADDR, 0x41, buf, 2); hdmi 934 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 947 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_ddc_read(hdmi, HDCP_PORT_ADDR, 0x40, &bcaps, 1); hdmi 993 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 1010 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_ddc_read(hdmi, HDCP_PORT_ADDR, hdmi 1030 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 1035 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_ddc_read(hdmi, HDCP_PORT_ADDR, 0x43, hdmi 1117 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 1127 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_HDCP_SHA_STATUS); hdmi 1211 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 1216 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c link0_status = hdmi_read(hdmi, REG_HDMI_HDCP_LINK0_STATUS); hdmi 1306 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 1317 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_lock_irqsave(&hdmi->reg_lock, flags); hdmi 1318 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_CTRL); hdmi 1320 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_CTRL, reg_val); hdmi 1321 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_unlock_irqrestore(&hdmi->reg_lock, flags); hdmi 1326 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c queue_work(hdmi->workq, &hdcp_ctrl->hdcp_auth_work); hdmi 1331 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdmi 1347 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_lock_irqsave(&hdmi->reg_lock, flags); hdmi 1348 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_HPD_CTRL); hdmi 1350 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HPD_CTRL, reg_val); hdmi 1357 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_INT_CTRL, 0); hdmi 1358 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_unlock_irqrestore(&hdmi->reg_lock, flags); hdmi 1371 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_RESET, hdmi 1375 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_CTRL, 0); hdmi 1377 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_lock_irqsave(&hdmi->reg_lock, flags); hdmi 1378 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_CTRL); hdmi 1380 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_CTRL, reg_val); hdmi 1383 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c reg_val = hdmi_read(hdmi, REG_HDMI_HPD_CTRL); hdmi 1385 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HPD_CTRL, reg_val); hdmi 1386 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c spin_unlock_irqrestore(&hdmi->reg_lock, flags); hdmi 1393 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi_hdcp_ctrl *msm_hdmi_hdcp_init(struct hdmi *hdmi) hdmi 1397 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c if (!hdmi->qfprom_mmio) { hdmi 1410 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->hdmi = hdmi; hdmi 1422 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c void msm_hdmi_hdcp_destroy(struct hdmi *hdmi) hdmi 1424 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c if (hdmi) { hdmi 1425 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c kfree(hdmi->hdcp_ctrl); hdmi 1426 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi->hdcp_ctrl = NULL; hdmi 11 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c struct hdmi *hdmi; hdmi 19 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c struct hdmi *hdmi = hdmi_i2c->hdmi; hdmi 21 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c hdmi_write(hdmi, REG_HDMI_DDC_CTRL, hdmi 23 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c hdmi_write(hdmi, REG_HDMI_DDC_CTRL, hdmi 26 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c hdmi_write(hdmi, REG_HDMI_DDC_SPEED, hdmi 30 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c hdmi_write(hdmi, REG_HDMI_DDC_SETUP, hdmi 34 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c hdmi_write(hdmi, REG_HDMI_DDC_REF, hdmi 41 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c struct hdmi *hdmi = hdmi_i2c->hdmi; hdmi 42 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c struct drm_device *dev = hdmi->dev; hdmi 49 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c hdmi_write(hdmi, REG_HDMI_DDC_INT_CTRL, hdmi 53 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c ddc_int_ctrl = hdmi_read(hdmi, REG_HDMI_DDC_INT_CTRL); hdmi 71 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c struct hdmi *hdmi = hdmi_i2c->hdmi; hdmi 76 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c ddc_int_ctrl = hdmi_read(hdmi, REG_HDMI_DDC_INT_CTRL); hdmi 81 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c hdmi_write(hdmi, REG_HDMI_DDC_INT_CTRL, hdmi 93 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c struct hdmi *hdmi = hdmi_i2c->hdmi; hdmi 94 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c struct drm_device *dev = hdmi->dev; hdmi 105 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c WARN_ON(!(hdmi_read(hdmi, REG_HDMI_CTRL) & HDMI_CTRL_ENABLE)); hdmi 131 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c hdmi_write(hdmi, REG_HDMI_DDC_DATA, ddc_data); hdmi 142 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c hdmi_write(hdmi, REG_HDMI_DDC_DATA, ddc_data); hdmi 155 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c hdmi_write(hdmi, REG_HDMI_I2C_TRANSACTION(i), i2c_trans); hdmi 159 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c hdmi_write(hdmi, REG_HDMI_DDC_CTRL, hdmi 169 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c hdmi_read(hdmi, REG_HDMI_DDC_SW_STATUS), hdmi 170 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c hdmi_read(hdmi, REG_HDMI_DDC_HW_STATUS), hdmi 171 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c hdmi_read(hdmi, REG_HDMI_DDC_INT_CTRL)); hdmi 175 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c ddc_status = hdmi_read(hdmi, REG_HDMI_DDC_SW_STATUS); hdmi 194 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c hdmi_write(hdmi, REG_HDMI_DDC_DATA, ddc_data); hdmi 197 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c hdmi_read(hdmi, REG_HDMI_DDC_DATA); hdmi 200 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c ddc_data = hdmi_read(hdmi, REG_HDMI_DDC_DATA); hdmi 233 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c struct i2c_adapter *msm_hdmi_i2c_init(struct hdmi *hdmi) hdmi 247 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c hdmi_i2c->hdmi = hdmi; hdmi 254 drivers/gpu/drm/msm/hdmi/hdmi_i2c.c i2c->dev.parent = &hdmi->pdev->dev; hdmi 151 drivers/gpu/drm/msm/msm_drv.h struct hdmi *hdmi; hdmi 345 drivers/gpu/drm/msm/msm_drv.h struct hdmi; hdmi 346 drivers/gpu/drm/msm/msm_drv.h int msm_hdmi_modeset_init(struct hdmi *hdmi, struct drm_device *dev, hdmi 575 drivers/gpu/drm/nouveau/dispnv50/disp.c struct drm_hdmi_info *hdmi; hdmi 588 drivers/gpu/drm/nouveau/dispnv50/disp.c hdmi = &nv_connector->base.display_info.hdmi; hdmi 598 drivers/gpu/drm/nouveau/dispnv50/disp.c ret = drm_hdmi_vendor_infoframe_from_display_mode(&vendor_frame.vendor.hdmi, hdmi 614 drivers/gpu/drm/nouveau/dispnv50/disp.c if (hdmi->scdc.scrambling.supported) { hdmi 617 drivers/gpu/drm/nouveau/dispnv50/disp.c hdmi->scdc.scrambling.low_rates; hdmi 635 drivers/gpu/drm/nouveau/dispnv50/disp.c if (!hdmi->scdc.scrambling.supported) hdmi 1010 drivers/gpu/drm/nouveau/nouveau_connector.c info->hdmi.scdc.scrambling.supported ? hdmi 35 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c const u32 hdmi = head * 0x400; hdmi 44 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c nvkm_mask(device, 0x690100 + hdmi, 0x00000001, 0x00000000); hdmi 45 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c nvkm_mask(device, 0x6900c0 + hdmi, 0x00000001, 0x00000000); hdmi 46 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c nvkm_mask(device, 0x690000 + hdmi, 0x00000001, 0x00000000); hdmi 51 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c nvkm_mask(device, 0x690000 + hdmi, 0x00000001, 0x00000000); hdmi 53 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c nvkm_wr32(device, 0x690008 + hdmi, avi_infoframe.header); hdmi 54 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c nvkm_wr32(device, 0x69000c + hdmi, avi_infoframe.subpack0_low); hdmi 55 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c nvkm_wr32(device, 0x690010 + hdmi, avi_infoframe.subpack0_high); hdmi 56 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c nvkm_wr32(device, 0x690014 + hdmi, avi_infoframe.subpack1_low); hdmi 57 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c nvkm_wr32(device, 0x690018 + hdmi, avi_infoframe.subpack1_high); hdmi 58 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c nvkm_mask(device, 0x690000 + hdmi, 0x00000001, 0x00000001); hdmi 62 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c nvkm_mask(device, 0x690100 + hdmi, 0x00010001, 0x00000000); hdmi 64 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c nvkm_wr32(device, 0x690108 + hdmi, vendor_infoframe.header); hdmi 65 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c nvkm_wr32(device, 0x69010c + hdmi, vendor_infoframe.subpack0_low); hdmi 66 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c nvkm_wr32(device, 0x690110 + hdmi, vendor_infoframe.subpack0_high); hdmi 68 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c nvkm_mask(device, 0x690100 + hdmi, 0x00000001, 0x00000001); hdmi 73 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c nvkm_mask(device, 0x6900c0 + hdmi, 0x00000001, 0x00000000); hdmi 74 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c nvkm_wr32(device, 0x6900cc + hdmi, 0x00000010); hdmi 75 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c nvkm_mask(device, 0x6900c0 + hdmi, 0x00000001, 0x00000001); hdmi 78 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c nvkm_wr32(device, 0x690080 + hdmi, 0x82000000); hdmi 33 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c const u32 hdmi = head * 0x400; hdmi 42 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_mask(device, 0x6f0100 + hdmi, 0x00000001, 0x00000000); hdmi 43 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_mask(device, 0x6f00c0 + hdmi, 0x00000001, 0x00000000); hdmi 44 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_mask(device, 0x6f0000 + hdmi, 0x00000001, 0x00000000); hdmi 49 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_mask(device, 0x6f0000 + hdmi, 0x00000001, 0x00000000); hdmi 51 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_wr32(device, 0x6f0008 + hdmi, avi_infoframe.header); hdmi 52 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_wr32(device, 0x6f000c + hdmi, avi_infoframe.subpack0_low); hdmi 53 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_wr32(device, 0x6f0010 + hdmi, avi_infoframe.subpack0_high); hdmi 54 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_wr32(device, 0x6f0014 + hdmi, avi_infoframe.subpack1_low); hdmi 55 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_wr32(device, 0x6f0018 + hdmi, avi_infoframe.subpack1_high); hdmi 56 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_mask(device, 0x6f0000 + hdmi, 0x00000001, 0x00000001); hdmi 60 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_mask(device, 0x6f0100 + hdmi, 0x00010001, 0x00000000); hdmi 62 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_wr32(device, 0x6f0108 + hdmi, vendor_infoframe.header); hdmi 63 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_wr32(device, 0x6f010c + hdmi, vendor_infoframe.subpack0_low); hdmi 64 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_wr32(device, 0x6f0110 + hdmi, vendor_infoframe.subpack0_high); hdmi 65 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_wr32(device, 0x6f0110 + hdmi, 0x00000000); hdmi 66 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_wr32(device, 0x6f0114 + hdmi, 0x00000000); hdmi 67 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_wr32(device, 0x6f0118 + hdmi, 0x00000000); hdmi 68 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_wr32(device, 0x6f011c + hdmi, 0x00000000); hdmi 69 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_wr32(device, 0x6f0120 + hdmi, 0x00000000); hdmi 70 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_wr32(device, 0x6f0124 + hdmi, 0x00000000); hdmi 71 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_mask(device, 0x6f0100 + hdmi, 0x00000001, 0x00000001); hdmi 76 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_mask(device, 0x6f00c0 + hdmi, 0x00000001, 0x00000000); hdmi 77 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_wr32(device, 0x6f00cc + hdmi, 0x00000010); hdmi 78 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_mask(device, 0x6f00c0 + hdmi, 0x00000001, 0x00000001); hdmi 81 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c nvkm_wr32(device, 0x6f0080 + hdmi, 0x82000000); hdmi 70 drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h } hdmi; hdmi 199 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c if (!outp->ior->func->hdmi.ctrl) hdmi 202 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c outp->ior->func->hdmi.ctrl(outp->ior, hidx, args->v0.state, hdmi 207 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c if (outp->ior->func->hdmi.scdc) hdmi 208 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c outp->ior->func->hdmi.scdc( hdmi 29 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorg84.c .hdmi = { hdmi 163 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c .hdmi = { hdmi 29 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgk104.c .hdmi = { hdmi 43 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c .hdmi = { hdmi 100 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c .hdmi = { hdmi 45 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgt215.c .hdmi = { hdmi 89 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c .hdmi = { hdmi 29 drivers/gpu/drm/nouveau/nvkm/engine/disp/sormcp77.c .hdmi = { hdmi 29 drivers/gpu/drm/nouveau/nvkm/engine/disp/sormcp89.c .hdmi = { hdmi 73 drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c .hdmi = { hdmi 37 drivers/gpu/drm/omapdrm/dss/hdmi4.c static int hdmi_runtime_get(struct omap_hdmi *hdmi) hdmi 43 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = pm_runtime_get_sync(&hdmi->pdev->dev); hdmi 51 drivers/gpu/drm/omapdrm/dss/hdmi4.c static void hdmi_runtime_put(struct omap_hdmi *hdmi) hdmi 57 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = pm_runtime_put_sync(&hdmi->pdev->dev); hdmi 63 drivers/gpu/drm/omapdrm/dss/hdmi4.c struct omap_hdmi *hdmi = data; hdmi 64 drivers/gpu/drm/omapdrm/dss/hdmi4.c struct hdmi_wp_data *wp = &hdmi->wp; hdmi 90 drivers/gpu/drm/omapdrm/dss/hdmi4.c u32 intr4 = hdmi_read_reg(hdmi->core.base, HDMI_CORE_SYS_INTR4); hdmi 92 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi_write_reg(hdmi->core.base, HDMI_CORE_SYS_INTR4, intr4); hdmi 94 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi4_cec_irq(&hdmi->core); hdmi 100 drivers/gpu/drm/omapdrm/dss/hdmi4.c static int hdmi_power_on_core(struct omap_hdmi *hdmi) hdmi 104 drivers/gpu/drm/omapdrm/dss/hdmi4.c if (hdmi->core.core_pwr_cnt++) hdmi 107 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = regulator_enable(hdmi->vdda_reg); hdmi 111 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = hdmi_runtime_get(hdmi); hdmi 115 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi4_core_powerdown_disable(&hdmi->core); hdmi 118 drivers/gpu/drm/omapdrm/dss/hdmi4.c dss_select_hdmi_venc_clk_source(hdmi->dss, DSS_HDMI_M_PCLK); hdmi 120 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi->core_enabled = true; hdmi 125 drivers/gpu/drm/omapdrm/dss/hdmi4.c regulator_disable(hdmi->vdda_reg); hdmi 127 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi->core.core_pwr_cnt--; hdmi 132 drivers/gpu/drm/omapdrm/dss/hdmi4.c static void hdmi_power_off_core(struct omap_hdmi *hdmi) hdmi 134 drivers/gpu/drm/omapdrm/dss/hdmi4.c if (--hdmi->core.core_pwr_cnt) hdmi 137 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi->core_enabled = false; hdmi 139 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi_runtime_put(hdmi); hdmi 140 drivers/gpu/drm/omapdrm/dss/hdmi4.c regulator_disable(hdmi->vdda_reg); hdmi 143 drivers/gpu/drm/omapdrm/dss/hdmi4.c static int hdmi_power_on_full(struct omap_hdmi *hdmi) hdmi 147 drivers/gpu/drm/omapdrm/dss/hdmi4.c struct hdmi_wp_data *wp = &hdmi->wp; hdmi 151 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = hdmi_power_on_core(hdmi); hdmi 159 drivers/gpu/drm/omapdrm/dss/hdmi4.c vm = &hdmi->cfg.vm; hdmi 171 drivers/gpu/drm/omapdrm/dss/hdmi4.c dss_pll_calc_b(&hdmi->pll.pll, clk_get_rate(hdmi->pll.pll.clkin), hdmi 174 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = dss_pll_enable(&hdmi->pll.pll); hdmi 180 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = dss_pll_set_config(&hdmi->pll.pll, &hdmi_cinfo); hdmi 186 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = hdmi_phy_configure(&hdmi->phy, hdmi_cinfo.clkdco, hdmi 197 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi4_configure(&hdmi->core, &hdmi->wp, &hdmi->cfg); hdmi 199 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = dss_mgr_enable(&hdmi->output); hdmi 203 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = hdmi_wp_video_start(&hdmi->wp); hdmi 213 drivers/gpu/drm/omapdrm/dss/hdmi4.c dss_mgr_disable(&hdmi->output); hdmi 215 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi_wp_set_phy_pwr(&hdmi->wp, HDMI_PHYPWRCMD_OFF); hdmi 219 drivers/gpu/drm/omapdrm/dss/hdmi4.c dss_pll_disable(&hdmi->pll.pll); hdmi 221 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi_power_off_core(hdmi); hdmi 225 drivers/gpu/drm/omapdrm/dss/hdmi4.c static void hdmi_power_off_full(struct omap_hdmi *hdmi) hdmi 227 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi_wp_clear_irqenable(&hdmi->wp, ~HDMI_IRQ_CORE); hdmi 229 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi_wp_video_stop(&hdmi->wp); hdmi 231 drivers/gpu/drm/omapdrm/dss/hdmi4.c dss_mgr_disable(&hdmi->output); hdmi 233 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi_wp_set_phy_pwr(&hdmi->wp, HDMI_PHYPWRCMD_OFF); hdmi 235 drivers/gpu/drm/omapdrm/dss/hdmi4.c dss_pll_disable(&hdmi->pll.pll); hdmi 237 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi_power_off_core(hdmi); hdmi 243 drivers/gpu/drm/omapdrm/dss/hdmi4.c struct omap_hdmi *hdmi = dssdev_to_hdmi(dssdev); hdmi 245 drivers/gpu/drm/omapdrm/dss/hdmi4.c mutex_lock(&hdmi->lock); hdmi 247 drivers/gpu/drm/omapdrm/dss/hdmi4.c drm_display_mode_to_videomode(mode, &hdmi->cfg.vm); hdmi 249 drivers/gpu/drm/omapdrm/dss/hdmi4.c dispc_set_tv_pclk(hdmi->dss->dispc, mode->clock * 1000); hdmi 251 drivers/gpu/drm/omapdrm/dss/hdmi4.c mutex_unlock(&hdmi->lock); hdmi 256 drivers/gpu/drm/omapdrm/dss/hdmi4.c struct omap_hdmi *hdmi = s->private; hdmi 258 drivers/gpu/drm/omapdrm/dss/hdmi4.c mutex_lock(&hdmi->lock); hdmi 260 drivers/gpu/drm/omapdrm/dss/hdmi4.c if (hdmi_runtime_get(hdmi)) { hdmi 261 drivers/gpu/drm/omapdrm/dss/hdmi4.c mutex_unlock(&hdmi->lock); hdmi 265 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi_wp_dump(&hdmi->wp, s); hdmi 266 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi_pll_dump(&hdmi->pll, s); hdmi 267 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi_phy_dump(&hdmi->phy, s); hdmi 268 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi4_core_dump(&hdmi->core, s); hdmi 270 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi_runtime_put(hdmi); hdmi 271 drivers/gpu/drm/omapdrm/dss/hdmi4.c mutex_unlock(&hdmi->lock); hdmi 275 drivers/gpu/drm/omapdrm/dss/hdmi4.c static int read_edid(struct omap_hdmi *hdmi, u8 *buf, int len) hdmi 279 drivers/gpu/drm/omapdrm/dss/hdmi4.c mutex_lock(&hdmi->lock); hdmi 281 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = hdmi_runtime_get(hdmi); hdmi 284 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = hdmi4_read_edid(&hdmi->core, buf, len); hdmi 286 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi_runtime_put(hdmi); hdmi 287 drivers/gpu/drm/omapdrm/dss/hdmi4.c mutex_unlock(&hdmi->lock); hdmi 306 drivers/gpu/drm/omapdrm/dss/hdmi4.c struct omap_hdmi *hdmi = dssdev_to_hdmi(dssdev); hdmi 312 drivers/gpu/drm/omapdrm/dss/hdmi4.c mutex_lock(&hdmi->lock); hdmi 314 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = hdmi_power_on_full(hdmi); hdmi 320 drivers/gpu/drm/omapdrm/dss/hdmi4.c if (hdmi->audio_configured) { hdmi 321 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = hdmi4_audio_config(&hdmi->core, &hdmi->wp, hdmi 322 drivers/gpu/drm/omapdrm/dss/hdmi4.c &hdmi->audio_config, hdmi 323 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi->cfg.vm.pixelclock); hdmi 326 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi->audio_abort_cb(&hdmi->pdev->dev); hdmi 327 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi->audio_configured = false; hdmi 331 drivers/gpu/drm/omapdrm/dss/hdmi4.c spin_lock_irqsave(&hdmi->audio_playing_lock, flags); hdmi 332 drivers/gpu/drm/omapdrm/dss/hdmi4.c if (hdmi->audio_configured && hdmi->audio_playing) hdmi 333 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi_start_audio_stream(hdmi); hdmi 334 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi->display_enabled = true; hdmi 335 drivers/gpu/drm/omapdrm/dss/hdmi4.c spin_unlock_irqrestore(&hdmi->audio_playing_lock, flags); hdmi 338 drivers/gpu/drm/omapdrm/dss/hdmi4.c mutex_unlock(&hdmi->lock); hdmi 343 drivers/gpu/drm/omapdrm/dss/hdmi4.c struct omap_hdmi *hdmi = dssdev_to_hdmi(dssdev); hdmi 348 drivers/gpu/drm/omapdrm/dss/hdmi4.c mutex_lock(&hdmi->lock); hdmi 350 drivers/gpu/drm/omapdrm/dss/hdmi4.c spin_lock_irqsave(&hdmi->audio_playing_lock, flags); hdmi 351 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi_stop_audio_stream(hdmi); hdmi 352 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi->display_enabled = false; hdmi 353 drivers/gpu/drm/omapdrm/dss/hdmi4.c spin_unlock_irqrestore(&hdmi->audio_playing_lock, flags); hdmi 355 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi_power_off_full(hdmi); hdmi 357 drivers/gpu/drm/omapdrm/dss/hdmi4.c mutex_unlock(&hdmi->lock); hdmi 362 drivers/gpu/drm/omapdrm/dss/hdmi4.c struct omap_hdmi *hdmi = container_of(core, struct omap_hdmi, core); hdmi 367 drivers/gpu/drm/omapdrm/dss/hdmi4.c mutex_lock(&hdmi->lock); hdmi 369 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = hdmi_power_on_core(hdmi); hdmi 375 drivers/gpu/drm/omapdrm/dss/hdmi4.c mutex_unlock(&hdmi->lock); hdmi 379 drivers/gpu/drm/omapdrm/dss/hdmi4.c mutex_unlock(&hdmi->lock); hdmi 385 drivers/gpu/drm/omapdrm/dss/hdmi4.c struct omap_hdmi *hdmi = container_of(core, struct omap_hdmi, core); hdmi 389 drivers/gpu/drm/omapdrm/dss/hdmi4.c mutex_lock(&hdmi->lock); hdmi 391 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi_power_off_core(hdmi); hdmi 393 drivers/gpu/drm/omapdrm/dss/hdmi4.c mutex_unlock(&hdmi->lock); hdmi 411 drivers/gpu/drm/omapdrm/dss/hdmi4.c struct omap_hdmi *hdmi = dssdev_to_hdmi(dssdev); hdmi 415 drivers/gpu/drm/omapdrm/dss/hdmi4.c need_enable = hdmi->core_enabled == false; hdmi 418 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = hdmi4_core_enable(&hdmi->core); hdmi 423 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = read_edid(hdmi, edid, len); hdmi 425 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi4_cec_set_phys_addr(&hdmi->core, hdmi 428 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi4_cec_set_phys_addr(&hdmi->core, CEC_PHYS_ADDR_INVALID); hdmi 430 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi4_core_disable(&hdmi->core); hdmi 437 drivers/gpu/drm/omapdrm/dss/hdmi4.c struct omap_hdmi *hdmi = dssdev_to_hdmi(dssdev); hdmi 439 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi4_cec_set_phys_addr(&hdmi->core, CEC_PHYS_ADDR_INVALID); hdmi 445 drivers/gpu/drm/omapdrm/dss/hdmi4.c struct omap_hdmi *hdmi = dssdev_to_hdmi(dssdev); hdmi 447 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi->cfg.infoframe = *avi; hdmi 454 drivers/gpu/drm/omapdrm/dss/hdmi4.c struct omap_hdmi *hdmi = dssdev_to_hdmi(dssdev); hdmi 456 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi->cfg.hdmi_dvi_mode = hdmi_mode ? HDMI_HDMI : HDMI_DVI; hdmi 471 drivers/gpu/drm/omapdrm/dss/hdmi4.c .hdmi = { hdmi 577 drivers/gpu/drm/omapdrm/dss/hdmi4.c static int hdmi_audio_register(struct omap_hdmi *hdmi) hdmi 580 drivers/gpu/drm/omapdrm/dss/hdmi4.c .dev = &hdmi->pdev->dev, hdmi 582 drivers/gpu/drm/omapdrm/dss/hdmi4.c .audio_dma_addr = hdmi_wp_get_audio_dma_addr(&hdmi->wp), hdmi 586 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi->audio_pdev = platform_device_register_data( hdmi 587 drivers/gpu/drm/omapdrm/dss/hdmi4.c &hdmi->pdev->dev, "omap-hdmi-audio", PLATFORM_DEVID_AUTO, hdmi 590 drivers/gpu/drm/omapdrm/dss/hdmi4.c if (IS_ERR(hdmi->audio_pdev)) hdmi 591 drivers/gpu/drm/omapdrm/dss/hdmi4.c return PTR_ERR(hdmi->audio_pdev); hdmi 603 drivers/gpu/drm/omapdrm/dss/hdmi4.c struct omap_hdmi *hdmi = dev_get_drvdata(dev); hdmi 606 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi->dss = dss; hdmi 608 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = hdmi_runtime_get(hdmi); hdmi 612 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = hdmi_pll_init(dss, hdmi->pdev, &hdmi->pll, &hdmi->wp); hdmi 616 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = hdmi4_cec_init(hdmi->pdev, &hdmi->core, &hdmi->wp); hdmi 620 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = hdmi_audio_register(hdmi); hdmi 626 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi->debugfs = dss_debugfs_create_file(dss, "hdmi", hdmi_dump_regs, hdmi 627 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi); hdmi 629 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi_runtime_put(hdmi); hdmi 634 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi4_cec_uninit(&hdmi->core); hdmi 636 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi_pll_uninit(&hdmi->pll); hdmi 638 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi_runtime_put(hdmi); hdmi 644 drivers/gpu/drm/omapdrm/dss/hdmi4.c struct omap_hdmi *hdmi = dev_get_drvdata(dev); hdmi 646 drivers/gpu/drm/omapdrm/dss/hdmi4.c dss_debugfs_remove_file(hdmi->debugfs); hdmi 648 drivers/gpu/drm/omapdrm/dss/hdmi4.c if (hdmi->audio_pdev) hdmi 649 drivers/gpu/drm/omapdrm/dss/hdmi4.c platform_device_unregister(hdmi->audio_pdev); hdmi 651 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi4_cec_uninit(&hdmi->core); hdmi 652 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi_pll_uninit(&hdmi->pll); hdmi 664 drivers/gpu/drm/omapdrm/dss/hdmi4.c static int hdmi4_init_output(struct omap_hdmi *hdmi) hdmi 666 drivers/gpu/drm/omapdrm/dss/hdmi4.c struct omap_dss_device *out = &hdmi->output; hdmi 669 drivers/gpu/drm/omapdrm/dss/hdmi4.c out->dev = &hdmi->pdev->dev; hdmi 688 drivers/gpu/drm/omapdrm/dss/hdmi4.c static void hdmi4_uninit_output(struct omap_hdmi *hdmi) hdmi 690 drivers/gpu/drm/omapdrm/dss/hdmi4.c struct omap_dss_device *out = &hdmi->output; hdmi 696 drivers/gpu/drm/omapdrm/dss/hdmi4.c static int hdmi4_probe_of(struct omap_hdmi *hdmi) hdmi 698 drivers/gpu/drm/omapdrm/dss/hdmi4.c struct platform_device *pdev = hdmi->pdev; hdmi 707 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = hdmi_parse_lanes_of(pdev, ep, &hdmi->phy); hdmi 714 drivers/gpu/drm/omapdrm/dss/hdmi4.c struct omap_hdmi *hdmi; hdmi 718 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi = kzalloc(sizeof(*hdmi), GFP_KERNEL); hdmi 719 drivers/gpu/drm/omapdrm/dss/hdmi4.c if (!hdmi) hdmi 722 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi->pdev = pdev; hdmi 724 drivers/gpu/drm/omapdrm/dss/hdmi4.c dev_set_drvdata(&pdev->dev, hdmi); hdmi 726 drivers/gpu/drm/omapdrm/dss/hdmi4.c mutex_init(&hdmi->lock); hdmi 727 drivers/gpu/drm/omapdrm/dss/hdmi4.c spin_lock_init(&hdmi->audio_playing_lock); hdmi 729 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = hdmi4_probe_of(hdmi); hdmi 733 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = hdmi_wp_init(pdev, &hdmi->wp, 4); hdmi 737 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = hdmi_phy_init(pdev, &hdmi->phy, 4); hdmi 741 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = hdmi4_core_init(pdev, &hdmi->core); hdmi 754 drivers/gpu/drm/omapdrm/dss/hdmi4.c IRQF_ONESHOT, "OMAP HDMI", hdmi); hdmi 760 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi->vdda_reg = devm_regulator_get(&pdev->dev, "vdda"); hdmi 761 drivers/gpu/drm/omapdrm/dss/hdmi4.c if (IS_ERR(hdmi->vdda_reg)) { hdmi 762 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = PTR_ERR(hdmi->vdda_reg); hdmi 770 drivers/gpu/drm/omapdrm/dss/hdmi4.c r = hdmi4_init_output(hdmi); hdmi 781 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi4_uninit_output(hdmi); hdmi 785 drivers/gpu/drm/omapdrm/dss/hdmi4.c kfree(hdmi); hdmi 791 drivers/gpu/drm/omapdrm/dss/hdmi4.c struct omap_hdmi *hdmi = platform_get_drvdata(pdev); hdmi 795 drivers/gpu/drm/omapdrm/dss/hdmi4.c hdmi4_uninit_output(hdmi); hdmi 799 drivers/gpu/drm/omapdrm/dss/hdmi4.c kfree(hdmi); hdmi 38 drivers/gpu/drm/omapdrm/dss/hdmi5.c static int hdmi_runtime_get(struct omap_hdmi *hdmi) hdmi 44 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = pm_runtime_get_sync(&hdmi->pdev->dev); hdmi 52 drivers/gpu/drm/omapdrm/dss/hdmi5.c static void hdmi_runtime_put(struct omap_hdmi *hdmi) hdmi 58 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = pm_runtime_put_sync(&hdmi->pdev->dev); hdmi 64 drivers/gpu/drm/omapdrm/dss/hdmi5.c struct omap_hdmi *hdmi = data; hdmi 65 drivers/gpu/drm/omapdrm/dss/hdmi5.c struct hdmi_wp_data *wp = &hdmi->wp; hdmi 88 drivers/gpu/drm/omapdrm/dss/hdmi5.c v = hdmi_read_reg(hdmi->phy.base, HDMI_TXPHY_PAD_CFG_CTRL); hdmi 91 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_write_reg(hdmi->phy.base, HDMI_TXPHY_PAD_CFG_CTRL, v); hdmi 98 drivers/gpu/drm/omapdrm/dss/hdmi5.c REG_FLD_MOD(hdmi->phy.base, HDMI_TXPHY_PAD_CFG_CTRL, 0, 15, 15); hdmi 109 drivers/gpu/drm/omapdrm/dss/hdmi5.c static int hdmi_power_on_core(struct omap_hdmi *hdmi) hdmi 113 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = regulator_enable(hdmi->vdda_reg); hdmi 117 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = hdmi_runtime_get(hdmi); hdmi 122 drivers/gpu/drm/omapdrm/dss/hdmi5.c dss_select_hdmi_venc_clk_source(hdmi->dss, DSS_HDMI_M_PCLK); hdmi 124 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi->core_enabled = true; hdmi 129 drivers/gpu/drm/omapdrm/dss/hdmi5.c regulator_disable(hdmi->vdda_reg); hdmi 134 drivers/gpu/drm/omapdrm/dss/hdmi5.c static void hdmi_power_off_core(struct omap_hdmi *hdmi) hdmi 136 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi->core_enabled = false; hdmi 138 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_runtime_put(hdmi); hdmi 139 drivers/gpu/drm/omapdrm/dss/hdmi5.c regulator_disable(hdmi->vdda_reg); hdmi 142 drivers/gpu/drm/omapdrm/dss/hdmi5.c static int hdmi_power_on_full(struct omap_hdmi *hdmi) hdmi 149 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = hdmi_power_on_core(hdmi); hdmi 153 drivers/gpu/drm/omapdrm/dss/hdmi5.c vm = &hdmi->cfg.vm; hdmi 165 drivers/gpu/drm/omapdrm/dss/hdmi5.c dss_pll_calc_b(&hdmi->pll.pll, clk_get_rate(hdmi->pll.pll.clkin), hdmi 169 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_wp_clear_irqenable(&hdmi->wp, 0xffffffff); hdmi 170 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_wp_set_irqstatus(&hdmi->wp, hdmi 171 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_wp_get_irqstatus(&hdmi->wp)); hdmi 173 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = dss_pll_enable(&hdmi->pll.pll); hdmi 179 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = dss_pll_set_config(&hdmi->pll.pll, &hdmi_cinfo); hdmi 185 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = hdmi_phy_configure(&hdmi->phy, hdmi_cinfo.clkdco, hdmi 192 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = hdmi_wp_set_phy_pwr(&hdmi->wp, HDMI_PHYPWRCMD_LDOON); hdmi 196 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi5_configure(&hdmi->core, &hdmi->wp, &hdmi->cfg); hdmi 198 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = dss_mgr_enable(&hdmi->output); hdmi 202 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = hdmi_wp_video_start(&hdmi->wp); hdmi 206 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_wp_set_irqenable(&hdmi->wp, hdmi 212 drivers/gpu/drm/omapdrm/dss/hdmi5.c dss_mgr_disable(&hdmi->output); hdmi 214 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_wp_set_phy_pwr(&hdmi->wp, HDMI_PHYPWRCMD_OFF); hdmi 218 drivers/gpu/drm/omapdrm/dss/hdmi5.c dss_pll_disable(&hdmi->pll.pll); hdmi 220 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_power_off_core(hdmi); hdmi 224 drivers/gpu/drm/omapdrm/dss/hdmi5.c static void hdmi_power_off_full(struct omap_hdmi *hdmi) hdmi 226 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_wp_clear_irqenable(&hdmi->wp, 0xffffffff); hdmi 228 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_wp_video_stop(&hdmi->wp); hdmi 230 drivers/gpu/drm/omapdrm/dss/hdmi5.c dss_mgr_disable(&hdmi->output); hdmi 232 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_wp_set_phy_pwr(&hdmi->wp, HDMI_PHYPWRCMD_OFF); hdmi 234 drivers/gpu/drm/omapdrm/dss/hdmi5.c dss_pll_disable(&hdmi->pll.pll); hdmi 236 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_power_off_core(hdmi); hdmi 242 drivers/gpu/drm/omapdrm/dss/hdmi5.c struct omap_hdmi *hdmi = dssdev_to_hdmi(dssdev); hdmi 244 drivers/gpu/drm/omapdrm/dss/hdmi5.c mutex_lock(&hdmi->lock); hdmi 246 drivers/gpu/drm/omapdrm/dss/hdmi5.c drm_display_mode_to_videomode(mode, &hdmi->cfg.vm); hdmi 248 drivers/gpu/drm/omapdrm/dss/hdmi5.c dispc_set_tv_pclk(hdmi->dss->dispc, mode->clock * 1000); hdmi 250 drivers/gpu/drm/omapdrm/dss/hdmi5.c mutex_unlock(&hdmi->lock); hdmi 255 drivers/gpu/drm/omapdrm/dss/hdmi5.c struct omap_hdmi *hdmi = s->private; hdmi 257 drivers/gpu/drm/omapdrm/dss/hdmi5.c mutex_lock(&hdmi->lock); hdmi 259 drivers/gpu/drm/omapdrm/dss/hdmi5.c if (hdmi_runtime_get(hdmi)) { hdmi 260 drivers/gpu/drm/omapdrm/dss/hdmi5.c mutex_unlock(&hdmi->lock); hdmi 264 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_wp_dump(&hdmi->wp, s); hdmi 265 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_pll_dump(&hdmi->pll, s); hdmi 266 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_phy_dump(&hdmi->phy, s); hdmi 267 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi5_core_dump(&hdmi->core, s); hdmi 269 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_runtime_put(hdmi); hdmi 270 drivers/gpu/drm/omapdrm/dss/hdmi5.c mutex_unlock(&hdmi->lock); hdmi 274 drivers/gpu/drm/omapdrm/dss/hdmi5.c static int read_edid(struct omap_hdmi *hdmi, u8 *buf, int len) hdmi 279 drivers/gpu/drm/omapdrm/dss/hdmi5.c mutex_lock(&hdmi->lock); hdmi 281 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = hdmi_runtime_get(hdmi); hdmi 284 drivers/gpu/drm/omapdrm/dss/hdmi5.c idlemode = REG_GET(hdmi->wp.base, HDMI_WP_SYSCONFIG, 3, 2); hdmi 286 drivers/gpu/drm/omapdrm/dss/hdmi5.c REG_FLD_MOD(hdmi->wp.base, HDMI_WP_SYSCONFIG, 1, 3, 2); hdmi 288 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = hdmi5_read_edid(&hdmi->core, buf, len); hdmi 290 drivers/gpu/drm/omapdrm/dss/hdmi5.c REG_FLD_MOD(hdmi->wp.base, HDMI_WP_SYSCONFIG, idlemode, 3, 2); hdmi 292 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_runtime_put(hdmi); hdmi 293 drivers/gpu/drm/omapdrm/dss/hdmi5.c mutex_unlock(&hdmi->lock); hdmi 314 drivers/gpu/drm/omapdrm/dss/hdmi5.c struct omap_hdmi *hdmi = dssdev_to_hdmi(dssdev); hdmi 320 drivers/gpu/drm/omapdrm/dss/hdmi5.c mutex_lock(&hdmi->lock); hdmi 322 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = hdmi_power_on_full(hdmi); hdmi 328 drivers/gpu/drm/omapdrm/dss/hdmi5.c if (hdmi->audio_configured) { hdmi 329 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = hdmi5_audio_config(&hdmi->core, &hdmi->wp, hdmi 330 drivers/gpu/drm/omapdrm/dss/hdmi5.c &hdmi->audio_config, hdmi 331 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi->cfg.vm.pixelclock); hdmi 334 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi->audio_abort_cb(&hdmi->pdev->dev); hdmi 335 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi->audio_configured = false; hdmi 339 drivers/gpu/drm/omapdrm/dss/hdmi5.c spin_lock_irqsave(&hdmi->audio_playing_lock, flags); hdmi 340 drivers/gpu/drm/omapdrm/dss/hdmi5.c if (hdmi->audio_configured && hdmi->audio_playing) hdmi 341 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_start_audio_stream(hdmi); hdmi 342 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi->display_enabled = true; hdmi 343 drivers/gpu/drm/omapdrm/dss/hdmi5.c spin_unlock_irqrestore(&hdmi->audio_playing_lock, flags); hdmi 346 drivers/gpu/drm/omapdrm/dss/hdmi5.c mutex_unlock(&hdmi->lock); hdmi 351 drivers/gpu/drm/omapdrm/dss/hdmi5.c struct omap_hdmi *hdmi = dssdev_to_hdmi(dssdev); hdmi 356 drivers/gpu/drm/omapdrm/dss/hdmi5.c mutex_lock(&hdmi->lock); hdmi 358 drivers/gpu/drm/omapdrm/dss/hdmi5.c spin_lock_irqsave(&hdmi->audio_playing_lock, flags); hdmi 359 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_stop_audio_stream(hdmi); hdmi 360 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi->display_enabled = false; hdmi 361 drivers/gpu/drm/omapdrm/dss/hdmi5.c spin_unlock_irqrestore(&hdmi->audio_playing_lock, flags); hdmi 363 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_power_off_full(hdmi); hdmi 365 drivers/gpu/drm/omapdrm/dss/hdmi5.c mutex_unlock(&hdmi->lock); hdmi 368 drivers/gpu/drm/omapdrm/dss/hdmi5.c static int hdmi_core_enable(struct omap_hdmi *hdmi) hdmi 374 drivers/gpu/drm/omapdrm/dss/hdmi5.c mutex_lock(&hdmi->lock); hdmi 376 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = hdmi_power_on_core(hdmi); hdmi 382 drivers/gpu/drm/omapdrm/dss/hdmi5.c mutex_unlock(&hdmi->lock); hdmi 386 drivers/gpu/drm/omapdrm/dss/hdmi5.c mutex_unlock(&hdmi->lock); hdmi 390 drivers/gpu/drm/omapdrm/dss/hdmi5.c static void hdmi_core_disable(struct omap_hdmi *hdmi) hdmi 394 drivers/gpu/drm/omapdrm/dss/hdmi5.c mutex_lock(&hdmi->lock); hdmi 396 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_power_off_core(hdmi); hdmi 398 drivers/gpu/drm/omapdrm/dss/hdmi5.c mutex_unlock(&hdmi->lock); hdmi 416 drivers/gpu/drm/omapdrm/dss/hdmi5.c struct omap_hdmi *hdmi = dssdev_to_hdmi(dssdev); hdmi 420 drivers/gpu/drm/omapdrm/dss/hdmi5.c need_enable = hdmi->core_enabled == false; hdmi 423 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = hdmi_core_enable(hdmi); hdmi 428 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = read_edid(hdmi, edid, len); hdmi 431 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_core_disable(hdmi); hdmi 439 drivers/gpu/drm/omapdrm/dss/hdmi5.c struct omap_hdmi *hdmi = dssdev_to_hdmi(dssdev); hdmi 441 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi->cfg.infoframe = *avi; hdmi 448 drivers/gpu/drm/omapdrm/dss/hdmi5.c struct omap_hdmi *hdmi = dssdev_to_hdmi(dssdev); hdmi 450 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi->cfg.hdmi_dvi_mode = hdmi_mode ? HDMI_HDMI : HDMI_DVI; hdmi 465 drivers/gpu/drm/omapdrm/dss/hdmi5.c .hdmi = { hdmi 571 drivers/gpu/drm/omapdrm/dss/hdmi5.c static int hdmi_audio_register(struct omap_hdmi *hdmi) hdmi 574 drivers/gpu/drm/omapdrm/dss/hdmi5.c .dev = &hdmi->pdev->dev, hdmi 576 drivers/gpu/drm/omapdrm/dss/hdmi5.c .audio_dma_addr = hdmi_wp_get_audio_dma_addr(&hdmi->wp), hdmi 580 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi->audio_pdev = platform_device_register_data( hdmi 581 drivers/gpu/drm/omapdrm/dss/hdmi5.c &hdmi->pdev->dev, "omap-hdmi-audio", PLATFORM_DEVID_AUTO, hdmi 584 drivers/gpu/drm/omapdrm/dss/hdmi5.c if (IS_ERR(hdmi->audio_pdev)) hdmi 585 drivers/gpu/drm/omapdrm/dss/hdmi5.c return PTR_ERR(hdmi->audio_pdev); hdmi 587 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_runtime_get(hdmi); hdmi 588 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi->wp_idlemode = hdmi 589 drivers/gpu/drm/omapdrm/dss/hdmi5.c REG_GET(hdmi->wp.base, HDMI_WP_SYSCONFIG, 3, 2); hdmi 590 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_runtime_put(hdmi); hdmi 602 drivers/gpu/drm/omapdrm/dss/hdmi5.c struct omap_hdmi *hdmi = dev_get_drvdata(dev); hdmi 605 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi->dss = dss; hdmi 607 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = hdmi_pll_init(dss, hdmi->pdev, &hdmi->pll, &hdmi->wp); hdmi 611 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = hdmi_audio_register(hdmi); hdmi 617 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi->debugfs = dss_debugfs_create_file(dss, "hdmi", hdmi_dump_regs, hdmi 618 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi); hdmi 623 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_pll_uninit(&hdmi->pll); hdmi 629 drivers/gpu/drm/omapdrm/dss/hdmi5.c struct omap_hdmi *hdmi = dev_get_drvdata(dev); hdmi 631 drivers/gpu/drm/omapdrm/dss/hdmi5.c dss_debugfs_remove_file(hdmi->debugfs); hdmi 633 drivers/gpu/drm/omapdrm/dss/hdmi5.c if (hdmi->audio_pdev) hdmi 634 drivers/gpu/drm/omapdrm/dss/hdmi5.c platform_device_unregister(hdmi->audio_pdev); hdmi 636 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi_pll_uninit(&hdmi->pll); hdmi 648 drivers/gpu/drm/omapdrm/dss/hdmi5.c static int hdmi5_init_output(struct omap_hdmi *hdmi) hdmi 650 drivers/gpu/drm/omapdrm/dss/hdmi5.c struct omap_dss_device *out = &hdmi->output; hdmi 653 drivers/gpu/drm/omapdrm/dss/hdmi5.c out->dev = &hdmi->pdev->dev; hdmi 672 drivers/gpu/drm/omapdrm/dss/hdmi5.c static void hdmi5_uninit_output(struct omap_hdmi *hdmi) hdmi 674 drivers/gpu/drm/omapdrm/dss/hdmi5.c struct omap_dss_device *out = &hdmi->output; hdmi 680 drivers/gpu/drm/omapdrm/dss/hdmi5.c static int hdmi5_probe_of(struct omap_hdmi *hdmi) hdmi 682 drivers/gpu/drm/omapdrm/dss/hdmi5.c struct platform_device *pdev = hdmi->pdev; hdmi 691 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = hdmi_parse_lanes_of(pdev, ep, &hdmi->phy); hdmi 698 drivers/gpu/drm/omapdrm/dss/hdmi5.c struct omap_hdmi *hdmi; hdmi 702 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi = kzalloc(sizeof(*hdmi), GFP_KERNEL); hdmi 703 drivers/gpu/drm/omapdrm/dss/hdmi5.c if (!hdmi) hdmi 706 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi->pdev = pdev; hdmi 708 drivers/gpu/drm/omapdrm/dss/hdmi5.c dev_set_drvdata(&pdev->dev, hdmi); hdmi 710 drivers/gpu/drm/omapdrm/dss/hdmi5.c mutex_init(&hdmi->lock); hdmi 711 drivers/gpu/drm/omapdrm/dss/hdmi5.c spin_lock_init(&hdmi->audio_playing_lock); hdmi 713 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = hdmi5_probe_of(hdmi); hdmi 717 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = hdmi_wp_init(pdev, &hdmi->wp, 5); hdmi 721 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = hdmi_phy_init(pdev, &hdmi->phy, 5); hdmi 725 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = hdmi5_core_init(pdev, &hdmi->core); hdmi 738 drivers/gpu/drm/omapdrm/dss/hdmi5.c IRQF_ONESHOT, "OMAP HDMI", hdmi); hdmi 744 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi->vdda_reg = devm_regulator_get(&pdev->dev, "vdda"); hdmi 745 drivers/gpu/drm/omapdrm/dss/hdmi5.c if (IS_ERR(hdmi->vdda_reg)) { hdmi 746 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = PTR_ERR(hdmi->vdda_reg); hdmi 754 drivers/gpu/drm/omapdrm/dss/hdmi5.c r = hdmi5_init_output(hdmi); hdmi 765 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi5_uninit_output(hdmi); hdmi 769 drivers/gpu/drm/omapdrm/dss/hdmi5.c kfree(hdmi); hdmi 775 drivers/gpu/drm/omapdrm/dss/hdmi5.c struct omap_hdmi *hdmi = platform_get_drvdata(pdev); hdmi 779 drivers/gpu/drm/omapdrm/dss/hdmi5.c hdmi5_uninit_output(hdmi); hdmi 783 drivers/gpu/drm/omapdrm/dss/hdmi5.c kfree(hdmi); hdmi 376 drivers/gpu/drm/omapdrm/dss/omapdss.h const struct omapdss_hdmi_ops hdmi; hdmi 42 drivers/gpu/drm/omapdrm/omap_connector.c if (dssdev->ops && dssdev->ops->hdmi.lost_hotplug) hdmi 43 drivers/gpu/drm/omapdrm/omap_connector.c dssdev->ops->hdmi.lost_hotplug(dssdev); hdmi 82 drivers/gpu/drm/omapdrm/omap_encoder.c if (dssdev->ops->hdmi.set_hdmi_mode) hdmi 83 drivers/gpu/drm/omapdrm/omap_encoder.c dssdev->ops->hdmi.set_hdmi_mode(dssdev, hdmi_mode); hdmi 85 drivers/gpu/drm/omapdrm/omap_encoder.c if (hdmi_mode && dssdev->ops->hdmi.set_infoframe) { hdmi 92 drivers/gpu/drm/omapdrm/omap_encoder.c dssdev->ops->hdmi.set_infoframe(dssdev, &avi); hdmi 475 drivers/gpu/drm/radeon/r600_hdmi.c u32 hdmi = HDMI0_ERROR_ACK; hdmi 483 drivers/gpu/drm/radeon/r600_hdmi.c hdmi |= HDMI0_ENABLE; hdmi 488 drivers/gpu/drm/radeon/r600_hdmi.c hdmi |= HDMI0_STREAM(HDMI0_STREAM_TMDSA); hdmi 496 drivers/gpu/drm/radeon/r600_hdmi.c hdmi |= HDMI0_STREAM(HDMI0_STREAM_LVTMA); hdmi 504 drivers/gpu/drm/radeon/r600_hdmi.c hdmi |= HDMI0_STREAM(HDMI0_STREAM_DDIA); hdmi 511 drivers/gpu/drm/radeon/r600_hdmi.c hdmi |= HDMI0_STREAM(HDMI0_STREAM_DVOA); hdmi 518 drivers/gpu/drm/radeon/r600_hdmi.c WREG32(HDMI0_CONTROL + dig->afmt->offset, hdmi); hdmi 54 drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c static int rcar_hdmi_phy_configure(struct dw_hdmi *hdmi, hdmi 68 drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c dw_hdmi_phy_i2c_write(hdmi, params->opmode_div, hdmi 70 drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c dw_hdmi_phy_i2c_write(hdmi, params->curr_gmp, hdmi 72 drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c dw_hdmi_phy_i2c_write(hdmi, params->div, RCAR_HDMI_PHY_PLLDIVCTRL); hdmi 84 drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c struct dw_hdmi *hdmi; hdmi 86 drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c hdmi = dw_hdmi_probe(pdev, &rcar_dw_hdmi_plat_data); hdmi 87 drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c if (IS_ERR(hdmi)) hdmi 88 drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c return PTR_ERR(hdmi); hdmi 90 drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c platform_set_drvdata(pdev, hdmi); hdmi 97 drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c struct dw_hdmi *hdmi = platform_get_drvdata(pdev); hdmi 99 drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c dw_hdmi_remove(hdmi); hdmi 73 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c struct dw_hdmi *hdmi; hdmi 188 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c static int rockchip_hdmi_parse_dt(struct rockchip_hdmi *hdmi) hdmi 190 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c struct device_node *np = hdmi->dev->of_node; hdmi 192 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c hdmi->regmap = syscon_regmap_lookup_by_phandle(np, "rockchip,grf"); hdmi 193 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c if (IS_ERR(hdmi->regmap)) { hdmi 194 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c DRM_DEV_ERROR(hdmi->dev, "Unable to get rockchip,grf\n"); hdmi 195 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c return PTR_ERR(hdmi->regmap); hdmi 198 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c hdmi->vpll_clk = devm_clk_get(hdmi->dev, "vpll"); hdmi 199 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c if (PTR_ERR(hdmi->vpll_clk) == -ENOENT) { hdmi 200 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c hdmi->vpll_clk = NULL; hdmi 201 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c } else if (PTR_ERR(hdmi->vpll_clk) == -EPROBE_DEFER) { hdmi 203 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c } else if (IS_ERR(hdmi->vpll_clk)) { hdmi 204 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c DRM_DEV_ERROR(hdmi->dev, "failed to get grf clock\n"); hdmi 205 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c return PTR_ERR(hdmi->vpll_clk); hdmi 208 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c hdmi->grf_clk = devm_clk_get(hdmi->dev, "grf"); hdmi 209 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c if (PTR_ERR(hdmi->grf_clk) == -ENOENT) { hdmi 210 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c hdmi->grf_clk = NULL; hdmi 211 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c } else if (PTR_ERR(hdmi->grf_clk) == -EPROBE_DEFER) { hdmi 213 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c } else if (IS_ERR(hdmi->grf_clk)) { hdmi 214 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c DRM_DEV_ERROR(hdmi->dev, "failed to get grf clock\n"); hdmi 215 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c return PTR_ERR(hdmi->grf_clk); hdmi 260 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c struct rockchip_hdmi *hdmi = to_rockchip_hdmi(encoder); hdmi 262 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c clk_set_rate(hdmi->vpll_clk, adj_mode->clock * 1000); hdmi 267 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c struct rockchip_hdmi *hdmi = to_rockchip_hdmi(encoder); hdmi 271 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c if (hdmi->chip_data->lcdsel_grf_reg < 0) hdmi 274 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c ret = drm_of_encoder_active_endpoint_id(hdmi->dev->of_node, encoder); hdmi 276 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c val = hdmi->chip_data->lcdsel_lit; hdmi 278 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c val = hdmi->chip_data->lcdsel_big; hdmi 280 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c ret = clk_prepare_enable(hdmi->grf_clk); hdmi 282 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c DRM_DEV_ERROR(hdmi->dev, "failed to enable grfclk %d\n", ret); hdmi 286 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c ret = regmap_write(hdmi->regmap, hdmi->chip_data->lcdsel_grf_reg, val); hdmi 288 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c DRM_DEV_ERROR(hdmi->dev, "Could not write to GRF: %d\n", ret); hdmi 290 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c clk_disable_unprepare(hdmi->grf_clk); hdmi 291 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c DRM_DEV_DEBUG(hdmi->dev, "vop %s output to hdmi\n", hdmi 319 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c struct rockchip_hdmi *hdmi = (struct rockchip_hdmi *)data; hdmi 321 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c return phy_power_on(hdmi->phy); hdmi 326 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c struct rockchip_hdmi *hdmi = (struct rockchip_hdmi *)data; hdmi 328 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c phy_power_off(hdmi->phy); hdmi 333 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c struct rockchip_hdmi *hdmi = (struct rockchip_hdmi *)data; hdmi 337 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c regmap_write(hdmi->regmap, hdmi 344 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c regmap_write(hdmi->regmap, hdmi 353 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c struct rockchip_hdmi *hdmi = (struct rockchip_hdmi *)data; hdmi 359 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c regmap_write(hdmi->regmap, hdmi 364 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c regmap_write(hdmi->regmap, hdmi 373 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c struct rockchip_hdmi *hdmi = (struct rockchip_hdmi *)data; hdmi 378 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c regmap_write(hdmi->regmap, hdmi 383 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c regmap_write(hdmi->regmap, hdmi 388 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c regmap_write(hdmi->regmap, hdmi 494 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c struct rockchip_hdmi *hdmi; hdmi 500 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c hdmi = devm_kzalloc(&pdev->dev, sizeof(*hdmi), GFP_KERNEL); hdmi 501 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c if (!hdmi) hdmi 510 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c hdmi->dev = &pdev->dev; hdmi 511 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c hdmi->chip_data = plat_data->phy_data; hdmi 512 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c plat_data->phy_data = hdmi; hdmi 513 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c encoder = &hdmi->encoder; hdmi 525 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c ret = rockchip_hdmi_parse_dt(hdmi); hdmi 527 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c DRM_DEV_ERROR(hdmi->dev, "Unable to parse OF data\n"); hdmi 531 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c ret = clk_prepare_enable(hdmi->vpll_clk); hdmi 533 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c DRM_DEV_ERROR(hdmi->dev, "Failed to enable HDMI vpll: %d\n", hdmi 538 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c hdmi->phy = devm_phy_optional_get(dev, "hdmi"); hdmi 539 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c if (IS_ERR(hdmi->phy)) { hdmi 540 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c ret = PTR_ERR(hdmi->phy); hdmi 542 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c DRM_DEV_ERROR(hdmi->dev, "failed to get phy\n"); hdmi 550 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c platform_set_drvdata(pdev, hdmi); hdmi 552 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c hdmi->hdmi = dw_hdmi_bind(pdev, encoder, plat_data); hdmi 558 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c if (IS_ERR(hdmi->hdmi)) { hdmi 559 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c ret = PTR_ERR(hdmi->hdmi); hdmi 561 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c clk_disable_unprepare(hdmi->vpll_clk); hdmi 570 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c struct rockchip_hdmi *hdmi = dev_get_drvdata(dev); hdmi 572 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c dw_hdmi_unbind(hdmi->hdmi); hdmi 573 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c clk_disable_unprepare(hdmi->vpll_clk); hdmi 595 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c struct rockchip_hdmi *hdmi = dev_get_drvdata(dev); hdmi 597 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c dw_hdmi_resume(hdmi->hdmi); hdmi 148 drivers/gpu/drm/rockchip/inno_hdmi.c static inline u8 hdmi_readb(struct inno_hdmi *hdmi, u16 offset) hdmi 150 drivers/gpu/drm/rockchip/inno_hdmi.c return readl_relaxed(hdmi->regs + (offset) * 0x04); hdmi 153 drivers/gpu/drm/rockchip/inno_hdmi.c static inline void hdmi_writeb(struct inno_hdmi *hdmi, u16 offset, u32 val) hdmi 155 drivers/gpu/drm/rockchip/inno_hdmi.c writel_relaxed(val, hdmi->regs + (offset) * 0x04); hdmi 158 drivers/gpu/drm/rockchip/inno_hdmi.c static inline void hdmi_modb(struct inno_hdmi *hdmi, u16 offset, hdmi 161 drivers/gpu/drm/rockchip/inno_hdmi.c u8 temp = hdmi_readb(hdmi, offset) & ~msk; hdmi 164 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, offset, temp); hdmi 167 drivers/gpu/drm/rockchip/inno_hdmi.c static void inno_hdmi_i2c_init(struct inno_hdmi *hdmi) hdmi 171 drivers/gpu/drm/rockchip/inno_hdmi.c ddc_bus_freq = (hdmi->tmds_rate >> 2) / HDMI_SCL_RATE; hdmi 173 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, DDC_BUS_FREQ_L, ddc_bus_freq & 0xFF); hdmi 174 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, DDC_BUS_FREQ_H, (ddc_bus_freq >> 8) & 0xFF); hdmi 177 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_INTERRUPT_MASK1, 0); hdmi 178 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_INTERRUPT_STATUS1, m_INT_EDID_READY); hdmi 181 drivers/gpu/drm/rockchip/inno_hdmi.c static void inno_hdmi_sys_power(struct inno_hdmi *hdmi, bool enable) hdmi 184 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_modb(hdmi, HDMI_SYS_CTRL, m_POWER, v_PWR_ON); hdmi 186 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_modb(hdmi, HDMI_SYS_CTRL, m_POWER, v_PWR_OFF); hdmi 189 drivers/gpu/drm/rockchip/inno_hdmi.c static void inno_hdmi_set_pwr_mode(struct inno_hdmi *hdmi, int mode) hdmi 193 drivers/gpu/drm/rockchip/inno_hdmi.c inno_hdmi_sys_power(hdmi, false); hdmi 195 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_PHY_PRE_EMPHASIS, 0x6f); hdmi 196 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_PHY_DRIVER, 0xbb); hdmi 198 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_PHY_SYS_CTL, 0x15); hdmi 199 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_PHY_SYS_CTL, 0x14); hdmi 200 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_PHY_SYS_CTL, 0x10); hdmi 201 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_PHY_CHG_PWR, 0x0f); hdmi 202 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_PHY_SYNC, 0x00); hdmi 203 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_PHY_SYNC, 0x01); hdmi 205 drivers/gpu/drm/rockchip/inno_hdmi.c inno_hdmi_sys_power(hdmi, true); hdmi 209 drivers/gpu/drm/rockchip/inno_hdmi.c inno_hdmi_sys_power(hdmi, false); hdmi 210 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_PHY_DRIVER, 0x00); hdmi 211 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_PHY_PRE_EMPHASIS, 0x00); hdmi 212 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_PHY_CHG_PWR, 0x00); hdmi 213 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_PHY_SYS_CTL, 0x15); hdmi 218 drivers/gpu/drm/rockchip/inno_hdmi.c DRM_DEV_ERROR(hdmi->dev, "Unknown power mode %d\n", mode); hdmi 222 drivers/gpu/drm/rockchip/inno_hdmi.c static void inno_hdmi_reset(struct inno_hdmi *hdmi) hdmi 227 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_modb(hdmi, HDMI_SYS_CTRL, m_RST_DIGITAL, v_NOT_RST_DIGITAL); hdmi 230 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_modb(hdmi, HDMI_SYS_CTRL, m_RST_ANALOG, v_NOT_RST_ANALOG); hdmi 235 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_modb(hdmi, HDMI_SYS_CTRL, msk, val); hdmi 237 drivers/gpu/drm/rockchip/inno_hdmi.c inno_hdmi_set_pwr_mode(hdmi, NORMAL); hdmi 240 drivers/gpu/drm/rockchip/inno_hdmi.c static int inno_hdmi_upload_frame(struct inno_hdmi *hdmi, int setup_rc, hdmi 245 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_modb(hdmi, HDMI_PACKET_SEND_AUTO, mask, disable); hdmi 247 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_CONTROL_PACKET_BUF_INDEX, frame_index); hdmi 259 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_CONTROL_PACKET_ADDR + i, hdmi 263 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_modb(hdmi, HDMI_PACKET_SEND_AUTO, mask, enable); hdmi 269 drivers/gpu/drm/rockchip/inno_hdmi.c static int inno_hdmi_config_video_vsi(struct inno_hdmi *hdmi, hdmi 275 drivers/gpu/drm/rockchip/inno_hdmi.c rc = drm_hdmi_vendor_infoframe_from_display_mode(&frame.vendor.hdmi, hdmi 276 drivers/gpu/drm/rockchip/inno_hdmi.c &hdmi->connector, hdmi 279 drivers/gpu/drm/rockchip/inno_hdmi.c return inno_hdmi_upload_frame(hdmi, rc, &frame, INFOFRAME_VSI, hdmi 283 drivers/gpu/drm/rockchip/inno_hdmi.c static int inno_hdmi_config_video_avi(struct inno_hdmi *hdmi, hdmi 290 drivers/gpu/drm/rockchip/inno_hdmi.c &hdmi->connector, hdmi 293 drivers/gpu/drm/rockchip/inno_hdmi.c if (hdmi->hdmi_data.enc_out_format == HDMI_COLORSPACE_YUV444) hdmi 295 drivers/gpu/drm/rockchip/inno_hdmi.c else if (hdmi->hdmi_data.enc_out_format == HDMI_COLORSPACE_YUV422) hdmi 300 drivers/gpu/drm/rockchip/inno_hdmi.c return inno_hdmi_upload_frame(hdmi, rc, &frame, INFOFRAME_AVI, 0, 0, 0); hdmi 303 drivers/gpu/drm/rockchip/inno_hdmi.c static int inno_hdmi_config_video_csc(struct inno_hdmi *hdmi) hdmi 305 drivers/gpu/drm/rockchip/inno_hdmi.c struct hdmi_data_info *data = &hdmi->hdmi_data; hdmi 314 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_VIDEO_CONTRL1, v_DE_EXTERNAL | hdmi 321 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_VIDEO_CONTRL2, value); hdmi 327 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_VIDEO_CONTRL3, value); hdmi 329 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_modb(hdmi, HDMI_VIDEO_CONTRL, hdmi 368 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_VIDEO_CSC_COEF + i, hdmi 372 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_VIDEO_CONTRL3, value); hdmi 373 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_modb(hdmi, HDMI_VIDEO_CONTRL, m_VIDEO_AUTO_CSC | hdmi 380 drivers/gpu/drm/rockchip/inno_hdmi.c static int inno_hdmi_config_video_timing(struct inno_hdmi *hdmi, hdmi 393 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_VIDEO_TIMING_CTL, value); hdmi 397 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HTOTAL_L, value & 0xFF); hdmi 398 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HTOTAL_H, (value >> 8) & 0xFF); hdmi 401 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HBLANK_L, value & 0xFF); hdmi 402 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HBLANK_H, (value >> 8) & 0xFF); hdmi 405 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HDELAY_L, value & 0xFF); hdmi 406 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HDELAY_H, (value >> 8) & 0xFF); hdmi 409 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HDURATION_L, value & 0xFF); hdmi 410 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HDURATION_H, (value >> 8) & 0xFF); hdmi 413 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_VIDEO_EXT_VTOTAL_L, value & 0xFF); hdmi 414 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_VIDEO_EXT_VTOTAL_H, (value >> 8) & 0xFF); hdmi 417 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_VIDEO_EXT_VBLANK, value & 0xFF); hdmi 420 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_VIDEO_EXT_VDELAY, value & 0xFF); hdmi 423 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_VIDEO_EXT_VDURATION, value & 0xFF); hdmi 425 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_PHY_PRE_DIV_RATIO, 0x1e); hdmi 426 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_PHY_FEEDBACK_DIV_RATIO_LOW, 0x2c); hdmi 427 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_PHY_FEEDBACK_DIV_RATIO_HIGH, 0x01); hdmi 432 drivers/gpu/drm/rockchip/inno_hdmi.c static int inno_hdmi_setup(struct inno_hdmi *hdmi, hdmi 435 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->hdmi_data.vic = drm_match_cea_mode(mode); hdmi 437 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->hdmi_data.enc_in_format = HDMI_COLORSPACE_RGB; hdmi 438 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->hdmi_data.enc_out_format = HDMI_COLORSPACE_RGB; hdmi 440 drivers/gpu/drm/rockchip/inno_hdmi.c if ((hdmi->hdmi_data.vic == 6) || (hdmi->hdmi_data.vic == 7) || hdmi 441 drivers/gpu/drm/rockchip/inno_hdmi.c (hdmi->hdmi_data.vic == 21) || (hdmi->hdmi_data.vic == 22) || hdmi 442 drivers/gpu/drm/rockchip/inno_hdmi.c (hdmi->hdmi_data.vic == 2) || (hdmi->hdmi_data.vic == 3) || hdmi 443 drivers/gpu/drm/rockchip/inno_hdmi.c (hdmi->hdmi_data.vic == 17) || (hdmi->hdmi_data.vic == 18)) hdmi 444 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->hdmi_data.colorimetry = HDMI_COLORIMETRY_ITU_601; hdmi 446 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->hdmi_data.colorimetry = HDMI_COLORIMETRY_ITU_709; hdmi 449 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_modb(hdmi, HDMI_AV_MUTE, m_AUDIO_MUTE | m_VIDEO_BLACK, hdmi 453 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_HDCP_CTRL, hdmi 454 drivers/gpu/drm/rockchip/inno_hdmi.c v_HDMI_DVI(hdmi->hdmi_data.sink_is_hdmi)); hdmi 456 drivers/gpu/drm/rockchip/inno_hdmi.c inno_hdmi_config_video_timing(hdmi, mode); hdmi 458 drivers/gpu/drm/rockchip/inno_hdmi.c inno_hdmi_config_video_csc(hdmi); hdmi 460 drivers/gpu/drm/rockchip/inno_hdmi.c if (hdmi->hdmi_data.sink_is_hdmi) { hdmi 461 drivers/gpu/drm/rockchip/inno_hdmi.c inno_hdmi_config_video_avi(hdmi, mode); hdmi 462 drivers/gpu/drm/rockchip/inno_hdmi.c inno_hdmi_config_video_vsi(hdmi, mode); hdmi 471 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->tmds_rate = mode->clock * 1000; hdmi 472 drivers/gpu/drm/rockchip/inno_hdmi.c inno_hdmi_i2c_init(hdmi); hdmi 475 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_modb(hdmi, HDMI_AV_MUTE, m_AUDIO_MUTE | m_VIDEO_BLACK, hdmi 485 drivers/gpu/drm/rockchip/inno_hdmi.c struct inno_hdmi *hdmi = to_inno_hdmi(encoder); hdmi 487 drivers/gpu/drm/rockchip/inno_hdmi.c inno_hdmi_setup(hdmi, adj_mode); hdmi 490 drivers/gpu/drm/rockchip/inno_hdmi.c memcpy(&hdmi->previous_mode, adj_mode, sizeof(hdmi->previous_mode)); hdmi 495 drivers/gpu/drm/rockchip/inno_hdmi.c struct inno_hdmi *hdmi = to_inno_hdmi(encoder); hdmi 497 drivers/gpu/drm/rockchip/inno_hdmi.c inno_hdmi_set_pwr_mode(hdmi, NORMAL); hdmi 502 drivers/gpu/drm/rockchip/inno_hdmi.c struct inno_hdmi *hdmi = to_inno_hdmi(encoder); hdmi 504 drivers/gpu/drm/rockchip/inno_hdmi.c inno_hdmi_set_pwr_mode(hdmi, LOWER_PWR); hdmi 542 drivers/gpu/drm/rockchip/inno_hdmi.c struct inno_hdmi *hdmi = to_inno_hdmi(connector); hdmi 544 drivers/gpu/drm/rockchip/inno_hdmi.c return (hdmi_readb(hdmi, HDMI_STATUS) & m_HOTPLUG) ? hdmi 550 drivers/gpu/drm/rockchip/inno_hdmi.c struct inno_hdmi *hdmi = to_inno_hdmi(connector); hdmi 554 drivers/gpu/drm/rockchip/inno_hdmi.c if (!hdmi->ddc) hdmi 557 drivers/gpu/drm/rockchip/inno_hdmi.c edid = drm_get_edid(connector, hdmi->ddc); hdmi 559 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->hdmi_data.sink_is_hdmi = drm_detect_hdmi_monitor(edid); hdmi 560 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->hdmi_data.sink_has_audio = drm_detect_monitor_audio(edid); hdmi 603 drivers/gpu/drm/rockchip/inno_hdmi.c static int inno_hdmi_register(struct drm_device *drm, struct inno_hdmi *hdmi) hdmi 605 drivers/gpu/drm/rockchip/inno_hdmi.c struct drm_encoder *encoder = &hdmi->encoder; hdmi 606 drivers/gpu/drm/rockchip/inno_hdmi.c struct device *dev = hdmi->dev; hdmi 623 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->connector.polled = DRM_CONNECTOR_POLL_HPD; hdmi 625 drivers/gpu/drm/rockchip/inno_hdmi.c drm_connector_helper_add(&hdmi->connector, hdmi 627 drivers/gpu/drm/rockchip/inno_hdmi.c drm_connector_init(drm, &hdmi->connector, &inno_hdmi_connector_funcs, hdmi 630 drivers/gpu/drm/rockchip/inno_hdmi.c drm_connector_attach_encoder(&hdmi->connector, encoder); hdmi 635 drivers/gpu/drm/rockchip/inno_hdmi.c static irqreturn_t inno_hdmi_i2c_irq(struct inno_hdmi *hdmi) hdmi 637 drivers/gpu/drm/rockchip/inno_hdmi.c struct inno_hdmi_i2c *i2c = hdmi->i2c; hdmi 640 drivers/gpu/drm/rockchip/inno_hdmi.c stat = hdmi_readb(hdmi, HDMI_INTERRUPT_STATUS1); hdmi 645 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_INTERRUPT_STATUS1, m_INT_EDID_READY); hdmi 654 drivers/gpu/drm/rockchip/inno_hdmi.c struct inno_hdmi *hdmi = dev_id; hdmi 658 drivers/gpu/drm/rockchip/inno_hdmi.c if (hdmi->i2c) hdmi 659 drivers/gpu/drm/rockchip/inno_hdmi.c ret = inno_hdmi_i2c_irq(hdmi); hdmi 661 drivers/gpu/drm/rockchip/inno_hdmi.c interrupt = hdmi_readb(hdmi, HDMI_STATUS); hdmi 663 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_modb(hdmi, HDMI_STATUS, m_INT_HOTPLUG, m_INT_HOTPLUG); hdmi 672 drivers/gpu/drm/rockchip/inno_hdmi.c struct inno_hdmi *hdmi = dev_id; hdmi 674 drivers/gpu/drm/rockchip/inno_hdmi.c drm_helper_hpd_irq_event(hdmi->connector.dev); hdmi 679 drivers/gpu/drm/rockchip/inno_hdmi.c static int inno_hdmi_i2c_read(struct inno_hdmi *hdmi, struct i2c_msg *msgs) hdmi 685 drivers/gpu/drm/rockchip/inno_hdmi.c ret = wait_for_completion_timeout(&hdmi->i2c->cmp, HZ / 10); hdmi 690 drivers/gpu/drm/rockchip/inno_hdmi.c *buf++ = hdmi_readb(hdmi, HDMI_EDID_FIFO_ADDR); hdmi 695 drivers/gpu/drm/rockchip/inno_hdmi.c static int inno_hdmi_i2c_write(struct inno_hdmi *hdmi, struct i2c_msg *msgs) hdmi 706 drivers/gpu/drm/rockchip/inno_hdmi.c reinit_completion(&hdmi->i2c->cmp); hdmi 709 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->i2c->segment_addr = msgs->buf[0]; hdmi 711 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->i2c->ddc_addr = msgs->buf[0]; hdmi 714 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_EDID_FIFO_OFFSET, 0x00); hdmi 717 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_EDID_WORD_ADDR, hdmi->i2c->ddc_addr); hdmi 720 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_EDID_SEGMENT_POINTER, hdmi->i2c->segment_addr); hdmi 728 drivers/gpu/drm/rockchip/inno_hdmi.c struct inno_hdmi *hdmi = i2c_get_adapdata(adap); hdmi 729 drivers/gpu/drm/rockchip/inno_hdmi.c struct inno_hdmi_i2c *i2c = hdmi->i2c; hdmi 735 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_INTERRUPT_MASK1, m_INT_EDID_READY); hdmi 736 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_INTERRUPT_STATUS1, m_INT_EDID_READY); hdmi 739 drivers/gpu/drm/rockchip/inno_hdmi.c DRM_DEV_DEBUG(hdmi->dev, hdmi 744 drivers/gpu/drm/rockchip/inno_hdmi.c ret = inno_hdmi_i2c_read(hdmi, &msgs[i]); hdmi 746 drivers/gpu/drm/rockchip/inno_hdmi.c ret = inno_hdmi_i2c_write(hdmi, &msgs[i]); hdmi 756 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_writeb(hdmi, HDMI_INTERRUPT_MASK1, 0); hdmi 773 drivers/gpu/drm/rockchip/inno_hdmi.c static struct i2c_adapter *inno_hdmi_i2c_adapter(struct inno_hdmi *hdmi) hdmi 779 drivers/gpu/drm/rockchip/inno_hdmi.c i2c = devm_kzalloc(hdmi->dev, sizeof(*i2c), GFP_KERNEL); hdmi 789 drivers/gpu/drm/rockchip/inno_hdmi.c adap->dev.parent = hdmi->dev; hdmi 790 drivers/gpu/drm/rockchip/inno_hdmi.c adap->dev.of_node = hdmi->dev->of_node; hdmi 793 drivers/gpu/drm/rockchip/inno_hdmi.c i2c_set_adapdata(adap, hdmi); hdmi 797 drivers/gpu/drm/rockchip/inno_hdmi.c dev_warn(hdmi->dev, "cannot add %s I2C adapter\n", adap->name); hdmi 798 drivers/gpu/drm/rockchip/inno_hdmi.c devm_kfree(hdmi->dev, i2c); hdmi 802 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->i2c = i2c; hdmi 804 drivers/gpu/drm/rockchip/inno_hdmi.c DRM_DEV_INFO(hdmi->dev, "registered %s I2C bus driver\n", adap->name); hdmi 814 drivers/gpu/drm/rockchip/inno_hdmi.c struct inno_hdmi *hdmi; hdmi 819 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi = devm_kzalloc(dev, sizeof(*hdmi), GFP_KERNEL); hdmi 820 drivers/gpu/drm/rockchip/inno_hdmi.c if (!hdmi) hdmi 823 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->dev = dev; hdmi 824 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->drm_dev = drm; hdmi 827 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->regs = devm_ioremap_resource(dev, iores); hdmi 828 drivers/gpu/drm/rockchip/inno_hdmi.c if (IS_ERR(hdmi->regs)) hdmi 829 drivers/gpu/drm/rockchip/inno_hdmi.c return PTR_ERR(hdmi->regs); hdmi 831 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->pclk = devm_clk_get(hdmi->dev, "pclk"); hdmi 832 drivers/gpu/drm/rockchip/inno_hdmi.c if (IS_ERR(hdmi->pclk)) { hdmi 833 drivers/gpu/drm/rockchip/inno_hdmi.c DRM_DEV_ERROR(hdmi->dev, "Unable to get HDMI pclk clk\n"); hdmi 834 drivers/gpu/drm/rockchip/inno_hdmi.c return PTR_ERR(hdmi->pclk); hdmi 837 drivers/gpu/drm/rockchip/inno_hdmi.c ret = clk_prepare_enable(hdmi->pclk); hdmi 839 drivers/gpu/drm/rockchip/inno_hdmi.c DRM_DEV_ERROR(hdmi->dev, hdmi 850 drivers/gpu/drm/rockchip/inno_hdmi.c inno_hdmi_reset(hdmi); hdmi 852 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->ddc = inno_hdmi_i2c_adapter(hdmi); hdmi 853 drivers/gpu/drm/rockchip/inno_hdmi.c if (IS_ERR(hdmi->ddc)) { hdmi 854 drivers/gpu/drm/rockchip/inno_hdmi.c ret = PTR_ERR(hdmi->ddc); hdmi 855 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->ddc = NULL; hdmi 865 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->tmds_rate = clk_get_rate(hdmi->pclk); hdmi 866 drivers/gpu/drm/rockchip/inno_hdmi.c inno_hdmi_i2c_init(hdmi); hdmi 868 drivers/gpu/drm/rockchip/inno_hdmi.c ret = inno_hdmi_register(drm, hdmi); hdmi 872 drivers/gpu/drm/rockchip/inno_hdmi.c dev_set_drvdata(dev, hdmi); hdmi 875 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi_modb(hdmi, HDMI_STATUS, m_MASK_INT_HOTPLUG, v_MASK_INT_HOTPLUG(1)); hdmi 879 drivers/gpu/drm/rockchip/inno_hdmi.c dev_name(dev), hdmi); hdmi 885 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->connector.funcs->destroy(&hdmi->connector); hdmi 886 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->encoder.funcs->destroy(&hdmi->encoder); hdmi 888 drivers/gpu/drm/rockchip/inno_hdmi.c i2c_put_adapter(hdmi->ddc); hdmi 890 drivers/gpu/drm/rockchip/inno_hdmi.c clk_disable_unprepare(hdmi->pclk); hdmi 897 drivers/gpu/drm/rockchip/inno_hdmi.c struct inno_hdmi *hdmi = dev_get_drvdata(dev); hdmi 899 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->connector.funcs->destroy(&hdmi->connector); hdmi 900 drivers/gpu/drm/rockchip/inno_hdmi.c hdmi->encoder.funcs->destroy(&hdmi->encoder); hdmi 902 drivers/gpu/drm/rockchip/inno_hdmi.c i2c_put_adapter(hdmi->ddc); hdmi 903 drivers/gpu/drm/rockchip/inno_hdmi.c clk_disable_unprepare(hdmi->pclk); hdmi 62 drivers/gpu/drm/rockchip/rk3066_hdmi.c static inline u8 hdmi_readb(struct rk3066_hdmi *hdmi, u16 offset) hdmi 64 drivers/gpu/drm/rockchip/rk3066_hdmi.c return readl_relaxed(hdmi->regs + offset); hdmi 67 drivers/gpu/drm/rockchip/rk3066_hdmi.c static inline void hdmi_writeb(struct rk3066_hdmi *hdmi, u16 offset, u32 val) hdmi 69 drivers/gpu/drm/rockchip/rk3066_hdmi.c writel_relaxed(val, hdmi->regs + offset); hdmi 72 drivers/gpu/drm/rockchip/rk3066_hdmi.c static inline void hdmi_modb(struct rk3066_hdmi *hdmi, u16 offset, hdmi 75 drivers/gpu/drm/rockchip/rk3066_hdmi.c u8 temp = hdmi_readb(hdmi, offset) & ~msk; hdmi 78 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, offset, temp); hdmi 81 drivers/gpu/drm/rockchip/rk3066_hdmi.c static void rk3066_hdmi_i2c_init(struct rk3066_hdmi *hdmi) hdmi 85 drivers/gpu/drm/rockchip/rk3066_hdmi.c ddc_bus_freq = (hdmi->tmdsclk >> 2) / HDMI_SCL_RATE; hdmi 87 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_DDC_BUS_FREQ_L, ddc_bus_freq & 0xFF); hdmi 88 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_DDC_BUS_FREQ_H, (ddc_bus_freq >> 8) & 0xFF); hdmi 91 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_modb(hdmi, HDMI_INTR_MASK1, HDMI_INTR_EDID_MASK, 0); hdmi 92 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_INTR_STATUS1, HDMI_INTR_EDID_MASK); hdmi 95 drivers/gpu/drm/rockchip/rk3066_hdmi.c static inline u8 rk3066_hdmi_get_power_mode(struct rk3066_hdmi *hdmi) hdmi 97 drivers/gpu/drm/rockchip/rk3066_hdmi.c return hdmi_readb(hdmi, HDMI_SYS_CTRL) & HDMI_SYS_POWER_MODE_MASK; hdmi 100 drivers/gpu/drm/rockchip/rk3066_hdmi.c static void rk3066_hdmi_set_power_mode(struct rk3066_hdmi *hdmi, int mode) hdmi 105 drivers/gpu/drm/rockchip/rk3066_hdmi.c current_mode = rk3066_hdmi_get_power_mode(hdmi); hdmi 107 drivers/gpu/drm/rockchip/rk3066_hdmi.c DRM_DEV_DEBUG(hdmi->dev, "mode :%d\n", mode); hdmi 108 drivers/gpu/drm/rockchip/rk3066_hdmi.c DRM_DEV_DEBUG(hdmi->dev, "current_mode :%d\n", current_mode); hdmi 123 drivers/gpu/drm/rockchip/rk3066_hdmi.c DRM_DEV_DEBUG(hdmi->dev, "%d: next_mode :%d\n", i, next_mode); hdmi 126 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_modb(hdmi, HDMI_SYS_CTRL, hdmi 129 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_SYS_CTRL, hdmi 133 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_SYS_CTRL, hdmi 137 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_SYS_CTRL, hdmi 151 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->tmdsclk = DEFAULT_PLLA_RATE; hdmi 155 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_upload_frame(struct rk3066_hdmi *hdmi, int setup_rc, hdmi 160 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_modb(hdmi, HDMI_CP_AUTO_SEND_CTRL, mask, disable); hdmi 162 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_CP_BUF_INDEX, frame_index); hdmi 174 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_CP_BUF_ACC_HB0 + i * 4, hdmi 178 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_modb(hdmi, HDMI_CP_AUTO_SEND_CTRL, mask, enable); hdmi 184 drivers/gpu/drm/rockchip/rk3066_hdmi.c static int rk3066_hdmi_config_avi(struct rk3066_hdmi *hdmi, hdmi 191 drivers/gpu/drm/rockchip/rk3066_hdmi.c &hdmi->connector, mode); hdmi 193 drivers/gpu/drm/rockchip/rk3066_hdmi.c if (hdmi->hdmi_data.enc_out_format == HDMI_COLORSPACE_YUV444) hdmi 195 drivers/gpu/drm/rockchip/rk3066_hdmi.c else if (hdmi->hdmi_data.enc_out_format == HDMI_COLORSPACE_YUV422) hdmi 200 drivers/gpu/drm/rockchip/rk3066_hdmi.c frame.avi.colorimetry = hdmi->hdmi_data.colorimetry; hdmi 203 drivers/gpu/drm/rockchip/rk3066_hdmi.c return rk3066_hdmi_upload_frame(hdmi, rc, &frame, hdmi 207 drivers/gpu/drm/rockchip/rk3066_hdmi.c static int rk3066_hdmi_config_video_timing(struct rk3066_hdmi *hdmi, hdmi 221 drivers/gpu/drm/rockchip/rk3066_hdmi.c if (hdmi->hdmi_data.vic == 2 || hdmi->hdmi_data.vic == 3) hdmi 227 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_EXT_VIDEO_PARA, value); hdmi 231 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_EXT_HTOTAL_L, value & 0xFF); hdmi 232 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_EXT_HTOTAL_H, (value >> 8) & 0xFF); hdmi 235 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_EXT_HBLANK_L, value & 0xFF); hdmi 236 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_EXT_HBLANK_H, (value >> 8) & 0xFF); hdmi 239 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_EXT_HDELAY_L, value & 0xFF); hdmi 240 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_EXT_HDELAY_H, (value >> 8) & 0xFF); hdmi 243 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_EXT_HDURATION_L, value & 0xFF); hdmi 244 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_EXT_HDURATION_H, (value >> 8) & 0xFF); hdmi 247 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_EXT_VTOTAL_L, value & 0xFF); hdmi 248 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_EXT_VTOTAL_H, (value >> 8) & 0xFF); hdmi 251 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_EXT_VBLANK_L, value & 0xFF); hdmi 254 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_EXT_VDELAY, value & 0xFF); hdmi 257 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_EXT_VDURATION, value & 0xFF); hdmi 263 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(struct rk3066_hdmi *hdmi, u16 offset, u8 value) hdmi 265 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, offset, value); hdmi 266 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_modb(hdmi, HDMI_SYS_CTRL, hdmi 269 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_modb(hdmi, HDMI_SYS_CTRL, HDMI_SYS_PLL_RESET_MASK, 0); hdmi 273 drivers/gpu/drm/rockchip/rk3066_hdmi.c static void rk3066_hdmi_config_phy(struct rk3066_hdmi *hdmi) hdmi 276 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_DEEP_COLOR_MODE, 0x22); hdmi 283 drivers/gpu/drm/rockchip/rk3066_hdmi.c if (hdmi->tmdsclk > 100000000) { hdmi 284 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x158, 0x0E); hdmi 285 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x15c, 0x00); hdmi 286 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x160, 0x60); hdmi 287 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x164, 0x00); hdmi 288 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x168, 0xDA); hdmi 289 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x16c, 0xA1); hdmi 290 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x170, 0x0e); hdmi 291 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x174, 0x22); hdmi 292 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x178, 0x00); hdmi 293 drivers/gpu/drm/rockchip/rk3066_hdmi.c } else if (hdmi->tmdsclk > 50000000) { hdmi 294 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x158, 0x06); hdmi 295 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x15c, 0x00); hdmi 296 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x160, 0x60); hdmi 297 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x164, 0x00); hdmi 298 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x168, 0xCA); hdmi 299 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x16c, 0xA3); hdmi 300 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x170, 0x0e); hdmi 301 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x174, 0x20); hdmi 302 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x178, 0x00); hdmi 304 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x158, 0x02); hdmi 305 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x15c, 0x00); hdmi 306 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x160, 0x60); hdmi 307 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x164, 0x00); hdmi 308 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x168, 0xC2); hdmi 309 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x16c, 0xA2); hdmi 310 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x170, 0x0e); hdmi 311 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x174, 0x20); hdmi 312 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_phy_write(hdmi, 0x178, 0x00); hdmi 316 drivers/gpu/drm/rockchip/rk3066_hdmi.c static int rk3066_hdmi_setup(struct rk3066_hdmi *hdmi, hdmi 319 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->hdmi_data.vic = drm_match_cea_mode(mode); hdmi 320 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->hdmi_data.enc_out_format = HDMI_COLORSPACE_RGB; hdmi 322 drivers/gpu/drm/rockchip/rk3066_hdmi.c if (hdmi->hdmi_data.vic == 6 || hdmi->hdmi_data.vic == 7 || hdmi 323 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->hdmi_data.vic == 21 || hdmi->hdmi_data.vic == 22 || hdmi 324 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->hdmi_data.vic == 2 || hdmi->hdmi_data.vic == 3 || hdmi 325 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->hdmi_data.vic == 17 || hdmi->hdmi_data.vic == 18) hdmi 326 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->hdmi_data.colorimetry = HDMI_COLORIMETRY_ITU_601; hdmi 328 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->hdmi_data.colorimetry = HDMI_COLORIMETRY_ITU_709; hdmi 330 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->tmdsclk = mode->clock * 1000; hdmi 333 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_modb(hdmi, HDMI_VIDEO_CTRL2, HDMI_VIDEO_AUDIO_DISABLE_MASK, hdmi 337 drivers/gpu/drm/rockchip/rk3066_hdmi.c if (rk3066_hdmi_get_power_mode(hdmi) != HDMI_SYS_POWER_MODE_B) hdmi 338 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_set_power_mode(hdmi, HDMI_SYS_POWER_MODE_B); hdmi 341 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_modb(hdmi, HDMI_AV_CTRL1, hdmi 343 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_VIDEO_CTRL1, hdmi 347 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_DEEP_COLOR_MODE, 0x20); hdmi 349 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_config_video_timing(hdmi, mode); hdmi 351 drivers/gpu/drm/rockchip/rk3066_hdmi.c if (hdmi->hdmi_data.sink_is_hdmi) { hdmi 352 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_modb(hdmi, HDMI_HDCP_CTRL, HDMI_VIDEO_MODE_MASK, hdmi 354 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_config_avi(hdmi, mode); hdmi 356 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_modb(hdmi, HDMI_HDCP_CTRL, HDMI_VIDEO_MODE_MASK, 0); hdmi 359 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_config_phy(hdmi); hdmi 361 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_set_power_mode(hdmi, HDMI_SYS_POWER_MODE_E); hdmi 369 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_i2c_init(hdmi); hdmi 372 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_modb(hdmi, HDMI_VIDEO_CTRL2, hdmi 382 drivers/gpu/drm/rockchip/rk3066_hdmi.c struct rk3066_hdmi *hdmi = to_rk3066_hdmi(encoder); hdmi 385 drivers/gpu/drm/rockchip/rk3066_hdmi.c memcpy(&hdmi->previous_mode, adj_mode, sizeof(hdmi->previous_mode)); hdmi 390 drivers/gpu/drm/rockchip/rk3066_hdmi.c struct rk3066_hdmi *hdmi = to_rk3066_hdmi(encoder); hdmi 393 drivers/gpu/drm/rockchip/rk3066_hdmi.c mux = drm_of_encoder_active_endpoint_id(hdmi->dev->of_node, encoder); hdmi 399 drivers/gpu/drm/rockchip/rk3066_hdmi.c regmap_write(hdmi->grf_regmap, GRF_SOC_CON0, val); hdmi 401 drivers/gpu/drm/rockchip/rk3066_hdmi.c DRM_DEV_DEBUG(hdmi->dev, "hdmi encoder enable select: vop%s\n", hdmi 404 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_setup(hdmi, &hdmi->previous_mode); hdmi 409 drivers/gpu/drm/rockchip/rk3066_hdmi.c struct rk3066_hdmi *hdmi = to_rk3066_hdmi(encoder); hdmi 411 drivers/gpu/drm/rockchip/rk3066_hdmi.c DRM_DEV_DEBUG(hdmi->dev, "hdmi encoder disable\n"); hdmi 413 drivers/gpu/drm/rockchip/rk3066_hdmi.c if (rk3066_hdmi_get_power_mode(hdmi) == HDMI_SYS_POWER_MODE_E) { hdmi 414 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_VIDEO_CTRL2, hdmi 416 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_modb(hdmi, HDMI_VIDEO_CTRL2, hdmi 421 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_set_power_mode(hdmi, HDMI_SYS_POWER_MODE_A); hdmi 461 drivers/gpu/drm/rockchip/rk3066_hdmi.c struct rk3066_hdmi *hdmi = to_rk3066_hdmi(connector); hdmi 463 drivers/gpu/drm/rockchip/rk3066_hdmi.c return (hdmi_readb(hdmi, HDMI_HPG_MENS_STA) & HDMI_HPG_IN_STATUS_HIGH) ? hdmi 469 drivers/gpu/drm/rockchip/rk3066_hdmi.c struct rk3066_hdmi *hdmi = to_rk3066_hdmi(connector); hdmi 473 drivers/gpu/drm/rockchip/rk3066_hdmi.c if (!hdmi->ddc) hdmi 476 drivers/gpu/drm/rockchip/rk3066_hdmi.c edid = drm_get_edid(connector, hdmi->ddc); hdmi 478 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->hdmi_data.sink_is_hdmi = drm_detect_hdmi_monitor(edid); hdmi 502 drivers/gpu/drm/rockchip/rk3066_hdmi.c struct rk3066_hdmi *hdmi = to_rk3066_hdmi(connector); hdmi 504 drivers/gpu/drm/rockchip/rk3066_hdmi.c return &hdmi->encoder; hdmi 542 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_register(struct drm_device *drm, struct rk3066_hdmi *hdmi) hdmi 544 drivers/gpu/drm/rockchip/rk3066_hdmi.c struct drm_encoder *encoder = &hdmi->encoder; hdmi 545 drivers/gpu/drm/rockchip/rk3066_hdmi.c struct device *dev = hdmi->dev; hdmi 563 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->connector.polled = DRM_CONNECTOR_POLL_HPD; hdmi 565 drivers/gpu/drm/rockchip/rk3066_hdmi.c drm_connector_helper_add(&hdmi->connector, hdmi 567 drivers/gpu/drm/rockchip/rk3066_hdmi.c drm_connector_init(drm, &hdmi->connector, hdmi 571 drivers/gpu/drm/rockchip/rk3066_hdmi.c drm_connector_attach_encoder(&hdmi->connector, encoder); hdmi 578 drivers/gpu/drm/rockchip/rk3066_hdmi.c struct rk3066_hdmi *hdmi = dev_id; hdmi 582 drivers/gpu/drm/rockchip/rk3066_hdmi.c if (rk3066_hdmi_get_power_mode(hdmi) == HDMI_SYS_POWER_MODE_A) hdmi 583 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_SYS_CTRL, HDMI_SYS_POWER_MODE_B); hdmi 585 drivers/gpu/drm/rockchip/rk3066_hdmi.c interrupt = hdmi_readb(hdmi, HDMI_INTR_STATUS1); hdmi 587 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_INTR_STATUS1, interrupt); hdmi 590 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->i2c->stat = interrupt; hdmi 591 drivers/gpu/drm/rockchip/rk3066_hdmi.c complete(&hdmi->i2c->cmpltn); hdmi 602 drivers/gpu/drm/rockchip/rk3066_hdmi.c struct rk3066_hdmi *hdmi = dev_id; hdmi 604 drivers/gpu/drm/rockchip/rk3066_hdmi.c drm_helper_hpd_irq_event(hdmi->connector.dev); hdmi 609 drivers/gpu/drm/rockchip/rk3066_hdmi.c static int rk3066_hdmi_i2c_read(struct rk3066_hdmi *hdmi, struct i2c_msg *msgs) hdmi 615 drivers/gpu/drm/rockchip/rk3066_hdmi.c ret = wait_for_completion_timeout(&hdmi->i2c->cmpltn, HZ / 10); hdmi 616 drivers/gpu/drm/rockchip/rk3066_hdmi.c if (!ret || hdmi->i2c->stat & HDMI_INTR_EDID_ERR) hdmi 620 drivers/gpu/drm/rockchip/rk3066_hdmi.c *buf++ = hdmi_readb(hdmi, HDMI_DDC_READ_FIFO_ADDR); hdmi 625 drivers/gpu/drm/rockchip/rk3066_hdmi.c static int rk3066_hdmi_i2c_write(struct rk3066_hdmi *hdmi, struct i2c_msg *msgs) hdmi 636 drivers/gpu/drm/rockchip/rk3066_hdmi.c reinit_completion(&hdmi->i2c->cmpltn); hdmi 639 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->i2c->segment_addr = msgs->buf[0]; hdmi 641 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->i2c->ddc_addr = msgs->buf[0]; hdmi 644 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_EDID_WORD_ADDR, hdmi->i2c->ddc_addr); hdmi 647 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_EDID_SEGMENT_POINTER, hdmi->i2c->segment_addr); hdmi 655 drivers/gpu/drm/rockchip/rk3066_hdmi.c struct rk3066_hdmi *hdmi = i2c_get_adapdata(adap); hdmi 656 drivers/gpu/drm/rockchip/rk3066_hdmi.c struct rk3066_hdmi_i2c *i2c = hdmi->i2c; hdmi 661 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_i2c_init(hdmi); hdmi 664 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_modb(hdmi, HDMI_INTR_MASK1, hdmi 669 drivers/gpu/drm/rockchip/rk3066_hdmi.c DRM_DEV_DEBUG(hdmi->dev, hdmi 674 drivers/gpu/drm/rockchip/rk3066_hdmi.c ret = rk3066_hdmi_i2c_read(hdmi, &msgs[i]); hdmi 676 drivers/gpu/drm/rockchip/rk3066_hdmi.c ret = rk3066_hdmi_i2c_write(hdmi, &msgs[i]); hdmi 686 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_modb(hdmi, HDMI_INTR_MASK1, HDMI_INTR_EDID_MASK, 0); hdmi 703 drivers/gpu/drm/rockchip/rk3066_hdmi.c static struct i2c_adapter *rk3066_hdmi_i2c_adapter(struct rk3066_hdmi *hdmi) hdmi 709 drivers/gpu/drm/rockchip/rk3066_hdmi.c i2c = devm_kzalloc(hdmi->dev, sizeof(*i2c), GFP_KERNEL); hdmi 719 drivers/gpu/drm/rockchip/rk3066_hdmi.c adap->dev.parent = hdmi->dev; hdmi 720 drivers/gpu/drm/rockchip/rk3066_hdmi.c adap->dev.of_node = hdmi->dev->of_node; hdmi 723 drivers/gpu/drm/rockchip/rk3066_hdmi.c i2c_set_adapdata(adap, hdmi); hdmi 727 drivers/gpu/drm/rockchip/rk3066_hdmi.c DRM_DEV_ERROR(hdmi->dev, "cannot add %s I2C adapter\n", hdmi 729 drivers/gpu/drm/rockchip/rk3066_hdmi.c devm_kfree(hdmi->dev, i2c); hdmi 733 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->i2c = i2c; hdmi 735 drivers/gpu/drm/rockchip/rk3066_hdmi.c DRM_DEV_DEBUG(hdmi->dev, "registered %s I2C bus driver\n", adap->name); hdmi 745 drivers/gpu/drm/rockchip/rk3066_hdmi.c struct rk3066_hdmi *hdmi; hdmi 750 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi = devm_kzalloc(dev, sizeof(*hdmi), GFP_KERNEL); hdmi 751 drivers/gpu/drm/rockchip/rk3066_hdmi.c if (!hdmi) hdmi 754 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->dev = dev; hdmi 755 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->drm_dev = drm; hdmi 761 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->regs = devm_ioremap_resource(dev, iores); hdmi 762 drivers/gpu/drm/rockchip/rk3066_hdmi.c if (IS_ERR(hdmi->regs)) hdmi 763 drivers/gpu/drm/rockchip/rk3066_hdmi.c return PTR_ERR(hdmi->regs); hdmi 769 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->hclk = devm_clk_get(dev, "hclk"); hdmi 770 drivers/gpu/drm/rockchip/rk3066_hdmi.c if (IS_ERR(hdmi->hclk)) { hdmi 772 drivers/gpu/drm/rockchip/rk3066_hdmi.c return PTR_ERR(hdmi->hclk); hdmi 775 drivers/gpu/drm/rockchip/rk3066_hdmi.c ret = clk_prepare_enable(hdmi->hclk); hdmi 781 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->grf_regmap = syscon_regmap_lookup_by_phandle(dev->of_node, hdmi 783 drivers/gpu/drm/rockchip/rk3066_hdmi.c if (IS_ERR(hdmi->grf_regmap)) { hdmi 785 drivers/gpu/drm/rockchip/rk3066_hdmi.c ret = PTR_ERR(hdmi->grf_regmap); hdmi 790 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_INTERNAL_CLK_DIVIDER, 25); hdmi 792 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->ddc = rk3066_hdmi_i2c_adapter(hdmi); hdmi 793 drivers/gpu/drm/rockchip/rk3066_hdmi.c if (IS_ERR(hdmi->ddc)) { hdmi 794 drivers/gpu/drm/rockchip/rk3066_hdmi.c ret = PTR_ERR(hdmi->ddc); hdmi 795 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->ddc = NULL; hdmi 799 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_set_power_mode(hdmi, HDMI_SYS_POWER_MODE_B); hdmi 801 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_INTR_MASK1, HDMI_INTR_HOTPLUG); hdmi 802 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_INTR_MASK2, 0); hdmi 803 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_INTR_MASK3, 0); hdmi 804 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi_writeb(hdmi, HDMI_INTR_MASK4, 0); hdmi 805 drivers/gpu/drm/rockchip/rk3066_hdmi.c rk3066_hdmi_set_power_mode(hdmi, HDMI_SYS_POWER_MODE_A); hdmi 807 drivers/gpu/drm/rockchip/rk3066_hdmi.c ret = rk3066_hdmi_register(drm, hdmi); hdmi 811 drivers/gpu/drm/rockchip/rk3066_hdmi.c dev_set_drvdata(dev, hdmi); hdmi 815 drivers/gpu/drm/rockchip/rk3066_hdmi.c dev_name(dev), hdmi); hdmi 824 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->connector.funcs->destroy(&hdmi->connector); hdmi 825 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->encoder.funcs->destroy(&hdmi->encoder); hdmi 827 drivers/gpu/drm/rockchip/rk3066_hdmi.c i2c_put_adapter(hdmi->ddc); hdmi 829 drivers/gpu/drm/rockchip/rk3066_hdmi.c clk_disable_unprepare(hdmi->hclk); hdmi 837 drivers/gpu/drm/rockchip/rk3066_hdmi.c struct rk3066_hdmi *hdmi = dev_get_drvdata(dev); hdmi 839 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->connector.funcs->destroy(&hdmi->connector); hdmi 840 drivers/gpu/drm/rockchip/rk3066_hdmi.c hdmi->encoder.funcs->destroy(&hdmi->encoder); hdmi 842 drivers/gpu/drm/rockchip/rk3066_hdmi.c i2c_put_adapter(hdmi->ddc); hdmi 843 drivers/gpu/drm/rockchip/rk3066_hdmi.c clk_disable_unprepare(hdmi->hclk); hdmi 162 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi; hdmi 169 drivers/gpu/drm/sti/sti_hdmi.c u32 hdmi_read(struct sti_hdmi *hdmi, int offset) hdmi 171 drivers/gpu/drm/sti/sti_hdmi.c return readl(hdmi->regs + offset); hdmi 174 drivers/gpu/drm/sti/sti_hdmi.c void hdmi_write(struct sti_hdmi *hdmi, u32 val, int offset) hdmi 176 drivers/gpu/drm/sti/sti_hdmi.c writel(val, hdmi->regs + offset); hdmi 187 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi = arg; hdmi 190 drivers/gpu/drm/sti/sti_hdmi.c if (hdmi->irq_status & HDMI_INT_HOT_PLUG) { hdmi 191 drivers/gpu/drm/sti/sti_hdmi.c hdmi->hpd = readl(hdmi->regs + HDMI_STA) & HDMI_STA_HOT_PLUG; hdmi 192 drivers/gpu/drm/sti/sti_hdmi.c if (hdmi->drm_dev) hdmi 193 drivers/gpu/drm/sti/sti_hdmi.c drm_helper_hpd_irq_event(hdmi->drm_dev); hdmi 199 drivers/gpu/drm/sti/sti_hdmi.c if (hdmi->irq_status & (HDMI_INT_SW_RST | HDMI_INT_DLL_LCK)) { hdmi 200 drivers/gpu/drm/sti/sti_hdmi.c hdmi->event_received = true; hdmi 201 drivers/gpu/drm/sti/sti_hdmi.c wake_up_interruptible(&hdmi->wait_event); hdmi 205 drivers/gpu/drm/sti/sti_hdmi.c if (hdmi->irq_status & HDMI_INT_AUDIO_FIFO_XRUN) hdmi 219 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi = arg; hdmi 222 drivers/gpu/drm/sti/sti_hdmi.c hdmi->irq_status = hdmi_read(hdmi, HDMI_INT_STA); hdmi 225 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, hdmi->irq_status, HDMI_INT_CLR); hdmi 228 drivers/gpu/drm/sti/sti_hdmi.c hdmi_read(hdmi, HDMI_INT_STA); hdmi 238 drivers/gpu/drm/sti/sti_hdmi.c static void hdmi_active_area(struct sti_hdmi *hdmi) hdmi 243 drivers/gpu/drm/sti/sti_hdmi.c xmin = sti_vtg_get_pixel_number(hdmi->mode, 1); hdmi 244 drivers/gpu/drm/sti/sti_hdmi.c xmax = sti_vtg_get_pixel_number(hdmi->mode, hdmi->mode.hdisplay); hdmi 245 drivers/gpu/drm/sti/sti_hdmi.c ymin = sti_vtg_get_line_number(hdmi->mode, 0); hdmi 246 drivers/gpu/drm/sti/sti_hdmi.c ymax = sti_vtg_get_line_number(hdmi->mode, hdmi->mode.vdisplay - 1); hdmi 248 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, xmin, HDMI_ACTIVE_VID_XMIN); hdmi 249 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, xmax, HDMI_ACTIVE_VID_XMAX); hdmi 250 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, ymin, HDMI_ACTIVE_VID_YMIN); hdmi 251 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, ymax, HDMI_ACTIVE_VID_YMAX); hdmi 259 drivers/gpu/drm/sti/sti_hdmi.c static void hdmi_config(struct sti_hdmi *hdmi) hdmi 270 drivers/gpu/drm/sti/sti_hdmi.c if (hdmi->hdmi_monitor) hdmi 274 drivers/gpu/drm/sti/sti_hdmi.c if (hdmi->mode.flags & DRM_MODE_FLAG_NHSYNC) { hdmi 280 drivers/gpu/drm/sti/sti_hdmi.c if (hdmi->mode.flags & DRM_MODE_FLAG_NVSYNC) { hdmi 288 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, conf, HDMI_CFG); hdmi 297 drivers/gpu/drm/sti/sti_hdmi.c static void hdmi_infoframe_reset(struct sti_hdmi *hdmi, hdmi 322 drivers/gpu/drm/sti/sti_hdmi.c val = hdmi_read(hdmi, HDMI_SW_DI_CFG); hdmi 324 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, val, HDMI_SW_DI_CFG); hdmi 327 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, 0x0, head_offset); hdmi 329 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, 0x0, pack_offset + i); hdmi 357 drivers/gpu/drm/sti/sti_hdmi.c static void hdmi_infoframe_write_infopack(struct sti_hdmi *hdmi, hdmi 390 drivers/gpu/drm/sti/sti_hdmi.c val = hdmi_read(hdmi, HDMI_SW_DI_CFG); hdmi 392 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, val, HDMI_SW_DI_CFG); hdmi 397 drivers/gpu/drm/sti/sti_hdmi.c writel(val, hdmi->regs + head_offset); hdmi 411 drivers/gpu/drm/sti/sti_hdmi.c writel(val, hdmi->regs + pack_offset + i); hdmi 415 drivers/gpu/drm/sti/sti_hdmi.c val = hdmi_read(hdmi, HDMI_SW_DI_CFG); hdmi 417 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, val, HDMI_SW_DI_CFG); hdmi 431 drivers/gpu/drm/sti/sti_hdmi.c static int hdmi_avi_infoframe_config(struct sti_hdmi *hdmi) hdmi 433 drivers/gpu/drm/sti/sti_hdmi.c struct drm_display_mode *mode = &hdmi->mode; hdmi 441 drivers/gpu/drm/sti/sti_hdmi.c hdmi->drm_connector, mode); hdmi 448 drivers/gpu/drm/sti/sti_hdmi.c infoframe.colorspace = hdmi->colorspace; hdmi 458 drivers/gpu/drm/sti/sti_hdmi.c hdmi_infoframe_write_infopack(hdmi, buffer, ret); hdmi 474 drivers/gpu/drm/sti/sti_hdmi.c static int hdmi_audio_infoframe_config(struct sti_hdmi *hdmi) hdmi 476 drivers/gpu/drm/sti/sti_hdmi.c struct hdmi_audio_params *audio = &hdmi->audio; hdmi 490 drivers/gpu/drm/sti/sti_hdmi.c hdmi_infoframe_write_infopack(hdmi, buffer, ret); hdmi 493 drivers/gpu/drm/sti/sti_hdmi.c val = hdmi_read(hdmi, HDMI_SW_DI_CFG); hdmi 496 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, val, HDMI_SW_DI_CFG); hdmi 513 drivers/gpu/drm/sti/sti_hdmi.c static int hdmi_vendor_infoframe_config(struct sti_hdmi *hdmi) hdmi 515 drivers/gpu/drm/sti/sti_hdmi.c struct drm_display_mode *mode = &hdmi->mode; hdmi 523 drivers/gpu/drm/sti/sti_hdmi.c hdmi->drm_connector, hdmi 541 drivers/gpu/drm/sti/sti_hdmi.c hdmi_infoframe_write_infopack(hdmi, buffer, ret); hdmi 553 drivers/gpu/drm/sti/sti_hdmi.c static void hdmi_swreset(struct sti_hdmi *hdmi) hdmi 560 drivers/gpu/drm/sti/sti_hdmi.c if (clk_prepare_enable(hdmi->clk_audio)) hdmi 564 drivers/gpu/drm/sti/sti_hdmi.c hdmi->event_received = false; hdmi 566 drivers/gpu/drm/sti/sti_hdmi.c val = hdmi_read(hdmi, HDMI_CFG); hdmi 568 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, val, HDMI_CFG); hdmi 571 drivers/gpu/drm/sti/sti_hdmi.c wait_event_interruptible_timeout(hdmi->wait_event, hdmi 572 drivers/gpu/drm/sti/sti_hdmi.c hdmi->event_received, hdmi 580 drivers/gpu/drm/sti/sti_hdmi.c if ((hdmi_read(hdmi, HDMI_STA) & HDMI_STA_SW_RST) == 0) hdmi 583 drivers/gpu/drm/sti/sti_hdmi.c val = hdmi_read(hdmi, HDMI_CFG); hdmi 585 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, val, HDMI_CFG); hdmi 588 drivers/gpu/drm/sti/sti_hdmi.c clk_disable_unprepare(hdmi->clk_audio); hdmi 594 drivers/gpu/drm/sti/sti_hdmi.c hdmi_read(hdmi, reg)) hdmi 664 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi = (struct sti_hdmi *)node->info_ent->data; hdmi 666 drivers/gpu/drm/sti/sti_hdmi.c seq_printf(s, "HDMI: (vaddr = 0x%p)", hdmi->regs); hdmi 668 drivers/gpu/drm/sti/sti_hdmi.c hdmi_dbg_cfg(s, hdmi_read(hdmi, HDMI_CFG)); hdmi 671 drivers/gpu/drm/sti/sti_hdmi.c hdmi_dbg_sta(s, hdmi_read(hdmi, HDMI_STA)); hdmi 674 drivers/gpu/drm/sti/sti_hdmi.c DBGFS_PRINT_INT("Xmin:", hdmi_read(hdmi, HDMI_ACTIVE_VID_XMIN)); hdmi 677 drivers/gpu/drm/sti/sti_hdmi.c DBGFS_PRINT_INT("Xmax:", hdmi_read(hdmi, HDMI_ACTIVE_VID_XMAX)); hdmi 680 drivers/gpu/drm/sti/sti_hdmi.c DBGFS_PRINT_INT("Ymin:", hdmi_read(hdmi, HDMI_ACTIVE_VID_YMIN)); hdmi 683 drivers/gpu/drm/sti/sti_hdmi.c DBGFS_PRINT_INT("Ymax:", hdmi_read(hdmi, HDMI_ACTIVE_VID_YMAX)); hdmi 685 drivers/gpu/drm/sti/sti_hdmi.c hdmi_dbg_sw_di_cfg(s, hdmi_read(hdmi, HDMI_SW_DI_CFG)); hdmi 729 drivers/gpu/drm/sti/sti_hdmi.c static int hdmi_debugfs_init(struct sti_hdmi *hdmi, struct drm_minor *minor) hdmi 734 drivers/gpu/drm/sti/sti_hdmi.c hdmi_debugfs_files[i].data = hdmi; hdmi 743 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi = bridge->driver_private; hdmi 745 drivers/gpu/drm/sti/sti_hdmi.c u32 val = hdmi_read(hdmi, HDMI_CFG); hdmi 747 drivers/gpu/drm/sti/sti_hdmi.c if (!hdmi->enabled) hdmi 754 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, val, HDMI_CFG); hdmi 756 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, 0xffffffff, HDMI_INT_CLR); hdmi 759 drivers/gpu/drm/sti/sti_hdmi.c hdmi->phy_ops->stop(hdmi); hdmi 762 drivers/gpu/drm/sti/sti_hdmi.c hdmi_infoframe_reset(hdmi, HDMI_IFRAME_SLOT_AVI); hdmi 763 drivers/gpu/drm/sti/sti_hdmi.c hdmi_infoframe_reset(hdmi, HDMI_IFRAME_SLOT_AUDIO); hdmi 764 drivers/gpu/drm/sti/sti_hdmi.c hdmi_infoframe_reset(hdmi, HDMI_IFRAME_SLOT_VENDOR); hdmi 767 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, 0x0000, HDMI_DFLT_CHL0_DAT); hdmi 768 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, 0x0000, HDMI_DFLT_CHL1_DAT); hdmi 769 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, 0x0060, HDMI_DFLT_CHL2_DAT); hdmi 772 drivers/gpu/drm/sti/sti_hdmi.c clk_disable_unprepare(hdmi->clk_phy); hdmi 773 drivers/gpu/drm/sti/sti_hdmi.c clk_disable_unprepare(hdmi->clk_tmds); hdmi 774 drivers/gpu/drm/sti/sti_hdmi.c clk_disable_unprepare(hdmi->clk_pix); hdmi 776 drivers/gpu/drm/sti/sti_hdmi.c hdmi->enabled = false; hdmi 778 drivers/gpu/drm/sti/sti_hdmi.c cec_notifier_set_phys_addr(hdmi->notifier, CEC_PHYS_ADDR_INVALID); hdmi 827 drivers/gpu/drm/sti/sti_hdmi.c static int hdmi_audio_configure(struct sti_hdmi *hdmi) hdmi 830 drivers/gpu/drm/sti/sti_hdmi.c struct hdmi_audio_params *params = &hdmi->audio; hdmi 835 drivers/gpu/drm/sti/sti_hdmi.c if (!hdmi->enabled) hdmi 842 drivers/gpu/drm/sti/sti_hdmi.c params->sample_rate, hdmi->mode.clock * 1000, n); hdmi 843 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, n, HDMI_AUDN); hdmi 868 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, audio_cfg, HDMI_AUDIO_CFG); hdmi 870 drivers/gpu/drm/sti/sti_hdmi.c return hdmi_audio_infoframe_config(hdmi); hdmi 875 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi = bridge->driver_private; hdmi 879 drivers/gpu/drm/sti/sti_hdmi.c if (hdmi->enabled) hdmi 883 drivers/gpu/drm/sti/sti_hdmi.c if (clk_prepare_enable(hdmi->clk_pix)) hdmi 885 drivers/gpu/drm/sti/sti_hdmi.c if (clk_prepare_enable(hdmi->clk_tmds)) hdmi 887 drivers/gpu/drm/sti/sti_hdmi.c if (clk_prepare_enable(hdmi->clk_phy)) hdmi 890 drivers/gpu/drm/sti/sti_hdmi.c hdmi->enabled = true; hdmi 893 drivers/gpu/drm/sti/sti_hdmi.c if (!hdmi->phy_ops->start(hdmi)) { hdmi 899 drivers/gpu/drm/sti/sti_hdmi.c hdmi_active_area(hdmi); hdmi 902 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, HDMI_WORKING_INT, HDMI_INT_EN); hdmi 905 drivers/gpu/drm/sti/sti_hdmi.c hdmi_config(hdmi); hdmi 908 drivers/gpu/drm/sti/sti_hdmi.c if (hdmi_avi_infoframe_config(hdmi)) hdmi 911 drivers/gpu/drm/sti/sti_hdmi.c if (hdmi->audio.enabled) { hdmi 912 drivers/gpu/drm/sti/sti_hdmi.c if (hdmi_audio_configure(hdmi)) hdmi 915 drivers/gpu/drm/sti/sti_hdmi.c hdmi_audio_infoframe_config(hdmi); hdmi 919 drivers/gpu/drm/sti/sti_hdmi.c if (hdmi_vendor_infoframe_config(hdmi)) hdmi 923 drivers/gpu/drm/sti/sti_hdmi.c hdmi_swreset(hdmi); hdmi 930 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi = bridge->driver_private; hdmi 936 drivers/gpu/drm/sti/sti_hdmi.c memcpy(&hdmi->mode, mode, sizeof(struct drm_display_mode)); hdmi 939 drivers/gpu/drm/sti/sti_hdmi.c ret = clk_set_rate(hdmi->clk_pix, mode->clock * 1000); hdmi 945 drivers/gpu/drm/sti/sti_hdmi.c ret = clk_set_rate(hdmi->clk_phy, mode->clock * 1000); hdmi 970 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi = hdmi_connector->hdmi; hdmi 976 drivers/gpu/drm/sti/sti_hdmi.c edid = drm_get_edid(connector, hdmi->ddc_adapt); hdmi 980 drivers/gpu/drm/sti/sti_hdmi.c hdmi->hdmi_monitor = drm_detect_hdmi_monitor(edid); hdmi 982 drivers/gpu/drm/sti/sti_hdmi.c (hdmi->hdmi_monitor ? "hdmi monitor" : "dvi monitor"), hdmi 984 drivers/gpu/drm/sti/sti_hdmi.c cec_notifier_set_phys_addr_from_edid(hdmi->notifier, edid); hdmi 1008 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi = hdmi_connector->hdmi; hdmi 1011 drivers/gpu/drm/sti/sti_hdmi.c result = clk_round_rate(hdmi->clk_pix, target); hdmi 1036 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi = hdmi_connector->hdmi; hdmi 1040 drivers/gpu/drm/sti/sti_hdmi.c if (hdmi->hpd) { hdmi 1046 drivers/gpu/drm/sti/sti_hdmi.c cec_notifier_set_phys_addr(hdmi->notifier, CEC_PHYS_ADDR_INVALID); hdmi 1055 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi = hdmi_connector->hdmi; hdmi 1059 drivers/gpu/drm/sti/sti_hdmi.c hdmi->colorspace = DEFAULT_COLORSPACE_MODE; hdmi 1068 drivers/gpu/drm/sti/sti_hdmi.c drm_object_attach_property(&connector->base, prop, hdmi->colorspace); hdmi 1079 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi = hdmi_connector->hdmi; hdmi 1082 drivers/gpu/drm/sti/sti_hdmi.c hdmi->colorspace = val; hdmi 1098 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi = hdmi_connector->hdmi; hdmi 1101 drivers/gpu/drm/sti/sti_hdmi.c *val = hdmi->colorspace; hdmi 1113 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi = hdmi_connector->hdmi; hdmi 1115 drivers/gpu/drm/sti/sti_hdmi.c if (hdmi_debugfs_init(hdmi, hdmi->drm_dev->primary)) { hdmi 1149 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi = dev_get_drvdata(dev); hdmi 1157 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, audio_cfg, HDMI_AUDIO_CFG); hdmi 1159 drivers/gpu/drm/sti/sti_hdmi.c hdmi->audio.enabled = false; hdmi 1160 drivers/gpu/drm/sti/sti_hdmi.c hdmi_audio_infoframe_config(hdmi); hdmi 1168 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi = dev_get_drvdata(dev); hdmi 1183 drivers/gpu/drm/sti/sti_hdmi.c hdmi->audio.sample_width = params->sample_width; hdmi 1184 drivers/gpu/drm/sti/sti_hdmi.c hdmi->audio.sample_rate = params->sample_rate; hdmi 1185 drivers/gpu/drm/sti/sti_hdmi.c hdmi->audio.cea = params->cea; hdmi 1187 drivers/gpu/drm/sti/sti_hdmi.c hdmi->audio.enabled = true; hdmi 1189 drivers/gpu/drm/sti/sti_hdmi.c ret = hdmi_audio_configure(hdmi); hdmi 1198 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi = dev_get_drvdata(dev); hdmi 1203 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, HDMI_SAMPLE_FLAT_ALL, HDMI_SAMPLE_FLAT_MASK); hdmi 1205 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, HDMI_SAMPLE_FLAT_NO, HDMI_SAMPLE_FLAT_MASK); hdmi 1212 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi = dev_get_drvdata(dev); hdmi 1213 drivers/gpu/drm/sti/sti_hdmi.c struct drm_connector *connector = hdmi->drm_connector; hdmi 1229 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi) hdmi 1239 drivers/gpu/drm/sti/sti_hdmi.c hdmi->audio.enabled = false; hdmi 1241 drivers/gpu/drm/sti/sti_hdmi.c hdmi->audio_pdev = platform_device_register_data( hdmi 1245 drivers/gpu/drm/sti/sti_hdmi.c if (IS_ERR(hdmi->audio_pdev)) hdmi 1246 drivers/gpu/drm/sti/sti_hdmi.c return PTR_ERR(hdmi->audio_pdev); hdmi 1255 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi = dev_get_drvdata(dev); hdmi 1264 drivers/gpu/drm/sti/sti_hdmi.c hdmi->drm_dev = drm_dev; hdmi 1274 drivers/gpu/drm/sti/sti_hdmi.c connector->hdmi = hdmi; hdmi 1280 drivers/gpu/drm/sti/sti_hdmi.c bridge->driver_private = hdmi; hdmi 1293 drivers/gpu/drm/sti/sti_hdmi.c hdmi->ddc_adapt); hdmi 1300 drivers/gpu/drm/sti/sti_hdmi.c hdmi->drm_connector = drm_connector; hdmi 1308 drivers/gpu/drm/sti/sti_hdmi.c err = sti_hdmi_register_audio_driver(dev, hdmi); hdmi 1315 drivers/gpu/drm/sti/sti_hdmi.c err = hdmi_audio_infoframe_init(&hdmi->audio.cea); hdmi 1322 drivers/gpu/drm/sti/sti_hdmi.c hdmi_write(hdmi, HDMI_DEFAULT_INT, HDMI_INT_EN); hdmi 1327 drivers/gpu/drm/sti/sti_hdmi.c hdmi->drm_connector = NULL; hdmi 1354 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi; hdmi 1362 drivers/gpu/drm/sti/sti_hdmi.c hdmi = devm_kzalloc(dev, sizeof(*hdmi), GFP_KERNEL); hdmi 1363 drivers/gpu/drm/sti/sti_hdmi.c if (!hdmi) hdmi 1368 drivers/gpu/drm/sti/sti_hdmi.c hdmi->ddc_adapt = of_get_i2c_adapter_by_node(ddc); hdmi 1370 drivers/gpu/drm/sti/sti_hdmi.c if (!hdmi->ddc_adapt) hdmi 1374 drivers/gpu/drm/sti/sti_hdmi.c hdmi->dev = pdev->dev; hdmi 1383 drivers/gpu/drm/sti/sti_hdmi.c hdmi->regs = devm_ioremap_nocache(dev, res->start, resource_size(res)); hdmi 1384 drivers/gpu/drm/sti/sti_hdmi.c if (!hdmi->regs) { hdmi 1389 drivers/gpu/drm/sti/sti_hdmi.c hdmi->phy_ops = (struct hdmi_phy_ops *) hdmi 1393 drivers/gpu/drm/sti/sti_hdmi.c hdmi->clk_pix = devm_clk_get(dev, "pix"); hdmi 1394 drivers/gpu/drm/sti/sti_hdmi.c if (IS_ERR(hdmi->clk_pix)) { hdmi 1396 drivers/gpu/drm/sti/sti_hdmi.c ret = PTR_ERR(hdmi->clk_pix); hdmi 1400 drivers/gpu/drm/sti/sti_hdmi.c hdmi->clk_tmds = devm_clk_get(dev, "tmds"); hdmi 1401 drivers/gpu/drm/sti/sti_hdmi.c if (IS_ERR(hdmi->clk_tmds)) { hdmi 1403 drivers/gpu/drm/sti/sti_hdmi.c ret = PTR_ERR(hdmi->clk_tmds); hdmi 1407 drivers/gpu/drm/sti/sti_hdmi.c hdmi->clk_phy = devm_clk_get(dev, "phy"); hdmi 1408 drivers/gpu/drm/sti/sti_hdmi.c if (IS_ERR(hdmi->clk_phy)) { hdmi 1410 drivers/gpu/drm/sti/sti_hdmi.c ret = PTR_ERR(hdmi->clk_phy); hdmi 1414 drivers/gpu/drm/sti/sti_hdmi.c hdmi->clk_audio = devm_clk_get(dev, "audio"); hdmi 1415 drivers/gpu/drm/sti/sti_hdmi.c if (IS_ERR(hdmi->clk_audio)) { hdmi 1417 drivers/gpu/drm/sti/sti_hdmi.c ret = PTR_ERR(hdmi->clk_audio); hdmi 1421 drivers/gpu/drm/sti/sti_hdmi.c hdmi->hpd = readl(hdmi->regs + HDMI_STA) & HDMI_STA_HOT_PLUG; hdmi 1423 drivers/gpu/drm/sti/sti_hdmi.c init_waitqueue_head(&hdmi->wait_event); hdmi 1425 drivers/gpu/drm/sti/sti_hdmi.c hdmi->irq = platform_get_irq_byname(pdev, "irq"); hdmi 1426 drivers/gpu/drm/sti/sti_hdmi.c if (hdmi->irq < 0) { hdmi 1428 drivers/gpu/drm/sti/sti_hdmi.c ret = hdmi->irq; hdmi 1432 drivers/gpu/drm/sti/sti_hdmi.c ret = devm_request_threaded_irq(dev, hdmi->irq, hdmi_irq, hdmi 1433 drivers/gpu/drm/sti/sti_hdmi.c hdmi_irq_thread, IRQF_ONESHOT, dev_name(dev), hdmi); hdmi 1439 drivers/gpu/drm/sti/sti_hdmi.c hdmi->notifier = cec_notifier_get(&pdev->dev); hdmi 1440 drivers/gpu/drm/sti/sti_hdmi.c if (!hdmi->notifier) hdmi 1443 drivers/gpu/drm/sti/sti_hdmi.c hdmi->reset = devm_reset_control_get(dev, "hdmi"); hdmi 1445 drivers/gpu/drm/sti/sti_hdmi.c if (!IS_ERR(hdmi->reset)) hdmi 1446 drivers/gpu/drm/sti/sti_hdmi.c reset_control_deassert(hdmi->reset); hdmi 1448 drivers/gpu/drm/sti/sti_hdmi.c platform_set_drvdata(pdev, hdmi); hdmi 1453 drivers/gpu/drm/sti/sti_hdmi.c i2c_put_adapter(hdmi->ddc_adapt); hdmi 1460 drivers/gpu/drm/sti/sti_hdmi.c struct sti_hdmi *hdmi = dev_get_drvdata(&pdev->dev); hdmi 1462 drivers/gpu/drm/sti/sti_hdmi.c cec_notifier_set_phys_addr(hdmi->notifier, CEC_PHYS_ADDR_INVALID); hdmi 1464 drivers/gpu/drm/sti/sti_hdmi.c i2c_put_adapter(hdmi->ddc_adapt); hdmi 1465 drivers/gpu/drm/sti/sti_hdmi.c if (hdmi->audio_pdev) hdmi 1466 drivers/gpu/drm/sti/sti_hdmi.c platform_device_unregister(hdmi->audio_pdev); hdmi 1469 drivers/gpu/drm/sti/sti_hdmi.c cec_notifier_put(hdmi->notifier); hdmi 25 drivers/gpu/drm/sti/sti_hdmi.h bool (*start)(struct sti_hdmi *hdmi); hdmi 26 drivers/gpu/drm/sti/sti_hdmi.h void (*stop)(struct sti_hdmi *hdmi); hdmi 99 drivers/gpu/drm/sti/sti_hdmi.h u32 hdmi_read(struct sti_hdmi *hdmi, int offset); hdmi 100 drivers/gpu/drm/sti/sti_hdmi.h void hdmi_write(struct sti_hdmi *hdmi, u32 val, int offset); hdmi 76 drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c static bool sti_hdmi_tx3g4c28phy_start(struct sti_hdmi *hdmi) hdmi 78 drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c u32 ckpxpll = hdmi->mode.clock * 1000; hdmi 116 drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c hdmi->event_received = false; hdmi 118 drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c hdmi_write(hdmi, (pllctrl | PLL_CFG_EN), HDMI_SRZ_PLL_CFG); hdmi 121 drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c wait_event_interruptible_timeout(hdmi->wait_event, hdmi 122 drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c hdmi->event_received == true, hdmi 126 drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c if ((hdmi_read(hdmi, HDMI_STA) & HDMI_STA_DLL_LCK) == 0) { hdmi 151 drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c hdmi_write(hdmi, val, HDMI_SRZ_CFG); hdmi 154 drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c hdmi_write(hdmi, val, HDMI_SRZ_ICNTL); hdmi 157 drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c hdmi_write(hdmi, val, HDMI_SRZ_CALCODE_EXT); hdmi 171 drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c hdmi_write(hdmi, val, HDMI_SRZ_CFG); hdmi 172 drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c hdmi_write(hdmi, 0x0, HDMI_SRZ_ICNTL); hdmi 173 drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c hdmi_write(hdmi, 0x0, HDMI_SRZ_CALCODE_EXT); hdmi 186 drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c static void sti_hdmi_tx3g4c28phy_stop(struct sti_hdmi *hdmi) hdmi 192 drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c hdmi->event_received = false; hdmi 197 drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c hdmi_write(hdmi, val, HDMI_SRZ_CFG); hdmi 198 drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c hdmi_write(hdmi, 0, HDMI_SRZ_PLL_CFG); hdmi 201 drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c wait_event_interruptible_timeout(hdmi->wait_event, hdmi 202 drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c hdmi->event_received == true, hdmi 206 drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c if (hdmi_read(hdmi, HDMI_STA) & HDMI_STA_DLL_LCK) hdmi 117 drivers/gpu/drm/sti/sti_tvout.c struct drm_encoder *hdmi; hdmi 506 drivers/gpu/drm/sti/sti_tvout.c crtc = tvout->hdmi->crtc; hdmi 787 drivers/gpu/drm/sti/sti_tvout.c tvout->hdmi = sti_tvout_create_hdmi_encoder(dev, tvout); hdmi 791 drivers/gpu/drm/sti/sti_tvout.c tvout->hdmi->possible_clones = drm_encoder_mask(tvout->hdmi) | hdmi 793 drivers/gpu/drm/sti/sti_tvout.c tvout->hda->possible_clones = drm_encoder_mask(tvout->hdmi) | hdmi 795 drivers/gpu/drm/sti/sti_tvout.c tvout->dvo->possible_clones = drm_encoder_mask(tvout->hdmi) | hdmi 801 drivers/gpu/drm/sti/sti_tvout.c if (tvout->hdmi) hdmi 802 drivers/gpu/drm/sti/sti_tvout.c drm_encoder_cleanup(tvout->hdmi); hdmi 803 drivers/gpu/drm/sti/sti_tvout.c tvout->hdmi = NULL; hdmi 294 drivers/gpu/drm/sun4i/sun4i_hdmi.h int sun4i_ddc_create(struct sun4i_hdmi *hdmi, struct clk *clk); hdmi 295 drivers/gpu/drm/sun4i/sun4i_hdmi.h int sun4i_tmds_create(struct sun4i_hdmi *hdmi); hdmi 296 drivers/gpu/drm/sun4i/sun4i_hdmi.h int sun4i_hdmi_i2c_create(struct device *dev, struct sun4i_hdmi *hdmi); hdmi 16 drivers/gpu/drm/sun4i/sun4i_hdmi_ddc_clk.c struct sun4i_hdmi *hdmi; hdmi 108 drivers/gpu/drm/sun4i/sun4i_hdmi_ddc_clk.c int sun4i_ddc_create(struct sun4i_hdmi *hdmi, struct clk *parent) hdmi 118 drivers/gpu/drm/sun4i/sun4i_hdmi_ddc_clk.c ddc = devm_kzalloc(hdmi->dev, sizeof(*ddc), GFP_KERNEL); hdmi 122 drivers/gpu/drm/sun4i/sun4i_hdmi_ddc_clk.c ddc->reg = devm_regmap_field_alloc(hdmi->dev, hdmi->regmap, hdmi 123 drivers/gpu/drm/sun4i/sun4i_hdmi_ddc_clk.c hdmi->variant->ddc_clk_reg); hdmi 132 drivers/gpu/drm/sun4i/sun4i_hdmi_ddc_clk.c ddc->hdmi = hdmi; hdmi 134 drivers/gpu/drm/sun4i/sun4i_hdmi_ddc_clk.c ddc->pre_div = hdmi->variant->ddc_clk_pre_divider; hdmi 135 drivers/gpu/drm/sun4i/sun4i_hdmi_ddc_clk.c ddc->m_offset = hdmi->variant->ddc_clk_m_offset; hdmi 137 drivers/gpu/drm/sun4i/sun4i_hdmi_ddc_clk.c hdmi->ddc_clk = devm_clk_register(hdmi->dev, &ddc->hw); hdmi 138 drivers/gpu/drm/sun4i/sun4i_hdmi_ddc_clk.c if (IS_ERR(hdmi->ddc_clk)) hdmi 139 drivers/gpu/drm/sun4i/sun4i_hdmi_ddc_clk.c return PTR_ERR(hdmi->ddc_clk); hdmi 45 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c static int sun4i_hdmi_setup_avi_infoframes(struct sun4i_hdmi *hdmi, hdmi 53 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c &hdmi->connector, mode); hdmi 66 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c writeb(buffer[i], hdmi->base + SUN4I_HDMI_AVI_INFOFRAME_REG(i)); hdmi 85 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c struct sun4i_hdmi *hdmi = drm_encoder_to_sun4i_hdmi(encoder); hdmi 90 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c val = readl(hdmi->base + SUN4I_HDMI_VID_CTRL_REG); hdmi 92 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c writel(val, hdmi->base + SUN4I_HDMI_VID_CTRL_REG); hdmi 94 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c clk_disable_unprepare(hdmi->tmds_clk); hdmi 100 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c struct sun4i_hdmi *hdmi = drm_encoder_to_sun4i_hdmi(encoder); hdmi 105 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c clk_prepare_enable(hdmi->tmds_clk); hdmi 107 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c sun4i_hdmi_setup_avi_infoframes(hdmi, mode); hdmi 110 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c writel(val, hdmi->base + SUN4I_HDMI_PKT_CTRL_REG(0)); hdmi 113 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c if (hdmi->hdmi_monitor) hdmi 116 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c writel(val, hdmi->base + SUN4I_HDMI_VID_CTRL_REG); hdmi 123 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c struct sun4i_hdmi *hdmi = drm_encoder_to_sun4i_hdmi(encoder); hdmi 127 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c clk_set_rate(hdmi->mod_clk, mode->crtc_clock * 1000); hdmi 128 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c clk_set_rate(hdmi->tmds_clk, mode->crtc_clock * 1000); hdmi 132 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->base + SUN4I_HDMI_UNKNOWN_REG); hdmi 144 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c val = readl(hdmi->base + SUN4I_HDMI_PAD_CTRL1_REG); hdmi 146 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c val |= hdmi->variant->pad_ctrl1_init_val; hdmi 147 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c writel(val, hdmi->base + SUN4I_HDMI_PAD_CTRL1_REG); hdmi 148 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c val = readl(hdmi->base + SUN4I_HDMI_PAD_CTRL1_REG); hdmi 153 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->base + SUN4I_HDMI_VID_TIMING_ACT_REG); hdmi 158 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->base + SUN4I_HDMI_VID_TIMING_BP_REG); hdmi 163 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->base + SUN4I_HDMI_VID_TIMING_FP_REG); hdmi 168 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->base + SUN4I_HDMI_VID_TIMING_SPW_REG); hdmi 177 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c writel(val, hdmi->base + SUN4I_HDMI_VID_TIMING_POL_REG); hdmi 183 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c struct sun4i_hdmi *hdmi = drm_encoder_to_sun4i_hdmi(encoder); hdmi 191 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c rounded_rate = clk_round_rate(hdmi->tmds_clk, rate); hdmi 213 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c struct sun4i_hdmi *hdmi = drm_connector_to_sun4i_hdmi(connector); hdmi 217 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c edid = drm_get_edid(connector, hdmi->ddc_i2c ?: hdmi->i2c); hdmi 221 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->hdmi_monitor = drm_detect_hdmi_monitor(edid); hdmi 223 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->hdmi_monitor ? "an HDMI" : "a DVI"); hdmi 226 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c cec_s_phys_addr_from_edid(hdmi->cec_adap, edid); hdmi 262 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c struct sun4i_hdmi *hdmi = drm_connector_to_sun4i_hdmi(connector); hdmi 265 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c if (readl_poll_timeout(hdmi->base + SUN4I_HDMI_HPD_REG, reg, hdmi 268 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c cec_phys_addr_invalidate(hdmi->cec_adap); hdmi 287 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c struct sun4i_hdmi *hdmi = cec_get_drvdata(adap); hdmi 289 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c return readl(hdmi->base + SUN4I_HDMI_CEC) & SUN4I_HDMI_CEC_RX; hdmi 294 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c struct sun4i_hdmi *hdmi = cec_get_drvdata(adap); hdmi 297 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c writel(SUN4I_HDMI_CEC_ENABLE, hdmi->base + SUN4I_HDMI_CEC); hdmi 302 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c struct sun4i_hdmi *hdmi = cec_get_drvdata(adap); hdmi 308 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c writel(0, hdmi->base + SUN4I_HDMI_CEC); hdmi 494 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c struct sun4i_hdmi *hdmi; hdmi 499 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi = devm_kzalloc(dev, sizeof(*hdmi), GFP_KERNEL); hdmi 500 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c if (!hdmi) hdmi 502 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c dev_set_drvdata(dev, hdmi); hdmi 503 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->dev = dev; hdmi 504 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->drv = drv; hdmi 506 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->variant = of_device_get_match_data(dev); hdmi 507 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c if (!hdmi->variant) hdmi 511 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->base = devm_ioremap_resource(dev, res); hdmi 512 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c if (IS_ERR(hdmi->base)) { hdmi 514 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c return PTR_ERR(hdmi->base); hdmi 517 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c if (hdmi->variant->has_reset_control) { hdmi 518 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->reset = devm_reset_control_get(dev, NULL); hdmi 519 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c if (IS_ERR(hdmi->reset)) { hdmi 521 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c return PTR_ERR(hdmi->reset); hdmi 524 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c ret = reset_control_deassert(hdmi->reset); hdmi 531 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->bus_clk = devm_clk_get(dev, "ahb"); hdmi 532 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c if (IS_ERR(hdmi->bus_clk)) { hdmi 534 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c ret = PTR_ERR(hdmi->bus_clk); hdmi 537 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c clk_prepare_enable(hdmi->bus_clk); hdmi 539 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->mod_clk = devm_clk_get(dev, "mod"); hdmi 540 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c if (IS_ERR(hdmi->mod_clk)) { hdmi 542 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c ret = PTR_ERR(hdmi->mod_clk); hdmi 545 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c clk_prepare_enable(hdmi->mod_clk); hdmi 547 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->pll0_clk = devm_clk_get(dev, "pll-0"); hdmi 548 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c if (IS_ERR(hdmi->pll0_clk)) { hdmi 550 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c ret = PTR_ERR(hdmi->pll0_clk); hdmi 554 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->pll1_clk = devm_clk_get(dev, "pll-1"); hdmi 555 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c if (IS_ERR(hdmi->pll1_clk)) { hdmi 557 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c ret = PTR_ERR(hdmi->pll1_clk); hdmi 561 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->regmap = devm_regmap_init_mmio(dev, hdmi->base, hdmi 563 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c if (IS_ERR(hdmi->regmap)) { hdmi 565 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c ret = PTR_ERR(hdmi->regmap); hdmi 569 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c ret = sun4i_tmds_create(hdmi); hdmi 575 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c if (hdmi->variant->has_ddc_parent_clk) { hdmi 576 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->ddc_parent_clk = devm_clk_get(dev, "ddc"); hdmi 577 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c if (IS_ERR(hdmi->ddc_parent_clk)) { hdmi 579 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c ret = PTR_ERR(hdmi->ddc_parent_clk); hdmi 583 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->ddc_parent_clk = hdmi->tmds_clk; hdmi 586 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c writel(SUN4I_HDMI_CTRL_ENABLE, hdmi->base + SUN4I_HDMI_CTRL_REG); hdmi 588 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c writel(hdmi->variant->pad_ctrl0_init_val, hdmi 589 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->base + SUN4I_HDMI_PAD_CTRL0_REG); hdmi 591 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c reg = readl(hdmi->base + SUN4I_HDMI_PLL_CTRL_REG); hdmi 593 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c reg |= hdmi->variant->pll_ctrl_init_val; hdmi 594 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c writel(reg, hdmi->base + SUN4I_HDMI_PLL_CTRL_REG); hdmi 596 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c ret = sun4i_hdmi_i2c_create(dev, hdmi); hdmi 602 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->ddc_i2c = sun4i_hdmi_get_ddc(dev); hdmi 603 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c if (IS_ERR(hdmi->ddc_i2c)) { hdmi 604 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c ret = PTR_ERR(hdmi->ddc_i2c); hdmi 606 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->ddc_i2c = NULL; hdmi 611 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c drm_encoder_helper_add(&hdmi->encoder, hdmi 614 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c &hdmi->encoder, hdmi 623 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->encoder.possible_crtcs = drm_of_find_possible_crtcs(drm, hdmi 625 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c if (!hdmi->encoder.possible_crtcs) { hdmi 631 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->cec_adap = cec_pin_allocate_adapter(&sun4i_hdmi_cec_pin_ops, hdmi 632 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi, "sun4i", CEC_CAP_TRANSMIT | CEC_CAP_LOG_ADDRS | hdmi 634 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c ret = PTR_ERR_OR_ZERO(hdmi->cec_adap); hdmi 637 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c writel(readl(hdmi->base + SUN4I_HDMI_CEC) & ~SUN4I_HDMI_CEC_TX, hdmi 638 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->base + SUN4I_HDMI_CEC); hdmi 641 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c drm_connector_helper_add(&hdmi->connector, hdmi 643 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c ret = drm_connector_init_with_ddc(drm, &hdmi->connector, hdmi 646 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->ddc_i2c); hdmi 654 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c hdmi->connector.polled = DRM_CONNECTOR_POLL_CONNECT | hdmi 657 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c ret = cec_register_adapter(hdmi->cec_adap, dev); hdmi 660 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c drm_connector_attach_encoder(&hdmi->connector, &hdmi->encoder); hdmi 665 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c cec_delete_adapter(hdmi->cec_adap); hdmi 666 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c drm_encoder_cleanup(&hdmi->encoder); hdmi 668 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c i2c_put_adapter(hdmi->ddc_i2c); hdmi 670 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c i2c_del_adapter(hdmi->i2c); hdmi 672 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c clk_disable_unprepare(hdmi->mod_clk); hdmi 674 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c clk_disable_unprepare(hdmi->bus_clk); hdmi 676 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c reset_control_assert(hdmi->reset); hdmi 683 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c struct sun4i_hdmi *hdmi = dev_get_drvdata(dev); hdmi 685 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c cec_unregister_adapter(hdmi->cec_adap); hdmi 686 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c i2c_del_adapter(hdmi->i2c); hdmi 687 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c i2c_put_adapter(hdmi->ddc_i2c); hdmi 688 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c clk_disable_unprepare(hdmi->mod_clk); hdmi 689 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c clk_disable_unprepare(hdmi->bus_clk); hdmi 25 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c static int fifo_transfer(struct sun4i_hdmi *hdmi, u8 *buf, int len, bool read) hdmi 41 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c (hdmi->variant->ddc_fifo_thres_incl ? 0 : 1); hdmi 50 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c if (regmap_field_read_poll_timeout(hdmi->field_ddc_int_status, reg, hdmi 59 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c readsb(hdmi->base + hdmi->variant->ddc_fifo_reg, buf, len); hdmi 61 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c writesb(hdmi->base + hdmi->variant->ddc_fifo_reg, buf, len); hdmi 64 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c regmap_field_force_write(hdmi->field_ddc_int_status, hdmi 70 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c static int xfer_msg(struct sun4i_hdmi *hdmi, struct i2c_msg *msg) hdmi 76 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c if (hdmi->variant->ddc_fifo_has_dir) { hdmi 77 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c reg = readl(hdmi->base + SUN4I_HDMI_DDC_CTRL_REG); hdmi 82 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c writel(reg, hdmi->base + SUN4I_HDMI_DDC_CTRL_REG); hdmi 86 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c regmap_field_write(hdmi->field_ddc_addr_reg, 0); hdmi 89 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c regmap_field_write(hdmi->field_ddc_slave_addr, msg->addr); hdmi 97 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c regmap_field_write(hdmi->field_ddc_fifo_tx_thres, hdmi 98 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->variant->ddc_fifo_thres_incl ? 0 : 1); hdmi 99 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c regmap_field_write(hdmi->field_ddc_fifo_rx_thres, RX_THRESHOLD); hdmi 100 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c regmap_field_write(hdmi->field_ddc_fifo_clear, 1); hdmi 101 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c if (regmap_field_read_poll_timeout(hdmi->field_ddc_fifo_clear, hdmi 106 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c regmap_field_write(hdmi->field_ddc_byte_count, msg->len); hdmi 109 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c regmap_field_write(hdmi->field_ddc_cmd, hdmi 115 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c regmap_field_force_write(hdmi->field_ddc_int_status, hdmi 121 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c regmap_field_write(hdmi->field_ddc_start, 1); hdmi 125 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c len = fifo_transfer(hdmi, msg->buf + i, msg->len - i, hdmi 132 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c if (regmap_field_read_poll_timeout(hdmi->field_ddc_start, hdmi 137 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c regmap_field_read(hdmi->field_ddc_int_status, ®); hdmi 149 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c struct sun4i_hdmi *hdmi = i2c_get_adapdata(adap); hdmi 161 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c clk_prepare_enable(hdmi->ddc_clk); hdmi 162 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c clk_set_rate(hdmi->ddc_clk, 100000); hdmi 165 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c regmap_field_write(hdmi->field_ddc_en, 1); hdmi 166 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c regmap_field_write(hdmi->field_ddc_reset, 1); hdmi 167 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c if (regmap_field_read_poll_timeout(hdmi->field_ddc_reset, hdmi 169 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c clk_disable_unprepare(hdmi->ddc_clk); hdmi 173 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c regmap_field_write(hdmi->field_ddc_sck_en, 1); hdmi 174 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c regmap_field_write(hdmi->field_ddc_sda_en, 1); hdmi 177 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c err = xfer_msg(hdmi, &msgs[i]); hdmi 184 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c clk_disable_unprepare(hdmi->ddc_clk); hdmi 198 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c static int sun4i_hdmi_init_regmap_fields(struct sun4i_hdmi *hdmi) hdmi 200 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->field_ddc_en = hdmi 201 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c devm_regmap_field_alloc(hdmi->dev, hdmi->regmap, hdmi 202 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->variant->field_ddc_en); hdmi 203 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c if (IS_ERR(hdmi->field_ddc_en)) hdmi 204 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c return PTR_ERR(hdmi->field_ddc_en); hdmi 206 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->field_ddc_start = hdmi 207 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c devm_regmap_field_alloc(hdmi->dev, hdmi->regmap, hdmi 208 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->variant->field_ddc_start); hdmi 209 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c if (IS_ERR(hdmi->field_ddc_start)) hdmi 210 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c return PTR_ERR(hdmi->field_ddc_start); hdmi 212 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->field_ddc_reset = hdmi 213 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c devm_regmap_field_alloc(hdmi->dev, hdmi->regmap, hdmi 214 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->variant->field_ddc_reset); hdmi 215 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c if (IS_ERR(hdmi->field_ddc_reset)) hdmi 216 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c return PTR_ERR(hdmi->field_ddc_reset); hdmi 218 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->field_ddc_addr_reg = hdmi 219 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c devm_regmap_field_alloc(hdmi->dev, hdmi->regmap, hdmi 220 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->variant->field_ddc_addr_reg); hdmi 221 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c if (IS_ERR(hdmi->field_ddc_addr_reg)) hdmi 222 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c return PTR_ERR(hdmi->field_ddc_addr_reg); hdmi 224 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->field_ddc_slave_addr = hdmi 225 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c devm_regmap_field_alloc(hdmi->dev, hdmi->regmap, hdmi 226 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->variant->field_ddc_slave_addr); hdmi 227 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c if (IS_ERR(hdmi->field_ddc_slave_addr)) hdmi 228 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c return PTR_ERR(hdmi->field_ddc_slave_addr); hdmi 230 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->field_ddc_int_mask = hdmi 231 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c devm_regmap_field_alloc(hdmi->dev, hdmi->regmap, hdmi 232 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->variant->field_ddc_int_mask); hdmi 233 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c if (IS_ERR(hdmi->field_ddc_int_mask)) hdmi 234 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c return PTR_ERR(hdmi->field_ddc_int_mask); hdmi 236 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->field_ddc_int_status = hdmi 237 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c devm_regmap_field_alloc(hdmi->dev, hdmi->regmap, hdmi 238 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->variant->field_ddc_int_status); hdmi 239 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c if (IS_ERR(hdmi->field_ddc_int_status)) hdmi 240 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c return PTR_ERR(hdmi->field_ddc_int_status); hdmi 242 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->field_ddc_fifo_clear = hdmi 243 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c devm_regmap_field_alloc(hdmi->dev, hdmi->regmap, hdmi 244 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->variant->field_ddc_fifo_clear); hdmi 245 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c if (IS_ERR(hdmi->field_ddc_fifo_clear)) hdmi 246 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c return PTR_ERR(hdmi->field_ddc_fifo_clear); hdmi 248 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->field_ddc_fifo_rx_thres = hdmi 249 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c devm_regmap_field_alloc(hdmi->dev, hdmi->regmap, hdmi 250 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->variant->field_ddc_fifo_rx_thres); hdmi 251 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c if (IS_ERR(hdmi->field_ddc_fifo_rx_thres)) hdmi 252 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c return PTR_ERR(hdmi->field_ddc_fifo_rx_thres); hdmi 254 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->field_ddc_fifo_tx_thres = hdmi 255 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c devm_regmap_field_alloc(hdmi->dev, hdmi->regmap, hdmi 256 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->variant->field_ddc_fifo_tx_thres); hdmi 257 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c if (IS_ERR(hdmi->field_ddc_fifo_tx_thres)) hdmi 258 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c return PTR_ERR(hdmi->field_ddc_fifo_tx_thres); hdmi 260 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->field_ddc_byte_count = hdmi 261 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c devm_regmap_field_alloc(hdmi->dev, hdmi->regmap, hdmi 262 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->variant->field_ddc_byte_count); hdmi 263 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c if (IS_ERR(hdmi->field_ddc_byte_count)) hdmi 264 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c return PTR_ERR(hdmi->field_ddc_byte_count); hdmi 266 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->field_ddc_cmd = hdmi 267 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c devm_regmap_field_alloc(hdmi->dev, hdmi->regmap, hdmi 268 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->variant->field_ddc_cmd); hdmi 269 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c if (IS_ERR(hdmi->field_ddc_cmd)) hdmi 270 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c return PTR_ERR(hdmi->field_ddc_cmd); hdmi 272 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->field_ddc_sda_en = hdmi 273 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c devm_regmap_field_alloc(hdmi->dev, hdmi->regmap, hdmi 274 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->variant->field_ddc_sda_en); hdmi 275 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c if (IS_ERR(hdmi->field_ddc_sda_en)) hdmi 276 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c return PTR_ERR(hdmi->field_ddc_sda_en); hdmi 278 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->field_ddc_sck_en = hdmi 279 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c devm_regmap_field_alloc(hdmi->dev, hdmi->regmap, hdmi 280 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->variant->field_ddc_sck_en); hdmi 281 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c if (IS_ERR(hdmi->field_ddc_sck_en)) hdmi 282 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c return PTR_ERR(hdmi->field_ddc_sck_en); hdmi 287 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c int sun4i_hdmi_i2c_create(struct device *dev, struct sun4i_hdmi *hdmi) hdmi 292 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c ret = sun4i_ddc_create(hdmi, hdmi->ddc_parent_clk); hdmi 296 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c ret = sun4i_hdmi_init_regmap_fields(hdmi); hdmi 308 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c i2c_set_adapdata(adap, hdmi); hdmi 314 drivers/gpu/drm/sun4i/sun4i_hdmi_i2c.c hdmi->i2c = adap; hdmi 16 drivers/gpu/drm/sun4i/sun4i_hdmi_tmds_clk.c struct sun4i_hdmi *hdmi; hdmi 131 drivers/gpu/drm/sun4i/sun4i_hdmi_tmds_clk.c reg = readl(tmds->hdmi->base + SUN4I_HDMI_PAD_CTRL1_REG); hdmi 135 drivers/gpu/drm/sun4i/sun4i_hdmi_tmds_clk.c reg = readl(tmds->hdmi->base + SUN4I_HDMI_PLL_CTRL_REG); hdmi 154 drivers/gpu/drm/sun4i/sun4i_hdmi_tmds_clk.c reg = readl(tmds->hdmi->base + SUN4I_HDMI_PAD_CTRL1_REG); hdmi 158 drivers/gpu/drm/sun4i/sun4i_hdmi_tmds_clk.c writel(reg, tmds->hdmi->base + SUN4I_HDMI_PAD_CTRL1_REG); hdmi 160 drivers/gpu/drm/sun4i/sun4i_hdmi_tmds_clk.c reg = readl(tmds->hdmi->base + SUN4I_HDMI_PLL_CTRL_REG); hdmi 163 drivers/gpu/drm/sun4i/sun4i_hdmi_tmds_clk.c tmds->hdmi->base + SUN4I_HDMI_PLL_CTRL_REG); hdmi 173 drivers/gpu/drm/sun4i/sun4i_hdmi_tmds_clk.c reg = readl(tmds->hdmi->base + SUN4I_HDMI_PLL_DBG0_REG); hdmi 186 drivers/gpu/drm/sun4i/sun4i_hdmi_tmds_clk.c reg = readl(tmds->hdmi->base + SUN4I_HDMI_PLL_DBG0_REG); hdmi 189 drivers/gpu/drm/sun4i/sun4i_hdmi_tmds_clk.c tmds->hdmi->base + SUN4I_HDMI_PLL_DBG0_REG); hdmi 203 drivers/gpu/drm/sun4i/sun4i_hdmi_tmds_clk.c int sun4i_tmds_create(struct sun4i_hdmi *hdmi) hdmi 209 drivers/gpu/drm/sun4i/sun4i_hdmi_tmds_clk.c parents[0] = __clk_get_name(hdmi->pll0_clk); hdmi 213 drivers/gpu/drm/sun4i/sun4i_hdmi_tmds_clk.c parents[1] = __clk_get_name(hdmi->pll1_clk); hdmi 217 drivers/gpu/drm/sun4i/sun4i_hdmi_tmds_clk.c tmds = devm_kzalloc(hdmi->dev, sizeof(*tmds), GFP_KERNEL); hdmi 227 drivers/gpu/drm/sun4i/sun4i_hdmi_tmds_clk.c tmds->hdmi = hdmi; hdmi 229 drivers/gpu/drm/sun4i/sun4i_hdmi_tmds_clk.c tmds->div_offset = hdmi->variant->tmds_clk_div_offset; hdmi 231 drivers/gpu/drm/sun4i/sun4i_hdmi_tmds_clk.c hdmi->tmds_clk = devm_clk_register(hdmi->dev, &tmds->hw); hdmi 232 drivers/gpu/drm/sun4i/sun4i_hdmi_tmds_clk.c if (IS_ERR(hdmi->tmds_clk)) hdmi 233 drivers/gpu/drm/sun4i/sun4i_hdmi_tmds_clk.c return PTR_ERR(hdmi->tmds_clk); hdmi 21 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c struct sun8i_dw_hdmi *hdmi = encoder_to_sun8i_dw_hdmi(encoder); hdmi 23 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c if (hdmi->quirks->set_rate) hdmi 24 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c clk_set_rate(hdmi->clk_tmds, mode->crtc_clock * 1000); hdmi 132 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c struct sun8i_dw_hdmi *hdmi; hdmi 138 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c hdmi = devm_kzalloc(&pdev->dev, sizeof(*hdmi), GFP_KERNEL); hdmi 139 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c if (!hdmi) hdmi 142 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c plat_data = &hdmi->plat_data; hdmi 143 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c hdmi->dev = &pdev->dev; hdmi 144 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c encoder = &hdmi->encoder; hdmi 146 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c hdmi->quirks = of_device_get_match_data(dev); hdmi 159 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c hdmi->rst_ctrl = devm_reset_control_get(dev, "ctrl"); hdmi 160 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c if (IS_ERR(hdmi->rst_ctrl)) { hdmi 162 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c return PTR_ERR(hdmi->rst_ctrl); hdmi 165 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c hdmi->clk_tmds = devm_clk_get(dev, "tmds"); hdmi 166 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c if (IS_ERR(hdmi->clk_tmds)) { hdmi 168 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c return PTR_ERR(hdmi->clk_tmds); hdmi 171 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c hdmi->regulator = devm_regulator_get(dev, "hvcc"); hdmi 172 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c if (IS_ERR(hdmi->regulator)) { hdmi 174 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c return PTR_ERR(hdmi->regulator); hdmi 179 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c hdmi->ddc_en = gpiod_get_optional(&connector_pdev->dev, hdmi 183 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c if (IS_ERR(hdmi->ddc_en)) { hdmi 185 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c return PTR_ERR(hdmi->ddc_en); hdmi 189 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c ret = regulator_enable(hdmi->regulator); hdmi 195 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c gpiod_set_value(hdmi->ddc_en, 1); hdmi 197 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c ret = reset_control_deassert(hdmi->rst_ctrl); hdmi 203 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c ret = clk_prepare_enable(hdmi->clk_tmds); hdmi 215 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c ret = sun8i_hdmi_phy_probe(hdmi, phy_node); hdmi 226 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c sun8i_hdmi_phy_init(hdmi->phy); hdmi 228 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c plat_data->mode_valid = hdmi->quirks->mode_valid; hdmi 229 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c sun8i_hdmi_phy_set_ops(hdmi->phy, plat_data); hdmi 231 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c platform_set_drvdata(pdev, hdmi); hdmi 233 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c hdmi->hdmi = dw_hdmi_bind(pdev, encoder, plat_data); hdmi 239 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c if (IS_ERR(hdmi->hdmi)) { hdmi 240 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c ret = PTR_ERR(hdmi->hdmi); hdmi 248 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c sun8i_hdmi_phy_remove(hdmi); hdmi 250 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c clk_disable_unprepare(hdmi->clk_tmds); hdmi 252 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c reset_control_assert(hdmi->rst_ctrl); hdmi 254 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c gpiod_set_value(hdmi->ddc_en, 0); hdmi 255 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c regulator_disable(hdmi->regulator); hdmi 257 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c if (hdmi->ddc_en) hdmi 258 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c gpiod_put(hdmi->ddc_en); hdmi 266 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c struct sun8i_dw_hdmi *hdmi = dev_get_drvdata(dev); hdmi 268 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c dw_hdmi_unbind(hdmi->hdmi); hdmi 269 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c sun8i_hdmi_phy_remove(hdmi); hdmi 270 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c clk_disable_unprepare(hdmi->clk_tmds); hdmi 271 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c reset_control_assert(hdmi->rst_ctrl); hdmi 272 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c gpiod_set_value(hdmi->ddc_en, 0); hdmi 273 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c regulator_disable(hdmi->regulator); hdmi 275 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c if (hdmi->ddc_en) hdmi 276 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c gpiod_put(hdmi->ddc_en); hdmi 159 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h void (*phy_disable)(struct dw_hdmi *hdmi, hdmi 161 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h int (*phy_config)(struct dw_hdmi *hdmi, hdmi 187 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h struct dw_hdmi *hdmi; hdmi 203 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h int sun8i_hdmi_phy_probe(struct sun8i_dw_hdmi *hdmi, struct device_node *node); hdmi 204 drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h void sun8i_hdmi_phy_remove(struct sun8i_dw_hdmi *hdmi); hdmi 133 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c static int sun8i_hdmi_phy_config_a83t(struct dw_hdmi *hdmi, hdmi 142 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_gen2_txpwron(hdmi, 0); hdmi 143 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_gen2_pddq(hdmi, 1); hdmi 145 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_reset(hdmi); hdmi 147 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_gen2_pddq(hdmi, 0); hdmi 149 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_set_addr(hdmi, I2C_ADDR); hdmi 157 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x01e0, 0x06); hdmi 158 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x0000, 0x15); hdmi 159 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x08da, 0x10); hdmi 160 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x0007, 0x19); hdmi 161 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x0318, 0x0e); hdmi 162 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x8009, 0x09); hdmi 164 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x0540, 0x06); hdmi 165 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x0005, 0x15); hdmi 166 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x0000, 0x10); hdmi 167 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x0007, 0x19); hdmi 168 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x02b5, 0x0e); hdmi 169 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x8009, 0x09); hdmi 171 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x04a0, 0x06); hdmi 172 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x000a, 0x15); hdmi 173 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x0000, 0x10); hdmi 174 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x0002, 0x19); hdmi 175 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x0021, 0x0e); hdmi 176 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x8029, 0x09); hdmi 178 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x0000, 0x06); hdmi 179 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x000f, 0x15); hdmi 180 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x0000, 0x10); hdmi 181 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x0002, 0x19); hdmi 182 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x0000, 0x0e); hdmi 183 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x802b, 0x09); hdmi 186 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x0000, 0x1e); hdmi 187 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x0000, 0x13); hdmi 188 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_i2c_write(hdmi, 0x0000, 0x17); hdmi 190 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_gen2_txpwron(hdmi, 1); hdmi 195 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c static int sun8i_hdmi_phy_config_h3(struct dw_hdmi *hdmi, hdmi 343 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c static int sun8i_hdmi_phy_config(struct dw_hdmi *hdmi, void *data, hdmi 361 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c return phy->variant->phy_config(hdmi, phy, mode->crtc_clock * 1000); hdmi 364 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c static void sun8i_hdmi_phy_disable_a83t(struct dw_hdmi *hdmi, hdmi 367 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_gen2_txpwron(hdmi, 0); hdmi 368 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c dw_hdmi_phy_gen2_pddq(hdmi, 1); hdmi 374 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c static void sun8i_hdmi_phy_disable_h3(struct dw_hdmi *hdmi, hdmi 384 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c static void sun8i_hdmi_phy_disable(struct dw_hdmi *hdmi, void *data) hdmi 388 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c phy->variant->phy_disable(hdmi, phy); hdmi 607 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c int sun8i_hdmi_phy_probe(struct sun8i_dw_hdmi *hdmi, struct device_node *node) hdmi 610 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c struct device *dev = hdmi->dev; hdmi 714 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c hdmi->phy = phy; hdmi 738 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c void sun8i_hdmi_phy_remove(struct sun8i_dw_hdmi *hdmi) hdmi 740 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c struct sun8i_hdmi_phy *phy = hdmi->phy; hdmi 60 drivers/gpu/drm/tegra/hdmi.c struct regulator *hdmi; hdmi 103 drivers/gpu/drm/tegra/hdmi.c static inline u32 tegra_hdmi_readl(struct tegra_hdmi *hdmi, hdmi 106 drivers/gpu/drm/tegra/hdmi.c u32 value = readl(hdmi->regs + (offset << 2)); hdmi 108 drivers/gpu/drm/tegra/hdmi.c trace_hdmi_readl(hdmi->dev, offset, value); hdmi 113 drivers/gpu/drm/tegra/hdmi.c static inline void tegra_hdmi_writel(struct tegra_hdmi *hdmi, u32 value, hdmi 116 drivers/gpu/drm/tegra/hdmi.c trace_hdmi_writel(hdmi->dev, offset, value); hdmi 117 drivers/gpu/drm/tegra/hdmi.c writel(value, hdmi->regs + (offset << 2)); hdmi 412 drivers/gpu/drm/tegra/hdmi.c static void tegra_hdmi_setup_audio_fs_tables(struct tegra_hdmi *hdmi) hdmi 435 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_AUDIO_FS(i)); hdmi 439 drivers/gpu/drm/tegra/hdmi.c static void tegra_hdmi_write_aval(struct tegra_hdmi *hdmi, u32 value) hdmi 456 drivers/gpu/drm/tegra/hdmi.c if (regs[i].sample_rate == hdmi->format.sample_rate) { hdmi 457 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, regs[i].offset); hdmi 463 drivers/gpu/drm/tegra/hdmi.c static int tegra_hdmi_setup_audio(struct tegra_hdmi *hdmi) hdmi 469 drivers/gpu/drm/tegra/hdmi.c switch (hdmi->audio_source) { hdmi 471 drivers/gpu/drm/tegra/hdmi.c if (hdmi->config->has_hda) hdmi 479 drivers/gpu/drm/tegra/hdmi.c if (hdmi->config->has_hda) hdmi 486 drivers/gpu/drm/tegra/hdmi.c if (hdmi->config->has_hda) hdmi 500 drivers/gpu/drm/tegra/hdmi.c if (hdmi->config->has_hda) { hdmi 511 drivers/gpu/drm/tegra/hdmi.c if (hdmi->format.channels == 2) hdmi 518 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_SOR_AUDIO_CNTRL0); hdmi 528 drivers/gpu/drm/tegra/hdmi.c if (!hdmi->config->has_hda) hdmi 531 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_AUDIO_CNTRL0); hdmi 536 drivers/gpu/drm/tegra/hdmi.c if (hdmi->config->has_hbr) { hdmi 537 drivers/gpu/drm/tegra/hdmi.c value = tegra_hdmi_readl(hdmi, HDMI_NV_PDISP_SOR_AUDIO_SPARE0); hdmi 539 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_SOR_AUDIO_SPARE0); hdmi 542 drivers/gpu/drm/tegra/hdmi.c err = tegra_hdmi_get_audio_config(hdmi->format.sample_rate, hdmi 543 drivers/gpu/drm/tegra/hdmi.c hdmi->pixel_clock, &config); hdmi 545 drivers/gpu/drm/tegra/hdmi.c dev_err(hdmi->dev, hdmi 547 drivers/gpu/drm/tegra/hdmi.c hdmi->format.sample_rate, hdmi->pixel_clock); hdmi 551 drivers/gpu/drm/tegra/hdmi.c dev_dbg(hdmi->dev, "audio: pixclk=%u, n=%u, cts=%u, aval=%u\n", hdmi 552 drivers/gpu/drm/tegra/hdmi.c hdmi->pixel_clock, config.n, config.cts, config.aval); hdmi 554 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, 0, HDMI_NV_PDISP_HDMI_ACR_CTRL); hdmi 558 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_AUDIO_N); hdmi 560 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, ACR_SUBPACK_N(config.n) | ACR_ENABLE, hdmi 563 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, ACR_SUBPACK_CTS(config.cts), hdmi 567 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_HDMI_SPARE); hdmi 569 drivers/gpu/drm/tegra/hdmi.c value = tegra_hdmi_readl(hdmi, HDMI_NV_PDISP_AUDIO_N); hdmi 571 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_AUDIO_N); hdmi 573 drivers/gpu/drm/tegra/hdmi.c if (hdmi->config->has_hda) hdmi 574 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_write_aval(hdmi, config.aval); hdmi 576 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_setup_audio_fs_tables(hdmi); hdmi 581 drivers/gpu/drm/tegra/hdmi.c static void tegra_hdmi_disable_audio(struct tegra_hdmi *hdmi) hdmi 585 drivers/gpu/drm/tegra/hdmi.c value = tegra_hdmi_readl(hdmi, HDMI_NV_PDISP_HDMI_GENERIC_CTRL); hdmi 587 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_HDMI_GENERIC_CTRL); hdmi 590 drivers/gpu/drm/tegra/hdmi.c static void tegra_hdmi_enable_audio(struct tegra_hdmi *hdmi) hdmi 594 drivers/gpu/drm/tegra/hdmi.c value = tegra_hdmi_readl(hdmi, HDMI_NV_PDISP_HDMI_GENERIC_CTRL); hdmi 596 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_HDMI_GENERIC_CTRL); hdmi 599 drivers/gpu/drm/tegra/hdmi.c static void tegra_hdmi_write_eld(struct tegra_hdmi *hdmi) hdmi 601 drivers/gpu/drm/tegra/hdmi.c size_t length = drm_eld_size(hdmi->output.connector.eld), i; hdmi 605 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, i << 8 | hdmi->output.connector.eld[i], hdmi 615 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, i << 8 | 0, hdmi 619 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_SOR_AUDIO_HDA_PRESENSE); hdmi 633 drivers/gpu/drm/tegra/hdmi.c static void tegra_hdmi_write_infopack(struct tegra_hdmi *hdmi, const void *data, hdmi 655 drivers/gpu/drm/tegra/hdmi.c dev_err(hdmi->dev, "unsupported infoframe type: %02x\n", hdmi 663 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, offset); hdmi 675 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, offset++); hdmi 680 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, offset++); hdmi 684 drivers/gpu/drm/tegra/hdmi.c static void tegra_hdmi_setup_avi_infoframe(struct tegra_hdmi *hdmi, hdmi 692 drivers/gpu/drm/tegra/hdmi.c &hdmi->output.connector, mode); hdmi 694 drivers/gpu/drm/tegra/hdmi.c dev_err(hdmi->dev, "failed to setup AVI infoframe: %zd\n", err); hdmi 700 drivers/gpu/drm/tegra/hdmi.c dev_err(hdmi->dev, "failed to pack AVI infoframe: %zd\n", err); hdmi 704 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_write_infopack(hdmi, buffer, err); hdmi 707 drivers/gpu/drm/tegra/hdmi.c static void tegra_hdmi_disable_avi_infoframe(struct tegra_hdmi *hdmi) hdmi 711 drivers/gpu/drm/tegra/hdmi.c value = tegra_hdmi_readl(hdmi, HDMI_NV_PDISP_HDMI_AVI_INFOFRAME_CTRL); hdmi 713 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_HDMI_AVI_INFOFRAME_CTRL); hdmi 716 drivers/gpu/drm/tegra/hdmi.c static void tegra_hdmi_enable_avi_infoframe(struct tegra_hdmi *hdmi) hdmi 720 drivers/gpu/drm/tegra/hdmi.c value = tegra_hdmi_readl(hdmi, HDMI_NV_PDISP_HDMI_AVI_INFOFRAME_CTRL); hdmi 722 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_HDMI_AVI_INFOFRAME_CTRL); hdmi 725 drivers/gpu/drm/tegra/hdmi.c static void tegra_hdmi_setup_audio_infoframe(struct tegra_hdmi *hdmi) hdmi 733 drivers/gpu/drm/tegra/hdmi.c dev_err(hdmi->dev, "failed to setup audio infoframe: %zd\n", hdmi 738 drivers/gpu/drm/tegra/hdmi.c frame.channels = hdmi->format.channels; hdmi 742 drivers/gpu/drm/tegra/hdmi.c dev_err(hdmi->dev, "failed to pack audio infoframe: %zd\n", hdmi 753 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_write_infopack(hdmi, buffer, min_t(size_t, 10, err)); hdmi 756 drivers/gpu/drm/tegra/hdmi.c static void tegra_hdmi_disable_audio_infoframe(struct tegra_hdmi *hdmi) hdmi 760 drivers/gpu/drm/tegra/hdmi.c value = tegra_hdmi_readl(hdmi, HDMI_NV_PDISP_HDMI_AUDIO_INFOFRAME_CTRL); hdmi 762 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_HDMI_AUDIO_INFOFRAME_CTRL); hdmi 765 drivers/gpu/drm/tegra/hdmi.c static void tegra_hdmi_enable_audio_infoframe(struct tegra_hdmi *hdmi) hdmi 769 drivers/gpu/drm/tegra/hdmi.c value = tegra_hdmi_readl(hdmi, HDMI_NV_PDISP_HDMI_AUDIO_INFOFRAME_CTRL); hdmi 771 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_HDMI_AUDIO_INFOFRAME_CTRL); hdmi 774 drivers/gpu/drm/tegra/hdmi.c static void tegra_hdmi_setup_stereo_infoframe(struct tegra_hdmi *hdmi) hdmi 785 drivers/gpu/drm/tegra/hdmi.c dev_err(hdmi->dev, "failed to pack vendor infoframe: %zd\n", hdmi 790 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_write_infopack(hdmi, buffer, err); hdmi 793 drivers/gpu/drm/tegra/hdmi.c static void tegra_hdmi_disable_stereo_infoframe(struct tegra_hdmi *hdmi) hdmi 797 drivers/gpu/drm/tegra/hdmi.c value = tegra_hdmi_readl(hdmi, HDMI_NV_PDISP_HDMI_GENERIC_CTRL); hdmi 799 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_HDMI_GENERIC_CTRL); hdmi 802 drivers/gpu/drm/tegra/hdmi.c static void tegra_hdmi_enable_stereo_infoframe(struct tegra_hdmi *hdmi) hdmi 806 drivers/gpu/drm/tegra/hdmi.c value = tegra_hdmi_readl(hdmi, HDMI_NV_PDISP_HDMI_GENERIC_CTRL); hdmi 808 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_HDMI_GENERIC_CTRL); hdmi 811 drivers/gpu/drm/tegra/hdmi.c static void tegra_hdmi_setup_tmds(struct tegra_hdmi *hdmi, hdmi 816 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, tmds->pll0, HDMI_NV_PDISP_SOR_PLL0); hdmi 817 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, tmds->pll1, HDMI_NV_PDISP_SOR_PLL1); hdmi 818 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, tmds->pe_current, HDMI_NV_PDISP_PE_CURRENT); hdmi 820 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, tmds->drive_current, hdmi 823 drivers/gpu/drm/tegra/hdmi.c value = tegra_hdmi_readl(hdmi, hdmi->config->fuse_override_offset); hdmi 824 drivers/gpu/drm/tegra/hdmi.c value |= hdmi->config->fuse_override_value; hdmi 825 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, hdmi->config->fuse_override_offset); hdmi 827 drivers/gpu/drm/tegra/hdmi.c if (hdmi->config->has_sor_io_peak_current) hdmi 828 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, tmds->peak_current, hdmi 848 drivers/gpu/drm/tegra/hdmi.c struct tegra_hdmi *hdmi = to_hdmi(output); hdmi 855 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, 0, HDMI_NV_PDISP_SOR_AUDIO_HDA_PRESENSE); hdmi 1031 drivers/gpu/drm/tegra/hdmi.c struct tegra_hdmi *hdmi = node->info_ent->data; hdmi 1032 drivers/gpu/drm/tegra/hdmi.c struct drm_crtc *crtc = hdmi->output.encoder.crtc; hdmi 1048 drivers/gpu/drm/tegra/hdmi.c offset, tegra_hdmi_readl(hdmi, offset)); hdmi 1066 drivers/gpu/drm/tegra/hdmi.c struct tegra_hdmi *hdmi = to_hdmi(output); hdmi 1069 drivers/gpu/drm/tegra/hdmi.c hdmi->debugfs_files = kmemdup(debugfs_files, sizeof(debugfs_files), hdmi 1071 drivers/gpu/drm/tegra/hdmi.c if (!hdmi->debugfs_files) hdmi 1075 drivers/gpu/drm/tegra/hdmi.c hdmi->debugfs_files[i].data = hdmi; hdmi 1077 drivers/gpu/drm/tegra/hdmi.c err = drm_debugfs_create_files(hdmi->debugfs_files, count, root, minor); hdmi 1084 drivers/gpu/drm/tegra/hdmi.c kfree(hdmi->debugfs_files); hdmi 1085 drivers/gpu/drm/tegra/hdmi.c hdmi->debugfs_files = NULL; hdmi 1095 drivers/gpu/drm/tegra/hdmi.c struct tegra_hdmi *hdmi = to_hdmi(output); hdmi 1097 drivers/gpu/drm/tegra/hdmi.c drm_debugfs_remove_files(hdmi->debugfs_files, count, minor); hdmi 1098 drivers/gpu/drm/tegra/hdmi.c kfree(hdmi->debugfs_files); hdmi 1099 drivers/gpu/drm/tegra/hdmi.c hdmi->debugfs_files = NULL; hdmi 1118 drivers/gpu/drm/tegra/hdmi.c struct tegra_hdmi *hdmi = to_hdmi(output); hdmi 1124 drivers/gpu/drm/tegra/hdmi.c parent = clk_get_parent(hdmi->clk_parent); hdmi 1147 drivers/gpu/drm/tegra/hdmi.c struct tegra_hdmi *hdmi = to_hdmi(output); hdmi 1162 drivers/gpu/drm/tegra/hdmi.c if (!hdmi->dvi) { hdmi 1163 drivers/gpu/drm/tegra/hdmi.c if (hdmi->stereo) hdmi 1164 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_disable_stereo_infoframe(hdmi); hdmi 1166 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_disable_audio_infoframe(hdmi); hdmi 1167 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_disable_avi_infoframe(hdmi); hdmi 1168 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_disable_audio(hdmi); hdmi 1171 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, 0, HDMI_NV_PDISP_INT_ENABLE); hdmi 1172 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, 0, HDMI_NV_PDISP_INT_MASK); hdmi 1174 drivers/gpu/drm/tegra/hdmi.c pm_runtime_put(hdmi->dev); hdmi 1183 drivers/gpu/drm/tegra/hdmi.c struct tegra_hdmi *hdmi = to_hdmi(output); hdmi 1189 drivers/gpu/drm/tegra/hdmi.c pm_runtime_get_sync(hdmi->dev); hdmi 1196 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, INT_CODEC_SCRATCH0, HDMI_NV_PDISP_INT_ENABLE); hdmi 1197 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, INT_CODEC_SCRATCH0, HDMI_NV_PDISP_INT_MASK); hdmi 1199 drivers/gpu/drm/tegra/hdmi.c hdmi->pixel_clock = mode->clock * 1000; hdmi 1204 drivers/gpu/drm/tegra/hdmi.c err = clk_set_rate(hdmi->clk, hdmi->pixel_clock); hdmi 1206 drivers/gpu/drm/tegra/hdmi.c dev_err(hdmi->dev, "failed to set HDMI clock frequency: %d\n", hdmi 1210 drivers/gpu/drm/tegra/hdmi.c DRM_DEBUG_KMS("HDMI clock rate: %lu Hz\n", clk_get_rate(hdmi->clk)); hdmi 1213 drivers/gpu/drm/tegra/hdmi.c value = tegra_hdmi_readl(hdmi, HDMI_NV_PDISP_SOR_PLL0); hdmi 1215 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_SOR_PLL0); hdmi 1219 drivers/gpu/drm/tegra/hdmi.c value = tegra_hdmi_readl(hdmi, HDMI_NV_PDISP_SOR_PLL0); hdmi 1221 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_SOR_PLL0); hdmi 1242 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_HDMI_VSYNC_WINDOW); hdmi 1251 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, hdmi 1255 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, hdmi 1259 drivers/gpu/drm/tegra/hdmi.c div82 = clk_get_rate(hdmi->clk) / 1000000 * 4; hdmi 1261 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_SOR_REFCLK); hdmi 1263 drivers/gpu/drm/tegra/hdmi.c hdmi->dvi = !tegra_output_is_hdmi(output); hdmi 1264 drivers/gpu/drm/tegra/hdmi.c if (!hdmi->dvi) { hdmi 1269 drivers/gpu/drm/tegra/hdmi.c if (hdmi->format.sample_rate > 0) { hdmi 1270 drivers/gpu/drm/tegra/hdmi.c err = tegra_hdmi_setup_audio(hdmi); hdmi 1272 drivers/gpu/drm/tegra/hdmi.c hdmi->dvi = true; hdmi 1276 drivers/gpu/drm/tegra/hdmi.c if (hdmi->config->has_hda) hdmi 1277 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_write_eld(hdmi); hdmi 1284 drivers/gpu/drm/tegra/hdmi.c if (!hdmi->dvi) hdmi 1287 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_HDMI_CTRL); hdmi 1289 drivers/gpu/drm/tegra/hdmi.c if (!hdmi->dvi) { hdmi 1290 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_setup_avi_infoframe(hdmi, mode); hdmi 1291 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_setup_audio_infoframe(hdmi); hdmi 1293 drivers/gpu/drm/tegra/hdmi.c if (hdmi->stereo) hdmi 1294 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_setup_stereo_infoframe(hdmi); hdmi 1298 drivers/gpu/drm/tegra/hdmi.c for (i = 0; i < hdmi->config->num_tmds; i++) { hdmi 1299 drivers/gpu/drm/tegra/hdmi.c if (hdmi->pixel_clock <= hdmi->config->tmds[i].pclk) { hdmi 1300 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_setup_tmds(hdmi, &hdmi->config->tmds[i]); hdmi 1305 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, hdmi 1319 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_SOR_SEQ_INST(0)); hdmi 1320 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_SOR_SEQ_INST(8)); hdmi 1322 drivers/gpu/drm/tegra/hdmi.c value = tegra_hdmi_readl(hdmi, HDMI_NV_PDISP_SOR_CSTM); hdmi 1329 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_SOR_CSTM); hdmi 1332 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, hdmi 1338 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, hdmi 1347 drivers/gpu/drm/tegra/hdmi.c value = tegra_hdmi_readl(hdmi, HDMI_NV_PDISP_SOR_PWR); hdmi 1369 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_SOR_STATE2); hdmi 1372 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_SOR_STATE1); hdmi 1374 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, 0, HDMI_NV_PDISP_SOR_STATE0); hdmi 1375 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, SOR_STATE_UPDATE, HDMI_NV_PDISP_SOR_STATE0); hdmi 1376 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value | SOR_STATE_ATTACHED, hdmi 1378 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, 0, HDMI_NV_PDISP_SOR_STATE0); hdmi 1386 drivers/gpu/drm/tegra/hdmi.c if (!hdmi->dvi) { hdmi 1387 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_enable_avi_infoframe(hdmi); hdmi 1388 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_enable_audio_infoframe(hdmi); hdmi 1389 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_enable_audio(hdmi); hdmi 1391 drivers/gpu/drm/tegra/hdmi.c if (hdmi->stereo) hdmi 1392 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_enable_stereo_infoframe(hdmi); hdmi 1406 drivers/gpu/drm/tegra/hdmi.c struct tegra_hdmi *hdmi = to_hdmi(output); hdmi 1409 drivers/gpu/drm/tegra/hdmi.c err = tegra_dc_state_setup_clock(dc, crtc_state, hdmi->clk_parent, hdmi 1428 drivers/gpu/drm/tegra/hdmi.c struct tegra_hdmi *hdmi = host1x_client_to_hdmi(client); hdmi 1431 drivers/gpu/drm/tegra/hdmi.c hdmi->output.dev = client->dev; hdmi 1433 drivers/gpu/drm/tegra/hdmi.c drm_connector_init(drm, &hdmi->output.connector, hdmi 1436 drivers/gpu/drm/tegra/hdmi.c drm_connector_helper_add(&hdmi->output.connector, hdmi 1438 drivers/gpu/drm/tegra/hdmi.c hdmi->output.connector.dpms = DRM_MODE_DPMS_OFF; hdmi 1440 drivers/gpu/drm/tegra/hdmi.c drm_encoder_init(drm, &hdmi->output.encoder, &tegra_hdmi_encoder_funcs, hdmi 1442 drivers/gpu/drm/tegra/hdmi.c drm_encoder_helper_add(&hdmi->output.encoder, hdmi 1445 drivers/gpu/drm/tegra/hdmi.c drm_connector_attach_encoder(&hdmi->output.connector, hdmi 1446 drivers/gpu/drm/tegra/hdmi.c &hdmi->output.encoder); hdmi 1447 drivers/gpu/drm/tegra/hdmi.c drm_connector_register(&hdmi->output.connector); hdmi 1449 drivers/gpu/drm/tegra/hdmi.c err = tegra_output_init(drm, &hdmi->output); hdmi 1455 drivers/gpu/drm/tegra/hdmi.c hdmi->output.encoder.possible_crtcs = 0x3; hdmi 1457 drivers/gpu/drm/tegra/hdmi.c err = regulator_enable(hdmi->hdmi); hdmi 1464 drivers/gpu/drm/tegra/hdmi.c err = regulator_enable(hdmi->pll); hdmi 1466 drivers/gpu/drm/tegra/hdmi.c dev_err(hdmi->dev, "failed to enable PLL regulator: %d\n", err); hdmi 1470 drivers/gpu/drm/tegra/hdmi.c err = regulator_enable(hdmi->vdd); hdmi 1472 drivers/gpu/drm/tegra/hdmi.c dev_err(hdmi->dev, "failed to enable VDD regulator: %d\n", err); hdmi 1481 drivers/gpu/drm/tegra/hdmi.c struct tegra_hdmi *hdmi = host1x_client_to_hdmi(client); hdmi 1483 drivers/gpu/drm/tegra/hdmi.c tegra_output_exit(&hdmi->output); hdmi 1485 drivers/gpu/drm/tegra/hdmi.c regulator_disable(hdmi->vdd); hdmi 1486 drivers/gpu/drm/tegra/hdmi.c regulator_disable(hdmi->pll); hdmi 1487 drivers/gpu/drm/tegra/hdmi.c regulator_disable(hdmi->hdmi); hdmi 1548 drivers/gpu/drm/tegra/hdmi.c struct tegra_hdmi *hdmi = data; hdmi 1552 drivers/gpu/drm/tegra/hdmi.c value = tegra_hdmi_readl(hdmi, HDMI_NV_PDISP_INT_STATUS); hdmi 1553 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_writel(hdmi, value, HDMI_NV_PDISP_INT_STATUS); hdmi 1559 drivers/gpu/drm/tegra/hdmi.c value = tegra_hdmi_readl(hdmi, HDMI_NV_PDISP_SOR_AUDIO_HDA_CODEC_SCRATCH0); hdmi 1564 drivers/gpu/drm/tegra/hdmi.c tegra_hda_parse_format(format, &hdmi->format); hdmi 1566 drivers/gpu/drm/tegra/hdmi.c err = tegra_hdmi_setup_audio(hdmi); hdmi 1568 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_disable_audio_infoframe(hdmi); hdmi 1569 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_disable_audio(hdmi); hdmi 1571 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_setup_audio_infoframe(hdmi); hdmi 1572 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_enable_audio_infoframe(hdmi); hdmi 1573 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_enable_audio(hdmi); hdmi 1576 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_disable_audio_infoframe(hdmi); hdmi 1577 drivers/gpu/drm/tegra/hdmi.c tegra_hdmi_disable_audio(hdmi); hdmi 1586 drivers/gpu/drm/tegra/hdmi.c struct tegra_hdmi *hdmi; hdmi 1590 drivers/gpu/drm/tegra/hdmi.c hdmi = devm_kzalloc(&pdev->dev, sizeof(*hdmi), GFP_KERNEL); hdmi 1591 drivers/gpu/drm/tegra/hdmi.c if (!hdmi) hdmi 1594 drivers/gpu/drm/tegra/hdmi.c hdmi->config = of_device_get_match_data(&pdev->dev); hdmi 1595 drivers/gpu/drm/tegra/hdmi.c hdmi->dev = &pdev->dev; hdmi 1597 drivers/gpu/drm/tegra/hdmi.c hdmi->audio_source = AUTO; hdmi 1598 drivers/gpu/drm/tegra/hdmi.c hdmi->stereo = false; hdmi 1599 drivers/gpu/drm/tegra/hdmi.c hdmi->dvi = false; hdmi 1601 drivers/gpu/drm/tegra/hdmi.c hdmi->clk = devm_clk_get(&pdev->dev, NULL); hdmi 1602 drivers/gpu/drm/tegra/hdmi.c if (IS_ERR(hdmi->clk)) { hdmi 1604 drivers/gpu/drm/tegra/hdmi.c return PTR_ERR(hdmi->clk); hdmi 1607 drivers/gpu/drm/tegra/hdmi.c hdmi->rst = devm_reset_control_get(&pdev->dev, "hdmi"); hdmi 1608 drivers/gpu/drm/tegra/hdmi.c if (IS_ERR(hdmi->rst)) { hdmi 1610 drivers/gpu/drm/tegra/hdmi.c return PTR_ERR(hdmi->rst); hdmi 1613 drivers/gpu/drm/tegra/hdmi.c hdmi->clk_parent = devm_clk_get(&pdev->dev, "parent"); hdmi 1614 drivers/gpu/drm/tegra/hdmi.c if (IS_ERR(hdmi->clk_parent)) hdmi 1615 drivers/gpu/drm/tegra/hdmi.c return PTR_ERR(hdmi->clk_parent); hdmi 1617 drivers/gpu/drm/tegra/hdmi.c err = clk_set_parent(hdmi->clk, hdmi->clk_parent); hdmi 1623 drivers/gpu/drm/tegra/hdmi.c hdmi->hdmi = devm_regulator_get(&pdev->dev, "hdmi"); hdmi 1624 drivers/gpu/drm/tegra/hdmi.c if (IS_ERR(hdmi->hdmi)) { hdmi 1626 drivers/gpu/drm/tegra/hdmi.c return PTR_ERR(hdmi->hdmi); hdmi 1629 drivers/gpu/drm/tegra/hdmi.c hdmi->pll = devm_regulator_get(&pdev->dev, "pll"); hdmi 1630 drivers/gpu/drm/tegra/hdmi.c if (IS_ERR(hdmi->pll)) { hdmi 1632 drivers/gpu/drm/tegra/hdmi.c return PTR_ERR(hdmi->pll); hdmi 1635 drivers/gpu/drm/tegra/hdmi.c hdmi->vdd = devm_regulator_get(&pdev->dev, "vdd"); hdmi 1636 drivers/gpu/drm/tegra/hdmi.c if (IS_ERR(hdmi->vdd)) { hdmi 1638 drivers/gpu/drm/tegra/hdmi.c return PTR_ERR(hdmi->vdd); hdmi 1641 drivers/gpu/drm/tegra/hdmi.c hdmi->output.dev = &pdev->dev; hdmi 1643 drivers/gpu/drm/tegra/hdmi.c err = tegra_output_probe(&hdmi->output); hdmi 1648 drivers/gpu/drm/tegra/hdmi.c hdmi->regs = devm_ioremap_resource(&pdev->dev, regs); hdmi 1649 drivers/gpu/drm/tegra/hdmi.c if (IS_ERR(hdmi->regs)) hdmi 1650 drivers/gpu/drm/tegra/hdmi.c return PTR_ERR(hdmi->regs); hdmi 1656 drivers/gpu/drm/tegra/hdmi.c hdmi->irq = err; hdmi 1658 drivers/gpu/drm/tegra/hdmi.c err = devm_request_irq(hdmi->dev, hdmi->irq, tegra_hdmi_irq, 0, hdmi 1659 drivers/gpu/drm/tegra/hdmi.c dev_name(hdmi->dev), hdmi); hdmi 1662 drivers/gpu/drm/tegra/hdmi.c hdmi->irq, err); hdmi 1666 drivers/gpu/drm/tegra/hdmi.c platform_set_drvdata(pdev, hdmi); hdmi 1669 drivers/gpu/drm/tegra/hdmi.c INIT_LIST_HEAD(&hdmi->client.list); hdmi 1670 drivers/gpu/drm/tegra/hdmi.c hdmi->client.ops = &hdmi_client_ops; hdmi 1671 drivers/gpu/drm/tegra/hdmi.c hdmi->client.dev = &pdev->dev; hdmi 1673 drivers/gpu/drm/tegra/hdmi.c err = host1x_client_register(&hdmi->client); hdmi 1685 drivers/gpu/drm/tegra/hdmi.c struct tegra_hdmi *hdmi = platform_get_drvdata(pdev); hdmi 1690 drivers/gpu/drm/tegra/hdmi.c err = host1x_client_unregister(&hdmi->client); hdmi 1697 drivers/gpu/drm/tegra/hdmi.c tegra_output_remove(&hdmi->output); hdmi 1705 drivers/gpu/drm/tegra/hdmi.c struct tegra_hdmi *hdmi = dev_get_drvdata(dev); hdmi 1708 drivers/gpu/drm/tegra/hdmi.c err = reset_control_assert(hdmi->rst); hdmi 1716 drivers/gpu/drm/tegra/hdmi.c clk_disable_unprepare(hdmi->clk); hdmi 1723 drivers/gpu/drm/tegra/hdmi.c struct tegra_hdmi *hdmi = dev_get_drvdata(dev); hdmi 1726 drivers/gpu/drm/tegra/hdmi.c err = clk_prepare_enable(hdmi->clk); hdmi 1734 drivers/gpu/drm/tegra/hdmi.c err = reset_control_deassert(hdmi->rst); hdmi 1737 drivers/gpu/drm/tegra/hdmi.c clk_disable_unprepare(hdmi->clk); hdmi 2368 drivers/gpu/drm/tegra/sor.c struct drm_scdc *scdc = &sor->output.connector.display_info.hdmi.scdc; hdmi 74 drivers/gpu/drm/vc4/vc4_drv.h struct vc4_hdmi *hdmi; hdmi 97 drivers/gpu/drm/vc4/vc4_hdmi.c #define HDMI_READ(offset) readl(vc4->hdmi->hdmicore_regs + offset) hdmi 98 drivers/gpu/drm/vc4/vc4_hdmi.c #define HDMI_WRITE(offset, val) writel(val, vc4->hdmi->hdmicore_regs + offset) hdmi 99 drivers/gpu/drm/vc4/vc4_hdmi.c #define HD_READ(offset) readl(vc4->hdmi->hd_regs + offset) hdmi 100 drivers/gpu/drm/vc4/vc4_hdmi.c #define HD_WRITE(offset, val) writel(val, vc4->hdmi->hd_regs + offset) hdmi 187 drivers/gpu/drm/vc4/vc4_hdmi.c struct vc4_hdmi *hdmi = vc4->hdmi; hdmi 190 drivers/gpu/drm/vc4/vc4_hdmi.c drm_print_regset32(&p, &hdmi->hdmi_regset); hdmi 191 drivers/gpu/drm/vc4/vc4_hdmi.c drm_print_regset32(&p, &hdmi->hd_regset); hdmi 202 drivers/gpu/drm/vc4/vc4_hdmi.c if (vc4->hdmi->hpd_gpio) { hdmi 203 drivers/gpu/drm/vc4/vc4_hdmi.c if (gpio_get_value_cansleep(vc4->hdmi->hpd_gpio) ^ hdmi 204 drivers/gpu/drm/vc4/vc4_hdmi.c vc4->hdmi->hpd_active_low) hdmi 206 drivers/gpu/drm/vc4/vc4_hdmi.c cec_phys_addr_invalidate(vc4->hdmi->cec_adap); hdmi 210 drivers/gpu/drm/vc4/vc4_hdmi.c if (drm_probe_ddc(vc4->hdmi->ddc)) hdmi 215 drivers/gpu/drm/vc4/vc4_hdmi.c cec_phys_addr_invalidate(vc4->hdmi->cec_adap); hdmi 236 drivers/gpu/drm/vc4/vc4_hdmi.c edid = drm_get_edid(connector, vc4->hdmi->ddc); hdmi 237 drivers/gpu/drm/vc4/vc4_hdmi.c cec_s_phys_addr_from_edid(vc4->hdmi->cec_adap, edid); hdmi 381 drivers/gpu/drm/vc4/vc4_hdmi.c struct vc4_hdmi *hdmi = vc4->hdmi; hdmi 382 drivers/gpu/drm/vc4/vc4_hdmi.c struct drm_connector_state *cstate = hdmi->connector->state; hdmi 389 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->connector, mode); hdmi 396 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->connector, mode, hdmi 429 drivers/gpu/drm/vc4/vc4_hdmi.c struct vc4_hdmi *hdmi = vc4->hdmi; hdmi 438 drivers/gpu/drm/vc4/vc4_hdmi.c frame.audio.channels = hdmi->audio.channels; hdmi 453 drivers/gpu/drm/vc4/vc4_hdmi.c struct vc4_hdmi *hdmi = vc4->hdmi; hdmi 462 drivers/gpu/drm/vc4/vc4_hdmi.c clk_disable_unprepare(hdmi->pixel_clock); hdmi 464 drivers/gpu/drm/vc4/vc4_hdmi.c ret = pm_runtime_put(&hdmi->pdev->dev); hdmi 475 drivers/gpu/drm/vc4/vc4_hdmi.c struct vc4_hdmi *hdmi = vc4->hdmi; hdmi 497 drivers/gpu/drm/vc4/vc4_hdmi.c ret = pm_runtime_get_sync(&hdmi->pdev->dev); hdmi 503 drivers/gpu/drm/vc4/vc4_hdmi.c ret = clk_set_rate(hdmi->pixel_clock, hdmi 511 drivers/gpu/drm/vc4/vc4_hdmi.c ret = clk_prepare_enable(hdmi->pixel_clock); hdmi 531 drivers/gpu/drm/vc4/vc4_hdmi.c struct drm_printer p = drm_info_printer(&hdmi->pdev->dev); hdmi 533 drivers/gpu/drm/vc4/vc4_hdmi.c dev_info(&hdmi->pdev->dev, "HDMI regs before:\n"); hdmi 534 drivers/gpu/drm/vc4/vc4_hdmi.c drm_print_regset32(&p, &hdmi->hdmi_regset); hdmi 535 drivers/gpu/drm/vc4/vc4_hdmi.c drm_print_regset32(&p, &hdmi->hd_regset); hdmi 610 drivers/gpu/drm/vc4/vc4_hdmi.c struct drm_printer p = drm_info_printer(&hdmi->pdev->dev); hdmi 612 drivers/gpu/drm/vc4/vc4_hdmi.c dev_info(&hdmi->pdev->dev, "HDMI regs after:\n"); hdmi 613 drivers/gpu/drm/vc4/vc4_hdmi.c drm_print_regset32(&p, &hdmi->hdmi_regset); hdmi 614 drivers/gpu/drm/vc4/vc4_hdmi.c drm_print_regset32(&p, &hdmi->hd_regset); hdmi 713 drivers/gpu/drm/vc4/vc4_hdmi.c static void vc4_hdmi_audio_set_mai_clock(struct vc4_hdmi *hdmi) hdmi 715 drivers/gpu/drm/vc4/vc4_hdmi.c struct drm_device *drm = hdmi->encoder->dev; hdmi 717 drivers/gpu/drm/vc4/vc4_hdmi.c u32 hsm_clock = clk_get_rate(hdmi->hsm_clock); hdmi 720 drivers/gpu/drm/vc4/vc4_hdmi.c rational_best_approximation(hsm_clock, hdmi->audio.samplerate, hdmi 732 drivers/gpu/drm/vc4/vc4_hdmi.c static void vc4_hdmi_set_n_cts(struct vc4_hdmi *hdmi) hdmi 734 drivers/gpu/drm/vc4/vc4_hdmi.c struct drm_encoder *encoder = hdmi->encoder; hdmi 739 drivers/gpu/drm/vc4/vc4_hdmi.c u32 samplerate = hdmi->audio.samplerate; hdmi 771 drivers/gpu/drm/vc4/vc4_hdmi.c struct vc4_hdmi *hdmi = dai_to_hdmi(dai); hdmi 772 drivers/gpu/drm/vc4/vc4_hdmi.c struct drm_encoder *encoder = hdmi->encoder; hdmi 776 drivers/gpu/drm/vc4/vc4_hdmi.c if (hdmi->audio.substream && hdmi->audio.substream != substream) hdmi 779 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->audio.substream = substream; hdmi 790 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->connector->eld); hdmi 802 drivers/gpu/drm/vc4/vc4_hdmi.c static void vc4_hdmi_audio_reset(struct vc4_hdmi *hdmi) hdmi 804 drivers/gpu/drm/vc4/vc4_hdmi.c struct drm_encoder *encoder = hdmi->encoder; hdmi 806 drivers/gpu/drm/vc4/vc4_hdmi.c struct device *dev = &hdmi->pdev->dev; hdmi 822 drivers/gpu/drm/vc4/vc4_hdmi.c struct vc4_hdmi *hdmi = dai_to_hdmi(dai); hdmi 824 drivers/gpu/drm/vc4/vc4_hdmi.c if (substream != hdmi->audio.substream) hdmi 827 drivers/gpu/drm/vc4/vc4_hdmi.c vc4_hdmi_audio_reset(hdmi); hdmi 829 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->audio.substream = NULL; hdmi 837 drivers/gpu/drm/vc4/vc4_hdmi.c struct vc4_hdmi *hdmi = dai_to_hdmi(dai); hdmi 838 drivers/gpu/drm/vc4/vc4_hdmi.c struct drm_encoder *encoder = hdmi->encoder; hdmi 840 drivers/gpu/drm/vc4/vc4_hdmi.c struct device *dev = &hdmi->pdev->dev; hdmi 845 drivers/gpu/drm/vc4/vc4_hdmi.c if (substream != hdmi->audio.substream) hdmi 852 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->audio.channels = params_channels(params); hdmi 853 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->audio.samplerate = params_rate(params); hdmi 862 drivers/gpu/drm/vc4/vc4_hdmi.c vc4_hdmi_audio_set_mai_clock(hdmi); hdmi 869 drivers/gpu/drm/vc4/vc4_hdmi.c channel_mask = GENMASK(hdmi->audio.channels - 1, 0); hdmi 874 drivers/gpu/drm/vc4/vc4_hdmi.c if (hdmi->audio.samplerate > 96000) { hdmi 878 drivers/gpu/drm/vc4/vc4_hdmi.c } else if (hdmi->audio.samplerate > 48000) { hdmi 902 drivers/gpu/drm/vc4/vc4_hdmi.c vc4_hdmi_set_n_cts(hdmi); hdmi 910 drivers/gpu/drm/vc4/vc4_hdmi.c struct vc4_hdmi *hdmi = dai_to_hdmi(dai); hdmi 911 drivers/gpu/drm/vc4/vc4_hdmi.c struct drm_encoder *encoder = hdmi->encoder; hdmi 922 drivers/gpu/drm/vc4/vc4_hdmi.c VC4_SET_FIELD(hdmi->audio.channels, hdmi 954 drivers/gpu/drm/vc4/vc4_hdmi.c struct vc4_hdmi *hdmi = snd_component_to_hdmi(component); hdmi 957 drivers/gpu/drm/vc4/vc4_hdmi.c uinfo->count = sizeof(hdmi->connector->eld); hdmi 966 drivers/gpu/drm/vc4/vc4_hdmi.c struct vc4_hdmi *hdmi = snd_component_to_hdmi(component); hdmi 968 drivers/gpu/drm/vc4/vc4_hdmi.c memcpy(ucontrol->value.bytes.data, hdmi->connector->eld, hdmi 969 drivers/gpu/drm/vc4/vc4_hdmi.c sizeof(hdmi->connector->eld)); hdmi 1034 drivers/gpu/drm/vc4/vc4_hdmi.c struct vc4_hdmi *hdmi = dai_to_hdmi(dai); hdmi 1036 drivers/gpu/drm/vc4/vc4_hdmi.c snd_soc_dai_init_dma_data(dai, &hdmi->audio.dma_data, NULL); hdmi 1062 drivers/gpu/drm/vc4/vc4_hdmi.c static int vc4_hdmi_audio_init(struct vc4_hdmi *hdmi) hdmi 1064 drivers/gpu/drm/vc4/vc4_hdmi.c struct snd_soc_dai_link *dai_link = &hdmi->audio.link; hdmi 1065 drivers/gpu/drm/vc4/vc4_hdmi.c struct snd_soc_card *card = &hdmi->audio.card; hdmi 1066 drivers/gpu/drm/vc4/vc4_hdmi.c struct device *dev = &hdmi->pdev->dev; hdmi 1084 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->audio.dma_data.addr = be32_to_cpup(addr) + VC4_HD_MAI_DATA; hdmi 1085 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->audio.dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; hdmi 1086 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->audio.dma_data.maxburst = 2; hdmi 1109 drivers/gpu/drm/vc4/vc4_hdmi.c dai_link->cpus = &hdmi->audio.cpu; hdmi 1110 drivers/gpu/drm/vc4/vc4_hdmi.c dai_link->codecs = &hdmi->audio.codec; hdmi 1111 drivers/gpu/drm/vc4/vc4_hdmi.c dai_link->platforms = &hdmi->audio.platform; hdmi 1136 drivers/gpu/drm/vc4/vc4_hdmi.c snd_soc_card_set_drvdata(card, hdmi); hdmi 1149 drivers/gpu/drm/vc4/vc4_hdmi.c struct vc4_hdmi *hdmi = vc4->hdmi; hdmi 1151 drivers/gpu/drm/vc4/vc4_hdmi.c if (hdmi->cec_irq_was_rx) { hdmi 1152 drivers/gpu/drm/vc4/vc4_hdmi.c if (hdmi->cec_rx_msg.len) hdmi 1153 drivers/gpu/drm/vc4/vc4_hdmi.c cec_received_msg(hdmi->cec_adap, &hdmi->cec_rx_msg); hdmi 1154 drivers/gpu/drm/vc4/vc4_hdmi.c } else if (hdmi->cec_tx_ok) { hdmi 1155 drivers/gpu/drm/vc4/vc4_hdmi.c cec_transmit_done(hdmi->cec_adap, CEC_TX_STATUS_OK, hdmi 1162 drivers/gpu/drm/vc4/vc4_hdmi.c cec_transmit_done(hdmi->cec_adap, CEC_TX_STATUS_NACK, hdmi 1170 drivers/gpu/drm/vc4/vc4_hdmi.c struct cec_msg *msg = &vc4->hdmi->cec_rx_msg; hdmi 1188 drivers/gpu/drm/vc4/vc4_hdmi.c struct vc4_hdmi *hdmi = vc4->hdmi; hdmi 1194 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->cec_rx_msg.len = 0; hdmi 1197 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->cec_irq_was_rx = cntrl5 & VC4_HDMI_CEC_RX_CEC_INT; hdmi 1198 drivers/gpu/drm/vc4/vc4_hdmi.c if (hdmi->cec_irq_was_rx) { hdmi 1204 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->cec_tx_ok = cntrl1 & VC4_HDMI_CEC_TX_STATUS_GOOD; hdmi 1306 drivers/gpu/drm/vc4/vc4_hdmi.c struct vc4_hdmi *hdmi; hdmi 1312 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi = devm_kzalloc(dev, sizeof(*hdmi), GFP_KERNEL); hdmi 1313 drivers/gpu/drm/vc4/vc4_hdmi.c if (!hdmi) hdmi 1321 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->encoder = &vc4_hdmi_encoder->base.base; hdmi 1323 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->pdev = pdev; hdmi 1324 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->hdmicore_regs = vc4_ioremap_regs(pdev, 0); hdmi 1325 drivers/gpu/drm/vc4/vc4_hdmi.c if (IS_ERR(hdmi->hdmicore_regs)) hdmi 1326 drivers/gpu/drm/vc4/vc4_hdmi.c return PTR_ERR(hdmi->hdmicore_regs); hdmi 1328 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->hd_regs = vc4_ioremap_regs(pdev, 1); hdmi 1329 drivers/gpu/drm/vc4/vc4_hdmi.c if (IS_ERR(hdmi->hd_regs)) hdmi 1330 drivers/gpu/drm/vc4/vc4_hdmi.c return PTR_ERR(hdmi->hd_regs); hdmi 1332 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->hdmi_regset.base = hdmi->hdmicore_regs; hdmi 1333 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->hdmi_regset.regs = hdmi_regs; hdmi 1334 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->hdmi_regset.nregs = ARRAY_SIZE(hdmi_regs); hdmi 1335 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->hd_regset.base = hdmi->hd_regs; hdmi 1336 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->hd_regset.regs = hd_regs; hdmi 1337 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->hd_regset.nregs = ARRAY_SIZE(hd_regs); hdmi 1339 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->pixel_clock = devm_clk_get(dev, "pixel"); hdmi 1340 drivers/gpu/drm/vc4/vc4_hdmi.c if (IS_ERR(hdmi->pixel_clock)) { hdmi 1342 drivers/gpu/drm/vc4/vc4_hdmi.c return PTR_ERR(hdmi->pixel_clock); hdmi 1344 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->hsm_clock = devm_clk_get(dev, "hdmi"); hdmi 1345 drivers/gpu/drm/vc4/vc4_hdmi.c if (IS_ERR(hdmi->hsm_clock)) { hdmi 1347 drivers/gpu/drm/vc4/vc4_hdmi.c return PTR_ERR(hdmi->hsm_clock); hdmi 1356 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->ddc = of_find_i2c_adapter_by_node(ddc_node); hdmi 1358 drivers/gpu/drm/vc4/vc4_hdmi.c if (!hdmi->ddc) { hdmi 1367 drivers/gpu/drm/vc4/vc4_hdmi.c ret = clk_set_rate(hdmi->hsm_clock, HSM_CLOCK_FREQ); hdmi 1373 drivers/gpu/drm/vc4/vc4_hdmi.c ret = clk_prepare_enable(hdmi->hsm_clock); hdmi 1386 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->hpd_gpio = of_get_named_gpio_flags(dev->of_node, hdmi 1389 drivers/gpu/drm/vc4/vc4_hdmi.c if (hdmi->hpd_gpio < 0) { hdmi 1390 drivers/gpu/drm/vc4/vc4_hdmi.c ret = hdmi->hpd_gpio; hdmi 1394 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->hpd_active_low = hpd_gpio_flags & OF_GPIO_ACTIVE_LOW; hdmi 1397 drivers/gpu/drm/vc4/vc4_hdmi.c vc4->hdmi = hdmi; hdmi 1409 drivers/gpu/drm/vc4/vc4_hdmi.c drm_encoder_init(drm, hdmi->encoder, &vc4_hdmi_encoder_funcs, hdmi 1411 drivers/gpu/drm/vc4/vc4_hdmi.c drm_encoder_helper_add(hdmi->encoder, &vc4_hdmi_encoder_helper_funcs); hdmi 1413 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->connector = vc4_hdmi_connector_init(drm, hdmi->encoder); hdmi 1414 drivers/gpu/drm/vc4/vc4_hdmi.c if (IS_ERR(hdmi->connector)) { hdmi 1415 drivers/gpu/drm/vc4/vc4_hdmi.c ret = PTR_ERR(hdmi->connector); hdmi 1419 drivers/gpu/drm/vc4/vc4_hdmi.c hdmi->cec_adap = cec_allocate_adapter(&vc4_hdmi_cec_adap_ops, hdmi 1423 drivers/gpu/drm/vc4/vc4_hdmi.c ret = PTR_ERR_OR_ZERO(hdmi->cec_adap); hdmi 1427 drivers/gpu/drm/vc4/vc4_hdmi.c cec_fill_conn_info_from_drm(&conn_info, hdmi->connector); hdmi 1428 drivers/gpu/drm/vc4/vc4_hdmi.c cec_s_conn_info(hdmi->cec_adap, &conn_info); hdmi 1447 drivers/gpu/drm/vc4/vc4_hdmi.c ret = cec_register_adapter(hdmi->cec_adap, dev); hdmi 1452 drivers/gpu/drm/vc4/vc4_hdmi.c ret = vc4_hdmi_audio_init(hdmi); hdmi 1456 drivers/gpu/drm/vc4/vc4_hdmi.c vc4_debugfs_add_file(drm, "hdmi_regs", vc4_hdmi_debugfs_regs, hdmi); hdmi 1462 drivers/gpu/drm/vc4/vc4_hdmi.c cec_delete_adapter(hdmi->cec_adap); hdmi 1464 drivers/gpu/drm/vc4/vc4_hdmi.c vc4_hdmi_connector_destroy(hdmi->connector); hdmi 1467 drivers/gpu/drm/vc4/vc4_hdmi.c vc4_hdmi_encoder_destroy(hdmi->encoder); hdmi 1469 drivers/gpu/drm/vc4/vc4_hdmi.c clk_disable_unprepare(hdmi->hsm_clock); hdmi 1472 drivers/gpu/drm/vc4/vc4_hdmi.c put_device(&hdmi->ddc->dev); hdmi 1482 drivers/gpu/drm/vc4/vc4_hdmi.c struct vc4_hdmi *hdmi = vc4->hdmi; hdmi 1484 drivers/gpu/drm/vc4/vc4_hdmi.c cec_unregister_adapter(hdmi->cec_adap); hdmi 1485 drivers/gpu/drm/vc4/vc4_hdmi.c vc4_hdmi_connector_destroy(hdmi->connector); hdmi 1486 drivers/gpu/drm/vc4/vc4_hdmi.c vc4_hdmi_encoder_destroy(hdmi->encoder); hdmi 1488 drivers/gpu/drm/vc4/vc4_hdmi.c clk_disable_unprepare(hdmi->hsm_clock); hdmi 1491 drivers/gpu/drm/vc4/vc4_hdmi.c put_device(&hdmi->ddc->dev); hdmi 1493 drivers/gpu/drm/vc4/vc4_hdmi.c vc4->hdmi = NULL; hdmi 54 drivers/gpu/drm/zte/zx_hdmi.c static inline u8 hdmi_readb(struct zx_hdmi *hdmi, u16 offset) hdmi 56 drivers/gpu/drm/zte/zx_hdmi.c return readl_relaxed(hdmi->mmio + offset * 4); hdmi 59 drivers/gpu/drm/zte/zx_hdmi.c static inline void hdmi_writeb(struct zx_hdmi *hdmi, u16 offset, u8 val) hdmi 61 drivers/gpu/drm/zte/zx_hdmi.c writel_relaxed(val, hdmi->mmio + offset * 4); hdmi 64 drivers/gpu/drm/zte/zx_hdmi.c static inline void hdmi_writeb_mask(struct zx_hdmi *hdmi, u16 offset, hdmi 69 drivers/gpu/drm/zte/zx_hdmi.c tmp = hdmi_readb(hdmi, offset); hdmi 71 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, offset, tmp); hdmi 74 drivers/gpu/drm/zte/zx_hdmi.c static int zx_hdmi_infoframe_trans(struct zx_hdmi *hdmi, hdmi 81 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, TPI_INFO_FSEL, fsel); hdmi 85 drivers/gpu/drm/zte/zx_hdmi.c DRM_DEV_ERROR(hdmi->dev, "failed to pack infoframe: %d\n", num); hdmi 90 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, TPI_INFO_B0 + i, buffer[i]); hdmi 92 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, TPI_INFO_EN, TPI_INFO_TRANS_RPT, hdmi 94 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, TPI_INFO_EN, TPI_INFO_TRANS_EN, hdmi 100 drivers/gpu/drm/zte/zx_hdmi.c static int zx_hdmi_config_video_vsi(struct zx_hdmi *hdmi, hdmi 106 drivers/gpu/drm/zte/zx_hdmi.c ret = drm_hdmi_vendor_infoframe_from_display_mode(&frame.vendor.hdmi, hdmi 107 drivers/gpu/drm/zte/zx_hdmi.c &hdmi->connector, hdmi 110 drivers/gpu/drm/zte/zx_hdmi.c DRM_DEV_ERROR(hdmi->dev, "failed to get vendor infoframe: %d\n", hdmi 115 drivers/gpu/drm/zte/zx_hdmi.c return zx_hdmi_infoframe_trans(hdmi, &frame, FSEL_VSIF); hdmi 118 drivers/gpu/drm/zte/zx_hdmi.c static int zx_hdmi_config_video_avi(struct zx_hdmi *hdmi, hdmi 125 drivers/gpu/drm/zte/zx_hdmi.c &hdmi->connector, hdmi 128 drivers/gpu/drm/zte/zx_hdmi.c DRM_DEV_ERROR(hdmi->dev, "failed to get avi infoframe: %d\n", hdmi 136 drivers/gpu/drm/zte/zx_hdmi.c return zx_hdmi_infoframe_trans(hdmi, &frame, FSEL_AVI); hdmi 143 drivers/gpu/drm/zte/zx_hdmi.c struct zx_hdmi *hdmi = to_zx_hdmi(encoder); hdmi 145 drivers/gpu/drm/zte/zx_hdmi.c if (hdmi->sink_is_hdmi) { hdmi 146 drivers/gpu/drm/zte/zx_hdmi.c zx_hdmi_config_video_avi(hdmi, mode); hdmi 147 drivers/gpu/drm/zte/zx_hdmi.c zx_hdmi_config_video_vsi(hdmi, mode); hdmi 151 drivers/gpu/drm/zte/zx_hdmi.c static void zx_hdmi_phy_start(struct zx_hdmi *hdmi) hdmi 154 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x222, 0x0); hdmi 155 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x224, 0x4); hdmi 156 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x909, 0x0); hdmi 157 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7b0, 0x90); hdmi 158 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7b1, 0x00); hdmi 159 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7b2, 0xa7); hdmi 160 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7b8, 0xaa); hdmi 161 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7b2, 0xa7); hdmi 162 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7b3, 0x0f); hdmi 163 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7b4, 0x0f); hdmi 164 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7b5, 0x55); hdmi 165 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7b7, 0x03); hdmi 166 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7b9, 0x12); hdmi 167 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7ba, 0x32); hdmi 168 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7bc, 0x68); hdmi 169 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7be, 0x40); hdmi 170 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7bf, 0x84); hdmi 171 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7c1, 0x0f); hdmi 172 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7c8, 0x02); hdmi 173 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7c9, 0x03); hdmi 174 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7ca, 0x40); hdmi 175 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7dc, 0x31); hdmi 176 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7e2, 0x04); hdmi 177 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7e0, 0x06); hdmi 178 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7cb, 0x68); hdmi 179 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7f9, 0x02); hdmi 180 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7b6, 0x02); hdmi 181 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, 0x7f3, 0x0); hdmi 184 drivers/gpu/drm/zte/zx_hdmi.c static void zx_hdmi_hw_enable(struct zx_hdmi *hdmi) hdmi 187 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, CLKPWD, CLKPWD_PDIDCK, CLKPWD_PDIDCK); hdmi 190 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, FUNC_SEL, FUNC_HDMI_EN, FUNC_HDMI_EN); hdmi 193 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, P2T_CTRL, P2T_DC_PKT_EN, P2T_DC_PKT_EN); hdmi 196 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, TEST_TXCTRL, TEST_TXCTRL_HDMI_MODE, hdmi 200 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, HDMICTL4, 0x3); hdmi 203 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, INTR1_MASK, INTR1_MONITOR_DETECT, hdmi 207 drivers/gpu/drm/zte/zx_hdmi.c zx_hdmi_phy_start(hdmi); hdmi 210 drivers/gpu/drm/zte/zx_hdmi.c static void zx_hdmi_hw_disable(struct zx_hdmi *hdmi) hdmi 213 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, INTR1_MASK, INTR1_MONITOR_DETECT, 0); hdmi 216 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, P2T_CTRL, P2T_DC_PKT_EN, P2T_DC_PKT_EN); hdmi 219 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, FUNC_SEL, FUNC_HDMI_EN, 0); hdmi 222 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, CLKPWD, CLKPWD_PDIDCK, 0); hdmi 227 drivers/gpu/drm/zte/zx_hdmi.c struct zx_hdmi *hdmi = to_zx_hdmi(encoder); hdmi 229 drivers/gpu/drm/zte/zx_hdmi.c clk_prepare_enable(hdmi->cec_clk); hdmi 230 drivers/gpu/drm/zte/zx_hdmi.c clk_prepare_enable(hdmi->osc_clk); hdmi 231 drivers/gpu/drm/zte/zx_hdmi.c clk_prepare_enable(hdmi->xclk); hdmi 233 drivers/gpu/drm/zte/zx_hdmi.c zx_hdmi_hw_enable(hdmi); hdmi 240 drivers/gpu/drm/zte/zx_hdmi.c struct zx_hdmi *hdmi = to_zx_hdmi(encoder); hdmi 244 drivers/gpu/drm/zte/zx_hdmi.c zx_hdmi_hw_disable(hdmi); hdmi 246 drivers/gpu/drm/zte/zx_hdmi.c clk_disable_unprepare(hdmi->xclk); hdmi 247 drivers/gpu/drm/zte/zx_hdmi.c clk_disable_unprepare(hdmi->osc_clk); hdmi 248 drivers/gpu/drm/zte/zx_hdmi.c clk_disable_unprepare(hdmi->cec_clk); hdmi 263 drivers/gpu/drm/zte/zx_hdmi.c struct zx_hdmi *hdmi = to_zx_hdmi(connector); hdmi 267 drivers/gpu/drm/zte/zx_hdmi.c edid = drm_get_edid(connector, &hdmi->ddc->adap); hdmi 271 drivers/gpu/drm/zte/zx_hdmi.c hdmi->sink_is_hdmi = drm_detect_hdmi_monitor(edid); hdmi 272 drivers/gpu/drm/zte/zx_hdmi.c hdmi->sink_has_audio = drm_detect_monitor_audio(edid); hdmi 295 drivers/gpu/drm/zte/zx_hdmi.c struct zx_hdmi *hdmi = to_zx_hdmi(connector); hdmi 297 drivers/gpu/drm/zte/zx_hdmi.c return (hdmi_readb(hdmi, TPI_HPD_RSEN) & TPI_HPD_CONNECTION) ? hdmi 310 drivers/gpu/drm/zte/zx_hdmi.c static int zx_hdmi_register(struct drm_device *drm, struct zx_hdmi *hdmi) hdmi 312 drivers/gpu/drm/zte/zx_hdmi.c struct drm_encoder *encoder = &hdmi->encoder; hdmi 320 drivers/gpu/drm/zte/zx_hdmi.c hdmi->connector.polled = DRM_CONNECTOR_POLL_HPD; hdmi 322 drivers/gpu/drm/zte/zx_hdmi.c drm_connector_init(drm, &hdmi->connector, &zx_hdmi_connector_funcs, hdmi 324 drivers/gpu/drm/zte/zx_hdmi.c drm_connector_helper_add(&hdmi->connector, hdmi 327 drivers/gpu/drm/zte/zx_hdmi.c drm_connector_attach_encoder(&hdmi->connector, encoder); hdmi 334 drivers/gpu/drm/zte/zx_hdmi.c struct zx_hdmi *hdmi = dev_id; hdmi 336 drivers/gpu/drm/zte/zx_hdmi.c drm_helper_hpd_irq_event(hdmi->connector.dev); hdmi 343 drivers/gpu/drm/zte/zx_hdmi.c struct zx_hdmi *hdmi = dev_id; hdmi 346 drivers/gpu/drm/zte/zx_hdmi.c lstat = hdmi_readb(hdmi, L1_INTR_STAT); hdmi 352 drivers/gpu/drm/zte/zx_hdmi.c stat = hdmi_readb(hdmi, INTR1_STAT); hdmi 353 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, INTR1_STAT, stat); hdmi 364 drivers/gpu/drm/zte/zx_hdmi.c struct zx_hdmi *hdmi = dev_get_drvdata(dev); hdmi 365 drivers/gpu/drm/zte/zx_hdmi.c struct drm_encoder *encoder = &hdmi->encoder; hdmi 374 drivers/gpu/drm/zte/zx_hdmi.c struct zx_hdmi *hdmi = dev_get_drvdata(dev); hdmi 377 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, AUD_EN, AUD_IN_EN, 0); hdmi 397 drivers/gpu/drm/zte/zx_hdmi.c struct zx_hdmi *hdmi = dev_get_drvdata(dev); hdmi 404 drivers/gpu/drm/zte/zx_hdmi.c DRM_DEV_ERROR(hdmi->dev, "invalid daifmt %d\n", daifmt->fmt); hdmi 410 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, TPI_AUD_CONFIG, SPDIF_SAMPLE_SIZE_MASK, hdmi 414 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, TPI_AUD_CONFIG, SPDIF_SAMPLE_SIZE_MASK, hdmi 418 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, TPI_AUD_CONFIG, SPDIF_SAMPLE_SIZE_MASK, hdmi 422 drivers/gpu/drm/zte/zx_hdmi.c DRM_DEV_ERROR(hdmi->dev, "invalid sample width %d\n", hdmi 429 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, N_SVAL1, n & 0xff); hdmi 430 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, N_SVAL2, (n >> 8) & 0xff); hdmi 431 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, N_SVAL3, (n >> 16) & 0xf); hdmi 434 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, AUD_MODE, SPDIF_EN, SPDIF_EN); hdmi 437 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, AUD_EN, AUD_IN_EN, AUD_IN_EN); hdmi 441 drivers/gpu/drm/zte/zx_hdmi.c return zx_hdmi_infoframe_trans(hdmi, &frame, FSEL_AUDIO); hdmi 447 drivers/gpu/drm/zte/zx_hdmi.c struct zx_hdmi *hdmi = dev_get_drvdata(dev); hdmi 450 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, TPI_AUD_CONFIG, TPI_AUD_MUTE, hdmi 453 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, TPI_AUD_CONFIG, TPI_AUD_MUTE, 0); hdmi 461 drivers/gpu/drm/zte/zx_hdmi.c struct zx_hdmi *hdmi = dev_get_drvdata(dev); hdmi 462 drivers/gpu/drm/zte/zx_hdmi.c struct drm_connector *connector = &hdmi->connector; hdmi 482 drivers/gpu/drm/zte/zx_hdmi.c static int zx_hdmi_audio_register(struct zx_hdmi *hdmi) hdmi 486 drivers/gpu/drm/zte/zx_hdmi.c pdev = platform_device_register_data(hdmi->dev, HDMI_CODEC_DRV_NAME, hdmi 493 drivers/gpu/drm/zte/zx_hdmi.c hdmi->audio_pdev = pdev; hdmi 498 drivers/gpu/drm/zte/zx_hdmi.c static int zx_hdmi_i2c_read(struct zx_hdmi *hdmi, struct i2c_msg *msg) hdmi 506 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, ZX_DDC_DIN_CNT2, (len >> 8) & 0xff); hdmi 508 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, ZX_DDC_DIN_CNT1, len & 0xff); hdmi 511 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, ZX_DDC_CMD, DDC_CMD_MASK, DDC_CMD_CLEAR_FIFO); hdmi 514 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, ZX_DDC_CMD, DDC_CMD_MASK, hdmi 523 drivers/gpu/drm/zte/zx_hdmi.c cnt = hdmi_readb(hdmi, ZX_DDC_DOUT_CNT) & DDC_DOUT_CNT_MASK; hdmi 526 drivers/gpu/drm/zte/zx_hdmi.c DRM_DEV_ERROR(hdmi->dev, hdmi 534 drivers/gpu/drm/zte/zx_hdmi.c *buf++ = hdmi_readb(hdmi, ZX_DDC_DATA); hdmi 541 drivers/gpu/drm/zte/zx_hdmi.c static int zx_hdmi_i2c_write(struct zx_hdmi *hdmi, struct i2c_msg *msg) hdmi 552 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, ZX_DDC_SEGM, msg->addr << 1); hdmi 554 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, ZX_DDC_ADDR, msg->addr << 1); hdmi 556 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb(hdmi, ZX_DDC_OFFSET, msg->buf[0]); hdmi 564 drivers/gpu/drm/zte/zx_hdmi.c struct zx_hdmi *hdmi = i2c_get_adapdata(adap); hdmi 565 drivers/gpu/drm/zte/zx_hdmi.c struct zx_hdmi_i2c *ddc = hdmi->ddc; hdmi 571 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, TPI_DDC_MASTER_EN, HW_DDC_MASTER, HW_DDC_MASTER); hdmi 574 drivers/gpu/drm/zte/zx_hdmi.c DRM_DEV_DEBUG(hdmi->dev, hdmi 579 drivers/gpu/drm/zte/zx_hdmi.c ret = zx_hdmi_i2c_read(hdmi, &msgs[i]); hdmi 581 drivers/gpu/drm/zte/zx_hdmi.c ret = zx_hdmi_i2c_write(hdmi, &msgs[i]); hdmi 591 drivers/gpu/drm/zte/zx_hdmi.c hdmi_writeb_mask(hdmi, TPI_DDC_MASTER_EN, HW_DDC_MASTER, 0); hdmi 608 drivers/gpu/drm/zte/zx_hdmi.c static int zx_hdmi_ddc_register(struct zx_hdmi *hdmi) hdmi 614 drivers/gpu/drm/zte/zx_hdmi.c ddc = devm_kzalloc(hdmi->dev, sizeof(*ddc), GFP_KERNEL); hdmi 618 drivers/gpu/drm/zte/zx_hdmi.c hdmi->ddc = ddc; hdmi 624 drivers/gpu/drm/zte/zx_hdmi.c adap->dev.parent = hdmi->dev; hdmi 630 drivers/gpu/drm/zte/zx_hdmi.c DRM_DEV_ERROR(hdmi->dev, "failed to add I2C adapter: %d\n", hdmi 635 drivers/gpu/drm/zte/zx_hdmi.c i2c_set_adapdata(adap, hdmi); hdmi 645 drivers/gpu/drm/zte/zx_hdmi.c struct zx_hdmi *hdmi; hdmi 649 drivers/gpu/drm/zte/zx_hdmi.c hdmi = devm_kzalloc(dev, sizeof(*hdmi), GFP_KERNEL); hdmi 650 drivers/gpu/drm/zte/zx_hdmi.c if (!hdmi) hdmi 653 drivers/gpu/drm/zte/zx_hdmi.c hdmi->dev = dev; hdmi 654 drivers/gpu/drm/zte/zx_hdmi.c hdmi->drm = drm; hdmi 656 drivers/gpu/drm/zte/zx_hdmi.c dev_set_drvdata(dev, hdmi); hdmi 659 drivers/gpu/drm/zte/zx_hdmi.c hdmi->mmio = devm_ioremap_resource(dev, res); hdmi 660 drivers/gpu/drm/zte/zx_hdmi.c if (IS_ERR(hdmi->mmio)) { hdmi 661 drivers/gpu/drm/zte/zx_hdmi.c ret = PTR_ERR(hdmi->mmio); hdmi 670 drivers/gpu/drm/zte/zx_hdmi.c hdmi->cec_clk = devm_clk_get(hdmi->dev, "osc_cec"); hdmi 671 drivers/gpu/drm/zte/zx_hdmi.c if (IS_ERR(hdmi->cec_clk)) { hdmi 672 drivers/gpu/drm/zte/zx_hdmi.c ret = PTR_ERR(hdmi->cec_clk); hdmi 677 drivers/gpu/drm/zte/zx_hdmi.c hdmi->osc_clk = devm_clk_get(hdmi->dev, "osc_clk"); hdmi 678 drivers/gpu/drm/zte/zx_hdmi.c if (IS_ERR(hdmi->osc_clk)) { hdmi 679 drivers/gpu/drm/zte/zx_hdmi.c ret = PTR_ERR(hdmi->osc_clk); hdmi 684 drivers/gpu/drm/zte/zx_hdmi.c hdmi->xclk = devm_clk_get(hdmi->dev, "xclk"); hdmi 685 drivers/gpu/drm/zte/zx_hdmi.c if (IS_ERR(hdmi->xclk)) { hdmi 686 drivers/gpu/drm/zte/zx_hdmi.c ret = PTR_ERR(hdmi->xclk); hdmi 691 drivers/gpu/drm/zte/zx_hdmi.c ret = zx_hdmi_ddc_register(hdmi); hdmi 697 drivers/gpu/drm/zte/zx_hdmi.c ret = zx_hdmi_audio_register(hdmi); hdmi 703 drivers/gpu/drm/zte/zx_hdmi.c ret = zx_hdmi_register(drm, hdmi); hdmi 711 drivers/gpu/drm/zte/zx_hdmi.c dev_name(dev), hdmi); hdmi 723 drivers/gpu/drm/zte/zx_hdmi.c struct zx_hdmi *hdmi = dev_get_drvdata(dev); hdmi 725 drivers/gpu/drm/zte/zx_hdmi.c hdmi->connector.funcs->destroy(&hdmi->connector); hdmi 726 drivers/gpu/drm/zte/zx_hdmi.c hdmi->encoder.funcs->destroy(&hdmi->encoder); hdmi 728 drivers/gpu/drm/zte/zx_hdmi.c if (hdmi->audio_pdev) hdmi 729 drivers/gpu/drm/zte/zx_hdmi.c platform_device_unregister(hdmi->audio_pdev); hdmi 250 drivers/media/i2c/adv748x/adv748x-core.c if (tx->src == &state->hdmi.sd) { hdmi 353 drivers/media/i2c/adv748x/adv748x-core.c state->hdmi.tx = enable ? tx : NULL; hdmi 366 drivers/media/i2c/adv748x/adv748x-core.c if (state->hdmi.tx) hdmi 737 drivers/media/i2c/adv748x/adv748x-core.c ret = adv748x_hdmi_init(&state->hdmi); hdmi 771 drivers/media/i2c/adv748x/adv748x-core.c adv748x_hdmi_cleanup(&state->hdmi); hdmi 787 drivers/media/i2c/adv748x/adv748x-core.c adv748x_hdmi_cleanup(&state->hdmi); hdmi 101 drivers/media/i2c/adv748x/adv748x-csi2.c ret = adv748x_csi2_register_link(tx, sd->v4l2_dev, &state->hdmi.sd, hdmi 107 drivers/media/i2c/adv748x/adv748x-csi2.c state->hdmi.tx = tx; hdmi 90 drivers/media/i2c/adv748x/adv748x-hdmi.c static void adv748x_hdmi_fill_format(struct adv748x_hdmi *hdmi, hdmi 96 drivers/media/i2c/adv748x/adv748x-hdmi.c fmt->field = hdmi->timings.bt.interlaced ? hdmi 102 drivers/media/i2c/adv748x/adv748x-hdmi.c fmt->width = hdmi->timings.bt.width; hdmi 103 drivers/media/i2c/adv748x/adv748x-hdmi.c fmt->height = hdmi->timings.bt.height; hdmi 220 drivers/media/i2c/adv748x/adv748x-hdmi.c struct adv748x_hdmi *hdmi = adv748x_sd_to_hdmi(sd); hdmi 221 drivers/media/i2c/adv748x/adv748x-hdmi.c struct adv748x_state *state = adv748x_hdmi_to_state(hdmi); hdmi 227 drivers/media/i2c/adv748x/adv748x-hdmi.c if (v4l2_match_dv_timings(&hdmi->timings, timings, 0, false)) hdmi 242 drivers/media/i2c/adv748x/adv748x-hdmi.c hdmi->timings = *timings; hdmi 260 drivers/media/i2c/adv748x/adv748x-hdmi.c struct adv748x_hdmi *hdmi = adv748x_sd_to_hdmi(sd); hdmi 261 drivers/media/i2c/adv748x/adv748x-hdmi.c struct adv748x_state *state = adv748x_hdmi_to_state(hdmi); hdmi 265 drivers/media/i2c/adv748x/adv748x-hdmi.c *timings = hdmi->timings; hdmi 275 drivers/media/i2c/adv748x/adv748x-hdmi.c struct adv748x_hdmi *hdmi = adv748x_sd_to_hdmi(sd); hdmi 276 drivers/media/i2c/adv748x/adv748x-hdmi.c struct adv748x_state *state = adv748x_hdmi_to_state(hdmi); hdmi 334 drivers/media/i2c/adv748x/adv748x-hdmi.c hdmi->timings = *timings; hdmi 341 drivers/media/i2c/adv748x/adv748x-hdmi.c struct adv748x_hdmi *hdmi = adv748x_sd_to_hdmi(sd); hdmi 342 drivers/media/i2c/adv748x/adv748x-hdmi.c struct adv748x_state *state = adv748x_hdmi_to_state(hdmi); hdmi 355 drivers/media/i2c/adv748x/adv748x-hdmi.c struct adv748x_hdmi *hdmi = adv748x_sd_to_hdmi(sd); hdmi 356 drivers/media/i2c/adv748x/adv748x-hdmi.c struct adv748x_state *state = adv748x_hdmi_to_state(hdmi); hdmi 361 drivers/media/i2c/adv748x/adv748x-hdmi.c ret = adv748x_tx_power(hdmi->tx, enable); hdmi 397 drivers/media/i2c/adv748x/adv748x-hdmi.c static int adv748x_hdmi_propagate_pixelrate(struct adv748x_hdmi *hdmi) hdmi 402 drivers/media/i2c/adv748x/adv748x-hdmi.c tx = adv748x_get_remote_sd(&hdmi->pads[ADV748X_HDMI_SOURCE]); hdmi 406 drivers/media/i2c/adv748x/adv748x-hdmi.c adv748x_hdmi_query_dv_timings(&hdmi->sd, &timings); hdmi 427 drivers/media/i2c/adv748x/adv748x-hdmi.c struct adv748x_hdmi *hdmi = adv748x_sd_to_hdmi(sd); hdmi 437 drivers/media/i2c/adv748x/adv748x-hdmi.c adv748x_hdmi_fill_format(hdmi, &sdformat->format); hdmi 438 drivers/media/i2c/adv748x/adv748x-hdmi.c adv748x_hdmi_propagate_pixelrate(hdmi); hdmi 464 drivers/media/i2c/adv748x/adv748x-hdmi.c struct adv748x_hdmi *hdmi = adv748x_sd_to_hdmi(sd); hdmi 468 drivers/media/i2c/adv748x/adv748x-hdmi.c if (!hdmi->edid.present) hdmi 472 drivers/media/i2c/adv748x/adv748x-hdmi.c edid->blocks = hdmi->edid.blocks; hdmi 476 drivers/media/i2c/adv748x/adv748x-hdmi.c if (edid->start_block >= hdmi->edid.blocks) hdmi 479 drivers/media/i2c/adv748x/adv748x-hdmi.c if (edid->start_block + edid->blocks > hdmi->edid.blocks) hdmi 480 drivers/media/i2c/adv748x/adv748x-hdmi.c edid->blocks = hdmi->edid.blocks - edid->start_block; hdmi 482 drivers/media/i2c/adv748x/adv748x-hdmi.c memcpy(edid->edid, hdmi->edid.edid + edid->start_block * 128, hdmi 488 drivers/media/i2c/adv748x/adv748x-hdmi.c static inline int adv748x_hdmi_edid_write_block(struct adv748x_hdmi *hdmi, hdmi 491 drivers/media/i2c/adv748x/adv748x-hdmi.c struct adv748x_state *state = adv748x_hdmi_to_state(hdmi); hdmi 514 drivers/media/i2c/adv748x/adv748x-hdmi.c struct adv748x_hdmi *hdmi = adv748x_sd_to_hdmi(sd); hdmi 515 drivers/media/i2c/adv748x/adv748x-hdmi.c struct adv748x_state *state = adv748x_hdmi_to_state(hdmi); hdmi 524 drivers/media/i2c/adv748x/adv748x-hdmi.c hdmi->edid.blocks = 0; hdmi 525 drivers/media/i2c/adv748x/adv748x-hdmi.c hdmi->edid.present = 0; hdmi 528 drivers/media/i2c/adv748x/adv748x-hdmi.c hdmi->aspect_ratio.numerator = 16; hdmi 529 drivers/media/i2c/adv748x/adv748x-hdmi.c hdmi->aspect_ratio.denominator = 9; hdmi 545 drivers/media/i2c/adv748x/adv748x-hdmi.c memcpy(hdmi->edid.edid, edid->edid, 128 * edid->blocks); hdmi 546 drivers/media/i2c/adv748x/adv748x-hdmi.c hdmi->edid.blocks = edid->blocks; hdmi 547 drivers/media/i2c/adv748x/adv748x-hdmi.c hdmi->edid.present = true; hdmi 549 drivers/media/i2c/adv748x/adv748x-hdmi.c hdmi->aspect_ratio = v4l2_calc_aspect_ratio(edid->edid[0x15], hdmi 552 drivers/media/i2c/adv748x/adv748x-hdmi.c err = adv748x_hdmi_edid_write_block(hdmi, 128 * edid->blocks, hdmi 553 drivers/media/i2c/adv748x/adv748x-hdmi.c hdmi->edid.edid); hdmi 631 drivers/media/i2c/adv748x/adv748x-hdmi.c struct adv748x_hdmi *hdmi = adv748x_ctrl_to_hdmi(ctrl); hdmi 632 drivers/media/i2c/adv748x/adv748x-hdmi.c struct adv748x_state *state = adv748x_hdmi_to_state(hdmi); hdmi 679 drivers/media/i2c/adv748x/adv748x-hdmi.c static int adv748x_hdmi_init_controls(struct adv748x_hdmi *hdmi) hdmi 681 drivers/media/i2c/adv748x/adv748x-hdmi.c struct adv748x_state *state = adv748x_hdmi_to_state(hdmi); hdmi 683 drivers/media/i2c/adv748x/adv748x-hdmi.c v4l2_ctrl_handler_init(&hdmi->ctrl_hdl, 5); hdmi 686 drivers/media/i2c/adv748x/adv748x-hdmi.c hdmi->ctrl_hdl.lock = &state->mutex; hdmi 688 drivers/media/i2c/adv748x/adv748x-hdmi.c v4l2_ctrl_new_std(&hdmi->ctrl_hdl, &adv748x_hdmi_ctrl_ops, hdmi 691 drivers/media/i2c/adv748x/adv748x-hdmi.c v4l2_ctrl_new_std(&hdmi->ctrl_hdl, &adv748x_hdmi_ctrl_ops, hdmi 694 drivers/media/i2c/adv748x/adv748x-hdmi.c v4l2_ctrl_new_std(&hdmi->ctrl_hdl, &adv748x_hdmi_ctrl_ops, hdmi 697 drivers/media/i2c/adv748x/adv748x-hdmi.c v4l2_ctrl_new_std(&hdmi->ctrl_hdl, &adv748x_hdmi_ctrl_ops, hdmi 706 drivers/media/i2c/adv748x/adv748x-hdmi.c v4l2_ctrl_new_std_menu_items(&hdmi->ctrl_hdl, &adv748x_hdmi_ctrl_ops, hdmi 711 drivers/media/i2c/adv748x/adv748x-hdmi.c hdmi->sd.ctrl_handler = &hdmi->ctrl_hdl; hdmi 712 drivers/media/i2c/adv748x/adv748x-hdmi.c if (hdmi->ctrl_hdl.error) { hdmi 713 drivers/media/i2c/adv748x/adv748x-hdmi.c v4l2_ctrl_handler_free(&hdmi->ctrl_hdl); hdmi 714 drivers/media/i2c/adv748x/adv748x-hdmi.c return hdmi->ctrl_hdl.error; hdmi 717 drivers/media/i2c/adv748x/adv748x-hdmi.c return v4l2_ctrl_handler_setup(&hdmi->ctrl_hdl); hdmi 720 drivers/media/i2c/adv748x/adv748x-hdmi.c int adv748x_hdmi_init(struct adv748x_hdmi *hdmi) hdmi 722 drivers/media/i2c/adv748x/adv748x-hdmi.c struct adv748x_state *state = adv748x_hdmi_to_state(hdmi); hdmi 727 drivers/media/i2c/adv748x/adv748x-hdmi.c hdmi->timings = cea1280x720; hdmi 730 drivers/media/i2c/adv748x/adv748x-hdmi.c hdmi->aspect_ratio.numerator = 16; hdmi 731 drivers/media/i2c/adv748x/adv748x-hdmi.c hdmi->aspect_ratio.denominator = 9; hdmi 733 drivers/media/i2c/adv748x/adv748x-hdmi.c adv748x_subdev_init(&hdmi->sd, state, &adv748x_ops_hdmi, hdmi 736 drivers/media/i2c/adv748x/adv748x-hdmi.c hdmi->pads[ADV748X_HDMI_SINK].flags = MEDIA_PAD_FL_SINK; hdmi 737 drivers/media/i2c/adv748x/adv748x-hdmi.c hdmi->pads[ADV748X_HDMI_SOURCE].flags = MEDIA_PAD_FL_SOURCE; hdmi 739 drivers/media/i2c/adv748x/adv748x-hdmi.c ret = media_entity_pads_init(&hdmi->sd.entity, hdmi 740 drivers/media/i2c/adv748x/adv748x-hdmi.c ADV748X_HDMI_NR_PADS, hdmi->pads); hdmi 744 drivers/media/i2c/adv748x/adv748x-hdmi.c ret = adv748x_hdmi_init_controls(hdmi); hdmi 751 drivers/media/i2c/adv748x/adv748x-hdmi.c media_entity_cleanup(&hdmi->sd.entity); hdmi 756 drivers/media/i2c/adv748x/adv748x-hdmi.c void adv748x_hdmi_cleanup(struct adv748x_hdmi *hdmi) hdmi 758 drivers/media/i2c/adv748x/adv748x-hdmi.c v4l2_device_unregister_subdev(&hdmi->sd); hdmi 759 drivers/media/i2c/adv748x/adv748x-hdmi.c media_entity_cleanup(&hdmi->sd.entity); hdmi 760 drivers/media/i2c/adv748x/adv748x-hdmi.c v4l2_ctrl_handler_free(&hdmi->ctrl_hdl); hdmi 194 drivers/media/i2c/adv748x/adv748x.h struct adv748x_hdmi hdmi; hdmi 200 drivers/media/i2c/adv748x/adv748x.h #define adv748x_hdmi_to_state(h) container_of(h, struct adv748x_state, hdmi) hdmi 442 drivers/media/i2c/adv748x/adv748x.h int adv748x_hdmi_init(struct adv748x_hdmi *hdmi); hdmi 443 drivers/media/i2c/adv748x/adv748x.h void adv748x_hdmi_cleanup(struct adv748x_hdmi *hdmi); hdmi 861 drivers/media/v4l2-core/v4l2-dv-timings.c const struct hdmi_vendor_infoframe *hdmi, hdmi 870 drivers/media/v4l2-core/v4l2-dv-timings.c bool is_ce = avi->video_code || (hdmi && hdmi->vic); hdmi 425 drivers/pinctrl/bcm/pinctrl-bcm281xx.c BCM281XX_PIN_DESC(BCM281XX_PIN_HDMI_SCL, "hdmi_scl", hdmi), hdmi 426 drivers/pinctrl/bcm/pinctrl-bcm281xx.c BCM281XX_PIN_DESC(BCM281XX_PIN_HDMI_SDA, "hdmi_sda", hdmi), hdmi 1034 drivers/pinctrl/meson/pinctrl-meson8.c FUNCTION(hdmi), hdmi 879 drivers/pinctrl/meson/pinctrl-meson8b.c FUNCTION(hdmi), hdmi 496 drivers/pinctrl/qcom/pinctrl-apq8064.c FUNCTION(hdmi), hdmi 581 drivers/pinctrl/qcom/pinctrl-apq8064.c PINGROUP(69, hdmi, NA, NA, NA, NA, NA, NA, NA, NA, NA), hdmi 582 drivers/pinctrl/qcom/pinctrl-apq8064.c PINGROUP(70, hdmi, NA, NA, NA, NA, NA, NA, NA, NA, NA), hdmi 583 drivers/pinctrl/qcom/pinctrl-apq8064.c PINGROUP(71, hdmi, NA, NA, NA, NA, NA, NA, NA, NA, NA), hdmi 584 drivers/pinctrl/qcom/pinctrl-apq8064.c PINGROUP(72, hdmi, NA, NA, NA, NA, NA, NA, NA, NA, NA), hdmi 758 drivers/pinctrl/qcom/pinctrl-msm8660.c FUNCTION(hdmi), hdmi 950 drivers/pinctrl/qcom/pinctrl-msm8660.c PINGROUP(169, hdmi, _, _, _, _, _, _), hdmi 951 drivers/pinctrl/qcom/pinctrl-msm8660.c PINGROUP(170, hdmi, _, _, _, _, _, _), hdmi 952 drivers/pinctrl/qcom/pinctrl-msm8660.c PINGROUP(171, hdmi, _, _, _, _, _, _), hdmi 953 drivers/pinctrl/qcom/pinctrl-msm8660.c PINGROUP(172, hdmi, _, _, _, _, _, _), hdmi 2798 drivers/pinctrl/sh-pfc/pfc-r8a7740.c SH_PFC_PIN_GROUP(hdmi), hdmi 3202 drivers/pinctrl/sh-pfc/pfc-r8a7740.c SH_PFC_FUNCTION(hdmi), hdmi 1913 drivers/pinctrl/tegra/pinctrl-tegra20.c FUNCTION(hdmi), hdmi 2039 drivers/pinctrl/tegra/pinctrl-tegra30.c FUNCTION(hdmi), hdmi 60 drivers/video/fbdev/omap2/omapfb/displays/connector-hdmi.c r = in->ops.hdmi->connect(in, dssdev); hdmi 77 drivers/video/fbdev/omap2/omapfb/displays/connector-hdmi.c in->ops.hdmi->disconnect(in, dssdev); hdmi 94 drivers/video/fbdev/omap2/omapfb/displays/connector-hdmi.c in->ops.hdmi->set_timings(in, &ddata->timings); hdmi 96 drivers/video/fbdev/omap2/omapfb/displays/connector-hdmi.c r = in->ops.hdmi->enable(in); hdmi 115 drivers/video/fbdev/omap2/omapfb/displays/connector-hdmi.c in->ops.hdmi->disable(in); hdmi 129 drivers/video/fbdev/omap2/omapfb/displays/connector-hdmi.c in->ops.hdmi->set_timings(in, timings); hdmi 146 drivers/video/fbdev/omap2/omapfb/displays/connector-hdmi.c return in->ops.hdmi->check_timings(in, timings); hdmi 155 drivers/video/fbdev/omap2/omapfb/displays/connector-hdmi.c return in->ops.hdmi->read_edid(in, edid, len); hdmi 166 drivers/video/fbdev/omap2/omapfb/displays/connector-hdmi.c return in->ops.hdmi->detect(in); hdmi 174 drivers/video/fbdev/omap2/omapfb/displays/connector-hdmi.c return in->ops.hdmi->set_hdmi_mode(in, hdmi_mode); hdmi 183 drivers/video/fbdev/omap2/omapfb/displays/connector-hdmi.c return in->ops.hdmi->set_infoframe(in, avi); hdmi 39 drivers/video/fbdev/omap2/omapfb/displays/encoder-tpd12s015.c r = in->ops.hdmi->connect(in, dssdev); hdmi 71 drivers/video/fbdev/omap2/omapfb/displays/encoder-tpd12s015.c in->ops.hdmi->disconnect(in, &ddata->dssdev); hdmi 83 drivers/video/fbdev/omap2/omapfb/displays/encoder-tpd12s015.c in->ops.hdmi->set_timings(in, &ddata->timings); hdmi 85 drivers/video/fbdev/omap2/omapfb/displays/encoder-tpd12s015.c r = in->ops.hdmi->enable(in); hdmi 102 drivers/video/fbdev/omap2/omapfb/displays/encoder-tpd12s015.c in->ops.hdmi->disable(in); hdmi 116 drivers/video/fbdev/omap2/omapfb/displays/encoder-tpd12s015.c in->ops.hdmi->set_timings(in, timings); hdmi 134 drivers/video/fbdev/omap2/omapfb/displays/encoder-tpd12s015.c r = in->ops.hdmi->check_timings(in, timings); hdmi 151 drivers/video/fbdev/omap2/omapfb/displays/encoder-tpd12s015.c r = in->ops.hdmi->read_edid(in, edid, len); hdmi 171 drivers/video/fbdev/omap2/omapfb/displays/encoder-tpd12s015.c return in->ops.hdmi->set_infoframe(in, avi); hdmi 180 drivers/video/fbdev/omap2/omapfb/displays/encoder-tpd12s015.c return in->ops.hdmi->set_hdmi_mode(in, hdmi_mode); hdmi 266 drivers/video/fbdev/omap2/omapfb/displays/encoder-tpd12s015.c dssdev->ops.hdmi = &tpd_hdmi_ops; hdmi 33 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c static struct omap_hdmi hdmi; hdmi 41 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c r = pm_runtime_get_sync(&hdmi.pdev->dev); hdmi 55 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c r = pm_runtime_put_sync(&hdmi.pdev->dev); hdmi 94 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c if (hdmi.vdda_reg != NULL) hdmi 97 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c reg = devm_regulator_get(&hdmi.pdev->dev, "vdda"); hdmi 105 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi.vdda_reg = reg; hdmi 114 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c r = regulator_enable(hdmi.vdda_reg); hdmi 125 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi.core_enabled = true; hdmi 130 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c regulator_disable(hdmi.vdda_reg); hdmi 137 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi.core_enabled = false; hdmi 140 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c regulator_disable(hdmi.vdda_reg); hdmi 147 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c struct omap_overlay_manager *mgr = hdmi.output.manager; hdmi 148 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c struct hdmi_wp_data *wp = &hdmi.wp; hdmi 159 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c p = &hdmi.cfg.timings; hdmi 163 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi_pll_compute(&hdmi.pll, p->pixelclock, &hdmi_cinfo); hdmi 165 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c r = dss_pll_enable(&hdmi.pll.pll); hdmi 171 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c r = dss_pll_set_config(&hdmi.pll.pll, &hdmi_cinfo); hdmi 177 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c r = hdmi_phy_configure(&hdmi.phy, hdmi_cinfo.clkdco, hdmi 188 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi4_configure(&hdmi.core, &hdmi.wp, &hdmi.cfg); hdmi 196 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c r = hdmi_wp_video_start(&hdmi.wp); hdmi 210 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi_wp_video_stop(&hdmi.wp); hdmi 212 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi_wp_set_phy_pwr(&hdmi.wp, HDMI_PHYPWRCMD_OFF); hdmi 216 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c dss_pll_disable(&hdmi.pll.pll); hdmi 224 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c struct omap_overlay_manager *mgr = hdmi.output.manager; hdmi 226 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi_wp_clear_irqenable(&hdmi.wp, 0xffffffff); hdmi 230 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi_wp_video_stop(&hdmi.wp); hdmi 232 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi_wp_set_phy_pwr(&hdmi.wp, HDMI_PHYPWRCMD_OFF); hdmi 234 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c dss_pll_disable(&hdmi.pll.pll); hdmi 242 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c struct omap_dss_device *out = &hdmi.output; hdmi 253 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c mutex_lock(&hdmi.lock); hdmi 255 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi.cfg.timings = *timings; hdmi 259 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c mutex_unlock(&hdmi.lock); hdmi 265 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c *timings = hdmi.cfg.timings; hdmi 270 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c mutex_lock(&hdmi.lock); hdmi 273 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c mutex_unlock(&hdmi.lock); hdmi 277 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi_wp_dump(&hdmi.wp, s); hdmi 278 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi_pll_dump(&hdmi.pll, s); hdmi 279 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi_phy_dump(&hdmi.phy, s); hdmi 280 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi4_core_dump(&hdmi.core, s); hdmi 283 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c mutex_unlock(&hdmi.lock); hdmi 290 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c mutex_lock(&hdmi.lock); hdmi 295 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c r = hdmi4_read_edid(&hdmi.core, buf, len); hdmi 298 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c mutex_unlock(&hdmi.lock); hdmi 317 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c struct omap_dss_device *out = &hdmi.output; hdmi 323 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c mutex_lock(&hdmi.lock); hdmi 337 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c if (hdmi.audio_configured) { hdmi 338 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c r = hdmi4_audio_config(&hdmi.core, &hdmi.wp, &hdmi.audio_config, hdmi 339 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi.cfg.timings.pixelclock); hdmi 342 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi.audio_abort_cb(&hdmi.pdev->dev); hdmi 343 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi.audio_configured = false; hdmi 347 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c spin_lock_irqsave(&hdmi.audio_playing_lock, flags); hdmi 348 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c if (hdmi.audio_configured && hdmi.audio_playing) hdmi 349 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi_start_audio_stream(&hdmi); hdmi 350 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi.display_enabled = true; hdmi 351 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c spin_unlock_irqrestore(&hdmi.audio_playing_lock, flags); hdmi 353 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c mutex_unlock(&hdmi.lock); hdmi 357 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c mutex_unlock(&hdmi.lock); hdmi 367 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c mutex_lock(&hdmi.lock); hdmi 369 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c spin_lock_irqsave(&hdmi.audio_playing_lock, flags); hdmi 370 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi_stop_audio_stream(&hdmi); hdmi 371 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi.display_enabled = false; hdmi 372 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c spin_unlock_irqrestore(&hdmi.audio_playing_lock, flags); hdmi 376 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c mutex_unlock(&hdmi.lock); hdmi 385 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c mutex_lock(&hdmi.lock); hdmi 393 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c mutex_unlock(&hdmi.lock); hdmi 397 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c mutex_unlock(&hdmi.lock); hdmi 405 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c mutex_lock(&hdmi.lock); hdmi 409 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c mutex_unlock(&hdmi.lock); hdmi 461 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c need_enable = hdmi.core_enabled == false; hdmi 480 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi.cfg.infoframe = *avi; hdmi 487 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi.cfg.hdmi_dvi_mode = hdmi_mode ? HDMI_HDMI : HDMI_DVI; hdmi 509 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c struct omap_dss_device *out = &hdmi.output; hdmi 516 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c out->ops.hdmi = &hdmi_ops; hdmi 524 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c struct omap_dss_device *out = &hdmi.output; hdmi 539 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c r = hdmi_parse_lanes_of(pdev, ep, &hdmi.phy); hdmi 657 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c .audio_dma_addr = hdmi_wp_get_audio_dma_addr(&hdmi.wp), hdmi 661 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi.audio_pdev = platform_device_register_data( hdmi 665 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c return PTR_ERR_OR_ZERO(hdmi.audio_pdev); hdmi 675 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi.pdev = pdev; hdmi 676 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c dev_set_drvdata(&pdev->dev, &hdmi); hdmi 678 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c mutex_init(&hdmi.lock); hdmi 679 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c spin_lock_init(&hdmi.audio_playing_lock); hdmi 687 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c r = hdmi_wp_init(pdev, &hdmi.wp); hdmi 691 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c r = hdmi_pll_init(pdev, &hdmi.pll, &hdmi.wp); hdmi 695 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c r = hdmi_phy_init(pdev, &hdmi.phy); hdmi 699 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c r = hdmi4_core_init(pdev, &hdmi.core); hdmi 712 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c IRQF_ONESHOT, "OMAP HDMI", &hdmi.wp); hdmi 734 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi_pll_uninit(&hdmi.pll); hdmi 742 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c if (hdmi.audio_pdev) hdmi 743 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c platform_device_unregister(hdmi.audio_pdev); hdmi 747 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c hdmi_pll_uninit(&hdmi.pll); hdmi 37 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c static struct omap_hdmi hdmi; hdmi 45 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c r = pm_runtime_get_sync(&hdmi.pdev->dev); hdmi 59 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c r = pm_runtime_put_sync(&hdmi.pdev->dev); hdmi 88 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c v = hdmi_read_reg(hdmi.phy.base, HDMI_TXPHY_PAD_CFG_CTRL); hdmi 91 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi_write_reg(hdmi.phy.base, HDMI_TXPHY_PAD_CFG_CTRL, v); hdmi 98 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c REG_FLD_MOD(hdmi.phy.base, HDMI_TXPHY_PAD_CFG_CTRL, 0, 15, 15); hdmi 113 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c if (hdmi.vdda_reg != NULL) hdmi 116 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c reg = devm_regulator_get(&hdmi.pdev->dev, "vdda"); hdmi 122 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi.vdda_reg = reg; hdmi 131 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c r = regulator_enable(hdmi.vdda_reg); hdmi 142 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi.core_enabled = true; hdmi 147 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c regulator_disable(hdmi.vdda_reg); hdmi 154 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi.core_enabled = false; hdmi 157 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c regulator_disable(hdmi.vdda_reg); hdmi 164 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c struct omap_overlay_manager *mgr = hdmi.output.manager; hdmi 171 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c p = &hdmi.cfg.timings; hdmi 175 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi_pll_compute(&hdmi.pll, p->pixelclock, &hdmi_cinfo); hdmi 178 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi_wp_clear_irqenable(&hdmi.wp, 0xffffffff); hdmi 179 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi_wp_set_irqstatus(&hdmi.wp, hdmi 180 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi_wp_get_irqstatus(&hdmi.wp)); hdmi 182 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c r = dss_pll_enable(&hdmi.pll.pll); hdmi 188 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c r = dss_pll_set_config(&hdmi.pll.pll, &hdmi_cinfo); hdmi 194 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c r = hdmi_phy_configure(&hdmi.phy, hdmi_cinfo.clkdco, hdmi 201 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c r = hdmi_wp_set_phy_pwr(&hdmi.wp, HDMI_PHYPWRCMD_LDOON); hdmi 205 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi5_configure(&hdmi.core, &hdmi.wp, &hdmi.cfg); hdmi 213 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c r = hdmi_wp_video_start(&hdmi.wp); hdmi 221 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi_wp_set_irqenable(&hdmi.wp, hdmi 227 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi_wp_video_stop(&hdmi.wp); hdmi 229 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi_wp_set_phy_pwr(&hdmi.wp, HDMI_PHYPWRCMD_OFF); hdmi 233 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c dss_pll_disable(&hdmi.pll.pll); hdmi 241 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c struct omap_overlay_manager *mgr = hdmi.output.manager; hdmi 243 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi_wp_clear_irqenable(&hdmi.wp, 0xffffffff); hdmi 247 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi_wp_video_stop(&hdmi.wp); hdmi 249 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi_wp_set_phy_pwr(&hdmi.wp, HDMI_PHYPWRCMD_OFF); hdmi 251 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c dss_pll_disable(&hdmi.pll.pll); hdmi 259 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c struct omap_dss_device *out = &hdmi.output; hdmi 274 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c mutex_lock(&hdmi.lock); hdmi 276 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi.cfg.timings = *timings; hdmi 280 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c mutex_unlock(&hdmi.lock); hdmi 286 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c *timings = hdmi.cfg.timings; hdmi 291 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c mutex_lock(&hdmi.lock); hdmi 294 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c mutex_unlock(&hdmi.lock); hdmi 298 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi_wp_dump(&hdmi.wp, s); hdmi 299 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi_pll_dump(&hdmi.pll, s); hdmi 300 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi_phy_dump(&hdmi.phy, s); hdmi 301 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi5_core_dump(&hdmi.core, s); hdmi 304 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c mutex_unlock(&hdmi.lock); hdmi 312 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c mutex_lock(&hdmi.lock); hdmi 317 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c idlemode = REG_GET(hdmi.wp.base, HDMI_WP_SYSCONFIG, 3, 2); hdmi 319 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c REG_FLD_MOD(hdmi.wp.base, HDMI_WP_SYSCONFIG, 1, 3, 2); hdmi 321 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c r = hdmi5_read_edid(&hdmi.core, buf, len); hdmi 323 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c REG_FLD_MOD(hdmi.wp.base, HDMI_WP_SYSCONFIG, idlemode, 3, 2); hdmi 326 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c mutex_unlock(&hdmi.lock); hdmi 333 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c REG_FLD_MOD(hdmi.wp.base, HDMI_WP_SYSCONFIG, 1, 3, 2); hdmi 347 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c struct omap_dss_device *out = &hdmi.output; hdmi 353 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c mutex_lock(&hdmi.lock); hdmi 367 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c if (hdmi.audio_configured) { hdmi 368 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c r = hdmi5_audio_config(&hdmi.core, &hdmi.wp, &hdmi.audio_config, hdmi 369 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi.cfg.timings.pixelclock); hdmi 372 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi.audio_abort_cb(&hdmi.pdev->dev); hdmi 373 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi.audio_configured = false; hdmi 377 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c spin_lock_irqsave(&hdmi.audio_playing_lock, flags); hdmi 378 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c if (hdmi.audio_configured && hdmi.audio_playing) hdmi 379 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi_start_audio_stream(&hdmi); hdmi 380 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi.display_enabled = true; hdmi 381 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c spin_unlock_irqrestore(&hdmi.audio_playing_lock, flags); hdmi 383 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c mutex_unlock(&hdmi.lock); hdmi 387 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c mutex_unlock(&hdmi.lock); hdmi 397 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c mutex_lock(&hdmi.lock); hdmi 399 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c spin_lock_irqsave(&hdmi.audio_playing_lock, flags); hdmi 400 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi_stop_audio_stream(&hdmi); hdmi 401 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi.display_enabled = false; hdmi 402 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c spin_unlock_irqrestore(&hdmi.audio_playing_lock, flags); hdmi 406 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c mutex_unlock(&hdmi.lock); hdmi 415 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c mutex_lock(&hdmi.lock); hdmi 423 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c mutex_unlock(&hdmi.lock); hdmi 427 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c mutex_unlock(&hdmi.lock); hdmi 435 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c mutex_lock(&hdmi.lock); hdmi 439 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c mutex_unlock(&hdmi.lock); hdmi 491 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c need_enable = hdmi.core_enabled == false; hdmi 510 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi.cfg.infoframe = *avi; hdmi 517 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi.cfg.hdmi_dvi_mode = hdmi_mode ? HDMI_HDMI : HDMI_DVI; hdmi 539 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c struct omap_dss_device *out = &hdmi.output; hdmi 546 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c out->ops.hdmi = &hdmi_ops; hdmi 554 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c struct omap_dss_device *out = &hdmi.output; hdmi 569 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c r = hdmi_parse_lanes_of(pdev, ep, &hdmi.phy); hdmi 688 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c .audio_dma_addr = hdmi_wp_get_audio_dma_addr(&hdmi.wp), hdmi 692 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi.audio_pdev = platform_device_register_data( hdmi 696 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c if (IS_ERR(hdmi.audio_pdev)) hdmi 697 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c return PTR_ERR(hdmi.audio_pdev); hdmi 700 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi.wp_idlemode = hdmi 701 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c REG_GET(hdmi.wp.base, HDMI_WP_SYSCONFIG, 3, 2); hdmi 714 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi.pdev = pdev; hdmi 715 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c dev_set_drvdata(&pdev->dev, &hdmi); hdmi 717 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c mutex_init(&hdmi.lock); hdmi 718 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c spin_lock_init(&hdmi.audio_playing_lock); hdmi 726 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c r = hdmi_wp_init(pdev, &hdmi.wp); hdmi 730 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c r = hdmi_pll_init(pdev, &hdmi.pll, &hdmi.wp); hdmi 734 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c r = hdmi_phy_init(pdev, &hdmi.phy); hdmi 738 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c r = hdmi5_core_init(pdev, &hdmi.core); hdmi 751 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c IRQF_ONESHOT, "OMAP HDMI", &hdmi.wp); hdmi 773 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi_pll_uninit(&hdmi.pll); hdmi 781 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c if (hdmi.audio_pdev) hdmi 782 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c platform_device_unregister(hdmi.audio_pdev); hdmi 786 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c hdmi_pll_uninit(&hdmi.pll); hdmi 813 drivers/video/hdmi.c return hdmi_vendor_infoframe_check(&frame->hdmi); hdmi 833 drivers/video/hdmi.c return hdmi_vendor_infoframe_pack_only(&frame->hdmi, buffer, size); hdmi 1484 drivers/video/hdmi.c const struct hdmi_vendor_infoframe *hvf = &frame->hdmi; hdmi 1718 drivers/video/hdmi.c struct hdmi_vendor_infoframe *hvf = &frame->hdmi; hdmi 114 include/drm/bridge/dw_hdmi.h int (*init)(struct dw_hdmi *hdmi, void *data, hdmi 116 include/drm/bridge/dw_hdmi.h void (*disable)(struct dw_hdmi *hdmi, void *data); hdmi 117 include/drm/bridge/dw_hdmi.h enum drm_connector_status (*read_hpd)(struct dw_hdmi *hdmi, void *data); hdmi 118 include/drm/bridge/dw_hdmi.h void (*update_hpd)(struct dw_hdmi *hdmi, void *data, hdmi 120 include/drm/bridge/dw_hdmi.h void (*setup_hpd)(struct dw_hdmi *hdmi, void *data); hdmi 140 include/drm/bridge/dw_hdmi.h int (*configure_phy)(struct dw_hdmi *hdmi, hdmi 147 include/drm/bridge/dw_hdmi.h void dw_hdmi_remove(struct dw_hdmi *hdmi); hdmi 148 include/drm/bridge/dw_hdmi.h void dw_hdmi_unbind(struct dw_hdmi *hdmi); hdmi 153 include/drm/bridge/dw_hdmi.h void dw_hdmi_resume(struct dw_hdmi *hdmi); hdmi 155 include/drm/bridge/dw_hdmi.h void dw_hdmi_setup_rx_sense(struct dw_hdmi *hdmi, bool hpd, bool rx_sense); hdmi 157 include/drm/bridge/dw_hdmi.h void dw_hdmi_set_sample_rate(struct dw_hdmi *hdmi, unsigned int rate); hdmi 158 include/drm/bridge/dw_hdmi.h void dw_hdmi_set_channel_count(struct dw_hdmi *hdmi, unsigned int cnt); hdmi 159 include/drm/bridge/dw_hdmi.h void dw_hdmi_set_channel_allocation(struct dw_hdmi *hdmi, unsigned int ca); hdmi 160 include/drm/bridge/dw_hdmi.h void dw_hdmi_audio_enable(struct dw_hdmi *hdmi); hdmi 161 include/drm/bridge/dw_hdmi.h void dw_hdmi_audio_disable(struct dw_hdmi *hdmi); hdmi 162 include/drm/bridge/dw_hdmi.h void dw_hdmi_set_high_tmds_clock_ratio(struct dw_hdmi *hdmi); hdmi 165 include/drm/bridge/dw_hdmi.h void dw_hdmi_phy_i2c_set_addr(struct dw_hdmi *hdmi, u8 address); hdmi 166 include/drm/bridge/dw_hdmi.h void dw_hdmi_phy_i2c_write(struct dw_hdmi *hdmi, unsigned short data, hdmi 169 include/drm/bridge/dw_hdmi.h void dw_hdmi_phy_gen2_pddq(struct dw_hdmi *hdmi, u8 enable); hdmi 170 include/drm/bridge/dw_hdmi.h void dw_hdmi_phy_gen2_txpwron(struct dw_hdmi *hdmi, u8 enable); hdmi 171 include/drm/bridge/dw_hdmi.h void dw_hdmi_phy_reset(struct dw_hdmi *hdmi); hdmi 173 include/drm/bridge/dw_hdmi.h enum drm_connector_status dw_hdmi_phy_read_hpd(struct dw_hdmi *hdmi, hdmi 175 include/drm/bridge/dw_hdmi.h void dw_hdmi_phy_update_hpd(struct dw_hdmi *hdmi, void *data, hdmi 177 include/drm/bridge/dw_hdmi.h void dw_hdmi_phy_setup_hpd(struct dw_hdmi *hdmi, void *data); hdmi 458 include/drm/drm_connector.h struct drm_hdmi_info hdmi; hdmi 402 include/linux/hdmi.h struct hdmi_vendor_infoframe hdmi; hdmi 245 include/media/v4l2-dv-timings.h const struct hdmi_vendor_infoframe *hdmi, hdmi 655 include/video/omapfb_dss.h const struct omapdss_hdmi_ops *hdmi; hdmi 713 sound/pci/hda/hda_auto_parser.c bool hdmi; hdmi 732 sound/pci/hda/hda_auto_parser.c hdmi = is_hdmi_cfg(def_conf); hdmi 733 sound/pci/hda/hda_auto_parser.c name = hdmi ? "HDMI" : "SPDIF"; hdmi 741 sound/pci/hda/hda_auto_parser.c if (hdmi == is_hdmi_cfg(c)) hdmi 225 sound/pci/hda/patch_hdmi.c struct hdmi_audio_infoframe hdmi; hdmi 671 sound/pci/hda/patch_hdmi.c struct hdmi_audio_infoframe *hdmi_ai = &ai.hdmi; hdmi 48 sound/pci/oxygen/xonar.h void xonar_hdmi_resume(struct oxygen *chip, struct xonar_hdmi *hdmi); hdmi 51 sound/pci/oxygen/xonar.h void xonar_set_hdmi_params(struct oxygen *chip, struct xonar_hdmi *hdmi, hdmi 37 sound/pci/oxygen/xonar_hdmi.c struct xonar_hdmi *hdmi) hdmi 46 sound/pci/oxygen/xonar_hdmi.c hdmi_write_command(chip, 0x54, 5, hdmi->params); hdmi 49 sound/pci/oxygen/xonar_hdmi.c void xonar_hdmi_init(struct oxygen *chip, struct xonar_hdmi *hdmi) hdmi 51 sound/pci/oxygen/xonar_hdmi.c hdmi->params[1] = IEC958_AES3_CON_FS_48000; hdmi 52 sound/pci/oxygen/xonar_hdmi.c hdmi->params[4] = 1; hdmi 53 sound/pci/oxygen/xonar_hdmi.c xonar_hdmi_init_commands(chip, hdmi); hdmi 63 sound/pci/oxygen/xonar_hdmi.c void xonar_hdmi_resume(struct oxygen *chip, struct xonar_hdmi *hdmi) hdmi 65 sound/pci/oxygen/xonar_hdmi.c xonar_hdmi_init_commands(chip, hdmi); hdmi 80 sound/pci/oxygen/xonar_hdmi.c void xonar_set_hdmi_params(struct oxygen *chip, struct xonar_hdmi *hdmi, hdmi 83 sound/pci/oxygen/xonar_hdmi.c hdmi->params[0] = 0; /* 1 = non-audio */ hdmi 86 sound/pci/oxygen/xonar_hdmi.c hdmi->params[1] = IEC958_AES3_CON_FS_44100; hdmi 89 sound/pci/oxygen/xonar_hdmi.c hdmi->params[1] = IEC958_AES3_CON_FS_48000; hdmi 92 sound/pci/oxygen/xonar_hdmi.c hdmi->params[1] = IEC958_AES3_CON_FS_96000; hdmi 95 sound/pci/oxygen/xonar_hdmi.c hdmi->params[1] = IEC958_AES3_CON_FS_192000; hdmi 98 sound/pci/oxygen/xonar_hdmi.c hdmi->params[2] = params_channels(params) / 2 - 1; hdmi 100 sound/pci/oxygen/xonar_hdmi.c hdmi->params[3] = 0; hdmi 102 sound/pci/oxygen/xonar_hdmi.c hdmi->params[3] = 0xc0; hdmi 103 sound/pci/oxygen/xonar_hdmi.c hdmi->params[4] = 1; /* ? */ hdmi 104 sound/pci/oxygen/xonar_hdmi.c hdmi_write_command(chip, 0x54, 5, hdmi->params); hdmi 228 sound/pci/oxygen/xonar_pcm179x.c struct xonar_hdmi hdmi; hdmi 393 sound/pci/oxygen/xonar_pcm179x.c xonar_hdmi_init(chip, &data->hdmi); hdmi 583 sound/pci/oxygen/xonar_pcm179x.c xonar_hdmi_resume(chip, &data->hdmi); hdmi 722 sound/pci/oxygen/xonar_pcm179x.c xonar_set_hdmi_params(chip, &data->hdmi, params); hdmi 87 sound/pci/oxygen/xonar_wm87x6.c struct xonar_hdmi hdmi; hdmi 299 sound/pci/oxygen/xonar_wm87x6.c xonar_hdmi_init(chip, &data->hdmi); hdmi 342 sound/pci/oxygen/xonar_wm87x6.c xonar_hdmi_resume(chip, &data->hdmi); hdmi 388 sound/pci/oxygen/xonar_wm87x6.c xonar_set_hdmi_params(chip, &data->hdmi, params); hdmi 150 sound/soc/codecs/hdac_hdmi.c hdac_hdmi_get_pcm_from_cvt(struct hdac_hdmi_priv *hdmi, hdmi 155 sound/soc/codecs/hdac_hdmi.c list_for_each_entry(pcm, &hdmi->pcm_list, head) { hdmi 288 sound/soc/codecs/hdac_hdmi.c static struct hdac_hdmi_pcm *get_hdmi_pcm_from_id(struct hdac_hdmi_priv *hdmi, hdmi 293 sound/soc/codecs/hdac_hdmi.c list_for_each_entry(pcm, &hdmi->pcm_list, head) { hdmi 369 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 382 sound/soc/codecs/hdac_hdmi.c hdmi->chmap.ops.set_channel_count(hdev, cvt->nid, channels); hdmi 384 sound/soc/codecs/hdac_hdmi.c snd_hdac_setup_channel_mapping(&hdmi->chmap, pin->nid, false, ca, hdmi 449 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = snd_soc_dai_get_drvdata(dai); hdmi 450 sound/soc/codecs/hdac_hdmi.c struct hdac_device *hdev = hdmi->hdev; hdmi 456 sound/soc/codecs/hdac_hdmi.c dai_map = &hdmi->dai_map[dai->id]; hdmi 458 sound/soc/codecs/hdac_hdmi.c pcm = hdac_hdmi_get_pcm_from_cvt(hdmi, dai_map->cvt); hdmi 469 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = snd_soc_dai_get_drvdata(dai); hdmi 474 sound/soc/codecs/hdac_hdmi.c dai_map = &hdmi->dai_map[dai->id]; hdmi 480 sound/soc/codecs/hdac_hdmi.c pcm = hdac_hdmi_get_pcm_from_cvt(hdmi, dai_map->cvt); hdmi 528 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi, hdmi 535 sound/soc/codecs/hdac_hdmi.c list_for_each_entry(pcm, &hdmi->pcm_list, head) { hdmi 567 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 572 sound/soc/codecs/hdac_hdmi.c list_for_each_entry(cvt, &hdmi->cvt_list, head) { hdmi 573 sound/soc/codecs/hdac_hdmi.c port = hdac_hdmi_get_port_from_cvt(hdev, hdmi, cvt); hdmi 592 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = snd_soc_dai_get_drvdata(dai); hdmi 593 sound/soc/codecs/hdac_hdmi.c struct hdac_device *hdev = hdmi->hdev; hdmi 599 sound/soc/codecs/hdac_hdmi.c dai_map = &hdmi->dai_map[dai->id]; hdmi 602 sound/soc/codecs/hdac_hdmi.c port = hdac_hdmi_get_port_from_cvt(hdev, hdmi, cvt); hdmi 635 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = snd_soc_dai_get_drvdata(dai); hdmi 639 sound/soc/codecs/hdac_hdmi.c dai_map = &hdmi->dai_map[dai->id]; hdmi 641 sound/soc/codecs/hdac_hdmi.c pcm = hdac_hdmi_get_pcm_from_cvt(hdmi, dai_map->cvt); hdmi 659 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 668 sound/soc/codecs/hdac_hdmi.c if (chans > hdmi->chmap.channels_max) hdmi 669 sound/soc/codecs/hdac_hdmi.c hdmi->chmap.channels_max = chans; hdmi 721 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 725 sound/soc/codecs/hdac_hdmi.c list_for_each_entry(pcm, &hdmi->pcm_list, head) { hdmi 818 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 824 sound/soc/codecs/hdac_hdmi.c pcm = hdac_hdmi_get_pcm_from_cvt(hdmi, cvt); hdmi 908 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 919 sound/soc/codecs/hdac_hdmi.c mutex_lock(&hdmi->pin_mutex); hdmi 920 sound/soc/codecs/hdac_hdmi.c list_for_each_entry(pcm, &hdmi->pcm_list, head) { hdmi 937 sound/soc/codecs/hdac_hdmi.c list_for_each_entry(pcm, &hdmi->pcm_list, head) { hdmi 942 sound/soc/codecs/hdac_hdmi.c mutex_unlock(&hdmi->pin_mutex); hdmi 947 sound/soc/codecs/hdac_hdmi.c mutex_unlock(&hdmi->pin_mutex); hdmi 966 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 976 sound/soc/codecs/hdac_hdmi.c int num_items = hdmi->num_cvt + 1; hdmi 1010 sound/soc/codecs/hdac_hdmi.c list_for_each_entry(cvt, &hdmi->cvt_list, head) { hdmi 1034 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 1037 sound/soc/codecs/hdac_hdmi.c int mux_index = hdmi->num_cvt + hdmi->num_ports; hdmi 1040 sound/soc/codecs/hdac_hdmi.c for (i = 0; i < hdmi->num_ports; i++) { hdmi 1043 sound/soc/codecs/hdac_hdmi.c for (j = 0; j < hdmi->num_cvt; j++) { hdmi 1077 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 1078 sound/soc/codecs/hdac_hdmi.c struct snd_soc_dai_driver *dai_drv = hdmi->dai_drv; hdmi 1084 sound/soc/codecs/hdac_hdmi.c if (list_empty(&hdmi->cvt_list) || list_empty(&hdmi->pin_list)) hdmi 1088 sound/soc/codecs/hdac_hdmi.c ((2 * hdmi->num_ports) + hdmi->num_cvt)), hdmi 1095 sound/soc/codecs/hdac_hdmi.c list_for_each_entry(cvt, &hdmi->cvt_list, head) { hdmi 1107 sound/soc/codecs/hdac_hdmi.c list_for_each_entry(pin, &hdmi->pin_list, head) { hdmi 1125 sound/soc/codecs/hdac_hdmi.c list_for_each_entry(pin, &hdmi->pin_list, head) { hdmi 1137 sound/soc/codecs/hdac_hdmi.c num_routes += hdmi->num_cvt; hdmi 1151 sound/soc/codecs/hdac_hdmi.c list_for_each_entry(pin, &hdmi->pin_list, head) { hdmi 1153 sound/soc/codecs/hdac_hdmi.c int sink_index = i + hdmi->num_cvt; hdmi 1155 sound/soc/codecs/hdac_hdmi.c hdmi->num_pin; hdmi 1167 sound/soc/codecs/hdac_hdmi.c ((2 * hdmi->num_ports) + hdmi->num_cvt)); hdmi 1178 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 1183 sound/soc/codecs/hdac_hdmi.c if (list_empty(&hdmi->cvt_list)) hdmi 1186 sound/soc/codecs/hdac_hdmi.c list_for_each_entry(cvt, &hdmi->cvt_list, head) { hdmi 1187 sound/soc/codecs/hdac_hdmi.c dai_map = &hdmi->dai_map[dai_id]; hdmi 1205 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 1219 sound/soc/codecs/hdac_hdmi.c list_add_tail(&cvt->head, &hdmi->cvt_list); hdmi 1220 sound/soc/codecs/hdac_hdmi.c hdmi->num_cvt++; hdmi 1255 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 1260 sound/soc/codecs/hdac_hdmi.c if (!hdmi) hdmi 1267 sound/soc/codecs/hdac_hdmi.c mutex_lock(&hdmi->pin_mutex); hdmi 1309 sound/soc/codecs/hdac_hdmi.c mutex_unlock(&hdmi->pin_mutex); hdmi 1323 sound/soc/codecs/hdac_hdmi.c mutex_unlock(&hdmi->pin_mutex); hdmi 1355 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 1370 sound/soc/codecs/hdac_hdmi.c list_add_tail(&pin->head, &hdmi->pin_list); hdmi 1371 sound/soc/codecs/hdac_hdmi.c hdmi->num_pin++; hdmi 1372 sound/soc/codecs/hdac_hdmi.c hdmi->num_ports += pin->num_ports; hdmi 1388 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 1389 sound/soc/codecs/hdac_hdmi.c unsigned int vendor_nid = hdmi->drv_data->vendor_nid; hdmi 1406 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 1407 sound/soc/codecs/hdac_hdmi.c unsigned int vendor_nid = hdmi->drv_data->vendor_nid; hdmi 1436 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi, int num_dais) hdmi 1453 sound/soc/codecs/hdac_hdmi.c list_for_each_entry(cvt, &hdmi->cvt_list, head) { hdmi 1494 sound/soc/codecs/hdac_hdmi.c hdmi->dai_drv = hdmi_dais; hdmi 1508 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 1546 sound/soc/codecs/hdac_hdmi.c if (!hdmi->num_pin || !hdmi->num_cvt) { hdmi 1552 sound/soc/codecs/hdac_hdmi.c ret = hdac_hdmi_create_dais(hdev, dais, hdmi, hdmi->num_cvt); hdmi 1559 sound/soc/codecs/hdac_hdmi.c *num_dais = hdmi->num_cvt; hdmi 1570 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 1571 sound/soc/codecs/hdac_hdmi.c const int *map = hdmi->drv_data->port_map; hdmi 1574 sound/soc/codecs/hdac_hdmi.c if (!hdmi->drv_data->port_num) hdmi 1581 sound/soc/codecs/hdac_hdmi.c for (i = 0; i < hdmi->drv_data->port_num; i++) { hdmi 1594 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 1597 sound/soc/codecs/hdac_hdmi.c struct snd_soc_component *component = hdmi->component; hdmi 1601 sound/soc/codecs/hdac_hdmi.c if (!hdmi->drv_data->port_num) { hdmi 1604 sound/soc/codecs/hdac_hdmi.c } else if (port < hdmi->drv_data->port_num) { hdmi 1606 sound/soc/codecs/hdac_hdmi.c pin_nid = hdmi->drv_data->port_map[port - 1]; hdmi 1628 sound/soc/codecs/hdac_hdmi.c list_for_each_entry(pin, &hdmi->pin_list, head) { hdmi 1680 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 1681 sound/soc/codecs/hdac_hdmi.c struct snd_soc_component *component = hdmi->component; hdmi 1683 sound/soc/codecs/hdac_hdmi.c kc = devm_kcalloc(component->dev, hdmi->num_ports, hdmi 1689 sound/soc/codecs/hdac_hdmi.c list_for_each_entry(pin, &hdmi->pin_list, head) { hdmi 1718 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = snd_soc_component_get_drvdata(component); hdmi 1719 sound/soc/codecs/hdac_hdmi.c struct hdac_device *hdev = hdmi->hdev; hdmi 1726 sound/soc/codecs/hdac_hdmi.c widgets = devm_kcalloc(dapm->dev, hdmi->num_ports, hdmi 1732 sound/soc/codecs/hdac_hdmi.c route = devm_kcalloc(dapm->dev, hdmi->num_ports, hdmi 1738 sound/soc/codecs/hdac_hdmi.c list_for_each_entry(pin, &hdmi->pin_list, head) { hdmi 1761 sound/soc/codecs/hdac_hdmi.c ret = snd_soc_dapm_new_controls(dapm, widgets, hdmi->num_ports); hdmi 1765 sound/soc/codecs/hdac_hdmi.c ret = snd_soc_dapm_add_routes(dapm, route, hdmi->num_ports); hdmi 1780 sound/soc/codecs/hdac_hdmi.c list_for_each_entry(pin, &hdmi->pin_list, head) { hdmi 1794 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = snd_soc_component_get_drvdata(component); hdmi 1795 sound/soc/codecs/hdac_hdmi.c struct hdac_device *hdev = hdmi->hdev; hdmi 1808 sound/soc/codecs/hdac_hdmi.c pcm->cvt = hdmi->dai_map[dai->id].cvt; hdmi 1815 sound/soc/codecs/hdac_hdmi.c err = snd_hdac_add_chmap_ctls(snd_pcm, device, &hdmi->chmap); hdmi 1824 sound/soc/codecs/hdac_hdmi.c list_add_tail(&pcm->head, &hdmi->pcm_list); hdmi 1831 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi, bool detect_pin_caps) hdmi 1836 sound/soc/codecs/hdac_hdmi.c list_for_each_entry(pin, &hdmi->pin_list, head) { hdmi 1856 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = snd_soc_component_get_drvdata(component); hdmi 1857 sound/soc/codecs/hdac_hdmi.c struct hdac_device *hdev = hdmi->hdev; hdmi 1863 sound/soc/codecs/hdac_hdmi.c hdmi->component = component; hdmi 1888 sound/soc/codecs/hdac_hdmi.c hdac_hdmi_present_sense_all_pins(hdev, hdmi, true); hdmi 1890 sound/soc/codecs/hdac_hdmi.c hdmi->card = dapm->card->snd_card; hdmi 1916 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = snd_soc_component_get_drvdata(component); hdmi 1917 sound/soc/codecs/hdac_hdmi.c struct hdac_device *hdev = hdmi->hdev; hdmi 1932 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 1948 sound/soc/codecs/hdac_hdmi.c hdac_hdmi_present_sense_all_pins(hdev, hdmi, false); hdmi 1966 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 1967 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_pcm *pcm = get_hdmi_pcm_from_id(hdmi, pcm_idx); hdmi 1975 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 1976 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_pcm *pcm = get_hdmi_pcm_from_id(hdmi, pcm_idx); hdmi 1996 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 1997 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_pcm *pcm = get_hdmi_pcm_from_id(hdmi, pcm_idx); hdmi 2010 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 2011 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_pcm *pcm = get_hdmi_pcm_from_id(hdmi, pcm_idx); hdmi 2113 sound/soc/codecs/hdac_hdmi.c struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev); hdmi 2117 sound/soc/codecs/hdac_hdmi.c list_for_each_entry(pin, &hdmi->pin_list, head) hdmi 111 sound/soc/qcom/qdsp6/q6afe-dai.c struct q6afe_hdmi_cfg *hdmi = &dai_data->port_config[dai->id].hdmi; hdmi 113 sound/soc/qcom/qdsp6/q6afe-dai.c hdmi->sample_rate = params_rate(params); hdmi 116 sound/soc/qcom/qdsp6/q6afe-dai.c hdmi->bit_width = 16; hdmi 119 sound/soc/qcom/qdsp6/q6afe-dai.c hdmi->bit_width = 24; hdmi 126 sound/soc/qcom/qdsp6/q6afe-dai.c hdmi->channel_allocation = 0; hdmi 129 sound/soc/qcom/qdsp6/q6afe-dai.c hdmi->channel_allocation = 0x02; hdmi 132 sound/soc/qcom/qdsp6/q6afe-dai.c hdmi->channel_allocation = 0x06; hdmi 135 sound/soc/qcom/qdsp6/q6afe-dai.c hdmi->channel_allocation = 0x0A; hdmi 138 sound/soc/qcom/qdsp6/q6afe-dai.c hdmi->channel_allocation = 0x0B; hdmi 141 sound/soc/qcom/qdsp6/q6afe-dai.c hdmi->channel_allocation = 0x12; hdmi 144 sound/soc/qcom/qdsp6/q6afe-dai.c hdmi->channel_allocation = 0x13; hdmi 346 sound/soc/qcom/qdsp6/q6afe-dai.c &dai_data->port_config[dai->id].hdmi); hdmi 188 sound/soc/qcom/qdsp6/q6afe.h struct q6afe_hdmi_cfg hdmi; hdmi 443 sound/soc/samsung/tm2_wm5110.c SND_SOC_DAILINK_DEFS(hdmi, hdmi 477 sound/soc/samsung/tm2_wm5110.c SND_SOC_DAILINK_REG(hdmi),