aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/panel/panel-simple.c
Commit message (Collapse)AuthorAgeFilesLines
...
* drm/panel: simple: Add Mitsubishi AA070MC01 panel supportLukasz Majewski2017-11-171-0/+35
| | | | | | | | | | The Mitsubishi AA070MC01 is a 7.0" WVGA (800x480) TFT panel working in 8 bit ISP mode (pin 19 "mode" HIGH for 20 pin TFT connector). Signed-off-by: Lukasz Majewski <[email protected]> Acked-by: Rob Herring <[email protected]> Signed-off-by: Thierry Reding <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
* drm/panel: simple: Add Tianma TM070RVHG71 panel supportLukasz Majewski2017-11-171-0/+27
| | | | | | | | | | The Tianma TM070RVHG71 is a 7" WVGA (800x480) TFT LCD panel connected via LVDS and can be supported by the simple-panel binding. Signed-off-by: Lukasz Majewski <[email protected]> Acked-by: Rob Herring <[email protected]> Signed-off-by: Thierry Reding <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
* drm/panel: simple: add Toshiba LT089AC19000Lucas Stach2017-10-191-0/+27
| | | | | | | | | | Only exposes a single mode and not a complete display timing, as the datasheet is rather vague about the minimum/maximum values. Signed-off-by: Lucas Stach <[email protected]> Acked-by: Rob Herring <[email protected]> Signed-off-by: Thierry Reding <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
* drm/panel: simple: add delays for Innolux AT043TN24Philipp Zabel2017-10-181-0/+4
| | | | | | | | | | The delays between video data and backlight enable and between backlight disable and end of video data are given as >= 160 ms in the datasheet. Signed-off-by: Philipp Zabel <[email protected]> Tested-by: Marco Franchi <[email protected]> Signed-off-by: Thierry Reding <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
* drm/panel: simple: add bus flags for Innolux AT043TN24Philipp Zabel2017-10-181-0/+1
| | | | | | | | | | | For LCD interface controllers that support configuring polarity of pixel clock and data enable signal, specify bus flags in the panel descriptor. Signed-off-by: Philipp Zabel <[email protected]> Tested-by: Marco Franchi <[email protected]> Signed-off-by: Thierry Reding <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
* drm/panel: simple: fix vertical timings for Innolux AT043TN24Philipp Zabel2017-10-181-2/+2
| | | | | | | | | | | The vsync length should be 10 lines, as specified in the data sheet. This gets the actual refresh rate closer to nominal 60 Hz given the 9 MHz pixel clock. Signed-off-by: Philipp Zabel <[email protected]> Tested-by: Marco Franchi <[email protected]> Signed-off-by: Thierry Reding <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
* drm/panel: simple: Remove unneeded gpiod NULL checkFabio Estevam2017-08-181-4/+2
| | | | | | | | | The gpiod API checks for NULL descriptors, so there is no need to duplicate the check in the driver. Signed-off-by: Fabio Estevam <[email protected]> Signed-off-by: Thierry Reding <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
* drm/panel: simple: Add missing panel_simple_unprepare() callsJonathan Liu2017-08-181-0/+2
| | | | | | | | | | | | During panel removal or system shutdown panel_simple_disable() is called which disables the panel backlight but the panel is still powered due to missing calls to panel_simple_unprepare(). Fixes: d02fd93e2cd8 ("drm/panel: simple - Disable panel on shutdown") Cc: [email protected] # v3.16+ Signed-off-by: Jonathan Liu <[email protected]> Signed-off-by: Thierry Reding <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
* drm/panel: simple: Fix width and height for Olimex LCD-OLinuXino-4.3TSJonathan Liu2017-08-181-2/+2
| | | | | | | | | | | | | The physical size of the panel is 105.5 (W) x 67.2 (H) x 4.05 (D) mm but the active display area is 95.04 (W) x 53.856 (H) mm. The width and height should be set to the active display area. Signed-off-by: Jonathan Liu <[email protected]> Fixes: cf5c9e6dc70d ("drm/panel: simple: Add timings for the Olimex LCD-OLinuXino-4.3TS") Reviewed-by: Chen-Yu Tsai <[email protected]> Signed-off-by: Thierry Reding <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
* drm/panel: simple: Skip error message on deferred probeFabio Estevam2017-08-181-1/+2
| | | | | | | | | | | | | | When enable_gpio is provided via an I2C or SPI expander, it may not be available when panel-simple probes leading to the following error: panel-simple panel: failed to request GPIO: -517 As this error message is not very useful to the end user, skip printing it in the case of deferred probe. Signed-off-by: Fabio Estevam <[email protected]> Signed-off-by: Thierry Reding <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
* drm/panel: simple: add support for AUO P320HVN03Lucas Stach2017-06-141-0/+31
| | | | | | | | | | | This adds support for the AU Optronics Corporation 31.5" FHD (1920x1080) LVDS TFT LCD panel, which can be supported by the simple panel driver Signed-off-by: Lucas Stach <[email protected]> Acked-by: Rob Herring <[email protected]> Signed-off-by: Thierry Reding <[email protected]> Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
* drm/panel: simple: add support for NLT NL192108AC18-02DLucas Stach2017-06-141-0/+29
| | | | | | | | | | | | | | This adds support for the NLT Technologies NL192108AC18-02D 15.6" LVDS FullHD TFT LCD panel, which can be supported by the simple panel driver. Timings are taken from the preliminary datasheet, as a final one is not yet available. Signed-off-by: Lucas Stach <[email protected]> Acked-by: Rob Herring <[email protected]> Signed-off-by: Thierry Reding <[email protected]> Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
* drm/panel: simple: add support for NEC NL12880B20-05Lucas Stach2017-06-141-0/+30
| | | | | | | | | | This adds support for the NEC LCD Technologies, Ltd. 12.1" WXGA (1280x800) LVDS TFT LCD panel, which can be supported by the simple panel driver. Signed-off-by: Lucas Stach <[email protected]> Signed-off-by: Thierry Reding <[email protected]> Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
* drm/panel: simple: Add support for Winstar WF35LTIACDRichard Genoud2017-04-061-0/+28
| | | | | | | | | This adds support for the Winstar Display Co. WF35LTIACD 3.5" QVGA TFT LCD panel, which can be supported by the simple panel driver. Acked-by: Rob Herring <[email protected]> Signed-off-by: Richard Genoud <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add support for Ampire AM-480272H3TMQW-T01HYannick Fertre2017-04-061-0/+28
| | | | | | | | Add simple-panel support for the Ampire AM-480272H3TMQW-T01H, which is a 4.3" WQVGA panel. Signed-off-by: Yannick Fertre <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Specify bus width and flags for EDT displaysStefan Agner2017-01-261-0/+4
| | | | | | | | | The display has a 18-Bit parallel LCD interface, require DE to be active high and data driven by the controller on falling pixel clock edge (display samples on rising edge). Signed-off-by: Stefan Agner <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add Netron DY E231732Maxime Ripard2017-01-261-0/+26
| | | | | | | | The E231732 is a 7" panel with a resolution of 1024x600. Signed-off-by: Maxime Ripard <[email protected]> [[email protected]: add missing device tree binding] Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add support for Tianma TM070JDHG30Gary Bisson2017-01-261-0/+27
| | | | | | | | | | | | | | | | The Tianma TM070JDHG30 is a 7" LVDS display with a resolution of 1280x800. http://usa.tianma.com/products-technology/product/tm070jdhg30-00 You can also find this product along with a FT5x06 touch controller from Boundary Devices: https://boundarydevices.com/product/bd070lic2/ Signed-off-by: Gary Bisson <[email protected]> Acked-by: Rob Herring <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add support BOE NV101WXMN51Caesar Wang2017-01-261-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The BOE NV101WXMN51 is a 10.1" WXGA color active matrix TFT LCD module using amorphous silicon TFT's as an active switching devices. It can be supported by the simple-panel driver. Read the panel default EDID information: EDID MODE DETAILS name = <NULL> pixel_clock = 71900 lvds_dual_channel = 0 refresh = 0 ha = 1280 hbl = 160 hso = 48 hspw = 32 hborder = 0 va = 800 vbl = 32 vso = 3 vspw = 5 vborder = 0 phsync = + pvsync = - x_mm = 0 y_mm = 0 drm_display_mode .hdisplay = 1280 .hsync_start = 1328 .hsync_end = 1360 .htotal = 1440 .vdisplay = 800 .vsync_start = 803 .vsync_end = 808 .vtotal = 832 There are two modes in the EDID: Detailed mode1: Clock 71.900 MHz, 216 mm x 135 mm 1280 1328 1360 1440 hborder 0 800 803 808 832 vborder 0 +hsync -vsync Detailed mode2: Clock 57.500 MHz, 216 mm x 135 mm 1280 1328 1360 1440 hborder 0 800 803 808 832 vborder 0 +hsync -vsync Support both of these modes on the panel. Signed-off-by: Caesar Wang <[email protected]> Reviewed-by: Douglas Anderson <[email protected]> Reviewed-by: Stéphane Marchesin <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add support for AUO G185HAN01Lucas Stach2016-12-061-0/+32
| | | | | | | | This adds support for the AU Optronics G185HAN01 18.5" LVDS FullHD TFT LCD panel, which can be supported by the simple panel driver. Signed-off-by: Lucas Stach <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add support for AUO G133HAN01Lucas Stach2016-12-061-0/+32
| | | | | | | | This adds support for the AU Optronics G133HAN01 13.3" LVDS FullHD TFT LCD panel, which can be supported by the simple panel driver. Signed-off-by: Lucas Stach <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add more properties to Innolux G121I1-L01Lucas Stach2016-12-061-13/+17
| | | | | | | | | Convert from a single mode to display timings, which allow to describe the minimum/maximium blanking and clock rates, add enable/disable delays and provide the bus format. Signed-off-by: Lucas Stach <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add bits-per-component for Sharp LQ123P1JX31zain wang2016-12-061-0/+1
| | | | | | | The Sharp LQ123P1JX31 panel support 8 bits per component. Signed-off-by: zain wang <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Check against num_timings when setting preferred for timingChen-Yu Tsai2016-12-061-1/+1
| | | | | | | | | In the loop on .timings, we should check .num_timings to see if it's the only mode specified, not .num_modes, which should be used with .modes. Fixes: cda553725c92 ("drm/panel: simple: Set appropriate mode type") Signed-off-by: Chen-Yu Tsai <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: Add support for Chunghwa CLAA070WP03XG panelRandy Li2016-12-061-0/+27
| | | | | | | | The Chunghwa CLAA070WP03XG is a 7" 1280x800 panel, which can be supported by the simple panel driver. Signed-off-by: Randy Li <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add NVD9128 as a simple panelFabien Lahoudere2016-10-191-0/+26
| | | | | | | | Add New Vision Display 7.0" 800 RGB x 480 TFT LCD panel Signed-off-by: Fabien Lahoudere <[email protected]> Acked-by: Rob Herring <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add support for AUO T215HVN01Haixia Shi2016-10-191-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | The AUO T215HVN01 is a 21.5" FHD (1920x1080) color TFT LCD panel. This panel is used on the Acer Chromebase 21.5-inch All-in-One (DC221HQ). Link to spec: http://www.udmgroup.com/ftp/T215HVN01.0.pdf v2: fix alphabetical order v3: remove minor revision suffix ".0" and add link to spec v4: add dt-binding documentation Signed-off-by: Haixia Shi <[email protected]> Tested-by: Haixia Shi <[email protected]> Reviewed-by: Stéphane Marchesin <[email protected]> Cc: Emil Velikov <[email protected]> Cc: Thierry Reding <[email protected]> Cc: David Airlie <[email protected]> Cc: Rob Herring <[email protected]> Cc: Mark Rutland <[email protected]> Cc: [email protected] Cc: [email protected] Acked-by: Rob Herring <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add support for Sharp LQ150X1LG11 panelsGustaf Lindström2016-10-191-0/+27
| | | | | | | | | | | | The Sharp 15" LQ150X1LG11 panel is an XGA TFT LCD panel. The simple-panel driver is used to get support for essential functionality of the panel. Signed-off-by: Gustaf Lindström <[email protected]> Signed-off-by: Peter Rosin <[email protected]> [[email protected]: change .bpc from 8 to 6] Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Fix bus_format for the Olimex LCD-OLinuXino-4.3TSJonathan Liu2016-09-161-1/+1
| | | | | | | | The format is RGB888 not RGB666. Signed-off-by: Jonathan Liu <[email protected]> Acked-by: Maxime Ripard <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple-panel: Add delay timings for Starry KR122EA0SRABrian Norris2016-09-161-0/+5
| | | | | | | | | | | | | | Taking our cue from commit a42f6e3f8f03 ("drm/panel: simple: Add delay timing for Sharp LQ123P1JX31"), let's add timings: .prepare = t1 + t3 .enable = t7 .unprepare = t11 + 12 Without this, the panel may not be given enough time to come up. Signed-off-by: Brian Norris <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Fix bus flags for Ortustech com43h4m85ulcMarek Vasut2016-09-161-0/+1
| | | | | | | | | | | This display expects DE pin and data lines to be active high, add the necessary flags. Signed-off-by: Marek Vasut <[email protected]> Cc: Philipp Zabel <[email protected]> Cc: Thierry Reding <[email protected]> Reviewed-by: Philipp Zabel <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add Innolux G101ICE-L01 panelMichael Olbrich2016-09-161-0/+31
| | | | | | | | | This patch adds support for Innolux Corporation 10.1" G101ICE-L01 WXGA (1280x800) LVDS panel to the simple-panel driver. Signed-off-by: Michael Olbrich <[email protected]> Signed-off-by: Lucas Stach <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add delay timing for Sharp LQ123P1JX31Yakir Yang2016-08-241-0/+5
| | | | | | | | | | | According to page 16 of the Sharp LQ123P1JX31 datasheet, we need to add the missing delay timing. Panel prepare time should be t1 (0.5 to 10 ms) plus t3 (0 to 100 ms), panel enable time should equal to t7 (0 to 50 ms) and panel unprepare time should be t11 (1 to 50 ms) plus t12 (500 ms). Signed-off-by: Yakir Yang <[email protected]> Reviewed-by: Sean Paul <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add support for Starry KR122EA0SRA panelDouglas Anderson2016-07-111-0/+26
| | | | | | | | | | | | | | | | | The Starry KR122EA0SRA is a 12.2", 1920x1200 TFT-LCD panel connected using eDP interfaces. EDID shows: Detailed mode: Clock 147.000 MHz, 263 mm x 164 mm 1920 1936 1952 1984 hborder 0 1200 1215 1217 1235 vborder 0 -hsync -vsync Manufacturer-specified data, tag 15 ASCII string: STARRY ASCII string: KR122EA0SRA Signed-off-by: Douglas Anderson <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add support for Sharp LQ101K1LY04Joshua Clayton2016-07-111-0/+27
| | | | | | | | Add simple-panel support for the Sharp LQ101K1LY04, which is a 10" WXGA (1280x800) LVDS panel. Signed-off-by: Joshua Clayton <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add support for LG LP079QX1-SP0V panelYakir Yang2016-07-111-0/+26
| | | | | | | | The LG LP079QX1-SP0V is an 7.9" QXGA TFT with LED Backlight unit and 32 pins eDP interface. This module supports 1536x2048 mode. Signed-off-by: Yakir Yang <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add support for Sharp LQ123P1JX31 panelYakir Yang2016-07-111-0/+26
| | | | | | | | | | The Sharp LQ123P1JX31 is an 12.3", 2400x1600 TFT-LCD panel connected using eDP interfaces. Signed-off-by: Yakir Yang <[email protected]> Reviewed-by: Doug Anderson <[email protected]> Tested-by: Doug Anderson <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add support for Samsung LSN122DL01-C01 panelYakir Yang2016-07-111-0/+25
| | | | | | | | The Samsung LSN122DL01-C01 is an 12.2" 2560x1600 (WQXGA) TFT-LCD panel connected using eDP interfaces. Signed-off-by: Yakir Yang <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add support for LG LP097QX1-SPA1 panelYakir Yang2016-07-111-0/+25
| | | | | | | | The LG LP097QX1-SPA1 is an 9.7", 2048x1536 (QXGA) TFT-LCD panel connected using eDP interfaces. Signed-off-by: Yakir Yang <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Update backlight state propertyThierry Reding2016-07-111-0/+2
| | | | | | | | Some backlight drivers ignore the power property and instead only use the state property. Fixup the panel driver to set the state property in addition to the power property. Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Remove gratuitous blank lineThierry Reding2016-06-131-1/+0
| | | | | | | | This blank line was introduced in commit c8521969dea2 ("drm/panel: simple: Add support for BOE TV080WUM-NL0"), likely by mistake. Reviewed-by: Daniel Vetter <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Fix a couple of physical sizesThierry Reding2016-06-101-4/+4
| | | | | | | | | Both the Innolux ZJ070NA-01P and Samsung LTN101NT05 were listing the horizontal and vertical resolutions in the size.width and size.height fields, whereas they should contain the physical dimensions of the panel. Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add support for TPK U.S.A. LLC Fusion 7" and 10.1" panelsBhuvanchandra DV2016-05-121-0/+51
| | | | | | | | | Add support for TPK U.S.A. LLC Fusion 7", 10.1" panels to the DRM simple panel driver. Signed-off-by: Bhuvanchandra DV <[email protected]> Acked-by: Rob Herring <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add support for Innolux AT070TN92Riccardo Bortolato2016-05-121-0/+26
| | | | | | | | Add support for the Innolux AT070TN92 panel. Signed-off-by: Riccardo Bortolato <[email protected]> Signed-off-by: Boris Brezillon <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Remove useless drm_mode_set_name()Boris Brezillon2016-05-121-2/+0
| | | | | | | | | drm_display_mode_from_videomode() already calls drm_mode_set_name() on the provided mode. Signed-off-by: Boris Brezillon <[email protected]> [[email protected]: slightly reword commit message] Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Set appropriate mode typeBoris Brezillon2016-05-121-0/+11
| | | | | | | | | | | | | | | | | All modes exposed by simple panels should be tagged as driver defined modes. Moreover, if a panel supports only one mode, this mode is obviously the preferred one. Doing this also fix a problem occurring when a 'video=' parameter is passed on the kernel command line. In some cases the user provided mode will be preferred over the simple panel ones, which might result in unpredictable behavior. Signed-off-by: Boris Brezillon <[email protected]> Reviewed-by: Nicolas Ferre <[email protected]> Tested-by: Nicolas Ferre <[email protected]> [[email protected]: reshuffle some code for consistency] Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add timings for the Olimex LCD-OLinuXino-4.3TSMaxime Ripard2016-05-121-0/+26
| | | | | | | | | | | Add support for the Olimex LCD-OLinuXino-4.3TS panel to the DRM simple panel driver. It is a 480x272 panel connected through a 24-bits RGB interface. Signed-off-by: Maxime Ripard <[email protected]> Acked-by: Rob Herring <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
* drm/panel: simple: Add the 7" DPI panel from AdafruitEric Anholt2016-05-121-0/+37
| | | | | | | | | | | | | This is a basic TFT panel with a 40-pin FPC connector on it. The specification doesn't define timings, but the Adafruit instructions were setting up 800x480 CVT. v2: Add .bus_format and vsync/hsync flags. Signed-off-by: Eric Anholt <[email protected]> Acked-by: Rob Herring <[email protected]> [[email protected]: keep entries properly sorted] Signed-off-by: Thierry Reding <[email protected]>
* drm/fsl-dcu: use bus_flags for pixel clock polarityStefan Agner2016-05-051-1/+2
| | | | | | | | | | | | | | | | The drivers current default configuration drives the pixel data on rising edge of the pixel clock. However, most display sample data on rising edge... This leads to color shift artefacts visible especially at edges. This patch changes the relevant defines to be useful and actually set the bits, and changes pixel clock polarity to drive the pixel data on falling edge by default. The patch also adds an explicit pixel clock polarity flag to the display introduced with the driver (NEC WQVGA "nec,nl4827hc19-05b") using the new bus_flags field to retain the initial behavior. Signed-off-by: Stefan Agner <[email protected]>
* drm: introduce bus_flags in drm_display_infoStefan Agner2016-05-051-0/+2
| | | | | | | | | | | | Introduce bus_flags to specify display bus properties like signal polarities. This is useful for parallel display buses, e.g. to specify the pixel clock or data enable polarity. Suggested-by: Thierry Reding <[email protected]> Acked-by: Philipp Zabel <[email protected]> Acked-by: Manfred Schlaegl <[email protected]> Acked-by: Daniel Vetter <[email protected]> Signed-off-by: Stefan Agner <[email protected]>