Arnd Bergmann
65b7da27d2
drm/tilcdc: avoid 'make W=2' build failure
...
The -Wmissing-field-initializer warning when building with W=2
turns into an error because tilcdc is built with -Werror:
drm/tilcdc/tilcdc_drv.c:431:33: error: missing field 'data' initializer [-Werror,-Wmissing-field-initializers] { "regs", tilcdc_regs_show, 0 },
drm/tilcdc/tilcdc_drv.c:432:33: error: missing field 'data' initializer [-Werror,-Wmissing-field-initializers] { "mm", tilcdc_mm_show, 0 },
Add the missing field initializers to address the warning.
Signed-off-by: Arnd Bergmann <arnd@arndb.de >
Signed-off-by: Jyri Sarha <jsarha@ti.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20201026194110.3817470-1-arnd@kernel.org
2020-10-27 20:36:23 +02:00
Christian König
e34b8feeaa
drm/ttm: merge ttm_dma_tt back into ttm_tt
...
It makes no difference to kmalloc if the structure
is 48 or 64 bytes in size.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Link: https://patchwork.freedesktop.org/patch/396950/
2020-10-26 14:45:42 +01:00
Christian König
230c079fdc
drm/ttm: make num_pages uint32_t
...
We can still allocate 16TiB with that.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Link: https://patchwork.freedesktop.org/patch/396946/
2020-10-26 14:45:30 +01:00
Christian König
05f8d25097
drm/ttm: move swapin out of page alloc backend
...
This is not related to allocating the backing store in any way.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Link: https://patchwork.freedesktop.org/patch/396947/
2020-10-26 14:45:20 +01:00
Christian König
d1cb1f254a
drm/ttm: nuke ttm_tt_set_(un)populated again
...
Neither page allocation backend nor the driver should mess with that.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Madhav Chauhan <madhav.chauhan@amd.com >
Link: https://patchwork.freedesktop.org/patch/396948/
2020-10-26 14:43:35 +01:00
Qinglang Miao
ef52d5853b
drm/komeda: Convert to DEFINE_SHOW_ATTRIBUTE
...
Use DEFINE_SHOW_ATTRIBUTE macro to simplify the code.
Signed-off-by: Qinglang Miao <miaoqinglang@huawei.com >
Acked-by: Liviu Dudau <liviu.dudau@arm.com >
Tested-by: Carsten Haitzler <carsten.haitzler@foss.arm.com >
Signed-off-by: Liviu Dudau <liviu.dudau@arm.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20200917123949.101925-1-miaoqinglang@huawei.com
2020-10-23 13:52:15 +01:00
Dave Airlie
64a87088b6
drm/ttm: remove overlapping memcpy support
...
remove the overlapping memcp support as it's never used.
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20201022031152.1916925-1-airlied@gmail.com
2020-10-23 05:25:23 +10:00
Maxime Ripard
37b254f111
drm/vc4: dsi: Only register our component once a DSI device is attached
...
If the DSI driver is the last to probe, component_add will try to run all
the bind callbacks straight away and return the error code.
However, since we depend on a power domain, we're pretty much guaranteed to
be in that case on the BCM2711, and are just lucky on the previous SoCs
since the v3d also depends on that power domain and is further in the probe
order.
In that case, the DSI host will not stick around in the system: the DSI
bind callback will be executed, will not find any DSI device attached and
will return EPROBE_DEFER, and we will then remove the DSI host and ask to
be probed later on.
But since that host doesn't stick around, DSI devices like the RaspberryPi
touchscreen whose probe is not linked to the DSI host (unlike the usual DSI
devices that will be probed through the call to mipi_dsi_host_register)
cannot attach to the DSI host, and we thus end up in a situation where the
DSI host cannot probe because the panel hasn't probed yet, and the panel
cannot probe because the DSI host hasn't yet.
In order to break this cycle, let's wait until there's a DSI device that
attaches to the DSI host to register the component and allow to progress
further.
Acked-by: Eric Anholt <eric@anholt.net >
Suggested-by: Andrzej Hajda <a.hajda@samsung.com >
Signed-off-by: Maxime Ripard <maxime@cerno.tech >
Link: https://patchwork.freedesktop.org/patch/msgid/20200707101912.571531-1-maxime@cerno.tech
2020-10-22 16:49:43 +02:00
Simon Ser
12767469ed
drm: document that user-space should avoid parsing EDIDs
...
User-space should avoid parsing EDIDs for metadata already exposed via
other KMS interfaces and properties. For instance, user-space should not
try to extract a list of modes from the EDID: the kernel might mutate
the mode list (because of link capabilities or quirks for instance).
Other metadata not exposed by KMS can be parsed by user-space. This
includes for instance monitor identification (make/model/serial) and
supported color-spaces.
v2: add short explanation why user-space shouldn't do this (Brian)
Signed-off-by: Simon Ser <contact@emersion.fr >
Suggested-by: Daniel Vetter <daniel.vetter@intel.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Reviewed-by: Brian Starkey <brian.starkey@arm.com >
Acked-by: Thomas Zimmermann <tzimmermann@suse.de >
Cc: Pekka Paalanen <pekka.paalanen@collabora.co.uk >
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/V_APW3gKRhljvcmT28tGV3JkP7qW9Z7h45I-s2wiJvYhaaveCpYpg3tztZPsZVV2KV1NC7rUx08IUUgCJXzdRrWCsEGB0czq4ZozpdyVFLs=@emersion.fr
2020-10-22 13:49:14 +02:00
Dave Airlie
6a6e5988a2
drm/ttm: replace last move_notify with delete_mem_notify
...
The move notify callback is only used in one place, this should
be removed in the future, but for now just rename it to the use
case which is to notify the driver that the GPU memory is to be
deleted.
Drivers can be cleaned up after this separately.
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20201021044031.1752624-2-airlied@gmail.com
2020-10-22 10:11:49 +10:00
Dave Airlie
439c3b01b8
drm/ttm: ttm_bo_mem_placement doesn't need ctx parameter.
...
Removed unused parameter.
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20201021044031.1752624-3-airlied@gmail.com
2020-10-22 10:09:19 +10:00
Daniel Vetter
8df4ec5134
drm: Give irq_by_busid drm_legacy_ prefix
...
It's the only ioctl handler purely for legacy drivers that didn't have
this yet.
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20201008142927.2819321-1-daniel.vetter@ffwll.ch
2020-10-21 18:05:11 +02:00
Dave Airlie
bfe5e585b4
drm/ttm: move last binding into the drivers.
...
This moves the call to tt binding into the driver move,
and drops the driver callback.
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20201020010319.1692445-8-airlied@gmail.com
2020-10-21 13:46:07 +10:00
Dave Airlie
6d82000329
drm/ttm: drop move notify around move.
...
The drivers now do this in the move callback.
move_notify is still needed in the destroy path.
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20201020010319.1692445-7-airlied@gmail.com
2020-10-21 13:44:28 +10:00
Dave Airlie
28ee846e83
drm/ttm: remove move to new and inline into remainging place.
...
This show the remaining bind callback, which my next series of
patches will aim to remove.
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20201020010319.1692445-6-airlied@gmail.com
2020-10-21 13:44:05 +10:00
Dave Airlie
f227ccc961
drm/ttm: drop unbind callback.
...
The drivers now control this, so drop unbinding.
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20201020010319.1692445-5-airlied@gmail.com
2020-10-21 13:43:54 +10:00
Dave Airlie
29a1d482e4
drm/ttm: add move to system into drivers
...
This moves the to system move into the drivers, and moves all
the unbinds in the move path under driver control
Note: radeon/nouveau already wait so don't duplicate it.
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20201020010319.1692445-4-airlied@gmail.com
2020-10-21 13:43:43 +10:00
Dave Airlie
a2dcf77f75
drm/ttm: minor cleanup to move to system
...
resource free already sets the domain to system, and old_mem
isn't really needed.
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20201020010319.1692445-3-airlied@gmail.com
2020-10-21 13:43:31 +10:00
Dave Airlie
9764c35348
drm/ttm: move some move binds into the drivers
...
This just gives the driver control over some of the bind paths.
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20201020010319.1692445-2-airlied@gmail.com
2020-10-21 13:43:21 +10:00
Matteo Franchin
47170f89f7
drm/fourcc: Add AXBXGXRX106106106106 format
...
Add ABGR format with 10-bit components packed in 64-bit per pixel.
This format can be used to handle
VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 on little-endian
architectures.
Signed-off-by: Matteo Franchin <matteo.franchin@arm.com >
Reviewed-by: Brian Starkey <brian.starkey@arm.com >
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Signed-off-by: Liviu Dudau <liviu.dudau@arm.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20201012164043.23630-1-matteo.franchin@arm.com
2020-10-20 20:51:42 +01:00
Robin Murphy
1c831ade9f
drm/komeda: Drop local dma_parms
...
Since commit 9495b7e92f ("driver core: platform: Initialize dma_parms
for platform devices"), struct platform_device already provides a
dma_parms structure, so we can save allocating another one.
Signed-off-by: Robin Murphy <robin.murphy@arm.com >
Reviewed-by: James Qian Wang <james.qian.wang@arm.com >
[replaced DMA_BIT_MASK(32) with U32_MAX]
Signed-off-by: Liviu Dudau <liviu.dudau@arm.com >
Link: https://patchwork.freedesktop.org/patch/msgid/8de297b5b916628c77b99068fb5aac1a69eed6f5.1599164796.git.robin.murphy@arm.com
2020-10-20 20:41:02 +01:00
Daniel Vetter
ea40d7857d
drm/vkms: fbdev emulation support
...
Hooray for generic fbdev support, making this a oneliner. We just
needed to fix preferred_depth fixed and the vmap support added first.
This is useful for testing fbdev testcases in igt. Right now we only
have a simple one in the fbdev testcases, which passes both info and
mmap subtests.
v2: Augment commit message as suggested by Melissa.
Acked-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Melissa Wen <melissa.srw@gmail.com >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com >
Cc: Melissa Wen <melissa.srw@gmail.com >
Cc: Haneen Mohammed <hamohammed.sa@gmail.com >
Cc: Daniel Vetter <daniel@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20201009232156.3916879-3-daniel.vetter@ffwll.ch
2020-10-20 10:34:40 +02:00
Dave Airlie
23fae9cf97
drm/ttm: drop ttm_bo_move_ttm wrapper
...
The apis to move old/new are in place everywhere so this is no
longer needed.
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20201019071314.1671485-6-airlied@gmail.com
2020-10-20 05:04:19 +10:00
Dave Airlie
c37d951cb4
drm/ttm: add move old to system to drivers.
...
Uninline ttm_bo_move_ttm. Eventually want to unhook the unbind out.
Reviewed-by: Ben Skeggs <bskeggs@redhat.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20201019071314.1671485-5-airlied@gmail.com
2020-10-20 05:04:04 +10:00
Dave Airlie
a07e32bda0
drm/ttm: use new move interface for known system->ttm moves
...
In all 3 drivers there is a case where the driver knows the
bo is in SYSTEM so don't call the api that checks that.
Reviewed-by: Ben Skeggs <bskeggs@redhat.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20201019071314.1671485-4-airlied@gmail.com
2020-10-20 05:04:04 +10:00
Dave Airlie
b8b99c7ddc
drm/ttm: split out the move to system from move ttm code
...
Reviewed-by: Ben Skeggs <bskeggs@redhat.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20201019071314.1671485-3-airlied@gmail.com
2020-10-20 05:03:53 +10:00
Dave Airlie
87ed94238c
drm/ttm: refactor out common code to setup a new tt backed resource
...
This factors out the code to setup non-system tt.
The same code was used twice in the move paths.
Reviewed-by: Ben Skeggs <bskeggs@redhat.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20201019071314.1671485-2-airlied@gmail.com
2020-10-20 04:54:01 +10:00
Neil Armstrong
cf40c66005
drm: panel: add TDO tl070wsh30 panel driver
...
This adds support for the TDO TL070WSH30 TFT-LCD panel module.
The panel has a 1024×600 resolution and uses 24 bit RGB per pixel.
It provides a MIPI DSI interface to the host, a built-in LED backlight
and touch controller.
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com >
Reviewed-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200915121912.4347-5-narmstrong@baylibre.com
2020-10-19 10:08:02 +02:00
Dave Airlie
d1934d2b68
drm/ttm: drop free old node wrapper.
...
This isn't really used anymore, if drivers needs it later,
just add back an inline wrapper.
Reviewed-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Ben Skeggs <bskeggs@redhat.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20200924051845.397177-13-airlied@gmail.com
2020-10-19 15:17:22 +10:00
Tian Tao
5fefd25047
drm/hisilicon: Use the same style of variable type in hibmc_drm_drv
...
Consistently Use the same style of variable type in hibmc_drm_drv.c and
hibmc_drm_drv.h.
Signed-off-by: Tian Tao <tiantao6@hisilicon.com >
Acked-by: Thomas Zimmermann <tzimmermann@suse.de >
Link: https://patchwork.freedesktop.org/patch/msgid/1602808711-65193-3-git-send-email-tiantao6@hisilicon.com
2020-10-18 20:36:27 -04:00
Tian Tao
5b2fabf483
drm/hisilicon: Use the same style of variable type in hibmc_drm_de
...
Consistently Use the same style of variable type in hibmc_drm_de.c.
Signed-off-by: Tian Tao <tiantao6@hisilicon.com >
Acked-by: Thomas Zimmermann <tzimmermann@suse.de >
Link: https://patchwork.freedesktop.org/patch/msgid/1602808711-65193-2-git-send-email-tiantao6@hisilicon.com
2020-10-18 20:36:26 -04:00
Bernard Zhao
14212fe77e
drm/via: reduce no need mutex_lock area
...
In function via_mem_alloc`s error branch, DRM_ERROR is protected
in the mutex_lock(&dev->struct_mutex) area.
>From the code, we see that DRM_ERROR is just an error log print
without any struct element, there is no need to protect this.
Signed-off-by: Bernard Zhao <bernard@vivo.com >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200814083021.8962-1-bernard@vivo.com
2020-10-17 10:10:24 +02:00
Krzysztof Kozlowski
77bb5aaf2b
drm/tve200: Fix handling of platform_get_irq() error
...
platform_get_irq() returns -ERRNO on error. In such case comparison
to 0 would pass the check.
Fixes: 179c02fe90 ("drm/tve200: Add new driver for TVE200")
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org >
Acked-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200827071107.27429-2-krzk@kernel.org
2020-10-17 09:33:01 +02:00
Krzysztof Kozlowski
e2dae672a9
drm/mcde: Fix handling of platform_get_irq() error
...
platform_get_irq() returns -ERRNO on error. In such case comparison
to 0 would pass the check.
Fixes: 5fc537bfd0 ("drm/mcde: Add new driver for ST-Ericsson MCDE")
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org >
Acked-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200827071107.27429-1-krzk@kernel.org
2020-10-17 09:32:56 +02:00
Jagan Teki
7a1f4fa4a6
drm/panel: simple: Add YTC700TLAG-05-201C
...
Add panel timings for YTC700TLAG-05-201C 7" TFT LCD panel from
Yes Optoelectronics Co.,Ltd.
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200904180821.302194-3-jagan@amarulasolutions.com
2020-10-17 09:14:54 +02:00
Jason Yan
4caca3d8f9
drm/panel: st7703: Make jh057n00900_panel_desc static
...
This eliminates the following sparse warning:
drivers/gpu/drm/panel/panel-sitronix-st7703.c:156:26: warning: symbol
'jh057n00900_panel_desc' was not declared. Should it be static?
Reported-by: Hulk Robot <hulkci@huawei.com >
Signed-off-by: Jason Yan <yanaijie@huawei.com >
Reviewed-by: Guido Günther <agx@sigxcpu.org >
[Use static const]
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200912033809.142773-1-yanaijie@huawei.com
2020-10-17 08:13:22 +02:00
Jason Yan
759962b5dc
drm: bridge: adv7511: make adv7511_hdmi_hw_params() static
...
This eliminates the following sparse warning:
drivers/gpu/drm/bridge/adv7511/adv7511_audio.c:58:5: warning: symbol
'adv7511_hdmi_hw_params' was not declared. Should it be static?
Reported-by: Hulk Robot <hulkci@huawei.com >
Signed-off-by: Jason Yan <yanaijie@huawei.com >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200912033826.142923-1-yanaijie@huawei.com
2020-10-17 08:12:00 +02:00
Jason Yan
7d3618fdee
drm/bridge: analogix_dp: make analogix_dp_start_aux_transaction() static
...
This eliminates the following sparse warning:
drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c:527:5: warning: symbol
'analogix_dp_start_aux_transaction' was not declared. Should it be
static?
Reported-by: Hulk Robot <hulkci@huawei.com >
Signed-off-by: Jason Yan <yanaijie@huawei.com >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200912033843.143240-1-yanaijie@huawei.com
2020-10-17 08:11:50 +02:00
Liu Shixin
ba43961b2d
drm/panel: simplify the return expression of rb070d30_panel_enable()
...
Simplify the return expression.
Signed-off-by: Liu Shixin <liushixin2@huawei.com >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200915032623.1772361-1-liushixin2@huawei.com
2020-10-17 08:10:42 +02:00
Xin Ji
8bdfc5dae4
drm/bridge: anx7625: Add anx7625 MIPI DSI/DPI to DP
...
The ANX7625 is an ultra-low power 4K Mobile HD Transmitter designed
for portable device. It converts MIPI DSI/DPI to DisplayPort 1.3 4K.
Signed-off-by: Xin Ji <xji@analogixsemi.com >
Reported-by: kernel test robot <lkp@intel.com >
Reported-by: Dan Carpenter <dan.carpenter@oracle.com >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/528b76c1a4f7b6ea85371bfae4bde389aec4bb24.1600423932.git.xji@analogixsemi.com
2020-10-16 23:35:16 +02:00
Biju Das
9e9b18b681
drm/bridge: lvds-codec: Add support for regulator
...
Add the support for enabling optional regulator that may be used as VCC
source.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com >
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
[Replaced 'error' variable with 'ret']
[Renamed regulator from 'vcc' to 'power']
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com >
Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200922105526.5252-1-laurent.pinchart+renesas@ideasonboard.com
2020-10-16 23:01:55 +02:00
Yannick Fertre
37e6011b3c
drm/panel: rm68200: fix mode to 50fps
...
Compute new timings to get a framerate of 50fps with a pixel clock
@54Mhz.
Signed-off-by: Yannick Fertre <yannick.fertre@st.com >
Tested-by: Philippe Cornu <philippe.cornu@st.com >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200925141618.12097-1-yannick.fertre@st.com
2020-10-16 22:48:40 +02:00
Xu Wang
06dd6f303f
drm/bridge: ti-sn65dsi86: remove redundant null check
...
Because clk_disable_unprepare already checked NULL clock parameter,
so the additional checks are unnecessary, just remove it
Signed-off-by: Xu Wang <vulab@iscas.ac.cn >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200930081859.52431-1-vulab@iscas.ac.cn
2020-10-16 21:04:00 +02:00
Douglas Anderson
137655d1ed
drm/bridge: ti-sn65dsi86: Add retries for link training
...
On some panels hooked up to the ti-sn65dsi86 bridge chip we found that
link training was failing. Specifically, we'd see:
ti_sn65dsi86 2-002d: [drm:ti_sn_bridge_enable] *ERROR* Link training failed, link is off (-5)
The panel was hooked up to a logic analyzer and it was found that, as
part of link training, the bridge chip was writing a 0x1 to DPCD
address 00600h and the panel responded NACK. As can be seen in header
files, the write of 0x1 to DPCD address 0x600h means we were trying to
write the value DP_SET_POWER_D0 to the register DP_SET_POWER. The
panel vendor says that a NACK in this case is not unexpected and means
"not ready, try again".
In testing, we found that this panel would respond with a NACK in
about 1/25 times. Adding the retry logic worked fine and the most
number of tries needed was 3. Just to be safe, we'll add 10 tries
here and we'll add a little blurb to the logs if we ever need more
than 5.
Signed-off-by: Douglas Anderson <dianders@chromium.org >
Tested-By: Steev Klimaszewski <steev@kali.org >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20201002135920.1.I2adbc90b2db127763e2444bd5a4e5bf30e1db8e5@changeid
2020-10-16 20:34:24 +02:00
Guido Günther
787099f867
drm/panel: mantix: Fix panel reset
...
The mantix panel needs two reset lines (RESX and TP_RSTN) deasserted to
output an image. Only deasserting RESX is not enough and the display
will stay blank. Deassert in prepare() and assert in unprepare() to keep
device held in reset when off.
Signed-off-by: Guido Günther <agx@sigxcpu.org >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/ba71a8ab010d263a8058dd4f711e3bcd95877bf2.1602584953.git.agx@sigxcpu.org
2020-10-16 16:24:29 +02:00
Guido Günther
f41b019aa5
drm/panel: mantix: Don't dereference NULL mode
...
Don't dereference mode which was just NULL checked.
Signed-off-by: Guido Günther <agx@sigxcpu.org >
Reported-by: Dan Carpenter <dan.carpenter@oracle.com >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/659158549f3c6cc1c71ceed0943e760e861c1206.1602584953.git.agx@sigxcpu.org
2020-10-16 16:24:25 +02:00
Daniel Vetter
488c888ae1
drm/vkms: Switch to shmem helpers
...
Inspired by a patch by Chris Wilson for vgem. Plus this gives us vmap
at the gem bo level, which we need for generic fbdev emulation.
Luckily shmem also tracks ->vaddr, so we just need to adjust the code
all over a bit to make this fit.
Also wire up handle_to_fd, dunno why that was missing.
v2:
- Drop now unused container_of #define (Melissa)
- Make sure we keep creating cached objects, this is for testing
(Thomas)
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Chris Wilson <chris@chris-wilson.co.uk >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: Maxime Ripard <mripard@kernel.org >
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Cc: David Airlie <airlied@linux.ie >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com >
Cc: Melissa Wen <melissa.srw@gmail.com >
Cc: Haneen Mohammed <hamohammed.sa@gmail.com >
Acked-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Melissa Wen <melissa.srw@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20201013111027.375999-1-daniel.vetter@ffwll.ch
2020-10-15 23:37:58 +02:00
Daniel Vetter
063bc37d46
drm/vkms: Set preferred depth correctly
...
The only thing we support is xrgb8888.
Acked-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Melissa Wen <melissa.srw@gmail.com >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com >
Cc: Melissa Wen <melissa.srw@gmail.com >
Cc: Haneen Mohammed <hamohammed.sa@gmail.com >
Cc: Daniel Vetter <daniel@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20201009232156.3916879-1-daniel.vetter@ffwll.ch
2020-10-15 23:37:05 +02:00
Zwane Mwaikambo
73b62cdb93
drm/dp_aux_dev: check aux_dev before use in drm_dp_aux_dev_get_by_minor()
...
I observed this when unplugging a DP monitor whilst a computer is asleep
and then waking it up. This left DP chardev nodes still being present on
the filesystem and accessing these device nodes caused an oops because
drm_dp_aux_dev_get_by_minor() assumes a device exists if it is opened.
This can also be reproduced by creating a device node with mknod(1) and
issuing an open(2)
[166164.933198] BUG: kernel NULL pointer dereference, address: 0000000000000018
[166164.933202] #PF: supervisor read access in kernel mode
[166164.933204] #PF: error_code(0x0000) - not-present page
[166164.933205] PGD 0 P4D 0
[166164.933208] Oops: 0000 [#1 ] PREEMPT SMP NOPTI
[166164.933211] CPU: 4 PID: 99071 Comm: fwupd Tainted: G W
5.8.0-rc6+ #1
[166164.933213] Hardware name: LENOVO 20RD002VUS/20RD002VUS, BIOS R16ET25W
(1.11 ) 04/21/2020
[166164.933232] RIP: 0010:drm_dp_aux_dev_get_by_minor+0x29/0x70
[drm_kms_helper]
[166164.933234] Code: 00 0f 1f 44 00 00 55 48 89 e5 41 54 41 89 fc 48 c7
c7 60 01 a4 c0 e8 26 ab 30 d7 44 89 e6 48 c7 c7 80 01 a4 c0 e8 47 94 d6 d6
<8b> 50 18 49 89 c4 48 8d 78 18 85 d2 74 33 8d 4a 01 89 d0 f0 0f b1
[166164.933236] RSP: 0018:ffffb7d7c41cbbf0 EFLAGS: 00010246
[166164.933237] RAX: 0000000000000000 RBX: ffff8a90001fe900 RCX: 0000000000000000
[166164.933238] RDX: 0000000000000000 RSI: 0000000000000003 RDI: ffffffffc0a40180
[166164.933239] RBP: ffffb7d7c41cbbf8 R08: 0000000000000000 R09: ffff8a93e157d6d0
[166164.933240] R10: 0000000000000000 R11: ffffffffc0a40188 R12: 0000000000000003
[166164.933241] R13: ffff8a9402200e80 R14: ffff8a90001fe900 R15: 0000000000000000
[166164.933244] FS: 00007f7fb041eb00(0000) GS:ffff8a9411500000(0000)
knlGS:0000000000000000
[166164.933245] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[166164.933246] CR2: 0000000000000018 CR3: 00000000352c2003 CR4: 00000000003606e0
[166164.933247] Call Trace:
[166164.933264] auxdev_open+0x1b/0x40 [drm_kms_helper]
[166164.933278] chrdev_open+0xa7/0x1c0
[166164.933282] ? cdev_put.part.0+0x20/0x20
[166164.933287] do_dentry_open+0x161/0x3c0
[166164.933291] vfs_open+0x2d/0x30
[166164.933297] path_openat+0xb27/0x10e0
[166164.933306] ? atime_needs_update+0x73/0xd0
[166164.933309] do_filp_open+0x91/0x100
[166164.933313] ? __alloc_fd+0xb2/0x150
[166164.933316] do_sys_openat2+0x210/0x2d0
[166164.933318] do_sys_open+0x46/0x80
[166164.933320] __x64_sys_openat+0x20/0x30
[166164.933328] do_syscall_64+0x52/0xc0
[166164.933336] entry_SYSCALL_64_after_hwframe+0x44/0xa9
(gdb) disassemble drm_dp_aux_dev_get_by_minor+0x29
Dump of assembler code for function drm_dp_aux_dev_get_by_minor:
0x0000000000017b10 <+0>: callq 0x17b15 <drm_dp_aux_dev_get_by_minor+5>
0x0000000000017b15 <+5>: push %rbp
0x0000000000017b16 <+6>: mov %rsp,%rbp
0x0000000000017b19 <+9>: push %r12
0x0000000000017b1b <+11>: mov %edi,%r12d
0x0000000000017b1e <+14>: mov $0x0,%rdi
0x0000000000017b25 <+21>: callq 0x17b2a <drm_dp_aux_dev_get_by_minor+26>
0x0000000000017b2a <+26>: mov %r12d,%esi
0x0000000000017b2d <+29>: mov $0x0,%rdi
0x0000000000017b34 <+36>: callq 0x17b39 <drm_dp_aux_dev_get_by_minor+41>
0x0000000000017b39 <+41>: mov 0x18(%rax),%edx <=========
0x0000000000017b3c <+44>: mov %rax,%r12
0x0000000000017b3f <+47>: lea 0x18(%rax),%rdi
0x0000000000017b43 <+51>: test %edx,%edx
0x0000000000017b45 <+53>: je 0x17b7a <drm_dp_aux_dev_get_by_minor+106>
0x0000000000017b47 <+55>: lea 0x1(%rdx),%ecx
0x0000000000017b4a <+58>: mov %edx,%eax
0x0000000000017b4c <+60>: lock cmpxchg %ecx,(%rdi)
0x0000000000017b50 <+64>: jne 0x17b76 <drm_dp_aux_dev_get_by_minor+102>
0x0000000000017b52 <+66>: test %edx,%edx
0x0000000000017b54 <+68>: js 0x17b6d <drm_dp_aux_dev_get_by_minor+93>
0x0000000000017b56 <+70>: test %ecx,%ecx
0x0000000000017b58 <+72>: js 0x17b6d <drm_dp_aux_dev_get_by_minor+93>
0x0000000000017b5a <+74>: mov $0x0,%rdi
0x0000000000017b61 <+81>: callq 0x17b66 <drm_dp_aux_dev_get_by_minor+86>
0x0000000000017b66 <+86>: mov %r12,%rax
0x0000000000017b69 <+89>: pop %r12
0x0000000000017b6b <+91>: pop %rbp
0x0000000000017b6c <+92>: retq
0x0000000000017b6d <+93>: xor %esi,%esi
0x0000000000017b6f <+95>: callq 0x17b74 <drm_dp_aux_dev_get_by_minor+100>
0x0000000000017b74 <+100>: jmp 0x17b5a <drm_dp_aux_dev_get_by_minor+74>
0x0000000000017b76 <+102>: mov %eax,%edx
0x0000000000017b78 <+104>: jmp 0x17b43 <drm_dp_aux_dev_get_by_minor+51>
0x0000000000017b7a <+106>: xor %r12d,%r12d
0x0000000000017b7d <+109>: jmp 0x17b5a <drm_dp_aux_dev_get_by_minor+74>
End of assembler dump.
(gdb) list *drm_dp_aux_dev_get_by_minor+0x29
0x17b39 is in drm_dp_aux_dev_get_by_minor (drivers/gpu/drm/drm_dp_aux_dev.c:65).
60 static struct drm_dp_aux_dev *drm_dp_aux_dev_get_by_minor(unsigned index)
61 {
62 struct drm_dp_aux_dev *aux_dev = NULL;
63
64 mutex_lock(&aux_idr_mutex);
65 aux_dev = idr_find(&aux_idr, index);
66 if (!kref_get_unless_zero(&aux_dev->refcount))
67 aux_dev = NULL;
68 mutex_unlock(&aux_idr_mutex);
69
(gdb) p/x &((struct drm_dp_aux_dev *)(0x0))->refcount
$8 = 0x18
Looking at the caller, checks on the minor are pushed down to
drm_dp_aux_dev_get_by_minor()
static int auxdev_open(struct inode *inode, struct file *file)
{
unsigned int minor = iminor(inode);
struct drm_dp_aux_dev *aux_dev;
aux_dev = drm_dp_aux_dev_get_by_minor(minor); <====
if (!aux_dev)
return -ENODEV;
file->private_data = aux_dev;
return 0;
}
Fixes: e94cb37b34 ("drm/dp: Add a drm_aux-dev module for reading/writing dpcd registers.")
Cc: <stable@vger.kernel.org > # v4.6+
Signed-off-by: Zwane Mwaikambo <zwane@yosper.io >
Reviewed-by: Lyude Paul <lyude@redhat.com >
[added Cc to stable]
Signed-off-by: Lyude Paul <lyude@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/alpine.DEB.2.21.2010122231070.38717@montezuma.home
2020-10-15 13:58:54 -04:00
Christian König
ce65b87400
drm/ttm: nuke caching placement flags
...
Changing the caching on the fly never really worked
flawlessly.
So stop this completely and just let drivers specific the
desired caching in the tt or bus object.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com >
Link: https://patchwork.freedesktop.org/patch/394256/
2020-10-15 12:51:35 +02:00