From: plaes@plaes•org (Priit Laes)
To: linux-arm-kernel@lists•infradead.org
Subject: [linux-sunxi] [PATCH v2 00/26] drm: Add Allwinner A10 display engine support
Date: Sat, 20 Feb 2016 15:45:41 +0200 [thread overview]
Message-ID: <1455975941.10551.3.camel@plaes.org> (raw)
In-Reply-To: <1452785109-6172-1-git-send-email-maxime.ripard@free-electrons.com>
On Thu, 2016-01-14 at 16:24 +0100, Maxime Ripard wrote:
> Hi everyone,
>
> The Allwinner SoCs (except for the very latest ones) all share the
> same set of controllers, loosely coupled together to form the display
> pipeline.
>
> Depending on the SoC, the number of instances of the controller will
> change (2 instances of each in the A10, only one in the A13, for
> example), and the output availables will change too (HDMI, composite,
> VGA on the A20, none of them on the A13).
>
> On most featured SoCs, it looks like that:
>
> ?+--------------------------------------------+
> ?|????????????????????RAM?????????????????????|
> ?+--------------------------------------------+
> ???????|????????????|??????|????????????|
> ???????v????????????|??????|????????????v
> ?+----------------+ |??????| +----------------+
> ?|????Frontend????| |??????| |????Frontend????|
> ?+----------------+ |??????| +----------------+
> ?????????|??????????|??????|?????????|
> ?????????v??????????|??????|?????????v
> ?+----------------+ |??????| +----------------+
> ?|????Backend?????|<+??????+>|????Backend?????|
> ?+----------------+??????????+----------------+
> ?????????|???????????????????????????|
> ?????????v???????????????????????????v
> ?+----------------+??????????+----------------+---> LVDS
> ?|??????TCON??????|??????????|??????TCON??????|---> RGB
> ?+----------------+??????????+----------------+
> ???????|???????+---+???????+---+??????????|
> ???????|???????????|???????|??????????????|
> ???????v???????????v???????v??????????????v
> ?+------------+??+------------+??+------------+---> VGA
> ?| TV Encoder |??|????HDMI????|??| TV Encoder |---> Composite
> ?+------------+??+------------+??+------------+
>
> The current code only assumes that there is a single instance of all
> the controllers. It also supports only the RGB and Composite
> interfaces.
I found some time to play with it (with intention to get it running
also on sun7i and sun4i) and ran into this when trying to build
sun4i_drm as module:
ERROR: "sun4i_tcon1_mode_set" [drivers/gpu/drm/sun4i/sun4i_tv.ko] undefined!
ERROR: "sun4i_backend_apply_color_correction" [drivers/gpu/drm/sun4i/sun4i_tv.ko] undefined!
ERROR: "sun4i_tcon_channel_disable" [drivers/gpu/drm/sun4i/sun4i_tv.ko] undefined!
ERROR: "sun4i_tcon_channel_enable" [drivers/gpu/drm/sun4i/sun4i_tv.ko] undefined!
ERROR: "clk_unregister_composite" [drivers/gpu/drm/sun4i/sun4i_tcon.ko] undefined!
ERROR: "sun4i_rgb_init" [drivers/gpu/drm/sun4i/sun4i_tcon.ko] undefined!
ERROR: "clk_register_composite" [drivers/gpu/drm/sun4i/sun4i_tcon.ko] undefined!
ERROR: "sun4i_backend_update_layer_coord" [drivers/gpu/drm/sun4i/sun4i-drm.ko] undefined!
ERROR: "sun4i_backend_update_layer_formats" [drivers/gpu/drm/sun4i/sun4i-drm.ko] undefined!
ERROR: "sun4i_tcon_channel_disable" [drivers/gpu/drm/sun4i/sun4i-drm.ko] undefined!
ERROR: "sun4i_tcon_enable_vblank" [drivers/gpu/drm/sun4i/sun4i-drm.ko] undefined!
ERROR: "sun4i_backend_update_layer_buffer" [drivers/gpu/drm/sun4i/sun4i-drm.ko] undefined!
ERROR: "sun4i_backend_layer_enable" [drivers/gpu/drm/sun4i/sun4i-drm.ko] undefined!
ERROR: "sun4i_tcon_channel_enable" [drivers/gpu/drm/sun4i/sun4i-drm.ko] undefined!
ERROR: "sun4i_tcon_enable" [drivers/gpu/drm/sun4i/sun4i-drm.ko] undefined!
ERROR: "sun4i_tcon_disable" [drivers/gpu/drm/sun4i/sun4i-drm.ko] undefined!
ERROR: "sun4i_tcon0_mode_set" [drivers/gpu/drm/sun4i/sun4i-drm.ko] undefined!
ERROR: "sun4i_backend_commit" [drivers/gpu/drm/sun4i/sun4i-drm.ko] undefined!
scripts/Makefile.modpost:91: recipe for target '__modpost' failed
>
> Let me know what you think,
> Maxime
>
> Changes from v1:
> ? - Rebased on top of 4.4
>
> ? - Merged the clock drivers for the display and TCON channel 0
> clocks
> ? - Replaced the container_of calls in the display reset clocks to an
> ????inline function
> ? - Checked the return code of of_clk_parent_fill in the clocks
> ????drivers
> ? - Checked the return code of of_clk_add_provider in the tcon-ch1
> and
> ????PLL3 clocks
> ? - Added missing clocks headers
> ? - Created a composite clock unregister function
>
> ? - Moved the binding documentation to
> ????Documentation/devicetree/bindings/display
> ? - Added the clocks binding documentation
> ? - Added the Olimex vendor to the list of DT vendors
> ? - Moved to the OF graph representation and the component framework
>
> ? - Moved the reset cells count check into the reset framework to
> ????avoid duplicating the code in every xlate implementation.
> ? - Made the reset_ops const
>
> ? - Reworked the DRM cmdline mode parsing code to allow named mode
> ? - Fixed the TV mode lookup when the mode name is not present (for
> ????example because it was given by the userspace)
>
> ? - Made the driver outputs optional (to avoid crashing when a board
> ????doesn't have either a panel or a composite output enabled)
> ? - Added multiple plane support with transparency
> ? - Moved the backend registers writes commit in the CRTC
> atomic_flush
> ????callback
> ? - Removed the load / unload functions
> ? - Removed the enabled booleans in my private structure and removed
> ????the implicit call to disable_unused_functions in the DRM core to
> ????push it in the drivers.
> ? - Fixed a few bitmasks on some bitfields definition
> ? - Fixed the RGB connector mode validation that was not testing the
> ????right values
>
> Matthias Brugger (1):
> ? clk: Add regmap support
>
> Maxime Ripard (25):
> ? reset: Move DT cell size check to the core
> ? reset: Make reset_control_ops const
> ? clk: composite: Add unregister function
> ? clk: sunxi: Add display and TCON0 clocks driver
> ? clk: sunxi: Add PLL3 clock
> ? clk: sunxi: Add TCON channel1 clock
> ? clk: sun5i: add DRAM gates
> ? ARM: sun5i: dt: Add pll3 and pll7 clocks
> ? ARM: sun5i: a13: Add display and TCON clocks
> ? ARM: sun5i: Add DRAM gates
> ? ARM: sun5i: Add TV encoder gate to the DTSI
> ? drm/fb_cma_helper: Remove implicit call to disable_unused_functions
> ? drm/modes: Rewrite the command line parser
> ? drm/modes: Support modes names on the command line
> ? drm: Add Allwinner A10 Display Engine support
> ? drm: sun4i: Add DT bindings documentation
> ? drm: sun4i: Add RGB output
> ? drm: sun4i: Add composite output
> ? drm: sun4i: tv: Add PAL output standard
> ? drm: sun4i: tv: Add NTSC output standard
> ? ARM: sun5i: r8: Add display blocks to the DTSI
> ? ARM: sun5i: chip: Enable the TV Encoder
> ? devicetree: Add olimex vendor prefix
> ? drm/panel: simple: Add timings for the Olimex LCD-OLinuXino-4.3TS
> ? DO NOT MERGE: ARM: sun5i: chip: Enable the LCD panel
>
> ?Documentation/devicetree/bindings/clock/sunxi.txt??|???5 +
> ?.../display/panel/olimex,lcd-olinuxino-43-ts.txt???|???7 +
> ?.../bindings/display/sunxi/sun4i-drm.txt???????????| 228 +++++++
> ?.../devicetree/bindings/vendor-prefixes.txt????????|???1 +
> ?arch/arm/boot/dts/sun5i-a10s.dtsi??????????????????|???7 +-
> ?arch/arm/boot/dts/sun5i-a13.dtsi???????????????????|??46 +-
> ?arch/arm/boot/dts/sun5i-r8-chip.dts????????????????|??17 +
> ?arch/arm/boot/dts/sun5i-r8.dtsi????????????????????| 139 ++++-
> ?arch/arm/boot/dts/sun5i.dtsi???????????????????????|??62 ++
> ?drivers/clk/Makefile???????????????????????????????|???1 +
> ?drivers/clk/clk-composite.c????????????????????????|??15 +
> ?drivers/clk/clk-divider.c??????????????????????????|??68 ++-
> ?drivers/clk/clk-gate.c?????????????????????????????|??54 +-
> ?drivers/clk/clk-io.c???????????????????????????????|??48 ++
> ?drivers/clk/clk-io.h???????????????????????????????|??22 +
> ?drivers/clk/clk-mux.c??????????????????????????????|??94 ++-
> ?drivers/clk/sunxi/Makefile?????????????????????????|???3 +
> ?drivers/clk/sunxi/clk-simple-gates.c???????????????|???2 +
> ?drivers/clk/sunxi/clk-sun4i-display.c??????????????| 241 ++++++++
> ?drivers/clk/sunxi/clk-sun4i-pll3.c?????????????????|??90 +++
> ?drivers/clk/sunxi/clk-sun4i-tcon-ch1.c?????????????| 154 +++++
> ?drivers/gpu/drm/Kconfig????????????????????????????|???2 +
> ?drivers/gpu/drm/Makefile???????????????????????????|???3 +-
> ?drivers/gpu/drm/drm_crtc.c?????????????????????????|???3 +-
> ?drivers/gpu/drm/drm_fb_cma_helper.c????????????????|???3 -
> ?drivers/gpu/drm/drm_fb_helper.c????????????????????|???4 +
> ?drivers/gpu/drm/drm_modes.c????????????????????????| 327 ++++++----
> ?drivers/gpu/drm/imx/imx-drm-core.c?????????????????|???1 +
> ?drivers/gpu/drm/panel/panel-simple.c???????????????|??26 +
> ?drivers/gpu/drm/sti/sti_drv.c??????????????????????|???1 +
> ?drivers/gpu/drm/sun4i/Kconfig??????????????????????|??14 +
> ?drivers/gpu/drm/sun4i/Makefile?????????????????????|??12 +
> ?drivers/gpu/drm/sun4i/sun4i_backend.c??????????????| 321 ++++++++++
> ?drivers/gpu/drm/sun4i/sun4i_backend.h??????????????| 160 +++++
> ?drivers/gpu/drm/sun4i/sun4i_crtc.c?????????????????| 120 ++++
> ?drivers/gpu/drm/sun4i/sun4i_crtc.h?????????????????|??30 +
> ?drivers/gpu/drm/sun4i/sun4i_drv.c??????????????????| 325 ++++++++++
> ?drivers/gpu/drm/sun4i/sun4i_drv.h??????????????????|??30 +
> ?drivers/gpu/drm/sun4i/sun4i_framebuffer.c??????????|??54 ++
> ?drivers/gpu/drm/sun4i/sun4i_framebuffer.h??????????|??19 +
> ?drivers/gpu/drm/sun4i/sun4i_layer.c????????????????| 160 +++++
> ?drivers/gpu/drm/sun4i/sun4i_layer.h????????????????|??30 +
> ?drivers/gpu/drm/sun4i/sun4i_rgb.c??????????????????| 229 +++++++
> ?drivers/gpu/drm/sun4i/sun4i_rgb.h??????????????????|??18 +
> ?drivers/gpu/drm/sun4i/sun4i_tcon.c?????????????????| 521
> ++++++++++++++++
> ?drivers/gpu/drm/sun4i/sun4i_tcon.h?????????????????| 177 ++++++
> ?drivers/gpu/drm/sun4i/sun4i_tv.c???????????????????| 675
> +++++++++++++++++++++
> ?drivers/gpu/drm/tilcdc/tilcdc_drv.c????????????????|???1 +
> ?drivers/reset/core.c???????????????????????????????|???6 +-
> ?include/drm/drm_modes.h????????????????????????????|???1 +
> ?include/linux/clk-provider.h???????????????????????|??55 +-
> ?include/linux/reset-controller.h???????????????????|???2 +-
> ?52 files changed, 4455 insertions(+), 179 deletions(-)
> ?create mode 100644
> Documentation/devicetree/bindings/display/panel/olimex,lcd-olinuxino-
> 43-ts.txt
> ?create mode 100644
> Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt
> ?create mode 100644 drivers/clk/clk-io.c
> ?create mode 100644 drivers/clk/clk-io.h
> ?create mode 100644 drivers/clk/sunxi/clk-sun4i-display.c
> ?create mode 100644 drivers/clk/sunxi/clk-sun4i-pll3.c
> ?create mode 100644 drivers/clk/sunxi/clk-sun4i-tcon-ch1.c
> ?create mode 100644 drivers/gpu/drm/sun4i/Kconfig
> ?create mode 100644 drivers/gpu/drm/sun4i/Makefile
> ?create mode 100644 drivers/gpu/drm/sun4i/sun4i_backend.c
> ?create mode 100644 drivers/gpu/drm/sun4i/sun4i_backend.h
> ?create mode 100644 drivers/gpu/drm/sun4i/sun4i_crtc.c
> ?create mode 100644 drivers/gpu/drm/sun4i/sun4i_crtc.h
> ?create mode 100644 drivers/gpu/drm/sun4i/sun4i_drv.c
> ?create mode 100644 drivers/gpu/drm/sun4i/sun4i_drv.h
> ?create mode 100644 drivers/gpu/drm/sun4i/sun4i_framebuffer.c
> ?create mode 100644 drivers/gpu/drm/sun4i/sun4i_framebuffer.h
> ?create mode 100644 drivers/gpu/drm/sun4i/sun4i_layer.c
> ?create mode 100644 drivers/gpu/drm/sun4i/sun4i_layer.h
> ?create mode 100644 drivers/gpu/drm/sun4i/sun4i_rgb.c
> ?create mode 100644 drivers/gpu/drm/sun4i/sun4i_rgb.h
> ?create mode 100644 drivers/gpu/drm/sun4i/sun4i_tcon.c
> ?create mode 100644 drivers/gpu/drm/sun4i/sun4i_tcon.h
> ?create mode 100644 drivers/gpu/drm/sun4i/sun4i_tv.c
>
> --?
> 2.6.4
>
prev parent reply other threads:[~2016-02-20 13:45 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-14 15:24 [PATCH v2 00/26] drm: Add Allwinner A10 display engine support Maxime Ripard
2016-01-14 15:24 ` [PATCH v2 01/26] reset: Move DT cell size check to the core Maxime Ripard
2016-01-15 15:50 ` Philipp Zabel
2016-01-14 15:24 ` [PATCH v2 02/26] reset: Make reset_control_ops const Maxime Ripard
2016-01-15 15:50 ` Philipp Zabel
2016-01-14 15:24 ` [PATCH v2 03/26] clk: Add regmap support Maxime Ripard
2016-01-28 7:56 ` Stephen Boyd
2016-01-14 15:24 ` [PATCH v2 04/26] clk: composite: Add unregister function Maxime Ripard
2016-01-14 15:24 ` [PATCH v2 05/26] clk: sunxi: Add display and TCON0 clocks driver Maxime Ripard
2016-01-15 3:01 ` Rob Herring
2016-01-16 14:08 ` [linux-sunxi] " Priit Laes
2016-01-16 15:29 ` Chen-Yu Tsai
2016-02-03 20:18 ` Maxime Ripard
2016-01-14 15:24 ` [PATCH v2 06/26] clk: sunxi: Add PLL3 clock Maxime Ripard
2016-01-15 3:02 ` Rob Herring
2016-01-16 16:05 ` Chen-Yu Tsai
2016-02-03 20:27 ` Maxime Ripard
2016-01-14 15:24 ` [PATCH v2 07/26] clk: sunxi: Add TCON channel1 clock Maxime Ripard
2016-01-15 3:03 ` Rob Herring
2016-01-16 16:36 ` Chen-Yu Tsai
2016-02-03 20:29 ` Maxime Ripard
2016-01-14 15:24 ` [PATCH v2 08/26] clk: sun5i: add DRAM gates Maxime Ripard
2016-01-15 3:04 ` Rob Herring
2016-01-14 15:24 ` [PATCH v2 09/26] ARM: sun5i: dt: Add pll3 and pll7 clocks Maxime Ripard
2016-01-14 15:24 ` [PATCH v2 10/26] ARM: sun5i: a13: Add display and TCON clocks Maxime Ripard
2016-01-16 17:06 ` Chen-Yu Tsai
2016-02-03 20:31 ` Maxime Ripard
2016-02-05 9:49 ` Chen-Yu Tsai
2016-01-14 15:24 ` [PATCH v2 11/26] ARM: sun5i: Add DRAM gates Maxime Ripard
2016-01-16 17:10 ` Chen-Yu Tsai
2016-02-03 20:36 ` Maxime Ripard
2016-01-14 15:24 ` [PATCH v2 12/26] ARM: sun5i: Add TV encoder gate to the DTSI Maxime Ripard
2016-01-16 17:12 ` Chen-Yu Tsai
2016-01-14 15:24 ` [PATCH v2 13/26] drm/fb_cma_helper: Remove implicit call to disable_unused_functions Maxime Ripard
2016-01-14 23:13 ` Laurent Pinchart
2016-01-15 10:17 ` Daniel Vetter
2016-01-24 22:19 ` Laurent Pinchart
2016-01-25 7:29 ` Daniel Vetter
2016-01-25 19:02 ` Laurent Pinchart
2016-01-14 15:24 ` [PATCH v2 14/26] drm/modes: Rewrite the command line parser Maxime Ripard
2016-01-14 15:24 ` [PATCH v2 15/26] drm/modes: Support modes names on the command line Maxime Ripard
2016-01-14 15:24 ` [PATCH v2 16/26] drm: Add Allwinner A10 Display Engine support Maxime Ripard
2016-01-16 15:11 ` [linux-sunxi] " Priit Laes
2016-01-17 12:58 ` Priit Laes
2016-01-19 15:38 ` Maxime Ripard
2016-01-14 15:25 ` [PATCH v2 17/26] drm: sun4i: Add DT bindings documentation Maxime Ripard
2016-01-15 3:15 ` Rob Herring
2016-02-03 19:59 ` Maxime Ripard
2016-02-03 20:19 ` Rob Herring
2016-02-03 20:47 ` Maxime Ripard
2016-01-14 15:25 ` [PATCH v2 18/26] drm: sun4i: Add RGB output Maxime Ripard
2016-01-14 15:25 ` [PATCH v2 19/26] drm: sun4i: Add composite output Maxime Ripard
2016-01-14 15:25 ` [PATCH v2 20/26] drm: sun4i: tv: Add PAL output standard Maxime Ripard
2016-01-14 15:25 ` [PATCH v2 21/26] drm: sun4i: tv: Add NTSC " Maxime Ripard
2016-01-14 15:25 ` [PATCH v2 22/26] ARM: sun5i: r8: Add display blocks to the DTSI Maxime Ripard
2016-01-14 15:25 ` [PATCH v2 23/26] ARM: sun5i: chip: Enable the TV Encoder Maxime Ripard
2016-01-14 15:25 ` [PATCH v2 24/26] devicetree: Add olimex vendor prefix Maxime Ripard
2016-01-15 3:15 ` Rob Herring
2016-01-15 6:41 ` Stefan Wahren
2016-01-15 8:05 ` Maxime Ripard
2016-01-14 15:25 ` [PATCH v2 25/26] drm/panel: simple: Add timings for the Olimex LCD-OLinuXino-4.3TS Maxime Ripard
2016-01-15 3:17 ` Rob Herring
2016-01-14 15:25 ` [PATCH v2 26/26] DO NOT MERGE: ARM: sun5i: chip: Enable the LCD panel Maxime Ripard
2016-02-20 13:45 ` Priit Laes [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1455975941.10551.3.camel@plaes.org \
--to=plaes@plaes$(echo .)org \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox