On 12/05/2014 02:22 PM, Andy Yan wrote:
We found Freescale imx6 and Rockchip rk3288 and Ingenic JZ4780 (Xburst/MIPS)
use the interface compatible Designware HDMI IP, but they also have some
lightly differences, such as phy pll configuration, register width(imx hdmi
register is one byte, but rk3288 is 4 bytes width and can only be accessed
by word), 4K support(imx6 doesn't support 4k, but rk3288 does), and HDMI2.0
support.
To reuse the imx-hdmi driver, we make this patch set:
(1): fix some CodingStyle warning to make checkpatch happy
(2): convert imx-hdmi to drm_bridge
(3): split platform specific code
(4): move imx-hdmi to bridge/dw_hdmi
(5): extend dw_hdmi.c to support rk3288 hdmi
(6): add rockchip rk3288 platform specific code dw_hdmi-rockchip.c
Changes in v18:
- remove a multiple blank lines in imx-hdmi.c
- fix a checkpatch warning in imx-hdmi_pltfm.c
- add port bindings
- correct some spelling mistakes in dw_hdmi bindings doc
- correct some spelling mistakes in dw_hdmi-rockchip bindings doc
Changes in v17:
- remove platform device stuff, adviced by Russell King
- remove prompt message of dw_hdmi, adviced by Russel King
- parse resource and irq in platform driver
Changes in v16:
- use the common binding for the clocks
- describe ddc-i2c-bus as optional
- add common clocks bindings
- modify clocks bindings
- descrbie ddc-i2c-bus as optional
Changes in v15:
- add prefix dw_hdmi/DW_HDMI for public used dw_hdmi structs
adviced by Philipp Zabel
- remove THIS_MODULE in platform driver
- remove unio of the multi-byte register access, adviced by Philipp Zabel
- remove THIS_MODULE in platform driver
Changes in v14:
- add defer probing, adviced by Philipp Zabel
- remove drm_connector_register, because imx-drm core has registered
connector
Changes in v13:
- patch against drm-next
- split platform specific phy configuration
- split phy configuration from patch#4
Changes in v12:
- refactor of_node_put(ddc_node)
- squash patch <convert dw_hdmi to drm_bridge>
- add comment for the depend on patch
Changes in v11:
- squash patch <split some phy configuration to platform driver>
Changes in v10:
- split generic dw_hdmi.c improvements from patch#11 (add rk3288 support)
- add more display mode support mpll configuration for rk3288
Changes in v9:
- move some phy configuration to platform driver
Changes in v8:
- correct some spelling mistake
- modify ddc-i2c-bus and interrupt description
- Add documentation for rockchip dw hdmi
Changes in v7:
- remove unused variables from structure dw_hdmi
- remove a wrong modification
- add copyrights for dw_hdmi-imx.c
Changes in v6:
- rearrange the patch order
- refactor register access without reg_shift
Changes in v5:
- refactor reg-io-width
Changes in v4:
- fix checkpatch CHECK
- defer probe ddc i2c adapter
Changes in v3:
- split multi-register access to one indepent patch
Andy Yan (12):
drm: imx: imx-hdmi: make checkpatch happy
drm: imx: imx-hdmi: return defer if can't get ddc i2c adapter
drm: imx: imx-hdmi: convert imx-hdmi to drm_bridge mode
drm: imx: imx-hdmi: split phy configuration to platform driver
drm: imx: imx-hdmi: move imx-hdmi to bridge/dw_hdmi
dt-bindings: add document for dw_hdmi
drm: bridge/dw_hdmi: add support for multi-byte register width access
drm: bridge/dw_hdmi: add mode_valid support
drm: bridge/dw_hdmi: clear i2cmphy_stat0 reg in hdmi_phy_wait_i2c_done
drm: bridge/dw_hdmi: add function dw_hdmi_phy_enable_spare
dt-bindings: Add documentation for rockchip dw hdmi
drm: bridge/dw_hdmi: add rockchip rk3288 support
.../devicetree/bindings/drm/bridge/dw_hdmi.txt | 50 ++
.../devicetree/bindings/video/dw_hdmi-rockchip.txt | 46 ++
drivers/gpu/drm/bridge/Kconfig | 5 +
drivers/gpu/drm/bridge/Makefile | 1 +
.../gpu/drm/{imx/imx-hdmi.c => bridge/dw_hdmi.c} | 717 ++++++++++-----------
.../gpu/drm/{imx/imx-hdmi.h => bridge/dw_hdmi.h} | 4 +-
drivers/gpu/drm/imx/Kconfig | 1 +
drivers/gpu/drm/imx/Makefile | 2 +-
drivers/gpu/drm/imx/dw_hdmi-imx.c | 258 ++++++++
drivers/gpu/drm/rockchip/Kconfig | 10 +
drivers/gpu/drm/rockchip/Makefile | 2 +
drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 341 ++++++++++
include/drm/bridge/dw_hdmi.h | 61 ++
13 files changed, 1111 insertions(+), 387 deletions(-)
create mode 100644 Documentation/devicetree/bindings/drm/bridge/dw_hdmi.txt
create mode 100644 Documentation/devicetree/bindings/video/dw_hdmi-rockchip.txt
rename drivers/gpu/drm/{imx/imx-hdmi.c => bridge/dw_hdmi.c} (72%)
rename drivers/gpu/drm/{imx/imx-hdmi.h => bridge/dw_hdmi.h} (99%)
create mode 100644 drivers/gpu/drm/imx/dw_hdmi-imx.c
create mode 100644 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
create mode 100644 include/drm/bridge/dw_hdmi.h
After applying this series, I find there is a build break issue with the
allmodconfig configuration for the ARM architecture.
Please fix this.
drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c:243:1: error:
‘__mod_of__dw_hdmi_rockchip_dt_ids_device_table’ aliased to undefined
symbol ‘dw_hdmi_rockchip_dt_ids’
scripts/Makefile.build:257: recipe for target
'drivers/gpu/drm/rockchip/dw_hdmi-rockchip.o' failed
make[4]: *** [drivers/gpu/drm/rockchip/dw_hdmi-rockchip.o] Error 1
scripts/Makefile.build:402: recipe for target 'drivers/gpu/drm/rockchip'
failed
make[3]: *** [drivers/gpu/drm/rockchip] Error 2
scripts/Makefile.build:402: recipe for target 'drivers/gpu/drm' failed
make[2]: *** [drivers/gpu/drm] Error 2
scripts/Makefile.build:402: recipe for target 'drivers/gpu' failed
make[1]: *** [drivers/gpu] Error 2
Makefile:937: recipe for target 'drivers' failed
make: *** [drivers] Error 2
Regards,
Liu Ying
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html