<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/include/drm/drm_mipi_dbi.h, branch linux-rolling-stable</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-rolling-stable</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-rolling-stable'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2024-06-07T14:09:05Z</updated>
<entry>
<title>drm/mipi-dbi: Add support for DRM_FORMAT_RGB888</title>
<updated>2024-06-07T14:09:05Z</updated>
<author>
<name>Noralf Trønnes</name>
</author>
<published>2024-06-04T13:20:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4aebb79021f3e6c2b6fbb92a7d9c5d1e6ad0324a'/>
<id>urn:sha1:4aebb79021f3e6c2b6fbb92a7d9c5d1e6ad0324a</id>
<content type='text'>
DRM_FORMAT_RGB888 is 24 bits per pixel and it would be natural to send it
on the SPI bus using a 24 bits per word transfer. The problem with this
is that not all SPI controllers support 24 bpw.

Since DRM_FORMAT_RGB888 is stored in memory as little endian and the SPI
bus is big endian we use 8 bpw to always get the same pixel format on the
bus: b8g8r8.

The MIPI DCS specification lists the standard commands that can be sent
over the MIPI DBI interface. The set_address_mode (36h) command has one
bit in the parameter that controls RGB/BGR order. This means that the
controller can be configured to receive the pixel as BGR.

RGB888 is rarely supported on these controllers but RGB666 is very common.
All datasheets I have seen do at least support the pixel format option
where each color is sent as one byte and the 6 MSB's are used.

All this put together means that we can send each pixel as b8g8r8 and an
RGB666 capable controller sees this as b6x2g6x2r6x2.

v4:
- s/emulation_format/pixel_format/ (Dmitry)

Reviewed-by: Dmitry Baryshkov &lt;dmitry.baryshkov@linaro.org&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20240604-panel-mipi-dbi-rgb666-v4-4-d7c2bcb9b78d@tronnes.org
Signed-off-by: Noralf Trønnes &lt;noralf@tronnes.org&gt;
</content>
</entry>
<entry>
<title>drm/mipi-dbi: Make bits per word configurable for pixel transfers</title>
<updated>2024-06-07T14:09:05Z</updated>
<author>
<name>Noralf Trønnes</name>
</author>
<published>2024-06-04T13:20:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=df3fb27a74a4eeb1436129024a7e957c2e83a95e'/>
<id>urn:sha1:df3fb27a74a4eeb1436129024a7e957c2e83a95e</id>
<content type='text'>
MIPI DCS write/set commands have 8 bit parameters except for the
write_memory commands where it depends on the pixel format.
drm_mipi_dbi does currently only support RGB565 which is 16-bit and it
has to make sure that the pixels enters the SPI bus in big endian format
since the MIPI DBI spec doesn't have support for little endian.

drm_mipi_dbi is optimized for DBI interface option 3 which means that the
16-bit bytes are swapped by the upper layer if the SPI bus does not
support 16 bits per word, signified by the swap_bytes member.

In order to support both 16-bit and 24-bit pixel transfers we need a way
to tell the DBI command layer the format of the buffer. Add a
write_memory_bpw member that the upper layer can use to tell how many
bits per word to use for the SPI transfer.

v4:
- Expand the commit message (Dmitry)

Reviewed-by: Dmitry Baryshkov &lt;dmitry.baryshkov@linaro.org&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20240604-panel-mipi-dbi-rgb666-v4-3-d7c2bcb9b78d@tronnes.org
Signed-off-by: Noralf Trønnes &lt;noralf@tronnes.org&gt;
</content>
</entry>
<entry>
<title>drm/format-helper: Pass format-conversion state to helpers</title>
<updated>2023-11-14T09:16:53Z</updated>
<author>
<name>Thomas Zimmermann</name>
</author>
<published>2023-10-09T14:06:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4cd24d4b1a9548f42cdb7f449edc6f869a8ae730'/>
<id>urn:sha1:4cd24d4b1a9548f42cdb7f449edc6f869a8ae730</id>
<content type='text'>
Pass an instance of struct drm_format_conv_state to DRM's format
conversion helpers. Update all callers.

Most drivers can use the format-conversion state from their shadow-
plane state. The shadow plane's destroy function releases the
allocated buffer. Drivers will later be able to allocate a buffer
of appropriate size in their plane's atomic_check code.

The gud driver uses a separate thread for committing updates. For
now, the update worker contains its own format-conversion state.

