diff options
author | Dave Airlie <airlied@redhat.com> | 2015-01-20 19:17:16 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2015-01-20 19:17:16 -0500 |
commit | fc83975348ebce07793e6b9f780edc3cbcffa9fc (patch) | |
tree | 0fc7972c181cebed1c344852bb8b1a96607d3b15 /include/drm | |
parent | b2eb0489809cf0b824357b6fa85aab1aabe3f063 (diff) | |
parent | d50141d8072e5322ee0518a8c967b5c9caf463d2 (diff) |
Merge tag 'imx-drm-next-2015-01-09' of git://git.pengutronix.de/git/pza/linux into drm-next
imx-drm mode fixup support, imx-hdmi bridge conversion and imx-drm cleanup
- Implement mode_fixup for a DI vertical timing limitation
- Use generic DRM OF helpers in DRM core
- Convert imx-hdmi to dw_hdmi drm_bridge and add rockchip
driver
- Add DC use counter to fix multi-display support
- Simplify handling of DI clock flags
- A few small fixes and cleanup
* tag 'imx-drm-next-2015-01-09' of git://git.pengutronix.de/git/pza/linux: (26 commits)
imx-drm: core: handling of DI clock flags to ipu_crtc_mode_set()
gpu: ipu-di: Switch to DIV_ROUND_CLOSEST for DI clock divider calc
gpu: ipu-v3: Use videomode in struct ipu_di_signal_cfg
imx-drm: encoder prepare/mode_set must use adjusted mode
imx-drm: ipuv3-crtc: Implement mode_fixup
drm_modes: add drm_display_mode_to_videomode
gpu: ipu-di: remove some non-functional code
gpu: ipu-di: Add ipu_di_adjust_videomode()
drm: rockchip: export functions needed by rockchip dw_hdmi bridge driver
drm: bridge/dw_hdmi: request interrupt only after initializing the mutes
drm: bridge/dw_hdmi: add rockchip rk3288 support
dt-bindings: Add documentation for rockchip dw hdmi
drm: bridge/dw_hdmi: add function dw_hdmi_phy_enable_spare
drm: bridge/dw_hdmi: clear i2cmphy_stat0 reg in hdmi_phy_wait_i2c_done
drm: bridge/dw_hdmi: add mode_valid support
drm: bridge/dw_hdmi: add support for multi-byte register width access
dt-bindings: add document for dw_hdmi
drm: imx: imx-hdmi: move imx-hdmi to bridge/dw_hdmi
drm: imx: imx-hdmi: split phy configuration to platform driver
drm: imx: imx-hdmi: convert imx-hdmi to drm_bridge mode
...
Diffstat (limited to 'include/drm')
-rw-r--r-- | include/drm/bridge/dw_hdmi.h | 61 | ||||
-rw-r--r-- | include/drm/drm_modes.h | 2 |
2 files changed, 63 insertions, 0 deletions
diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h new file mode 100644 index 000000000000..5a4f49005169 --- /dev/null +++ b/include/drm/bridge/dw_hdmi.h | |||
@@ -0,0 +1,61 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2011 Freescale Semiconductor, Inc. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | */ | ||
9 | |||
10 | #ifndef __DW_HDMI__ | ||
11 | #define __DW_HDMI__ | ||
12 | |||
13 | #include <drm/drmP.h> | ||
14 | |||
15 | enum { | ||
16 | DW_HDMI_RES_8, | ||
17 | DW_HDMI_RES_10, | ||
18 | DW_HDMI_RES_12, | ||
19 | DW_HDMI_RES_MAX, | ||
20 | }; | ||
21 | |||
22 | enum dw_hdmi_devtype { | ||
23 | IMX6Q_HDMI, | ||
24 | IMX6DL_HDMI, | ||
25 | RK3288_HDMI, | ||
26 | }; | ||
27 | |||
28 | struct dw_hdmi_mpll_config { | ||
29 | unsigned long mpixelclock; | ||
30 | struct { | ||
31 | u16 cpce; | ||
32 | u16 gmp; | ||
33 | } res[DW_HDMI_RES_MAX]; | ||
34 | }; | ||
35 | |||
36 | struct dw_hdmi_curr_ctrl { | ||
37 | unsigned long mpixelclock; | ||
38 | u16 curr[DW_HDMI_RES_MAX]; | ||
39 | }; | ||
40 | |||
41 | struct dw_hdmi_sym_term { | ||
42 | unsigned long mpixelclock; | ||
43 | u16 sym_ctr; /*clock symbol and transmitter control*/ | ||
44 | u16 term; /*transmission termination value*/ | ||
45 | }; | ||
46 | |||
47 | struct dw_hdmi_plat_data { | ||
48 | enum dw_hdmi_devtype dev_type; | ||
49 | const struct dw_hdmi_mpll_config *mpll_cfg; | ||
50 | const struct dw_hdmi_curr_ctrl *cur_ctr; | ||
51 | const struct dw_hdmi_sym_term *sym_term; | ||
52 | enum drm_mode_status (*mode_valid)(struct drm_connector *connector, | ||
53 | struct drm_display_mode *mode); | ||
54 | }; | ||
55 | |||
56 | void dw_hdmi_unbind(struct device *dev, struct device *master, void *data); | ||
57 | int dw_hdmi_bind(struct device *dev, struct device *master, | ||
58 | void *data, struct drm_encoder *encoder, | ||
59 | struct resource *iores, int irq, | ||
60 | const struct dw_hdmi_plat_data *plat_data); | ||
61 | #endif /* __IMX_HDMI_H__ */ | ||
diff --git a/include/drm/drm_modes.h b/include/drm/drm_modes.h index b162ccd321f3..d92f6dd1fb11 100644 --- a/include/drm/drm_modes.h +++ b/include/drm/drm_modes.h | |||
@@ -200,6 +200,8 @@ struct drm_display_mode *drm_gtf_mode_complex(struct drm_device *dev, | |||
200 | int GTF_K, int GTF_2J); | 200 | int GTF_K, int GTF_2J); |
201 | void drm_display_mode_from_videomode(const struct videomode *vm, | 201 | void drm_display_mode_from_videomode(const struct videomode *vm, |
202 | struct drm_display_mode *dmode); | 202 | struct drm_display_mode *dmode); |
203 | void drm_display_mode_to_videomode(const struct drm_display_mode *dmode, | ||
204 | struct videomode *vm); | ||
203 | int of_get_drm_display_mode(struct device_node *np, | 205 | int of_get_drm_display_mode(struct device_node *np, |
204 | struct drm_display_mode *dmode, | 206 | struct drm_display_mode *dmode, |
205 | int index); | 207 | int index); |