<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/gpu/drm/pl111, branch v4.18.14</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v4.18.14</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v4.18.14'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2018-05-03T22:13:41+00:00</updated>
<entry>
<title>drm/pl111: Fix module probe bug</title>
<updated>2018-05-03T22:13:41+00:00</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2018-05-03T14:04:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=0a4587a034a43e5076770df10446214cfb3de8f8'/>
<id>urn:sha1:0a4587a034a43e5076770df10446214cfb3de8f8</id>
<content type='text'>
Commit a30933c27602 ("drm/pl111: Support the Versatile Express")
Added a second module using the builtin_platform_driver() call,
which works fine as long as you do not try to build the PL111
driver as a module, because a module can only have one initcall
and cause the following build bug:

(...) multiple definition of `init_module' (...)

Reported-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Cc: Liviu Dudau &lt;liviu.dudau@arm.com&gt;
Cc: Pawel Moll &lt;pawel.moll@arm.com&gt;
Cc: Eric Anholt &lt;eric@anholt.net&gt;
Cc: Robin Murphy &lt;robin.murphy@arm.com&gt;
Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Reviewed-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Fixes: a30933c27602 ("drm/pl111: Support the Versatile Express")
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180503140431.5798-1-linus.walleij@linaro.org
</content>
</entry>
<entry>
<title>drm/pl111: Enable device-specific assigned memory</title>
<updated>2018-05-02T17:13:42+00:00</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2018-05-02T13:47:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=57450671776b37d7c81cd52a89982c14bca46cfc'/>
<id>urn:sha1:57450671776b37d7c81cd52a89982c14bca46cfc</id>
<content type='text'>
The Versatile Express has 8 MB of dedicated video RAM (VRAM)
on the motherboard, which is what we should be using for the
PL111 if available. On this platform, the memory backplane
is constructed so that only this memory will work properly
with the CLCD on the motherboard, using any other memory
area just gives random snow on the display.

The CA9 Versatile Express also has a PL111 instance on its
core tile that can address all memory, and this does not
have the restriction.

The memory is assigned to the device using the memory-region
device tree property and a "shared-dma-pool" reserved
memory pool like this:

reserved-memory {
        #address-cells = &lt;1&gt;;
        #size-cells = &lt;1&gt;;
        ranges;

        vram: vram@48000000 {
                compatible = "shared-dma-pool";
                reg = &lt;0x48000000 0x00800000&gt;;
                no-map;
        };
};

clcd@1f000 {
        compatible = "arm,pl111", "arm,primecell";
	(...)
        memory-region = &lt;&amp;vram&gt;;
}·;

Cc: Liviu Dudau &lt;liviu.dudau@arm.com&gt;
Cc: Mali DP Maintainers &lt;malidp@foss.arm.com&gt;
Reviewed-by: Eric Anholt &lt;eric@anholt.net&gt;
Tested-by: Robin Murphy &lt;robin.murphy@arm.com&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180502134719.8388-2-linus.walleij@linaro.org
</content>
</entry>
<entry>
<title>drm/pl111: Support the Versatile Express</title>
<updated>2018-05-02T17:13:28+00:00</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2018-05-02T13:47:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ca454bd42dc24374150febf83a443e8c1d9cf28a'/>
<id>urn:sha1:ca454bd42dc24374150febf83a443e8c1d9cf28a</id>
<content type='text'>
The Versatile Express uses a special configuration controller
deeply embedded in the system motherboard FPGA to multiplex the
two to three (!) display controller instances out to the single
SiI9022 bridge.

Set up an extra file with the logic to probe to the FPGA mux
register on the system controller bus, then parse the device
tree to see if there is a CLCD or HDLCD instance on the core
tile (also known as the daughterboard) by looking in the
root of the device tree for compatible nodes.

- If there is a HDLCD on the core tile, and there is a driver
  for it, we exit probe and deactivate the motherboard CLCD.
  We do not touch the DVI mux in this case, to make sure we
  don't break HDLCD.

- If there is a CLCD on both the motherboard and the core tile
  (only the CA9 has this) the core tile CLCD takes precedence
  and get muxed to the DVI connector.

- Only if there is no working graphics on the core tile, the
  motherboard CLCD is probed and muxed to the DVI connector.

Core tile graphics should always take precedence as it can
address all memory and is also faster, however the motherboard
CLCD is good to have around for diagnostics and testing.

It is possible to test the motherboard CLCD by setting the
status = "disabled" property on the core tile CLCD or
HDLCD.

Scale down the Versatile Express to 16BPP so we can support a
1024x768 display despite the bus bandwidth restrictions on this
platform. (The motherboard CLCD supports slightly lower
resolution.)

Cc: Liviu Dudau &lt;liviu.dudau@arm.com&gt;
Cc: Pawel Moll &lt;pawel.moll@arm.com&gt;
Acked-by: Eric Anholt &lt;eric@anholt.net&gt;
Tested-by: Robin Murphy &lt;robin.murphy@arm.com&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180502134719.8388-1-linus.walleij@linaro.org
</content>
</entry>
<entry>
<title>drm/pl111: Use simple_display_pipe prepare_fb helper</title>
<updated>2018-04-24T11:58:24+00:00</updated>
<author>
<name>Daniel Vetter</name>
<email>daniel.vetter@ffwll.ch</email>
</author>
<published>2018-04-05T15:44:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f2b5a62165120a22a3aa1bc0173e45d388bc9b87'/>
<id>urn:sha1:f2b5a62165120a22a3aa1bc0173e45d388bc9b87</id>
<content type='text'>
Signed-off-by: Daniel Vetter &lt;daniel.vetter@intel.com&gt;
Cc: Eric Anholt &lt;eric@anholt.net&gt;
Reviewed-by: Eric Anholt &lt;eric@anholt.net&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180405154449.23038-5-daniel.vetter@ffwll.ch
</content>
</entry>
<entry>
<title>drm/simple-kms-helper: Plumb plane state to the enable hook</title>
<updated>2018-03-28T16:19:32+00:00</updated>
<author>
<name>Ville Syrjälä</name>
<email>ville.syrjala@linux.intel.com</email>
</author>
<published>2018-03-22T20:27:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=0c9c7fd00e17907efb35697ecb9f2df39a0b536c'/>
<id>urn:sha1:0c9c7fd00e17907efb35697ecb9f2df39a0b536c</id>
<content type='text'>
tinydrm enable hook wants to play around with the new fb in
.atomic_enable(), thus we'll need access to the plane state.

Performed with coccinelle:
@r1@
identifier F =~ ".*enable$";
identifier P, CS;
@@
F(
	struct drm_simple_display_pipe *P
	,struct drm_crtc_state *CS
+	,struct drm_plane_state *plane_state
	)
{
...
}

@@
struct drm_simple_display_pipe *P;
expression E;
@@
{
+ struct drm_plane *plane;
...
+ plane = &amp;P-&gt;plane;
P-&gt;funcs-&gt;enable(P
		,E
+		,plane-&gt;state
	);
...
}

@@
identifier P, CS;
@@
struct drm_simple_display_pipe_funcs {
...
        void (*enable)(struct drm_simple_display_pipe *P
	     		,struct drm_crtc_state *CS
+			,struct drm_plane_state *plane_state
		);
...
};

v2: Pimp the commit message (David)

Cc: Marek Vasut &lt;marex@denx.de&gt;
Cc: Eric Anholt &lt;eric@anholt.net&gt;
Cc: David Lechner &lt;david@lechnology.com&gt;
Cc: "Noralf Trønnes" &lt;noralf@tronnes.org&gt;
Cc: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Signed-off-by: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180322202738.25817-1-ville.syrjala@linux.intel.com
Reviewed-by: Noralf Trønnes &lt;noralf@tronnes.org&gt;
</content>
</entry>
<entry>
<title>drm/pl111: Use max memory bandwidth for resolution</title>
<updated>2018-03-07T22:14:24+00:00</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2018-03-07T21:58:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=df99dd9202216f54eaf672e07808e9198d868af6'/>
<id>urn:sha1:df99dd9202216f54eaf672e07808e9198d868af6</id>
<content type='text'>
We were previously selecting 1024x768 and 32BPP as the default
set-up for the PL111 consumers.

This does not work on elder systems: the device tree bindings
support a property "max-memory-bandwidth" in bytes/second that
states that if you exceed this the memory bus will saturate.
The result is flickering and unstable images.

Parse the "max-memory-bandwidth" and respect it when
intializing the driver. On the RealView PB11MP, Versatile and
Integrator/CP we get a nice console as default with this code.

Reviewed-by: Eric Anholt &lt;eric@anholt.net&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180307215819.15814-1-linus.walleij@linaro.org
</content>
</entry>
<entry>
<title>drm/pl111: Handle the RealView variant separately</title>
<updated>2018-03-07T21:48:08+00:00</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2018-03-02T09:09:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=20a0dfeead0512af1d194ebaa8b0abe05323bbdb'/>
<id>urn:sha1:20a0dfeead0512af1d194ebaa8b0abe05323bbdb</id>
<content type='text'>
We want to cut down the default bpp to 16 on the RealView so
we can have a 1024x768 framebuffer console by default. The
memory bandwidth limitations makes this not work with the
PL111 default of 32bpp.

This builds on top of the earlier patches making the
framebuffer default bpp a per-variant variable.

Reviewed-by: Eric Anholt &lt;eric@anholt.net&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180302090948.6399-4-linus.walleij@linaro.org
</content>
</entry>
<entry>
<title>drm/pl111: Make the default BPP a per-variant variable</title>
<updated>2018-03-07T21:46:46+00:00</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2018-03-02T09:09:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=9f8d4fe94eb4fb958fc92ee91a3ec54ab378339c'/>
<id>urn:sha1:9f8d4fe94eb4fb958fc92ee91a3ec54ab378339c</id>
<content type='text'>
The PL110, Integrator and Versatile boards strongly prefer to
use 16 BPP even if other modes are supported, both to keep down
memory consumption and also to easier find a good match to
supported resolutions with consideration taken to the memory
bandwidth of the platforms.

Reviewed-by: Eric Anholt &lt;eric@anholt.net&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180302090948.6399-2-linus.walleij@linaro.org
Link: https://patchwork.freedesktop.org/patch/msgid/20180307084316.23623-1-linus.walleij@linaro.org
Link: https://patchwork.freedesktop.org/patch/msgid/20180307084316.23623-1-linus.walleij@linaro.org
</content>
</entry>
<entry>
<title>drm/pl111: Remove reverse dependency on DRM_DUMB_VGA_DAC</title>
<updated>2018-02-26T05:34:51+00:00</updated>
<author>
<name>Thierry Reding</name>
<email>treding@nvidia.com</email>
</author>
<published>2018-02-20T10:29:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a22f1d801ad4987508b8c1b701c4926f733ac18b'/>
<id>urn:sha1:a22f1d801ad4987508b8c1b701c4926f733ac18b</id>
<content type='text'>
DRM_DUMB_VGA_DAC is a user-visible symbol. Selecting it can cause unmet
direct dependencies such as this (on i386, randconfig):

	warning: (DRM_PL111) selects DRM_DUMB_VGA_DAC which has unmet direct dependencies (HAS_IOMEM &amp;&amp; DRM &amp;&amp; DRM_BRIDGE &amp;&amp; OF)

This is because DRM_DUMB_VGA_DAC depends on OF while DRM_PL111 does not.
It does indirectly depend on OF via the ARM and ARM64 dependencies, but
since it can also be enabled under COMPILE_TEST, randconfig can find a
case where DRM_PL111 is selected without pulling in OF and not meeting
the dependency for DRM_DUMB_VGA_DAC.

Since select is "heavy handed", DRM_DUMB_VGA_DAC is going to be enabled
regardless of the above warning and causes the following build error:

	../drivers/gpu/drm/bridge/dumb-vga-dac.c: In function 'dumb_vga_probe':
	../drivers/gpu/drm/bridge/dumb-vga-dac.c:207:13: error: 'struct drm_bridge' has no member named 'of_node'
	  vga-&gt;bridge.of_node = pdev-&gt;dev.of_node;

See Documentation/kbuild/kconfig-language.txt, "reverse dependencies".

Fixes: 49f81d80ab84 ("drm/pl111: Support handling bridge timings")
Reported-by: Randy Dunlap &lt;rdunlap@infradead.org&gt;
Reviewed-by: Eric Anholt &lt;eric@anholt.net&gt;
Cc: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Cc: Archit Taneja &lt;architt@codeaurora.org&gt;
Cc: Eric Anholt &lt;eric@anholt.net&gt;
Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
Signed-off-by: Archit Taneja &lt;archit@cradlewise.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180220102903.27787-1-thierry.reding@gmail.com
</content>
</entry>
<entry>
<title>drm/pl111: Do not use deprecated drm_driver.{enable|disable)_vblank</title>
<updated>2018-02-22T16:58:59+00:00</updated>
<author>
<name>Oleksandr Andrushchenko</name>
<email>oleksandr_andrushchenko@epam.com</email>
</author>
<published>2018-02-12T08:52:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=6c7d091008d0d095adb3f65d667a234d372f4472'/>
<id>urn:sha1:6c7d091008d0d095adb3f65d667a234d372f4472</id>
<content type='text'>
Do not use deprecated drm_driver.{enable|disable)_vblank callbacks,
but use drm_simple_kms_helpe's pipe callbacks instead.

Signed-off-by: Oleksandr Andrushchenko &lt;oleksandr_andrushchenko@epam.com&gt;
Cc: Eric Anholt &lt;eric@anholt.net&gt;
Reviewed-by: Eric Anholt &lt;eric@anholt.net&gt;
Tested-by: Eric Anholt &lt;eric@anholt.net&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/1518425574-32671-5-git-send-email-andr2000@gmail.com
</content>
</entry>
</feed>
