Lines Matching full:dw_hdmi
28 #include <drm/bridge/dw_hdmi.h>
125 int (*configure)(struct dw_hdmi *hdmi,
130 struct dw_hdmi { struct
191 void (*enable_audio)(struct dw_hdmi *hdmi); argument
192 void (*disable_audio)(struct dw_hdmi *hdmi); argument
210 static inline void hdmi_writeb(struct dw_hdmi *hdmi, u8 val, int offset) in hdmi_writeb() argument
215 static inline u8 hdmi_readb(struct dw_hdmi *hdmi, int offset) in hdmi_readb()
224 static void handle_plugged_change(struct dw_hdmi *hdmi, bool plugged) in handle_plugged_change()
230 int dw_hdmi_set_plugged_cb(struct dw_hdmi *hdmi, hdmi_codec_plugged_cb fn, in dw_hdmi_set_plugged_cb()
246 static void hdmi_modb(struct dw_hdmi *hdmi, u8 data, u8 mask, unsigned reg) in hdmi_modb()
251 static void hdmi_mask_writeb(struct dw_hdmi *hdmi, u8 data, unsigned int reg, in hdmi_mask_writeb()
257 static void dw_hdmi_i2c_init(struct dw_hdmi *hdmi) in dw_hdmi_i2c_init()
286 static bool dw_hdmi_i2c_unwedge(struct dw_hdmi *hdmi) in dw_hdmi_i2c_unwedge()
295 * This is a huge hack to workaround a problem where the dw_hdmi i2c in dw_hdmi_i2c_unwedge()
300 * We appear to be able to pulse the SDA line (in the eyes of dw_hdmi) in dw_hdmi_i2c_unwedge()
304 * 3. Immediately jump to remux the pin as dw_hdmi i2c again. in dw_hdmi_i2c_unwedge()
308 * (presumed) external pullup. dw_hdmi seems to see this as a rising in dw_hdmi_i2c_unwedge()
315 * time. Presumably this confuses dw_hdmi because it saw activity but in dw_hdmi_i2c_unwedge()
318 * presumably makes dw_hdmi see a STOP which seems to bring dw_hdmi out in dw_hdmi_i2c_unwedge()
333 static int dw_hdmi_i2c_wait(struct dw_hdmi *hdmi) in dw_hdmi_i2c_wait()
357 static int dw_hdmi_i2c_read(struct dw_hdmi *hdmi, in dw_hdmi_i2c_read()
391 static int dw_hdmi_i2c_write(struct dw_hdmi *hdmi, in dw_hdmi_i2c_write()
424 struct dw_hdmi *hdmi = i2c_get_adapdata(adap); in dw_hdmi_i2c_xfer()
504 static struct i2c_adapter *dw_hdmi_i2c_adapter(struct dw_hdmi *hdmi) in dw_hdmi_i2c_adapter()
539 static void hdmi_set_cts_n(struct dw_hdmi *hdmi, unsigned int cts, in hdmi_set_cts_n()
634 void dw_hdmi_set_channel_status(struct dw_hdmi *hdmi, in dw_hdmi_set_channel_status()
646 static void hdmi_set_clk_regenerator(struct dw_hdmi *hdmi, in hdmi_set_clk_regenerator()
686 static void hdmi_init_clk_regenerator(struct dw_hdmi *hdmi) in hdmi_init_clk_regenerator()
693 static void hdmi_clk_regenerator_update_pixel_clock(struct dw_hdmi *hdmi) in hdmi_clk_regenerator_update_pixel_clock()
701 void dw_hdmi_set_sample_width(struct dw_hdmi *hdmi, unsigned int width) in dw_hdmi_set_sample_width()
709 void dw_hdmi_set_sample_non_pcm(struct dw_hdmi *hdmi, unsigned int non_pcm) in dw_hdmi_set_sample_non_pcm()
717 void dw_hdmi_set_sample_rate(struct dw_hdmi *hdmi, unsigned int rate) in dw_hdmi_set_sample_rate()
727 void dw_hdmi_set_channel_count(struct dw_hdmi *hdmi, unsigned int cnt) in dw_hdmi_set_channel_count()
754 void dw_hdmi_set_channel_allocation(struct dw_hdmi *hdmi, unsigned int ca) in dw_hdmi_set_channel_allocation()
764 static void hdmi_enable_audio_clk(struct dw_hdmi *hdmi, bool enable) in hdmi_enable_audio_clk()
773 static u8 *hdmi_audio_get_eld(struct dw_hdmi *hdmi) in hdmi_audio_get_eld()
781 static void dw_hdmi_gp_audio_enable(struct dw_hdmi *hdmi) in dw_hdmi_gp_audio_enable()
851 static void dw_hdmi_gp_audio_disable(struct dw_hdmi *hdmi) in dw_hdmi_gp_audio_disable()
864 static void dw_hdmi_ahb_audio_enable(struct dw_hdmi *hdmi) in dw_hdmi_ahb_audio_enable()
869 static void dw_hdmi_ahb_audio_disable(struct dw_hdmi *hdmi) in dw_hdmi_ahb_audio_disable()
874 static void dw_hdmi_i2s_audio_enable(struct dw_hdmi *hdmi) in dw_hdmi_i2s_audio_enable()
880 static void dw_hdmi_i2s_audio_disable(struct dw_hdmi *hdmi) in dw_hdmi_i2s_audio_disable()
885 void dw_hdmi_audio_enable(struct dw_hdmi *hdmi) in dw_hdmi_audio_enable()
897 void dw_hdmi_audio_disable(struct dw_hdmi *hdmi) in dw_hdmi_audio_disable()
1002 static void hdmi_video_sample(struct dw_hdmi *hdmi) in hdmi_video_sample()
1070 static int is_color_space_conversion(struct dw_hdmi *hdmi) in is_color_space_conversion()
1082 static int is_color_space_decimation(struct dw_hdmi *hdmi) in is_color_space_decimation()
1094 static int is_color_space_interpolation(struct dw_hdmi *hdmi) in is_color_space_interpolation()
1106 static bool is_csc_needed(struct dw_hdmi *hdmi) in is_csc_needed()
1113 static void dw_hdmi_update_csc_coeffs(struct dw_hdmi *hdmi) in dw_hdmi_update_csc_coeffs()
1157 static void hdmi_video_csc(struct dw_hdmi *hdmi) in hdmi_video_csc()
1200 static void hdmi_video_packetize(struct dw_hdmi *hdmi) in hdmi_video_packetize()
1330 static inline void hdmi_phy_test_clear(struct dw_hdmi *hdmi, in hdmi_phy_test_clear()
1337 static bool hdmi_phy_wait_i2c_done(struct dw_hdmi *hdmi, int msec) in hdmi_phy_wait_i2c_done()
1351 void dw_hdmi_phy_i2c_write(struct dw_hdmi *hdmi, unsigned short data, in dw_hdmi_phy_i2c_write()
1367 static bool dw_hdmi_support_scdc(struct dw_hdmi *hdmi, in dw_hdmi_support_scdc()
1407 void dw_hdmi_set_high_tmds_clock_ratio(struct dw_hdmi *hdmi, in dw_hdmi_set_high_tmds_clock_ratio()
1422 static void dw_hdmi_phy_enable_powerdown(struct dw_hdmi *hdmi, bool enable) in dw_hdmi_phy_enable_powerdown()
1429 static void dw_hdmi_phy_enable_tmds(struct dw_hdmi *hdmi, u8 enable) in dw_hdmi_phy_enable_tmds()
1436 static void dw_hdmi_phy_enable_svsret(struct dw_hdmi *hdmi, u8 enable) in dw_hdmi_phy_enable_svsret()
1443 void dw_hdmi_phy_gen2_pddq(struct dw_hdmi *hdmi, u8 enable) in dw_hdmi_phy_gen2_pddq()
1451 void dw_hdmi_phy_gen2_txpwron(struct dw_hdmi *hdmi, u8 enable) in dw_hdmi_phy_gen2_txpwron()
1459 static void dw_hdmi_phy_sel_data_en_pol(struct dw_hdmi *hdmi, u8 enable) in dw_hdmi_phy_sel_data_en_pol()
1466 static void dw_hdmi_phy_sel_interface_control(struct dw_hdmi *hdmi, u8 enable) in dw_hdmi_phy_sel_interface_control()
1473 void dw_hdmi_phy_gen1_reset(struct dw_hdmi *hdmi) in dw_hdmi_phy_gen1_reset()
1481 void dw_hdmi_phy_gen2_reset(struct dw_hdmi *hdmi) in dw_hdmi_phy_gen2_reset()
1489 void dw_hdmi_phy_i2c_set_addr(struct dw_hdmi *hdmi, u8 address) in dw_hdmi_phy_i2c_set_addr()
1497 static void dw_hdmi_phy_power_off(struct dw_hdmi *hdmi) in dw_hdmi_phy_power_off()
1531 static int dw_hdmi_phy_power_on(struct dw_hdmi *hdmi) in dw_hdmi_phy_power_on()
1572 static int hdmi_phy_configure_dwc_hdmi_3d_tx(struct dw_hdmi *hdmi, in hdmi_phy_configure_dwc_hdmi_3d_tx()
1624 static int hdmi_phy_configure(struct dw_hdmi *hdmi, in hdmi_phy_configure()
1665 static int dw_hdmi_phy_init(struct dw_hdmi *hdmi, void *data, in dw_hdmi_phy_init()
1684 static void dw_hdmi_phy_disable(struct dw_hdmi *hdmi, void *data) in dw_hdmi_phy_disable()
1689 enum drm_connector_status dw_hdmi_phy_read_hpd(struct dw_hdmi *hdmi, in dw_hdmi_phy_read_hpd()
1697 void dw_hdmi_phy_update_hpd(struct dw_hdmi *hdmi, void *data, in dw_hdmi_phy_update_hpd()
1712 void dw_hdmi_phy_setup_hpd(struct dw_hdmi *hdmi, void *data) in dw_hdmi_phy_setup_hpd()
1745 static void hdmi_tx_hdcp_config(struct dw_hdmi *hdmi) in hdmi_tx_hdcp_config()
1764 static void hdmi_config_AVI(struct dw_hdmi *hdmi, in hdmi_config_AVI()
1891 static void hdmi_config_vendor_specific_infoframe(struct dw_hdmi *hdmi, in hdmi_config_vendor_specific_infoframe()
1945 static void hdmi_config_drm_infoframe(struct dw_hdmi *hdmi, in hdmi_config_drm_infoframe()
1981 static void hdmi_av_composer(struct dw_hdmi *hdmi, in hdmi_av_composer()
2156 static void dw_hdmi_enable_video_path(struct dw_hdmi *hdmi) in dw_hdmi_enable_video_path()
2197 static void dw_hdmi_clear_overflow(struct dw_hdmi *hdmi) in dw_hdmi_clear_overflow()
2235 static void hdmi_disable_overflow_interrupts(struct dw_hdmi *hdmi) in hdmi_disable_overflow_interrupts()
2241 static int dw_hdmi_setup(struct dw_hdmi *hdmi, in dw_hdmi_setup()
2333 static void initialize_hdmi_ih_mutes(struct dw_hdmi *hdmi) in initialize_hdmi_ih_mutes()
2384 static void dw_hdmi_poweron(struct dw_hdmi *hdmi) in dw_hdmi_poweron()
2395 static void dw_hdmi_poweroff(struct dw_hdmi *hdmi) in dw_hdmi_poweroff()
2405 static void dw_hdmi_update_power(struct dw_hdmi *hdmi) in dw_hdmi_update_power()
2439 static void dw_hdmi_update_phy_mask(struct dw_hdmi *hdmi) in dw_hdmi_update_phy_mask()
2447 static enum drm_connector_status dw_hdmi_detect(struct dw_hdmi *hdmi) in dw_hdmi_detect()
2457 static struct edid *dw_hdmi_get_edid(struct dw_hdmi *hdmi, in dw_hdmi_get_edid()
2487 struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi, in dw_hdmi_connector_detect()
2494 struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi, in dw_hdmi_connector_get_modes()
2537 struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi, in dw_hdmi_connector_force()
2562 static int dw_hdmi_connector_create(struct dw_hdmi *hdmi) in dw_hdmi_connector_create()
2872 struct dw_hdmi *hdmi = bridge->driver_private; in dw_hdmi_bridge_atomic_check()
2890 struct dw_hdmi *hdmi = bridge->driver_private; in dw_hdmi_bridge_attach()
2901 struct dw_hdmi *hdmi = bridge->driver_private; in dw_hdmi_bridge_detach()
2914 struct dw_hdmi *hdmi = bridge->driver_private; in dw_hdmi_bridge_mode_valid()
2933 struct dw_hdmi *hdmi = bridge->driver_private; in dw_hdmi_bridge_mode_set()
2946 struct dw_hdmi *hdmi = bridge->driver_private; in dw_hdmi_bridge_atomic_disable()
2960 struct dw_hdmi *hdmi = bridge->driver_private; in dw_hdmi_bridge_atomic_enable()
2978 struct dw_hdmi *hdmi = bridge->driver_private; in dw_hdmi_bridge_detect()
2986 struct dw_hdmi *hdmi = bridge->driver_private; in dw_hdmi_bridge_get_edid()
3012 static irqreturn_t dw_hdmi_i2c_irq(struct dw_hdmi *hdmi) in dw_hdmi_i2c_irq()
3032 struct dw_hdmi *hdmi = dev_id; in dw_hdmi_hardirq()
3048 void dw_hdmi_setup_rx_sense(struct dw_hdmi *hdmi, bool hpd, bool rx_sense) in dw_hdmi_setup_rx_sense()
3078 struct dw_hdmi *hdmi = dev_id; in dw_hdmi_irq()
3184 static int dw_hdmi_detect_phy(struct dw_hdmi *hdmi) in dw_hdmi_detect_phy()
3229 static void dw_hdmi_cec_enable(struct dw_hdmi *hdmi) in dw_hdmi_cec_enable()
3237 static void dw_hdmi_cec_disable(struct dw_hdmi *hdmi) in dw_hdmi_cec_disable()
3266 static void dw_hdmi_init_hw(struct dw_hdmi *hdmi) in dw_hdmi_init_hw()
3285 static int dw_hdmi_parse_dt(struct dw_hdmi *hdmi) in dw_hdmi_parse_dt()
3330 bool dw_hdmi_bus_fmt_is_420(struct dw_hdmi *hdmi) in dw_hdmi_bus_fmt_is_420()
3336 struct dw_hdmi *dw_hdmi_probe(struct platform_device *pdev, in dw_hdmi_probe()
3344 struct dw_hdmi *hdmi; in dw_hdmi_probe()
3635 void dw_hdmi_remove(struct dw_hdmi *hdmi) in dw_hdmi_remove()
3661 struct dw_hdmi *dw_hdmi_bind(struct platform_device *pdev, in dw_hdmi_bind()
3665 struct dw_hdmi *hdmi; in dw_hdmi_bind()
3682 void dw_hdmi_unbind(struct dw_hdmi *hdmi) in dw_hdmi_unbind()
3688 void dw_hdmi_resume(struct dw_hdmi *hdmi) in dw_hdmi_resume()