Images in the format-helper tests are small. The tests preallocate
a static page for the temporary buffer. Unloading the module releases
the memory.

v6:
	* update patch for ssd132x support
v5:
	* avoid using unusupported shadow-plane state in repaper (Noralf)
	* fix documentation (Noralf, kernel test robot)
v3:
	* store buffer in shadow-plane state (Javier, Maxime)
	* replace ARRAY_SIZE() with sizeof() (Jani)

Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Reviewed-by: Javier Martinez Canillas &lt;javierm@redhat.com&gt;
Tested-by: Javier Martinez Canillas &lt;javierm@redhat.com&gt; # ssd130x
Cc: Noralf Trønnes &lt;noralf@tronnes.org&gt;
Cc: Javier Martinez Canillas &lt;javierm@redhat.com&gt;
Cc: Gerd Hoffmann &lt;kraxel@redhat.com&gt;
Cc: David Lechner &lt;david@lechnology.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20231009141018.11291-4-tzimmermann@suse.de
</content>
</entry>
<entry>
<title>drm/mipi-dbi: Support separate I/O regulator</title>
<updated>2022-12-14T13:57:09Z</updated>
<author>
<name>Otto Pflüger</name>
</author>
<published>2022-12-01T16:02:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3b1fb8b3a3f8a4e645ef580edaeed35ec3f73c38'/>
<id>urn:sha1:3b1fb8b3a3f8a4e645ef580edaeed35ec3f73c38</id>
<content type='text'>
The MIPI DBI specification defines separate vdd (panel power) and
vddi (I/O voltage) supplies. Displays that require different voltages
for the different supplies do exist, so the supplies cannot be
combined into one as they are now. Add a new io_regulator property to
the mipi_dbi_dev struct which can be set by the panel driver along
with the regulator property.

Signed-off-by: Otto Pflüger &lt;otto.pflueger@abscue.de&gt;
Reviewed-by: Noralf Trønnes &lt;noralf@tronnes.org&gt;
Signed-off-by: Noralf Trønnes &lt;noralf@tronnes.org&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20221201160245.2093816-2-otto.pflueger@abscue.de
</content>
</entry>
<entry>
<title>drm/mipi-dbi: Support shadow-plane state</title>
<updated>2022-12-05T13:20:43Z</updated>
<author>
<name>Thomas Zimmermann</name>
</author>
<published>2022-12-02T12:56:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e7caf04d49533fb38d22379be0278a34aad8826f'/>
<id>urn:sha1:e7caf04d49533fb38d22379be0278a34aad8826f</id>
<content type='text'>
Implement MIPI DBI planes with struct drm_shadow_plane_state, so that the
respective drivers can use the vmap'ed GEM-buffer memory. Implement state
helpers, the {begin,end}_fb_access helpers and wire up everything.

With this commit, MIPI DBI drivers can access the GEM object's memory
that is provided by shadow-plane state. The actual changes to drivers
are implemented separately.

v2:
	* use shadow-plane state directly (Noralf)

Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Reviewed-by: Noralf Trønnes &lt;noralf@tronnes.org&gt;
Tested-by: Javier Martinez Canillas &lt;javierm@redhat.com&gt;
Tested-by: Noralf Trønnes &lt;noralf@tronnes.org&gt; # drm/tiny/mi0283qt
Link: https://patchwork.freedesktop.org/patch/msgid/20221202125644.7917-7-tzimmermann@suse.de
</content>
</entry>
<entry>
<title>drm/mipi-dbi: Prepare framebuffer copy operation in pipe-update helpers</title>
<updated>2022-12-05T12:36:33Z</updated>
<author>
<name>Thomas Zimmermann</name>
</author>
<published>2022-12-02T12:56:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b5f636e63b807fdeba5d61260e5f6b24f6834f69'/>
<id>urn:sha1:b5f636e63b807fdeba5d61260e5f6b24f6834f69</id>
<content type='text'>
Move the vmap/vunmap blocks from the inner fb_dirty helpers into the
MIPI DBI update helpers. The function calls can result in waiting and/or
processing overhead. Reduce the penalties by executing the functions once
in the outer-most function of the pipe update.

This change also prepares for MIPI DBI for shadow-plane helpers. With
shadow-plane helpers, transfer source buffers are mapped into kernel
address space automatically.

