<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/gpu/drm/pl111, branch v4.19.252</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v4.19.252</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v4.19.252'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2019-06-15T09:54:00+00:00</updated>
<entry>
<title>drm/pl111: Initialize clock spinlock early</title>
<updated>2019-06-15T09:54:00+00:00</updated>
<author>
<name>Guenter Roeck</name>
<email>linux@roeck-us.net</email>
</author>
<published>2019-05-13T14:46:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=4d3811a60e104bc7dc532b8081bcfe590e7ce5fc'/>
<id>urn:sha1:4d3811a60e104bc7dc532b8081bcfe590e7ce5fc</id>
<content type='text'>
[ Upstream commit 3e01ae2612bdd7975c74ec7123d7f8f5e6eed795 ]

The following warning is seen on systems with broken clock divider.

INFO: trying to register non-static key.
the code is fine but needs lockdep annotation.
turning off the locking correctness validator.
CPU: 0 PID: 1 Comm: swapper Not tainted 5.1.0-09698-g1fb3b52 #1
Hardware name: ARM Integrator/CP (Device Tree)
[&lt;c0011be8&gt;] (unwind_backtrace) from [&lt;c000ebb8&gt;] (show_stack+0x10/0x18)
[&lt;c000ebb8&gt;] (show_stack) from [&lt;c07d3fd0&gt;] (dump_stack+0x18/0x24)
[&lt;c07d3fd0&gt;] (dump_stack) from [&lt;c0060d48&gt;] (register_lock_class+0x674/0x6f8)
[&lt;c0060d48&gt;] (register_lock_class) from [&lt;c005de2c&gt;]
	(__lock_acquire+0x68/0x2128)
[&lt;c005de2c&gt;] (__lock_acquire) from [&lt;c0060408&gt;] (lock_acquire+0x110/0x21c)
[&lt;c0060408&gt;] (lock_acquire) from [&lt;c07f755c&gt;] (_raw_spin_lock+0x34/0x48)
[&lt;c07f755c&gt;] (_raw_spin_lock) from [&lt;c0536c8c&gt;]
	(pl111_display_enable+0xf8/0x5fc)
[&lt;c0536c8c&gt;] (pl111_display_enable) from [&lt;c0502f54&gt;]
	(drm_atomic_helper_commit_modeset_enables+0x1ec/0x244)

