0001
0002
0003
0004
0005
0006 #ifndef _DP_CTRL_H_
0007 #define _DP_CTRL_H_
0008
0009 #include "dp_aux.h"
0010 #include "dp_panel.h"
0011 #include "dp_link.h"
0012 #include "dp_parser.h"
0013 #include "dp_power.h"
0014 #include "dp_catalog.h"
0015
0016 struct dp_ctrl {
0017 bool orientation;
0018 atomic_t aborted;
0019 u32 pixel_rate;
0020 bool wide_bus_en;
0021 };
0022
0023 int dp_ctrl_on_link(struct dp_ctrl *dp_ctrl);
0024 int dp_ctrl_on_stream(struct dp_ctrl *dp_ctrl, bool force_link_train);
0025 int dp_ctrl_off_link_stream(struct dp_ctrl *dp_ctrl);
0026 int dp_ctrl_off_link(struct dp_ctrl *dp_ctrl);
0027 int dp_ctrl_off(struct dp_ctrl *dp_ctrl);
0028 void dp_ctrl_push_idle(struct dp_ctrl *dp_ctrl);
0029 void dp_ctrl_isr(struct dp_ctrl *dp_ctrl);
0030 void dp_ctrl_handle_sink_request(struct dp_ctrl *dp_ctrl);
0031 struct dp_ctrl *dp_ctrl_get(struct device *dev, struct dp_link *link,
0032 struct dp_panel *panel, struct drm_dp_aux *aux,
0033 struct dp_power *power, struct dp_catalog *catalog,
0034 struct dp_parser *parser);
0035
0036 void dp_ctrl_reset_irq_ctrl(struct dp_ctrl *dp_ctrl, bool enable);
0037 void dp_ctrl_phy_init(struct dp_ctrl *dp_ctrl);
0038 void dp_ctrl_phy_exit(struct dp_ctrl *dp_ctrl);
0039 void dp_ctrl_irq_phy_exit(struct dp_ctrl *dp_ctrl);
0040
0041 #endif