v2:
	* keep each driver's existing buffer-mapping patter (Noralf)
	* zero-initialize iosys_map arrays (Noralf)

Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Reviewed-by: Noralf Trønnes &lt;noralf@tronnes.org&gt;
Tested-by: Javier Martinez Canillas &lt;javierm@redhat.com&gt;
Tested-by: Noralf Trønnes &lt;noralf@tronnes.org&gt; # drm/tiny/mi0283qt
Link: https://patchwork.freedesktop.org/patch/msgid/20221202125644.7917-6-tzimmermann@suse.de
</content>
</entry>
<entry>
<title>drm/mipi-dbi: Initialize default driver functions with macro</title>
<updated>2022-12-05T12:36:16Z</updated>
<author>
<name>Thomas Zimmermann</name>
</author>
<published>2022-12-02T12:56:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=63aa5ec6cf2f332ec4ef08a03f4f39895f82b2b9'/>
<id>urn:sha1:63aa5ec6cf2f332ec4ef08a03f4f39895f82b2b9</id>
<content type='text'>
Introduce DRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCS to initialize MIPI-DBI
helpers to default values and convert drivers. The prepare_fb function
set by some drivers is called implicitly by simple-kms helpers, so leave
it out.

Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Reviewed-by: Noralf Trønnes &lt;noralf@tronnes.org&gt;
Tested-by: Javier Martinez Canillas &lt;javierm@redhat.com&gt;
Tested-by: Noralf Trønnes &lt;noralf@tronnes.org&gt; # drm/tiny/mi0283qt
Link: https://patchwork.freedesktop.org/patch/msgid/20221202125644.7917-5-tzimmermann@suse.de
</content>
</entry>
<entry>
<title>drm/probe-helper: Add drm_crtc_helper_mode_valid_fixed()</title>
<updated>2022-09-12T07:14:26Z</updated>
<author>
<name>Thomas Zimmermann</name>
</author>
<published>2022-09-05T14:16:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=216b9bbaeaea96b7f05c220f61855d174be972d8'/>
<id>urn:sha1:216b9bbaeaea96b7f05c220f61855d174be972d8</id>
<content type='text'>
Add drm_crtc_helper_mode_valid_fixed(), which validates a given mode
against a display hardware's mode. Convert simpledrm and use it in a
few other drivers with static modes.

v4:
	* remove empty line after opening brace
v2:
	* rename 'static' and 'hw' to 'fixed' everywhere

Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Reviewed-by: Sam Ravnborg &lt;sam@ravnborg.org&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20220905141648.22013-3-tzimmermann@suse.de
</content>
</entry>
<entry>
<title>drm/mipi-dbi: Add driver_private member to struct mipi_dbi_dev</title>
<updated>2022-02-28T09:29:33Z</updated>
<author>
<name>Noralf Trønnes</name>
</author>
<published>2022-02-27T12:47:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1e7e8e18db0fdd4da4e91597cf4d59265b8f351f'/>
<id>urn:sha1:1e7e8e18db0fdd4da4e91597cf4d59265b8f351f</id>
<content type='text'>
devm_drm_dev_alloc() can't allocate structures that embed a structure
which then again embeds drm_device. Workaround this by adding a
driver_private pointer to struct mipi_dbi_dev which the driver can use for
its additional state.

v3:
- Add documentation

Acked-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Acked-by: Sam Ravnborg &lt;sam@ravnborg.org&gt;
Signed-off-by: Noralf Trønnes &lt;noralf@tronnes.org&gt;
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20220227124713.39766-5-noralf@tronnes.org
</content>
</entry>
<entry>
<title>drm/dbi: Use a static inline stub for mipi_dbi_debugfs_init()</title>
<updated>2021-12-22T20:41:01Z</updated>
<author>
<name>Ville Syrjälä</name>
</author>
<published>2021-12-21T19:37:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6844a28885183a5a2af92a8d315a59f7a0e668b9'/>
<id>urn:sha1:6844a28885183a5a2af92a8d315a59f7a0e668b9</id>
<content type='text'>
Replace the slightly odd "#define &lt;function&gt; NULL" thing with
a standard static inline stub.

Cc: Noralf Trønnes &lt;noralf@tronnes.org&gt;
Cc: Sam Ravnborg &lt;sam@ravnborg.org&gt;
Signed-off-by: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20211221193754.12287-2-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula &lt;jani.nikula@intel.com&gt;
</content>
</entry>
</feed>
