1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
---|---|
2 | /* |
3 | * Copyright (c) 2012-2020, The Linux Foundation. All rights reserved. |
4 | */ |
5 | |
6 | #ifndef _DP_CTRL_H_ |
7 | #define _DP_CTRL_H_ |
8 | |
9 | #include "dp_aux.h" |
10 | #include "dp_panel.h" |
11 | #include "dp_link.h" |
12 | #include "dp_catalog.h" |
13 | |
14 | struct dp_ctrl { |
15 | atomic_t aborted; |
16 | bool wide_bus_en; |
17 | }; |
18 | |
19 | struct phy; |
20 | |
21 | int dp_ctrl_on_link(struct dp_ctrl *dp_ctrl); |
22 | int dp_ctrl_on_stream(struct dp_ctrl *dp_ctrl, bool force_link_train); |
23 | void dp_ctrl_off_link_stream(struct dp_ctrl *dp_ctrl); |
24 | void dp_ctrl_off_link(struct dp_ctrl *dp_ctrl); |
25 | void dp_ctrl_off(struct dp_ctrl *dp_ctrl); |
26 | void dp_ctrl_push_idle(struct dp_ctrl *dp_ctrl); |
27 | irqreturn_t dp_ctrl_isr(struct dp_ctrl *dp_ctrl); |
28 | void dp_ctrl_handle_sink_request(struct dp_ctrl *dp_ctrl); |
29 | struct dp_ctrl *dp_ctrl_get(struct device *dev, struct dp_link *link, |
30 | struct dp_panel *panel, struct drm_dp_aux *aux, |
31 | struct dp_catalog *catalog, |
32 | struct phy *phy); |
33 | |
34 | void dp_ctrl_reset_irq_ctrl(struct dp_ctrl *dp_ctrl, bool enable); |
35 | void dp_ctrl_phy_init(struct dp_ctrl *dp_ctrl); |
36 | void dp_ctrl_phy_exit(struct dp_ctrl *dp_ctrl); |
37 | void dp_ctrl_irq_phy_exit(struct dp_ctrl *dp_ctrl); |
38 | |
39 | void dp_ctrl_set_psr(struct dp_ctrl *dp_ctrl, bool enable); |
40 | void dp_ctrl_config_psr(struct dp_ctrl *dp_ctrl); |
41 | |
42 | int dp_ctrl_core_clk_enable(struct dp_ctrl *dp_ctrl); |
43 | void dp_ctrl_core_clk_disable(struct dp_ctrl *dp_ctrl); |
44 | |
45 | #endif /* _DP_CTRL_H_ */ |
46 |