Since commit eedd6033b4c8 ("drm/pl111: Support variants with broken clock
divider"), the spinlock is not initialized if the clock divider is broken.
Initialize it earlier to fix the problem.

Fixes: eedd6033b4c8 ("drm/pl111: Support variants with broken clock divider")
Cc: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Signed-off-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/1557758781-23586-1-git-send-email-linux@roeck-us.net
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/pl111: fix possible object reference leak</title>
<updated>2019-05-31T13:46:24+00:00</updated>
<author>
<name>Wen Yang</name>
<email>wen.yang99@zte.com.cn</email>
</author>
<published>2019-04-03T16:04:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ce59174d4e69b3a8d788e7c7875d1e492bccbb84'/>
<id>urn:sha1:ce59174d4e69b3a8d788e7c7875d1e492bccbb84</id>
<content type='text'>
[ Upstream commit bc29d3a69d4c1bd1a103e8b3c1ed81b807c1870b ]

The call to of_find_matching_node_and_match returns a node pointer with
refcount incremented thus it must be explicitly decremented after the
last usage.

Detected by coccinelle with the following warnings:
drivers/gpu/drm/pl111/pl111_versatile.c:333:3-9: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 317, but without a corresponding object release within this function.
drivers/gpu/drm/pl111/pl111_versatile.c:340:3-9: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 317, but without a corresponding object release within this function.
drivers/gpu/drm/pl111/pl111_versatile.c:346:3-9: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 317, but without a corresponding object release within this function.
drivers/gpu/drm/pl111/pl111_versatile.c:354:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 317, but without a corresponding object release within this function.
drivers/gpu/drm/pl111/pl111_versatile.c:395:3-9: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 317, but without a corresponding object release within this function.
drivers/gpu/drm/pl111/pl111_versatile.c:402:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 317, but without a corresponding object release within this function.

Signed-off-by: Wen Yang &lt;wen.yang99@zte.com.cn&gt;
Cc: Eric Anholt &lt;eric@anholt.net&gt; (supporter:DRM DRIVER FOR ARM PL111 CLCD)
Cc: David Airlie &lt;airlied@linux.ie&gt; (maintainer:DRM DRIVERS)
Cc: Daniel Vetter &lt;daniel@ffwll.ch&gt; (maintainer:DRM DRIVERS)
Cc: dri-devel@lists.freedesktop.org (open list:DRM DRIVERS)
Cc: linux-kernel@vger.kernel.org (open list)
Signed-off-by: Eric Anholt &lt;eric@anholt.net&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/1554307455-40361-6-git-send-email-wen.yang99@zte.com.cn
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/pl111: Make sure of_device_id tables are NULL terminated</title>
<updated>2018-09-10T20:01:22+00:00</updated>
<author>
<name>zhong jiang</name>
<email>zhongjiang@huawei.com</email>
</author>
<published>2018-08-04T10:49:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=7eb33224572636248d5b6cfa1a6b2472207be5c4'/>
<id>urn:sha1:7eb33224572636248d5b6cfa1a6b2472207be5c4</id>
<content type='text'>
We prefer to of_device_id tables are NULL terminated. So make
vexpress_muxfpga_match is NULL terminated.

Signed-off-by: zhong jiang &lt;zhongjiang@huawei.com&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/1533379767-15629-1-git-send-email-zhongjiang@huawei.com
Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
</content>
</entry>
<entry>
<title>drm/pl111: Use 64-bit arithmetic instead of 32-bit</title>
<updated>2018-07-17T18:25:18+00:00</updated>
<author>
<name>Gustavo A. R. Silva</name>
<email>gustavo@embeddedor.com</email>
</author>
<published>2018-07-04T14:22:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=108019a7e6a34df91246365066bea7cf6faf6b02'/>
<id>urn:sha1:108019a7e6a34df91246365066bea7cf6faf6b02</id>
<content type='text'>
Add suffix ULL to constant 1000 in order to give the compiler complete
information about the proper arithmetic to use.

Notice that such constant is used in a context that expects an
expression of type u64 (64 bits, unsigned) and the following
expression is currently being evaluated using 32-bit arithmetic:

mode-&gt;clock * 1000

Addresses-Coverity-ID: 1466139 ("Unintentional integer overflow")
Signed-off-by: Gustavo A. R. Silva &lt;gustavo@embeddedor.com&gt;
Signed-off-by: Eric Anholt &lt;eric@anholt.net&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180704142255.GA8614@embeddedor.com
</content>
</entry>
<entry>
<title>drm/pl111: Replace drm_dev_unref with drm_dev_put</title>
<updated>2018-07-17T18:24:44+00:00</updated>
<author>
<name>Thomas Zimmermann</name>
<email>tzimmermann@suse.de</email>
</author>
<published>2018-07-17T08:36:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f9760772d26560ec137fb1c768487c601b93dbc3'/>
<id>urn:sha1:f9760772d26560ec137fb1c768487c601b93dbc3</id>
<content type='text'>
This patch unifies the naming of DRM functions for reference counting
of struct drm_device. The resulting code is more aligned with the rest
of the Linux kernel interfaces.

Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Signed-off-by: Eric Anholt &lt;eric@anholt.net&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180717083657.16262-1-tzimmermann@suse.de
</content>
</entry>
<entry>
<title>drm/pl111: Set .gem_prime_vmap and .gem_prime_mmap</title>
<updated>2018-07-10T12:52:54+00:00</updated>
<author>
<name>Noralf Trønnes</name>
<email>noralf@tronnes.org</email>
</author>
<published>2018-07-03T16:03:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=244007ecb6bb94fa4e9b9a969fa86f2ad86ec543'/>
<id>urn:sha1:244007ecb6bb94fa4e9b9a969fa86f2ad86ec543</id>
<content type='text'>
These are needed for pl111 to use the generic fbdev emulation.

Cc: Eric Anholt &lt;eric@anholt.net&gt;
Signed-off-by: Noralf Trønnes &lt;noralf@tronnes.org&gt;
Reviewed-by: Eric Anholt &lt;eric@anholt.net&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180703160354.59955-4-noralf@tronnes.org
</content>
</entry>
<entry>
<title>drm/pl111: Support Nomadik LCDC variant</title>
<updated>2018-07-01T19:36:47+00:00</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2018-06-21T18:44:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e08015e7d6a4b5395e75cc286ab6400667c63dc0'/>
<id>urn:sha1:e08015e7d6a4b5395e75cc286ab6400667c63dc0</id>
<content type='text'>
The Nomadik has a variant of the PL110 known as "Color LCD
Controller" LCDC. This variant has the same bit ordering as
the DRM subsystem (in difference from the other variants)
and adds a few bits for the control of 5551, 565 etc in the
control register. Notably it also adds a packed RGB888
24BPP mode.

We add support by detecting this variant and also adding a
small plug-in that will mux the LCDC out if the ASIC happens
to be muxed to the other graphics controller (they are
mutually exclusive).

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/20180621184450.25377-1-linus.walleij@linaro.org
</content>
</entry>
<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>
</feed>
