mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 06:01:57 +00:00
drm-misc-next for v6.12:
UAPI Changes: virtio: - Define DRM capset Cross-subsystem Changes: dma-buf: - heaps: Clean up documentation printk: - Pass description to kmsg_dump() Core Changes: CI: - Update IGT tests - Point upstream repo to GitLab instance modesetting: - Introduce Power Saving Policy property for connectors - Add might_fault() to drm_modeset_lock priming - Add dynamic per-crtc vblank configuration support panic: - Avoid build-time interference with framebuffer console docs: - Document Colorspace property scheduler: - Remove full_recover from drm_sched_start TTM: - Make LRU walk restartable after dropping locks - Allow direct reclaim to allocate local memory Driver Changes: amdgpu: - Support Power Saving Policy connector property ast: - astdp: Support AST2600 with VGA; Clean up HPD bridge: - Silence error message on -EPROBE_DEFER - analogix: Clean aup - bridge-connector: Fix double free - lt6505: Disable interrupt when powered off - tc358767: Make default DP port preemphasis configurable gma500: - Update i2c terminology ivpu: - Add MODULE_FIRMWARE() lcdif: - Fix pixel clock loongson: - Use GEM refcount over TTM's mgag200: - Improve BMC handling - Support VBLANK intterupts nouveau: - Refactor and clean up internals - Use GEM refcount over TTM's panel: - Shutdown fixes plus documentation - Refactor several drivers for better code sharing - boe-th101mb31ig002: Support for starry-er88577 MIPI-DSI panel plus DT; Fix porch parameter - edp: Support AOU B116XTN02.3, AUO B116XAN06.1, AOU B116XAT04.1, BOE NV140WUM-N41, BOE NV133WUM-N63, BOE NV116WHM-A4D, CMN N116BCA-EA2, CMN N116BCP-EA2, CSW MNB601LS1-4 - himax-hx8394: Support Microchip AC40T08A MIPI Display panel plus DT - ilitek-ili9806e: Support Densitron DMT028VGHMCMI-1D TFT plus DT - jd9365da: Support Melfas lmfbx101117480 MIPI-DSI panel plus DT; Refactor for code sharing sti: - Fix module owner stm: - Avoid UAF wih managed plane and CRTC helpers - Fix module owner - Fix error handling in probe - Depend on COMMON_CLK - ltdc: Fix transparency after disabling plane; Remove unused interrupt tegra: - Call drm_atomic_helper_shutdown() v3d: - Clean up perfmon vkms: - Clean up -----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEchf7rIzpz2NEoWjlaA3BHVMLeiMFAmareygACgkQaA3BHVML eiO2vwf9FirbMiq4lfHzgcbNIU1dTUtjRAZjrlwGmqk5cb9lUshAMCMBMOEQBDdg XMQQj/RMBvRUuxzsPGk78ObSz5FBaBLgKwFprer0V6uslQaJxj4YRsnkp0l2n+0k +ebhfo2rUgZOdgNOkXH326w9UhqiydIa7GaA2aq1vUzXKFDfvGXtSN75BMlEWlKP rTft56AiwjwcKu7zYFHGlFUMSNpKAQy7lnV3+dBXAfFNHu4zVNoI/yWGEOdR7eVo WhiEcpvismsOh+BfUvMNPP3RKwjXHdwMlJYb+v9XGgH27hqc50lSceWydHtoJTto DTXF9WQhJ+/GQR9ZGmBjos9GVbECDA== =L/1W -----END PGP SIGNATURE----- Merge tag 'drm-misc-next-2024-08-01' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next drm-misc-next for v6.12: UAPI Changes: virtio: - Define DRM capset Cross-subsystem Changes: dma-buf: - heaps: Clean up documentation printk: - Pass description to kmsg_dump() Core Changes: CI: - Update IGT tests - Point upstream repo to GitLab instance modesetting: - Introduce Power Saving Policy property for connectors - Add might_fault() to drm_modeset_lock priming - Add dynamic per-crtc vblank configuration support panic: - Avoid build-time interference with framebuffer console docs: - Document Colorspace property scheduler: - Remove full_recover from drm_sched_start TTM: - Make LRU walk restartable after dropping locks - Allow direct reclaim to allocate local memory Driver Changes: amdgpu: - Support Power Saving Policy connector property ast: - astdp: Support AST2600 with VGA; Clean up HPD bridge: - Silence error message on -EPROBE_DEFER - analogix: Clean aup - bridge-connector: Fix double free - lt6505: Disable interrupt when powered off - tc358767: Make default DP port preemphasis configurable gma500: - Update i2c terminology ivpu: - Add MODULE_FIRMWARE() lcdif: - Fix pixel clock loongson: - Use GEM refcount over TTM's mgag200: - Improve BMC handling - Support VBLANK intterupts nouveau: - Refactor and clean up internals - Use GEM refcount over TTM's panel: - Shutdown fixes plus documentation - Refactor several drivers for better code sharing - boe-th101mb31ig002: Support for starry-er88577 MIPI-DSI panel plus DT; Fix porch parameter - edp: Support AOU B116XTN02.3, AUO B116XAN06.1, AOU B116XAT04.1, BOE NV140WUM-N41, BOE NV133WUM-N63, BOE NV116WHM-A4D, CMN N116BCA-EA2, CMN N116BCP-EA2, CSW MNB601LS1-4 - himax-hx8394: Support Microchip AC40T08A MIPI Display panel plus DT - ilitek-ili9806e: Support Densitron DMT028VGHMCMI-1D TFT plus DT - jd9365da: Support Melfas lmfbx101117480 MIPI-DSI panel plus DT; Refactor for code sharing sti: - Fix module owner stm: - Avoid UAF wih managed plane and CRTC helpers - Fix module owner - Fix error handling in probe - Depend on COMMON_CLK - ltdc: Fix transparency after disabling plane; Remove unused interrupt tegra: - Call drm_atomic_helper_shutdown() v3d: - Clean up perfmon vkms: - Clean up Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> From: Thomas Zimmermann <tzimmermann@suse.de> Link: https://patchwork.freedesktop.org/patch/msgid/20240801121406.GA102996@linux.fritz.box
This commit is contained in:
commit
91dae758bd
@ -147,12 +147,6 @@ DRM_IOCTL_QAIC_PERF_STATS_BO
|
||||
recent execution of a BO. This allows userspace to construct an end to end
|
||||
timeline of the BO processing for a performance analysis.
|
||||
|
||||
DRM_IOCTL_QAIC_PART_DEV
|
||||
This IOCTL allows userspace to request a duplicate "shadow device". This extra
|
||||
accelN device is associated with a specific partition of resources on the
|
||||
AIC100 device and can be used for limiting a process to some subset of
|
||||
resources.
|
||||
|
||||
DRM_IOCTL_QAIC_DETACH_SLICE_BO
|
||||
This IOCTL allows userspace to remove the slicing information from a BO that
|
||||
was originally provided by a call to DRM_IOCTL_QAIC_ATTACH_SLICE_BO. This
|
||||
|
@ -92,12 +92,31 @@ properties:
|
||||
reference to a valid DPI output or input endpoint node.
|
||||
|
||||
port@2:
|
||||
$ref: /schemas/graph.yaml#/properties/port
|
||||
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||
unevaluatedProperties: false
|
||||
description: |
|
||||
eDP/DP output port. The remote endpoint phandle should be a
|
||||
reference to a valid eDP panel input endpoint node. This port is
|
||||
optional, treated as DP panel if not defined
|
||||
|
||||
properties:
|
||||
endpoint:
|
||||
$ref: /schemas/media/video-interfaces.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
toshiba,pre-emphasis:
|
||||
description:
|
||||
Display port output Pre-Emphasis settings for both DP lanes.
|
||||
$ref: /schemas/types.yaml#/definitions/uint8-array
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
items:
|
||||
enum:
|
||||
- 0 # No pre-emphasis
|
||||
- 1 # 3.5dB pre-emphasis
|
||||
- 2 # 6dB pre-emphasis
|
||||
|
||||
oneOf:
|
||||
- required:
|
||||
- port@0
|
||||
|
@ -9,20 +9,20 @@ title: BOE TH101MB31IG002-28A WXGA DSI Display Panel
|
||||
maintainers:
|
||||
- Manuel Traut <manut@mecka.net>
|
||||
|
||||
allOf:
|
||||
- $ref: panel-common.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
# BOE TH101MB31IG002-28A 10.1" WXGA TFT LCD panel
|
||||
- boe,th101mb31ig002-28a
|
||||
# The Starry-er88577 is a 10.1" WXGA TFT-LCD panel
|
||||
- starry,er88577
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
backlight: true
|
||||
enable-gpios: true
|
||||
reset-gpios: true
|
||||
power-supply: true
|
||||
port: true
|
||||
rotation: true
|
||||
@ -33,6 +33,20 @@ required:
|
||||
- enable-gpios
|
||||
- power-supply
|
||||
|
||||
allOf:
|
||||
- $ref: panel-common.yaml#
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
# The Starry-er88577 is a 10.1" WXGA TFT-LCD panel
|
||||
const: starry,er88577
|
||||
then:
|
||||
properties:
|
||||
reset-gpios: false
|
||||
else:
|
||||
required:
|
||||
- reset-gpios
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
@ -47,6 +61,7 @@ examples:
|
||||
reg = <0>;
|
||||
backlight = <&backlight_lcd0>;
|
||||
enable-gpios = <&gpio 45 GPIO_ACTIVE_HIGH>;
|
||||
reset-gpios = <&gpio 55 GPIO_ACTIVE_LOW>;
|
||||
rotation = <90>;
|
||||
power-supply = <&vcc_3v3>;
|
||||
port {
|
||||
|
@ -15,14 +15,12 @@ description:
|
||||
such as the HannStar HSD060BHW4 720x1440 TFT LCD panel connected with
|
||||
a MIPI-DSI video interface.
|
||||
|
||||
allOf:
|
||||
- $ref: panel-common.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- hannstar,hsd060bhw4
|
||||
- microchip,ac40t08a-mipi-panel
|
||||
- powkiddy,x55-panel
|
||||
- const: himax,hx8394
|
||||
|
||||
@ -46,7 +44,6 @@ properties:
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- reset-gpios
|
||||
- backlight
|
||||
- port
|
||||
- vcc-supply
|
||||
@ -54,6 +51,18 @@ required:
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
allOf:
|
||||
- $ref: panel-common.yaml#
|
||||
- if:
|
||||
not:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- microchip,ac40t08a-mipi-panel
|
||||
then:
|
||||
required:
|
||||
- reset-gpios
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
@ -16,6 +16,7 @@ properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- densitron,dmt028vghmcmi-1d
|
||||
- ortustech,com35h3p70ulc
|
||||
- const: ilitek,ili9806e
|
||||
|
||||
|
@ -18,6 +18,7 @@ properties:
|
||||
- enum:
|
||||
- chongzhou,cz101b4001
|
||||
- kingdisplay,kd101ne3-40ti
|
||||
- melfas,lmfbx101117480
|
||||
- radxa,display-10hd-ad001
|
||||
- radxa,display-8hd-ad002
|
||||
- const: jadard,jd9365da-h3
|
||||
|
@ -475,25 +475,22 @@ Remove disable/unprepare in remove/shutdown in panel-simple and panel-edp
|
||||
As of commit d2aacaf07395 ("drm/panel: Check for already prepared/enabled in
|
||||
drm_panel"), we have a check in the drm_panel core to make sure nobody
|
||||
double-calls prepare/enable/disable/unprepare. Eventually that should probably
|
||||
be turned into a WARN_ON() or somehow made louder, but right now we actually
|
||||
expect it to trigger and so we don't want it to be too loud.
|
||||
be turned into a WARN_ON() or somehow made louder.
|
||||
|
||||
Specifically, that warning will trigger for panel-edp and panel-simple at
|
||||
shutdown time because those panels hardcode a call to drm_panel_disable()
|
||||
and drm_panel_unprepare() at shutdown and remove time that they call regardless
|
||||
of panel state. On systems with a properly coded DRM modeset driver that
|
||||
calls drm_atomic_helper_shutdown() this is pretty much guaranteed to cause
|
||||
the warning to fire.
|
||||
At the moment, we expect that we may still encounter the warnings in the
|
||||
drm_panel core when using panel-simple and panel-edp. Since those panel
|
||||
drivers are used with a lot of different DRM modeset drivers they still
|
||||
make an extra effort to disable/unprepare the panel themsevles at shutdown
|
||||
time. Specifically we could still encounter those warnings if the panel
|
||||
driver gets shutdown() _before_ the DRM modeset driver and the DRM modeset
|
||||
driver properly calls drm_atomic_helper_shutdown() in its own shutdown()
|
||||
callback. Warnings could be avoided in such a case by using something like
|
||||
device links to ensure that the panel gets shutdown() after the DRM modeset
|
||||
driver.
|
||||
|
||||
Unfortunately we can't safely remove the calls in panel-edp and panel-simple
|
||||
until we're sure that all DRM modeset drivers that are used with those panels
|
||||
properly call drm_atomic_helper_shutdown(). This TODO item is to validate
|
||||
that all DRM modeset drivers used with panel-edp and panel-simple properly
|
||||
call drm_atomic_helper_shutdown() and then remove the calls to
|
||||
disable/unprepare from those panels. Alternatively, this TODO item could be
|
||||
removed by convincing stakeholders that those calls are fine and downgrading
|
||||
the error message in drm_panel_disable() / drm_panel_unprepare() to a
|
||||
debug-level message.
|
||||
Once all DRM modeset drivers are known to shutdown properly, the extra
|
||||
calls to disable/unprepare in remove/shutdown in panel-simple and panel-edp
|
||||
should be removed and this TODO item marked complete.
|
||||
|
||||
Contact: Douglas Anderson <dianders@chromium.org>
|
||||
|
||||
|
@ -1013,6 +1013,13 @@ S: Supported
|
||||
T: git https://gitlab.freedesktop.org/agd5f/linux.git
|
||||
F: drivers/gpu/drm/amd/display/
|
||||
|
||||
AMD DISPLAY CORE - DML
|
||||
M: Chaitanya Dhere <chaitanya.dhere@amd.com>
|
||||
M: Jun Lei <jun.lei@amd.com>
|
||||
S: Supported
|
||||
F: drivers/gpu/drm/amd/display/dc/dml/
|
||||
F: drivers/gpu/drm/amd/display/dc/dml2/
|
||||
|
||||
AMD FAM15H PROCESSOR POWER MONITORING DRIVER
|
||||
M: Huang Rui <ray.huang@amd.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
@ -6660,6 +6667,7 @@ F: drivers/dma-buf/dma-heap.c
|
||||
F: drivers/dma-buf/heaps/*
|
||||
F: include/linux/dma-heap.h
|
||||
F: include/uapi/linux/dma-heap.h
|
||||
F: tools/testing/selftests/dmabuf-heaps/
|
||||
|
||||
DMC FREQUENCY DRIVER FOR SAMSUNG EXYNOS5422
|
||||
M: Lukasz Luba <lukasz.luba@arm.com>
|
||||
|
@ -73,7 +73,7 @@ static const char *nvram_os_partitions[] = {
|
||||
};
|
||||
|
||||
static void oops_to_nvram(struct kmsg_dumper *dumper,
|
||||
enum kmsg_dump_reason reason);
|
||||
struct kmsg_dump_detail *detail);
|
||||
|
||||
static struct kmsg_dumper nvram_kmsg_dumper = {
|
||||
.dump = oops_to_nvram
|
||||
@ -643,7 +643,7 @@ void __init nvram_init_oops_partition(int rtas_partition_exists)
|
||||
* partition. If that's too much, go back and capture uncompressed text.
|
||||
*/
|
||||
static void oops_to_nvram(struct kmsg_dumper *dumper,
|
||||
enum kmsg_dump_reason reason)
|
||||
struct kmsg_dump_detail *detail)
|
||||
{
|
||||
struct oops_log_info *oops_hdr = (struct oops_log_info *)oops_buf;
|
||||
static unsigned int oops_count = 0;
|
||||
@ -655,7 +655,7 @@ static void oops_to_nvram(struct kmsg_dumper *dumper,
|
||||
unsigned int err_type = ERR_TYPE_KERNEL_PANIC_GZ;
|
||||
int rc = -1;
|
||||
|
||||
switch (reason) {
|
||||
switch (detail->reason) {
|
||||
case KMSG_DUMP_SHUTDOWN:
|
||||
/* These are almost always orderly shutdowns. */
|
||||
return;
|
||||
@ -671,7 +671,7 @@ static void oops_to_nvram(struct kmsg_dumper *dumper,
|
||||
break;
|
||||
default:
|
||||
pr_err("%s: ignoring unrecognized KMSG_DUMP_* reason %d\n",
|
||||
__func__, (int) reason);
|
||||
__func__, (int) detail->reason);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -20,13 +20,13 @@
|
||||
* message, it just ensures that OPAL completely flushes the console buffer.
|
||||
*/
|
||||
static void kmsg_dump_opal_console_flush(struct kmsg_dumper *dumper,
|
||||
enum kmsg_dump_reason reason)
|
||||
struct kmsg_dump_detail *detail)
|
||||
{
|
||||
/*
|
||||
* Outside of a panic context the pollers will continue to run,
|
||||
* so we don't need to do any special flushing.
|
||||
*/
|
||||
if (reason != KMSG_DUMP_PANIC)
|
||||
if (detail->reason != KMSG_DUMP_PANIC)
|
||||
return;
|
||||
|
||||
opal_flush_console(0);
|
||||
|
@ -8,7 +8,7 @@
|
||||
#include <os.h>
|
||||
|
||||
static void kmsg_dumper_stdout(struct kmsg_dumper *dumper,
|
||||
enum kmsg_dump_reason reason)
|
||||
struct kmsg_dump_detail *detail)
|
||||
{
|
||||
static struct kmsg_dump_iter iter;
|
||||
static DEFINE_SPINLOCK(lock);
|
||||
|
@ -60,6 +60,10 @@ static struct {
|
||||
{ IVPU_HW_IP_40XX, "intel/vpu/vpu_40xx_v0.0.bin" },
|
||||
};
|
||||
|
||||
/* Production fw_names from the table above */
|
||||
MODULE_FIRMWARE("intel/vpu/vpu_37xx_v0.0.bin");
|
||||
MODULE_FIRMWARE("intel/vpu/vpu_40xx_v0.0.bin");
|
||||
|
||||
static int ivpu_fw_request(struct ivpu_device *vdev)
|
||||
{
|
||||
int ret = -ENOENT;
|
||||
|
@ -7,17 +7,15 @@
|
||||
*/
|
||||
|
||||
#include <linux/cdev.h>
|
||||
#include <linux/debugfs.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/dma-buf.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/xarray.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/nospec.h>
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/syscalls.h>
|
||||
#include <linux/dma-heap.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/nospec.h>
|
||||
#include <linux/syscalls.h>
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/xarray.h>
|
||||
#include <uapi/linux/dma-heap.h>
|
||||
|
||||
#define DEVNAME "dma_heap"
|
||||
@ -28,9 +26,10 @@
|
||||
* struct dma_heap - represents a dmabuf heap in the system
|
||||
* @name: used for debugging/device-node name
|
||||
* @ops: ops struct for this heap
|
||||
* @heap_devt heap device node
|
||||
* @list list head connecting to list of heaps
|
||||
* @heap_cdev heap char device
|
||||
* @priv: private data for this heap
|
||||
* @heap_devt: heap device node
|
||||
* @list: list head connecting to list of heaps
|
||||
* @heap_cdev: heap char device
|
||||
*
|
||||
* Represents a heap of memory from which buffers can be made.
|
||||
*/
|
||||
@ -193,11 +192,11 @@ static const struct file_operations dma_heap_fops = {
|
||||
};
|
||||
|
||||
/**
|
||||
* dma_heap_get_drvdata() - get per-subdriver data for the heap
|
||||
* dma_heap_get_drvdata - get per-heap driver data
|
||||
* @heap: DMA-Heap to retrieve private data for
|
||||
*
|
||||
* Returns:
|
||||
* The per-subdriver data for the heap.
|
||||
* The per-heap data for the heap.
|
||||
*/
|
||||
void *dma_heap_get_drvdata(struct dma_heap *heap)
|
||||
{
|
||||
@ -205,8 +204,8 @@ void *dma_heap_get_drvdata(struct dma_heap *heap)
|
||||
}
|
||||
|
||||
/**
|
||||
* dma_heap_get_name() - get heap name
|
||||
* @heap: DMA-Heap to retrieve private data for
|
||||
* dma_heap_get_name - get heap name
|
||||
* @heap: DMA-Heap to retrieve the name of
|
||||
*
|
||||
* Returns:
|
||||
* The char* for the heap name.
|
||||
@ -216,6 +215,10 @@ const char *dma_heap_get_name(struct dma_heap *heap)
|
||||
return heap->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* dma_heap_add - adds a heap to dmabuf heaps
|
||||
* @exp_info: information needed to register this heap
|
||||
*/
|
||||
struct dma_heap *dma_heap_add(const struct dma_heap_export_info *exp_info)
|
||||
{
|
||||
struct dma_heap *heap, *h, *err_ret;
|
||||
|
@ -107,7 +107,7 @@ config DRM_KMS_HELPER
|
||||
|
||||
config DRM_PANIC
|
||||
bool "Display a user-friendly message when a kernel panic occurs"
|
||||
depends on DRM && !(FRAMEBUFFER_CONSOLE && VT_CONSOLE)
|
||||
depends on DRM
|
||||
select FONT_SUPPORT
|
||||
help
|
||||
Enable a drm panic handler, which will display a user-friendly message
|
||||
|
@ -300,7 +300,7 @@ static int suspend_resume_compute_scheduler(struct amdgpu_device *adev, bool sus
|
||||
if (r)
|
||||
goto out;
|
||||
} else {
|
||||
drm_sched_start(&ring->sched, false);
|
||||
drm_sched_start(&ring->sched);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5879,7 +5879,7 @@ skip_hw_reset:
|
||||
if (!amdgpu_ring_sched_ready(ring))
|
||||
continue;
|
||||
|
||||
drm_sched_start(&ring->sched, true);
|
||||
drm_sched_start(&ring->sched);
|
||||
}
|
||||
|
||||
if (!drm_drv_uses_atomic_modeset(adev_to_drm(tmp_adev)) && !job_signaled)
|
||||
@ -6374,7 +6374,7 @@ void amdgpu_pci_resume(struct pci_dev *pdev)
|
||||
if (!amdgpu_ring_sched_ready(ring))
|
||||
continue;
|
||||
|
||||
drm_sched_start(&ring->sched, true);
|
||||
drm_sched_start(&ring->sched);
|
||||
}
|
||||
|
||||
amdgpu_device_unset_mp1_state(adev);
|
||||
|
@ -1407,6 +1407,10 @@ int amdgpu_display_modeset_create_props(struct amdgpu_device *adev)
|
||||
"dither",
|
||||
amdgpu_dither_enum_list, sz);
|
||||
|
||||
if (adev->dc_enabled)
|
||||
drm_mode_create_power_saving_policy_property(adev_to_drm(adev),
|
||||
DRM_MODE_POWER_SAVING_POLICY_ALL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -2421,6 +2421,8 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm,
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
ttm_lru_bulk_move_init(&vm->lru_bulk_move);
|
||||
|
||||
vm->is_compute_context = false;
|
||||
|
||||
vm->use_cpu_for_update = !!(adev->vm_manager.vm_update_mode &
|
||||
@ -2485,6 +2487,7 @@ error_free_root:
|
||||
error_free_delayed:
|
||||
dma_fence_put(vm->last_tlb_flush);
|
||||
dma_fence_put(vm->last_unlocked);
|
||||
ttm_lru_bulk_move_fini(&adev->mman.bdev, &vm->lru_bulk_move);
|
||||
amdgpu_vm_fini_entities(vm);
|
||||
|
||||
return r;
|
||||
@ -2641,6 +2644,7 @@ void amdgpu_vm_fini(struct amdgpu_device *adev, struct amdgpu_vm *vm)
|
||||
}
|
||||
}
|
||||
|
||||
ttm_lru_bulk_move_fini(&adev->mman.bdev, &vm->lru_bulk_move);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -6725,6 +6725,14 @@ int amdgpu_dm_connector_atomic_set_property(struct drm_connector *connector,
|
||||
} else if (property == adev->mode_info.underscan_property) {
|
||||
dm_new_state->underscan_enable = val;
|
||||
ret = 0;
|
||||
} else if (property == dev->mode_config.power_saving_policy) {
|
||||
dm_new_state->abm_forbidden = val & DRM_MODE_REQUIRE_COLOR_ACCURACY;
|
||||
dm_new_state->abm_level = (dm_new_state->abm_forbidden ||
|
||||
!dm_old_state->abm_level) ?
|
||||
ABM_LEVEL_IMMEDIATE_DISABLE :
|
||||
dm_old_state->abm_level;
|
||||
dm_new_state->psr_forbidden = val & DRM_MODE_REQUIRE_LOW_LATENCY;
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
return ret;
|
||||
@ -6767,6 +6775,13 @@ int amdgpu_dm_connector_atomic_get_property(struct drm_connector *connector,
|
||||
} else if (property == adev->mode_info.underscan_property) {
|
||||
*val = dm_state->underscan_enable;
|
||||
ret = 0;
|
||||
} else if (property == dev->mode_config.power_saving_policy) {
|
||||
*val = 0;
|
||||
if (dm_state->psr_forbidden)
|
||||
*val |= DRM_MODE_REQUIRE_LOW_LATENCY;
|
||||
if (dm_state->abm_forbidden)
|
||||
*val |= DRM_MODE_REQUIRE_COLOR_ACCURACY;
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
return ret;
|
||||
@ -6793,9 +6808,12 @@ static ssize_t panel_power_savings_show(struct device *device,
|
||||
u8 val;
|
||||
|
||||
drm_modeset_lock(&dev->mode_config.connection_mutex, NULL);
|
||||
val = to_dm_connector_state(connector->state)->abm_level ==
|
||||
ABM_LEVEL_IMMEDIATE_DISABLE ? 0 :
|
||||
to_dm_connector_state(connector->state)->abm_level;
|
||||
if (to_dm_connector_state(connector->state)->abm_forbidden)
|
||||
val = 0;
|
||||
else
|
||||
val = to_dm_connector_state(connector->state)->abm_level ==
|
||||
ABM_LEVEL_IMMEDIATE_DISABLE ? 0 :
|
||||
to_dm_connector_state(connector->state)->abm_level;
|
||||
drm_modeset_unlock(&dev->mode_config.connection_mutex);
|
||||
|
||||
return sysfs_emit(buf, "%u\n", val);
|
||||
@ -6819,10 +6837,16 @@ static ssize_t panel_power_savings_store(struct device *device,
|
||||
return -EINVAL;
|
||||
|
||||
drm_modeset_lock(&dev->mode_config.connection_mutex, NULL);
|
||||
to_dm_connector_state(connector->state)->abm_level = val ?:
|
||||
ABM_LEVEL_IMMEDIATE_DISABLE;
|
||||
if (to_dm_connector_state(connector->state)->abm_forbidden)
|
||||
ret = -EBUSY;
|
||||
else
|
||||
to_dm_connector_state(connector->state)->abm_level = val ?:
|
||||
ABM_LEVEL_IMMEDIATE_DISABLE;
|
||||
drm_modeset_unlock(&dev->mode_config.connection_mutex);
|
||||
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
drm_kms_helper_hotplug_event(dev);
|
||||
|
||||
return count;
|
||||
@ -8016,6 +8040,14 @@ void amdgpu_dm_connector_init_helper(struct amdgpu_display_manager *dm,
|
||||
aconnector->base.state->max_bpc = 16;
|
||||
aconnector->base.state->max_requested_bpc = aconnector->base.state->max_bpc;
|
||||
|
||||
if (connector_type == DRM_MODE_CONNECTOR_eDP &&
|
||||
(dc_is_dmcu_initialized(adev->dm.dc) ||
|
||||
adev->dm.dc->ctx->dmub_srv)) {
|
||||
drm_object_attach_property(&aconnector->base.base,
|
||||
dm->ddev->mode_config.power_saving_policy,
|
||||
0);
|
||||
}
|
||||
|
||||
if (connector_type == DRM_MODE_CONNECTOR_HDMIA) {
|
||||
/* Content Type is currently only implemented for HDMI. */
|
||||
drm_connector_attach_content_type_property(&aconnector->base);
|
||||
@ -9716,6 +9748,7 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)
|
||||
for_each_oldnew_connector_in_state(state, connector, old_con_state, new_con_state, i) {
|
||||
struct dm_connector_state *dm_new_con_state = to_dm_connector_state(new_con_state);
|
||||
struct dm_connector_state *dm_old_con_state = to_dm_connector_state(old_con_state);
|
||||
struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector);
|
||||
struct amdgpu_crtc *acrtc = to_amdgpu_crtc(dm_new_con_state->base.crtc);
|
||||
struct dc_surface_update *dummy_updates;
|
||||
struct dc_stream_update stream_update;
|
||||
@ -9769,6 +9802,15 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)
|
||||
stream_update.hdr_static_metadata = &hdr_packet;
|
||||
}
|
||||
|
||||
aconnector->disallow_edp_enter_psr = dm_new_con_state->psr_forbidden;
|
||||
|
||||
/* immediately disable PSR if disallowed */
|
||||
if (aconnector->disallow_edp_enter_psr) {
|
||||
mutex_lock(&dm->dc_lock);
|
||||
amdgpu_dm_psr_disable(dm_new_crtc_state->stream);
|
||||
mutex_unlock(&dm->dc_lock);
|
||||
}
|
||||
|
||||
status = dc_stream_get_status(dm_new_crtc_state->stream);
|
||||
|
||||
if (WARN_ON(!status))
|
||||
|
@ -915,6 +915,8 @@ struct dm_connector_state {
|
||||
bool underscan_enable;
|
||||
bool freesync_capable;
|
||||
bool update_hdcp;
|
||||
bool abm_forbidden;
|
||||
bool psr_forbidden;
|
||||
uint8_t abm_level;
|
||||
int vcpi_slots;
|
||||
uint64_t pbn;
|
||||
|
@ -9,11 +9,7 @@
|
||||
|
||||
bool ast_astdp_is_connected(struct ast_device *ast)
|
||||
{
|
||||
if (!ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xD1, ASTDP_MCU_FW_EXECUTING))
|
||||
return false;
|
||||
if (!ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF, ASTDP_HPD))
|
||||
return false;
|
||||
if (!ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDC, ASTDP_LINK_SUCCESS))
|
||||
if (!ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF, AST_IO_VGACRDF_HPD))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
@ -21,70 +17,55 @@ bool ast_astdp_is_connected(struct ast_device *ast)
|
||||
int ast_astdp_read_edid(struct drm_device *dev, u8 *ediddata)
|
||||
{
|
||||
struct ast_device *ast = to_ast_device(dev);
|
||||
u8 i = 0, j = 0;
|
||||
int ret = 0;
|
||||
u8 i;
|
||||
|
||||
/*
|
||||
* CRD1[b5]: DP MCU FW is executing
|
||||
* CRDC[b0]: DP link success
|
||||
* CRDF[b0]: DP HPD
|
||||
* CRE5[b0]: Host reading EDID process is done
|
||||
*/
|
||||
if (!(ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xD1, ASTDP_MCU_FW_EXECUTING) &&
|
||||
ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDC, ASTDP_LINK_SUCCESS) &&
|
||||
ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF, ASTDP_HPD) &&
|
||||
ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xE5,
|
||||
ASTDP_HOST_EDID_READ_DONE_MASK))) {
|
||||
goto err_astdp_edid_not_ready;
|
||||
}
|
||||
|
||||
ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xE5, (u8) ~ASTDP_HOST_EDID_READ_DONE_MASK,
|
||||
0x00);
|
||||
/* Start reading EDID data */
|
||||
ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xe5, (u8)~AST_IO_VGACRE5_EDID_READ_DONE, 0x00);
|
||||
|
||||
for (i = 0; i < 32; i++) {
|
||||
unsigned int j;
|
||||
|
||||
/*
|
||||
* CRE4[7:0]: Read-Pointer for EDID (Unit: 4bytes); valid range: 0~64
|
||||
*/
|
||||
ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xE4,
|
||||
ASTDP_AND_CLEAR_MASK, (u8)i);
|
||||
j = 0;
|
||||
ast_set_index_reg(ast, AST_IO_VGACRI, 0xe4, i);
|
||||
|
||||
/*
|
||||
* CRD7[b0]: valid flag for EDID
|
||||
* CRD6[b0]: mirror read pointer for EDID
|
||||
*/
|
||||
while ((ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xD7,
|
||||
ASTDP_EDID_VALID_FLAG_MASK) != 0x01) ||
|
||||
(ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xD6,
|
||||
ASTDP_EDID_READ_POINTER_MASK) != i)) {
|
||||
for (j = 0; j < 200; ++j) {
|
||||
u8 vgacrd7, vgacrd6;
|
||||
|
||||
/*
|
||||
* Delay are getting longer with each retry.
|
||||
* 1. The Delays are often 2 loops when users request "Display Settings"
|
||||
*
|
||||
* 1. No delay on first try
|
||||
* 2. The Delays are often 2 loops when users request "Display Settings"
|
||||
* of right-click of mouse.
|
||||
* 2. The Delays are often longer a lot when system resume from S3/S4.
|
||||
* 3. The Delays are often longer a lot when system resume from S3/S4.
|
||||
*/
|
||||
mdelay(j+1);
|
||||
if (j)
|
||||
mdelay(j + 1);
|
||||
|
||||
if (!(ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xD1,
|
||||
ASTDP_MCU_FW_EXECUTING) &&
|
||||
ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDC,
|
||||
ASTDP_LINK_SUCCESS) &&
|
||||
ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF, ASTDP_HPD))) {
|
||||
goto err_astdp_jump_out_loop_of_edid;
|
||||
/* Wait for EDID offset to show up in mirror register */
|
||||
vgacrd7 = ast_get_index_reg(ast, AST_IO_VGACRI, 0xd7);
|
||||
if (vgacrd7 & AST_IO_VGACRD7_EDID_VALID_FLAG) {
|
||||
vgacrd6 = ast_get_index_reg(ast, AST_IO_VGACRI, 0xd6);
|
||||
if (vgacrd6 == i)
|
||||
break;
|
||||
}
|
||||
|
||||
j++;
|
||||
if (j > 200)
|
||||
goto err_astdp_jump_out_loop_of_edid;
|
||||
}
|
||||
if (j == 200) {
|
||||
ret = -EBUSY;
|
||||
goto out;
|
||||
}
|
||||
|
||||
*(ediddata) = ast_get_index_reg_mask(ast, AST_IO_VGACRI,
|
||||
0xD8, ASTDP_EDID_READ_DATA_MASK);
|
||||
*(ediddata + 1) = ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xD9,
|
||||
ASTDP_EDID_READ_DATA_MASK);
|
||||
*(ediddata + 2) = ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDA,
|
||||
ASTDP_EDID_READ_DATA_MASK);
|
||||
*(ediddata + 3) = ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDB,
|
||||
ASTDP_EDID_READ_DATA_MASK);
|
||||
ediddata[0] = ast_get_index_reg(ast, AST_IO_VGACRI, 0xd8);
|
||||
ediddata[1] = ast_get_index_reg(ast, AST_IO_VGACRI, 0xd9);
|
||||
ediddata[2] = ast_get_index_reg(ast, AST_IO_VGACRI, 0xda);
|
||||
ediddata[3] = ast_get_index_reg(ast, AST_IO_VGACRI, 0xdb);
|
||||
|
||||
if (i == 31) {
|
||||
/*
|
||||
@ -96,66 +77,47 @@ int ast_astdp_read_edid(struct drm_device *dev, u8 *ediddata)
|
||||
* The Bytes-126 indicates the Number of extensions to
|
||||
* follow. 0 represents noextensions.
|
||||
*/
|
||||
*(ediddata + 3) = *(ediddata + 3) + *(ediddata + 2);
|
||||
*(ediddata + 2) = 0;
|
||||
ediddata[3] = ediddata[3] + ediddata[2];
|
||||
ediddata[2] = 0;
|
||||
}
|
||||
|
||||
ediddata += 4;
|
||||
}
|
||||
|
||||
ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xE5, (u8) ~ASTDP_HOST_EDID_READ_DONE_MASK,
|
||||
ASTDP_HOST_EDID_READ_DONE);
|
||||
out:
|
||||
/* Signal end of reading */
|
||||
ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xe5, (u8)~AST_IO_VGACRE5_EDID_READ_DONE,
|
||||
AST_IO_VGACRE5_EDID_READ_DONE);
|
||||
|
||||
return 0;
|
||||
|
||||
err_astdp_jump_out_loop_of_edid:
|
||||
ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xE5,
|
||||
(u8) ~ASTDP_HOST_EDID_READ_DONE_MASK,
|
||||
ASTDP_HOST_EDID_READ_DONE);
|
||||
return (~(j+256) + 1);
|
||||
|
||||
err_astdp_edid_not_ready:
|
||||
if (!(ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xD1, ASTDP_MCU_FW_EXECUTING)))
|
||||
return (~0xD1 + 1);
|
||||
if (!(ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDC, ASTDP_LINK_SUCCESS)))
|
||||
return (~0xDC + 1);
|
||||
if (!(ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF, ASTDP_HPD)))
|
||||
return (~0xDF + 1);
|
||||
if (!(ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xE5, ASTDP_HOST_EDID_READ_DONE_MASK)))
|
||||
return (~0xE5 + 1);
|
||||
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* Launch Aspeed DP
|
||||
*/
|
||||
void ast_dp_launch(struct drm_device *dev)
|
||||
int ast_dp_launch(struct ast_device *ast)
|
||||
{
|
||||
u32 i = 0;
|
||||
u8 bDPExecute = 1;
|
||||
struct ast_device *ast = to_ast_device(dev);
|
||||
struct drm_device *dev = &ast->base;
|
||||
unsigned int i = 10;
|
||||
|
||||
// Wait one second then timeout.
|
||||
while (ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xD1, ASTDP_MCU_FW_EXECUTING) !=
|
||||
ASTDP_MCU_FW_EXECUTING) {
|
||||
i++;
|
||||
// wait 100 ms
|
||||
msleep(100);
|
||||
while (i) {
|
||||
u8 vgacrd1 = ast_get_index_reg(ast, AST_IO_VGACRI, 0xd1);
|
||||
|
||||
if (i >= 10) {
|
||||
// DP would not be ready.
|
||||
bDPExecute = 0;
|
||||
if (vgacrd1 & AST_IO_VGACRD1_MCU_FW_EXECUTING)
|
||||
break;
|
||||
}
|
||||
--i;
|
||||
msleep(100);
|
||||
}
|
||||
if (!i) {
|
||||
drm_err(dev, "Wait DPMCU executing timeout\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
if (!bDPExecute)
|
||||
drm_err(dev, "Wait DPMCU executing timeout\n");
|
||||
ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xe5,
|
||||
(u8) ~AST_IO_VGACRE5_EDID_READ_DONE,
|
||||
AST_IO_VGACRE5_EDID_READ_DONE);
|
||||
|
||||
ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xE5,
|
||||
(u8) ~ASTDP_HOST_EDID_READ_DONE_MASK,
|
||||
ASTDP_HOST_EDID_READ_DONE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool ast_dp_power_is_on(struct ast_device *ast)
|
||||
@ -181,7 +143,22 @@ void ast_dp_power_on_off(struct drm_device *dev, bool on)
|
||||
ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xE3, (u8) ~AST_DP_PHY_SLEEP, bE3);
|
||||
}
|
||||
|
||||
void ast_dp_link_training(struct ast_device *ast)
|
||||
{
|
||||
struct drm_device *dev = &ast->base;
|
||||
unsigned int i = 10;
|
||||
|
||||
while (i--) {
|
||||
u8 vgacrdc = ast_get_index_reg(ast, AST_IO_VGACRI, 0xdc);
|
||||
|
||||
if (vgacrdc & AST_IO_VGACRDC_LINK_SUCCESS)
|
||||
break;
|
||||
if (i)
|
||||
msleep(100);
|
||||
}
|
||||
if (!i)
|
||||
drm_err(dev, "Link training failed\n");
|
||||
}
|
||||
|
||||
void ast_dp_set_on_off(struct drm_device *dev, bool on)
|
||||
{
|
||||
@ -192,17 +169,13 @@ void ast_dp_set_on_off(struct drm_device *dev, bool on)
|
||||
// Video On/Off
|
||||
ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xE3, (u8) ~AST_DP_VIDEO_ENABLE, on);
|
||||
|
||||
// If DP plug in and link successful then check video on / off status
|
||||
if (ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDC, ASTDP_LINK_SUCCESS) &&
|
||||
ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF, ASTDP_HPD)) {
|
||||
video_on_off <<= 4;
|
||||
while (ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF,
|
||||
video_on_off <<= 4;
|
||||
while (ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF,
|
||||
ASTDP_MIRROR_VIDEO_ENABLE) != video_on_off) {
|
||||
// wait 1 ms
|
||||
mdelay(1);
|
||||
if (++i > 200)
|
||||
break;
|
||||
}
|
||||
// wait 1 ms
|
||||
mdelay(1);
|
||||
if (++i > 200)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -471,9 +471,10 @@ void ast_init_3rdtx(struct drm_device *dev);
|
||||
/* aspeed DP */
|
||||
bool ast_astdp_is_connected(struct ast_device *ast);
|
||||
int ast_astdp_read_edid(struct drm_device *dev, u8 *ediddata);
|
||||
void ast_dp_launch(struct drm_device *dev);
|
||||
int ast_dp_launch(struct ast_device *ast);
|
||||
bool ast_dp_power_is_on(struct ast_device *ast);
|
||||
void ast_dp_power_on_off(struct drm_device *dev, bool no);
|
||||
void ast_dp_link_training(struct ast_device *ast);
|
||||
void ast_dp_set_on_off(struct drm_device *dev, bool no);
|
||||
void ast_dp_set_mode(struct drm_crtc *crtc, struct ast_vbios_mode_info *vbios_mode);
|
||||
|
||||
|
@ -115,8 +115,10 @@ static void ast_detect_tx_chip(struct ast_device *ast, bool need_post)
|
||||
} else if (IS_AST_GEN7(ast)) {
|
||||
if (ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xD1, TX_TYPE_MASK) ==
|
||||
ASTDP_DPMCU_TX) {
|
||||
ast->tx_chip_types = AST_TX_ASTDP_BIT;
|
||||
ast_dp_launch(&ast->base);
|
||||
int ret = ast_dp_launch(ast);
|
||||
|
||||
if (!ret)
|
||||
ast->tx_chip_types = AST_TX_ASTDP_BIT;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1622,6 +1622,8 @@ static void ast_astdp_encoder_helper_atomic_enable(struct drm_encoder *encoder,
|
||||
struct ast_device *ast = to_ast_device(dev);
|
||||
|
||||
ast_dp_power_on_off(dev, AST_DP_POWER_ON);
|
||||
ast_dp_link_training(ast);
|
||||
|
||||
ast_wait_for_vretrace(ast);
|
||||
ast_dp_set_on_off(dev, 1);
|
||||
}
|
||||
|
@ -351,7 +351,7 @@ void ast_post_gpu(struct drm_device *dev)
|
||||
|
||||
if (IS_AST_GEN7(ast)) {
|
||||
if (ast->tx_chip_types & AST_TX_ASTDP_BIT)
|
||||
ast_dp_launch(dev);
|
||||
ast_dp_launch(ast);
|
||||
} else if (ast->config_mode == ast_use_p2a) {
|
||||
if (IS_AST_GEN6(ast))
|
||||
ast_post_chip_2500(dev);
|
||||
|
@ -37,6 +37,12 @@
|
||||
#define AST_IO_VGACRCB_HWC_16BPP BIT(0) /* set: ARGB4444, cleared: 2bpp palette */
|
||||
#define AST_IO_VGACRCB_HWC_ENABLED BIT(1)
|
||||
|
||||
#define AST_IO_VGACRD1_MCU_FW_EXECUTING BIT(5)
|
||||
#define AST_IO_VGACRD7_EDID_VALID_FLAG BIT(0)
|
||||
#define AST_IO_VGACRDC_LINK_SUCCESS BIT(0)
|
||||
#define AST_IO_VGACRDF_HPD BIT(0)
|
||||
#define AST_IO_VGACRE5_EDID_READ_DONE BIT(0)
|
||||
|
||||
#define AST_IO_VGAIR1_R (0x5A)
|
||||
#define AST_IO_VGAIR1_VREFRESH BIT(3)
|
||||
|
||||
@ -66,18 +72,6 @@
|
||||
#define AST_DP_PHY_SLEEP BIT(4)
|
||||
#define AST_DP_VIDEO_ENABLE BIT(0)
|
||||
|
||||
/*
|
||||
* CRD1[b5]: DP MCU FW is executing
|
||||
* CRDC[b0]: DP link success
|
||||
* CRDF[b0]: DP HPD
|
||||
* CRE5[b0]: Host reading EDID process is done
|
||||
*/
|
||||
#define ASTDP_MCU_FW_EXECUTING BIT(5)
|
||||
#define ASTDP_LINK_SUCCESS BIT(0)
|
||||
#define ASTDP_HPD BIT(0)
|
||||
#define ASTDP_HOST_EDID_READ_DONE BIT(0)
|
||||
#define ASTDP_HOST_EDID_READ_DONE_MASK GENMASK(0, 0)
|
||||
|
||||
/*
|
||||
* CRDF[b4]: Mirror of AST_DP_VIDEO_ENABLE
|
||||
* Precondition: A. ~AST_DP_PHY_SLEEP &&
|
||||
@ -86,10 +80,6 @@
|
||||
*/
|
||||
#define ASTDP_MIRROR_VIDEO_ENABLE BIT(4)
|
||||
|
||||
#define ASTDP_EDID_READ_POINTER_MASK GENMASK(7, 0)
|
||||
#define ASTDP_EDID_VALID_FLAG_MASK GENMASK(0, 0)
|
||||
#define ASTDP_EDID_READ_DATA_MASK GENMASK(7, 0)
|
||||
|
||||
/*
|
||||
* ASTDP setmode registers:
|
||||
* CRE0[7:0]: MISC0 ((0x00: 18-bpp) or (0x20: 24-bpp)
|
||||
|
@ -36,11 +36,6 @@
|
||||
|
||||
static const bool verify_fast_training;
|
||||
|
||||
struct bridge_init {
|
||||
struct i2c_client *client;
|
||||
struct device_node *node;
|
||||
};
|
||||
|
||||
static void analogix_dp_init_dp(struct analogix_dp_device *dp)
|
||||
{
|
||||
analogix_dp_reset(dp);
|
||||
|
@ -460,6 +460,8 @@ struct it6505 {
|
||||
bool enable_drv_hold;
|
||||
|
||||
const struct drm_edid *cached_edid;
|
||||
|
||||
int irq;
|
||||
};
|
||||
|
||||
struct it6505_step_train_para {
|
||||
@ -2624,6 +2626,8 @@ static int it6505_poweron(struct it6505 *it6505)
|
||||
it6505_init(it6505);
|
||||
it6505_lane_off(it6505);
|
||||
|
||||
enable_irq(it6505->irq);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -2640,6 +2644,8 @@ static int it6505_poweroff(struct it6505 *it6505)
|
||||
return 0;
|
||||
}
|
||||
|
||||
disable_irq_nosync(it6505->irq);
|
||||
|
||||
if (pdata->gpiod_reset)
|
||||
gpiod_set_value_cansleep(pdata->gpiod_reset, 0);
|
||||
|
||||
@ -3389,7 +3395,7 @@ static int it6505_i2c_probe(struct i2c_client *client)
|
||||
struct it6505 *it6505;
|
||||
struct device *dev = &client->dev;
|
||||
struct extcon_dev *extcon;
|
||||
int err, intp_irq;
|
||||
int err;
|
||||
|
||||
it6505 = devm_kzalloc(&client->dev, sizeof(*it6505), GFP_KERNEL);
|
||||
if (!it6505)
|
||||
@ -3430,17 +3436,18 @@ static int it6505_i2c_probe(struct i2c_client *client)
|
||||
|
||||
it6505_parse_dt(it6505);
|
||||
|
||||
intp_irq = client->irq;
|
||||
it6505->irq = client->irq;
|
||||
|
||||
if (!intp_irq) {
|
||||
if (!it6505->irq) {
|
||||
dev_err(dev, "Failed to get INTP IRQ");
|
||||
err = -ENODEV;
|
||||
return err;
|
||||
}
|
||||
|
||||
err = devm_request_threaded_irq(&client->dev, intp_irq, NULL,
|
||||
err = devm_request_threaded_irq(&client->dev, it6505->irq, NULL,
|
||||
it6505_int_threaded_handler,
|
||||
IRQF_TRIGGER_LOW | IRQF_ONESHOT,
|
||||
IRQF_TRIGGER_LOW | IRQF_ONESHOT |
|
||||
IRQF_NO_AUTOEN,
|
||||
"it6505-intp", it6505);
|
||||
if (err) {
|
||||
dev_err(dev, "Failed to request INTP threaded IRQ: %d", err);
|
||||
|
@ -722,7 +722,12 @@ static void dw_mipi_dsi_dpi_config(struct dw_mipi_dsi *dsi,
|
||||
|
||||
static void dw_mipi_dsi_packet_handler_config(struct dw_mipi_dsi *dsi)
|
||||
{
|
||||
dsi_write(dsi, DSI_PCKHDL_CFG, CRC_RX_EN | ECC_RX_EN | BTA_EN);
|
||||
u32 val = CRC_RX_EN | ECC_RX_EN | BTA_EN | EOTP_TX_EN;
|
||||
|
||||
if (dsi->mode_flags & MIPI_DSI_MODE_NO_EOT_PACKET)
|
||||
val &= ~EOTP_TX_EN;
|
||||
|
||||
dsi_write(dsi, DSI_PCKHDL_CFG, val);
|
||||
}
|
||||
|
||||
static void dw_mipi_dsi_video_packet_config(struct dw_mipi_dsi *dsi,
|
||||
|
@ -241,6 +241,10 @@
|
||||
|
||||
/* Link Training */
|
||||
#define DP0_SRCCTRL 0x06a0
|
||||
#define DP0_SRCCTRL_PRE1 GENMASK(29, 28)
|
||||
#define DP0_SRCCTRL_SWG1 GENMASK(25, 24)
|
||||
#define DP0_SRCCTRL_PRE0 GENMASK(21, 20)
|
||||
#define DP0_SRCCTRL_SWG0 GENMASK(17, 16)
|
||||
#define DP0_SRCCTRL_SCRMBLDIS BIT(13)
|
||||
#define DP0_SRCCTRL_EN810B BIT(12)
|
||||
#define DP0_SRCCTRL_NOTP (0 << 8)
|
||||
@ -278,6 +282,8 @@
|
||||
#define AUDIFDATA6 0x0720 /* DP0 Audio Info Frame Bytes 27 to 24 */
|
||||
|
||||
#define DP1_SRCCTRL 0x07a0 /* DP1 Control Register */
|
||||
#define DP1_SRCCTRL_PRE GENMASK(21, 20)
|
||||
#define DP1_SRCCTRL_SWG GENMASK(17, 16)
|
||||
|
||||
/* PHY */
|
||||
#define DP_PHY_CTRL 0x0800
|
||||
@ -369,6 +375,7 @@ struct tc_data {
|
||||
|
||||
u32 rev;
|
||||
u8 assr;
|
||||
u8 pre_emphasis[2];
|
||||
|
||||
struct gpio_desc *sd_gpio;
|
||||
struct gpio_desc *reset_gpio;
|
||||
@ -1090,13 +1097,17 @@ static int tc_main_link_enable(struct tc_data *tc)
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = regmap_write(tc->regmap, DP0_SRCCTRL, tc_srcctrl(tc));
|
||||
ret = regmap_write(tc->regmap, DP0_SRCCTRL,
|
||||
tc_srcctrl(tc) |
|
||||
FIELD_PREP(DP0_SRCCTRL_PRE0, tc->pre_emphasis[0]) |
|
||||
FIELD_PREP(DP0_SRCCTRL_PRE1, tc->pre_emphasis[1]));
|
||||
if (ret)
|
||||
return ret;
|
||||
/* SSCG and BW27 on DP1 must be set to the same as on DP0 */
|
||||
ret = regmap_write(tc->regmap, DP1_SRCCTRL,
|
||||
(tc->link.spread ? DP0_SRCCTRL_SSCG : 0) |
|
||||
((tc->link.rate != 162000) ? DP0_SRCCTRL_BW27 : 0));
|
||||
((tc->link.rate != 162000) ? DP0_SRCCTRL_BW27 : 0) |
|
||||
FIELD_PREP(DP1_SRCCTRL_PRE, tc->pre_emphasis[1]));
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@ -1188,8 +1199,10 @@ static int tc_main_link_enable(struct tc_data *tc)
|
||||
goto err_dpcd_write;
|
||||
|
||||
/* Reset voltage-swing & pre-emphasis */
|
||||
tmp[0] = tmp[1] = DP_TRAIN_VOLTAGE_SWING_LEVEL_0 |
|
||||
DP_TRAIN_PRE_EMPH_LEVEL_0;
|
||||
tmp[0] = DP_TRAIN_VOLTAGE_SWING_LEVEL_0 |
|
||||
FIELD_PREP(DP_TRAIN_PRE_EMPHASIS_MASK, tc->pre_emphasis[0]);
|
||||
tmp[1] = DP_TRAIN_VOLTAGE_SWING_LEVEL_0 |
|
||||
FIELD_PREP(DP_TRAIN_PRE_EMPHASIS_MASK, tc->pre_emphasis[1]);
|
||||
ret = drm_dp_dpcd_write(aux, DP_TRAINING_LANE0_SET, tmp, 2);
|
||||
if (ret < 0)
|
||||
goto err_dpcd_write;
|
||||
@ -1213,7 +1226,9 @@ static int tc_main_link_enable(struct tc_data *tc)
|
||||
ret = regmap_write(tc->regmap, DP0_SRCCTRL,
|
||||
tc_srcctrl(tc) | DP0_SRCCTRL_SCRMBLDIS |
|
||||
DP0_SRCCTRL_AUTOCORRECT |
|
||||
DP0_SRCCTRL_TP1);
|
||||
DP0_SRCCTRL_TP1 |
|
||||
FIELD_PREP(DP0_SRCCTRL_PRE0, tc->pre_emphasis[0]) |
|
||||
FIELD_PREP(DP0_SRCCTRL_PRE1, tc->pre_emphasis[1]));
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@ -1248,7 +1263,9 @@ static int tc_main_link_enable(struct tc_data *tc)
|
||||
ret = regmap_write(tc->regmap, DP0_SRCCTRL,
|
||||
tc_srcctrl(tc) | DP0_SRCCTRL_SCRMBLDIS |
|
||||
DP0_SRCCTRL_AUTOCORRECT |
|
||||
DP0_SRCCTRL_TP2);
|
||||
DP0_SRCCTRL_TP2 |
|
||||
FIELD_PREP(DP0_SRCCTRL_PRE0, tc->pre_emphasis[0]) |
|
||||
FIELD_PREP(DP0_SRCCTRL_PRE1, tc->pre_emphasis[1]));
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@ -1274,7 +1291,9 @@ static int tc_main_link_enable(struct tc_data *tc)
|
||||
|
||||
/* Clear Training Pattern, set AutoCorrect Mode = 1 */
|
||||
ret = regmap_write(tc->regmap, DP0_SRCCTRL, tc_srcctrl(tc) |
|
||||
DP0_SRCCTRL_AUTOCORRECT);
|
||||
DP0_SRCCTRL_AUTOCORRECT |
|
||||
FIELD_PREP(DP0_SRCCTRL_PRE0, tc->pre_emphasis[0]) |
|
||||
FIELD_PREP(DP0_SRCCTRL_PRE1, tc->pre_emphasis[1]));
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@ -2363,6 +2382,18 @@ static int tc_probe_bridge_endpoint(struct tc_data *tc)
|
||||
return -EINVAL;
|
||||
}
|
||||
mode |= BIT(endpoint.port);
|
||||
|
||||
if (endpoint.port == 2) {
|
||||
of_property_read_u8_array(node, "toshiba,pre-emphasis",
|
||||
tc->pre_emphasis,
|
||||
ARRAY_SIZE(tc->pre_emphasis));
|
||||
|
||||
if (tc->pre_emphasis[0] < 0 || tc->pre_emphasis[0] > 2 ||
|
||||
tc->pre_emphasis[1] < 0 || tc->pre_emphasis[1] > 2) {
|
||||
dev_err(dev, "Incorrect Pre-Emphasis setting, use either 0=0dB 1=3.5dB 2=6dB\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (mode == mode_dpi_to_edp || mode == mode_dpi_to_dp) {
|
||||
|
@ -2,10 +2,10 @@ variables:
|
||||
DRM_CI_PROJECT_PATH: &drm-ci-project-path mesa/mesa
|
||||
DRM_CI_COMMIT_SHA: &drm-ci-commit-sha e2b9c5a9e3e4f9b532067af8022eaef8d6fc6c00
|
||||
|
||||
UPSTREAM_REPO: git://anongit.freedesktop.org/drm/drm
|
||||
UPSTREAM_REPO: https://gitlab.freedesktop.org/drm/kernel.git
|
||||
TARGET_BRANCH: drm-next
|
||||
|
||||
IGT_VERSION: 0df7b9b97f9da0e364f5ee30fe331004b8c86b56
|
||||
IGT_VERSION: f13702b8e4e847c56da3ef6f0969065d686049c5
|
||||
|
||||
DEQP_RUNNER_GIT_URL: https://gitlab.freedesktop.org/anholt/deqp-runner.git
|
||||
DEQP_RUNNER_GIT_TAG: v0.15.0
|
||||
|
@ -80,6 +80,7 @@ igt-runner \
|
||||
--igt-folder /igt/libexec/igt-gpu-tools \
|
||||
--caselist $TESTLIST \
|
||||
--output /results \
|
||||
-vvvv \
|
||||
$IGT_SKIPS \
|
||||
$IGT_FLAKES \
|
||||
$IGT_FAILS \
|
||||
|
@ -30,6 +30,7 @@ kms_cursor_crc@cursor-random-64x64,Fail
|
||||
kms_cursor_crc@cursor-size-change,Fail
|
||||
kms_cursor_crc@cursor-sliding-64x21,Fail
|
||||
kms_cursor_crc@cursor-sliding-64x64,Fail
|
||||
kms_cursor_edge_walk@64x64-left-edge,Fail
|
||||
kms_flip@flip-vs-modeset-vs-hang,Fail
|
||||
kms_flip@flip-vs-panning-vs-hang,Fail
|
||||
kms_lease@lease-uevent,Fail
|
||||
|
@ -1,8 +1,20 @@
|
||||
# Board Name: hp-11A-G6-EE-grunt
|
||||
# Bug Report: https://lore.kernel.org/amd-gfx/3542730f-b8d7-404d-a947-b7a5e95d661c@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
# Failure Rate: 50
|
||||
kms_async_flips@async-flip-with-page-flip-events
|
||||
|
||||
# Board Name: hp-11A-G6-EE-grunt
|
||||
# Bug Report: https://lore.kernel.org/amd-gfx/3542730f-b8d7-404d-a947-b7a5e95d661c@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
kms_async_flips@crc
|
||||
|
||||
# Board Name: hp-11A-G6-EE-grunt
|
||||
# Bug Report: https://lore.kernel.org/amd-gfx/3542730f-b8d7-404d-a947-b7a5e95d661c@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
kms_plane@pixel-format-source-clamping
|
||||
|
@ -2,9 +2,9 @@
|
||||
.*suspend.*
|
||||
|
||||
# Skip driver specific tests
|
||||
msm_.*
|
||||
^msm.*
|
||||
nouveau_.*
|
||||
panfrost_.*
|
||||
^panfrost.*
|
||||
^v3d.*
|
||||
^vc4.*
|
||||
^vmwgfx*
|
||||
|
@ -6,11 +6,11 @@ i915_module_load@reload-no-display,Fail
|
||||
i915_module_load@resize-bar,Fail
|
||||
i915_pm_rpm@gem-execbuf-stress,Timeout
|
||||
i915_pm_rpm@module-reload,Fail
|
||||
kms_async_flips@invalid-async-flip,Timeout
|
||||
kms_atomic_transition@modeset-transition-fencing,Timeout
|
||||
kms_ccs@crc-primary-rotation-180-yf-tiled-ccs,Timeout
|
||||
kms_cursor_legacy@short-flip-before-cursor-atomic-transitions,Timeout
|
||||
kms_fb_coherency@memset-crc,Crash
|
||||
kms_flip@flip-vs-dpms-off-vs-modeset,Timeout
|
||||
kms_flip@busy-flip,Timeout
|
||||
kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset-interruptible,Fail
|
||||
kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
|
||||
kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
|
||||
kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
|
||||
@ -33,16 +33,20 @@ kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
|
||||
kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling,Fail
|
||||
kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
|
||||
kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling,Fail
|
||||
kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-cpu,Timeout
|
||||
kms_lease@lease-uevent,Fail
|
||||
kms_plane_alpha_blend@alpha-basic,Fail
|
||||
kms_plane_alpha_blend@alpha-opaque-fb,Fail
|
||||
kms_plane_alpha_blend@alpha-transparent-fb,Fail
|
||||
kms_plane_alpha_blend@constant-alpha-max,Fail
|
||||
kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation,Timeout
|
||||
kms_pm_rpm@modeset-lpsp-stress,Timeout
|
||||
kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5,Timeout
|
||||
kms_pm_rpm@modeset-stress-extra-wait,Timeout
|
||||
kms_pm_rpm@universal-planes,Timeout
|
||||
kms_pm_rpm@universal-planes-dpms,Timeout
|
||||
kms_prop_blob@invalid-set-prop,Fail
|
||||
kms_rotation_crc@primary-rotation-180,Timeout
|
||||
kms_vblank@query-forked-hang,Timeout
|
||||
perf@i915-ref-count,Fail
|
||||
perf_pmu@module-unload,Fail
|
||||
perf_pmu@rc6,Crash
|
||||
|
@ -1,9 +1,48 @@
|
||||
# Board Name: asus-C433TA-AJ0005-rammus
|
||||
# Bug Report: https://lore.kernel.org/intel-gfx/af4ca4df-a3ef-4943-bdbf-4c3af2c333af@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
# Failure Rate: 50
|
||||
i915_hangman@engine-engine-error
|
||||
|
||||
# Board Name: asus-C433TA-AJ0005-rammus
|
||||
# Bug Report: https://lore.kernel.org/intel-gfx/af4ca4df-a3ef-4943-bdbf-4c3af2c333af@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
i915_hangman@gt-engine-hang
|
||||
|
||||
# Board Name: asus-C433TA-AJ0005-rammus
|
||||
# Bug Report: https://lore.kernel.org/intel-gfx/af4ca4df-a3ef-4943-bdbf-4c3af2c333af@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
kms_async_flips@crc
|
||||
|
||||
# Board Name: asus-C433TA-AJ0005-rammus
|
||||
# Bug Report: https://lore.kernel.org/intel-gfx/af4ca4df-a3ef-4943-bdbf-4c3af2c333af@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
kms_universal_plane@cursor-fb-leak
|
||||
|
||||
# Board Name: asus-C433TA-AJ0005-rammus
|
||||
# Bug Report: https://lore.kernel.org/intel-gfx/af4ca4df-a3ef-4943-bdbf-4c3af2c333af@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-gf13702b8e
|
||||
# Linux Version: 6.10.0-rc5
|
||||
kms_sysfs_edid_timing
|
||||
|
||||
# Board Name: asus-C433TA-AJ0005-rammus
|
||||
# Bug Report: https://lore.kernel.org/intel-gfx/af4ca4df-a3ef-4943-bdbf-4c3af2c333af@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-gf13702b8e
|
||||
# Linux Version: 6.10.0-rc5
|
||||
i915_hangman@engine-engine-hang
|
||||
|
||||
# Board Name: asus-C433TA-AJ0005-rammus
|
||||
# Bug Report: https://lore.kernel.org/intel-gfx/af4ca4df-a3ef-4943-bdbf-4c3af2c333af@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-gf13702b8e
|
||||
# Linux Version: 6.10.0-rc5
|
||||
kms_pm_rpm@modeset-lpsp-stress
|
||||
|
@ -5,9 +5,9 @@ kms_plane_scaling@invalid-parameters
|
||||
|
||||
# Skip driver specific tests
|
||||
^amdgpu.*
|
||||
msm_.*
|
||||
^msm.*
|
||||
nouveau_.*
|
||||
panfrost_.*
|
||||
^panfrost.*
|
||||
^v3d.*
|
||||
^vc4.*
|
||||
^vmwgfx*
|
||||
@ -19,6 +19,7 @@ gem_.*
|
||||
i915_pm_rc6_residency.*
|
||||
i915_suspend.*
|
||||
kms_scaling_modes.*
|
||||
i915_pm_rpm.*
|
||||
|
||||
# Kernel panic
|
||||
drm_fdinfo.*
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Board Name: asus-C523NA-A20057-coral
|
||||
# Bug Report: https://lore.kernel.org/intel-gfx/af4ca4df-a3ef-4943-bdbf-4c3af2c333af@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
# Failure Rate: 50
|
||||
kms_fb_coherency@memset-crc
|
||||
|
@ -7,9 +7,9 @@ kms_3d
|
||||
|
||||
# Skip driver specific tests
|
||||
^amdgpu.*
|
||||
msm_.*
|
||||
^msm.*
|
||||
nouveau_.*
|
||||
panfrost_.*
|
||||
^panfrost.*
|
||||
^v3d.*
|
||||
^vc4.*
|
||||
^vmwgfx*
|
||||
|
@ -9,11 +9,10 @@ i915_pipe_stress@stress-xrgb8888-ytiled,Fail
|
||||
i915_pm_rpm@gem-execbuf-stress,Timeout
|
||||
i915_pm_rpm@module-reload,Fail
|
||||
i915_pm_rpm@system-suspend-execbuf,Timeout
|
||||
kms_async_flips@invalid-async-flip,Timeout
|
||||
kms_atomic_transition@modeset-transition-fencing,Timeout
|
||||
kms_ccs@crc-primary-rotation-180-yf-tiled-ccs,Timeout
|
||||
kms_fb_coherency@memset-crc,Crash
|
||||
kms_flip@flip-vs-dpms-off-vs-modeset,Timeout
|
||||
kms_flip@busy-flip,Timeout
|
||||
kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset-interruptible,Fail
|
||||
kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
|
||||
kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
|
||||
kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
|
||||
@ -41,20 +40,25 @@ kms_plane_alpha_blend@alpha-basic,Fail
|
||||
kms_plane_alpha_blend@alpha-opaque-fb,Fail
|
||||
kms_plane_alpha_blend@alpha-transparent-fb,Fail
|
||||
kms_plane_alpha_blend@constant-alpha-max,Fail
|
||||
kms_plane_alpha_blend@constant-alpha-min,Fail
|
||||
kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation,Timeout
|
||||
kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5,Timeout
|
||||
kms_pm_rpm@modeset-stress-extra-wait,Timeout
|
||||
kms_pm_rpm@universal-planes,Timeout
|
||||
kms_pm_rpm@universal-planes-dpms,Timeout
|
||||
kms_prop_blob@invalid-set-prop,Fail
|
||||
kms_psr2_sf@cursor-plane-update-sf,Fail
|
||||
kms_psr2_sf@fbc-plane-move-sf-dmg-area,Timeout
|
||||
kms_psr2_sf@overlay-plane-update-continuous-sf,Fail
|
||||
kms_psr2_sf@overlay-plane-update-sf-dmg-area,Fail
|
||||
kms_psr2_sf@overlay-primary-update-sf-dmg-area,Fail
|
||||
kms_psr2_sf@plane-move-sf-dmg-area,Fail
|
||||
kms_psr2_sf@primary-plane-update-sf-dmg-area,Fail
|
||||
kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb,Fail
|
||||
kms_psr2_su@page_flip-NV12,Fail
|
||||
kms_psr2_su@page_flip-P010,Fail
|
||||
kms_psr@psr-sprite-render,Timeout
|
||||
kms_rotation_crc@primary-rotation-180,Timeout
|
||||
kms_setmode@basic,Fail
|
||||
kms_vblank@query-forked-hang,Timeout
|
||||
perf@i915-ref-count,Fail
|
||||
perf_pmu@module-unload,Fail
|
||||
perf_pmu@rc6,Crash
|
||||
|
@ -1,6 +1,13 @@
|
||||
# Board Name: asus-C436FA-Flip-hatch
|
||||
# Bug Report: https://lore.kernel.org/intel-gfx/af4ca4df-a3ef-4943-bdbf-4c3af2c333af@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
# Failure Rate: 50
|
||||
kms_plane_alpha_blend@constant-alpha-min
|
||||
|
||||
# Board Name: asus-C436FA-Flip-hatch
|
||||
# Bug Report: https://lore.kernel.org/intel-gfx/af4ca4df-a3ef-4943-bdbf-4c3af2c333af@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-gf13702b8e
|
||||
# Linux Version: 6.10.0-rc5
|
||||
kms_atomic_transition@plane-all-modeset-transition-internal-panels
|
||||
|
@ -3,9 +3,9 @@ kms_plane_scaling@invalid-parameters
|
||||
|
||||
# Skip driver specific tests
|
||||
^amdgpu.*
|
||||
msm_.*
|
||||
^msm.*
|
||||
nouveau_.*
|
||||
panfrost_.*
|
||||
^panfrost.*
|
||||
^v3d.*
|
||||
^vc4.*
|
||||
^vmwgfx*
|
||||
@ -19,6 +19,7 @@ i915_suspend.*
|
||||
xe_module_load.*
|
||||
api_intel_allocator.*
|
||||
kms_cursor_legacy.*
|
||||
i915_pm_rpm.*
|
||||
|
||||
# Kernel panic
|
||||
drm_fdinfo.*
|
||||
|
@ -1,20 +1,16 @@
|
||||
core_setmaster@master-drop-set-user,Fail
|
||||
core_setmaster_vs_auth,Fail
|
||||
i915_module_load@load,Fail
|
||||
i915_module_load@reload,Fail
|
||||
i915_module_load@reload-no-display,Fail
|
||||
i915_module_load@resize-bar,Fail
|
||||
kms_async_flips@invalid-async-flip,Timeout
|
||||
kms_atomic_transition@modeset-transition-fencing,Timeout
|
||||
kms_big_fb@linear-16bpp-rotate-0,Fail
|
||||
kms_big_fb@linear-16bpp-rotate-180,Fail
|
||||
kms_big_fb@linear-32bpp-rotate-0,Fail
|
||||
kms_big_fb@linear-32bpp-rotate-180,Fail
|
||||
kms_big_fb@linear-8bpp-rotate-0,Fail
|
||||
kms_big_fb@linear-8bpp-rotate-180,Fail
|
||||
kms_big_fb@linear-max-hw-stride-32bpp-rotate-0,Fail
|
||||
kms_cursor_legacy@short-flip-before-cursor-atomic-transitions,Timeout
|
||||
kms_dirtyfb@default-dirtyfb-ioctl,Fail
|
||||
kms_draw_crc@draw-method-render,Fail
|
||||
kms_flip@flip-vs-dpms-off-vs-modeset,Timeout
|
||||
kms_dirtyfb@drrs-dirtyfb-ioctl,Fail
|
||||
kms_dirtyfb@fbc-dirtyfb-ioctl,Fail
|
||||
kms_flip@blocking-wf_vblank,Fail
|
||||
kms_flip@busy-flip,Timeout
|
||||
kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset-interruptible,Fail
|
||||
kms_flip@wf_vblank-ts-check,Fail
|
||||
kms_flip@wf_vblank-ts-check-interruptible,Fail
|
||||
kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
|
||||
@ -26,6 +22,7 @@ kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling,Fail
|
||||
kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling,Fail
|
||||
kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling,Fail
|
||||
kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
|
||||
kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
|
||||
kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
|
||||
kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
|
||||
kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
|
||||
@ -38,19 +35,24 @@ kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
|
||||
kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling,Fail
|
||||
kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
|
||||
kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling,Fail
|
||||
kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-cpu,Timeout
|
||||
kms_frontbuffer_tracking@fbc-tiling-linear,Fail
|
||||
kms_frontbuffer_tracking@fbcdrrs-tiling-linear,Fail
|
||||
kms_lease@lease-uevent,Fail
|
||||
kms_plane_alpha_blend@alpha-opaque-fb,Fail
|
||||
kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation,Timeout
|
||||
kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5,Timeout
|
||||
kms_pm_rpm@legacy-planes,Timeout
|
||||
kms_pm_rpm@legacy-planes-dpms,Timeout
|
||||
kms_pm_rpm@modeset-stress-extra-wait,Timeout
|
||||
kms_pm_rpm@universal-planes,Timeout
|
||||
kms_pm_rpm@universal-planes-dpms,Timeout
|
||||
kms_prop_blob@invalid-set-prop,Fail
|
||||
kms_rotation_crc@multiplane-rotation,Fail
|
||||
kms_rotation_crc@multiplane-rotation-cropping-bottom,Fail
|
||||
kms_rotation_crc@multiplane-rotation-cropping-top,Fail
|
||||
kms_rotation_crc@primary-rotation-180,Timeout
|
||||
kms_vblank@query-forked-hang,Timeout
|
||||
perf@non-zero-reason,Timeout
|
||||
sysfs_heartbeat_interval@long,Timeout
|
||||
sysfs_heartbeat_interval@off,Timeout
|
||||
|
@ -1,7 +1,13 @@
|
||||
# Board Name: hp-x360-12b-ca0010nr-n4020-octopus
|
||||
# Bug Report: https://lore.kernel.org/intel-gfx/af4ca4df-a3ef-4943-bdbf-4c3af2c333af@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
# Failure Rate: 50
|
||||
core_hotunplug@unplug-rescan
|
||||
|
||||
# Board Name: hp-x360-12b-ca0010nr-n4020-octopus
|
||||
# Bug Report: https://lore.kernel.org/intel-gfx/af4ca4df-a3ef-4943-bdbf-4c3af2c333af@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
kms_fb_coherency@memset-crc
|
||||
|
@ -6,9 +6,9 @@ kms_plane_scaling@invalid-parameters
|
||||
|
||||
# Skip driver specific tests
|
||||
^amdgpu.*
|
||||
msm_.*
|
||||
^msm.*
|
||||
nouveau_.*
|
||||
panfrost_.*
|
||||
^panfrost.*
|
||||
^v3d.*
|
||||
^vc4.*
|
||||
^vmwgfx*
|
||||
|
@ -17,10 +17,12 @@ perf@i915-ref-count,Fail
|
||||
perf_pmu@busy-accuracy-50,Fail
|
||||
perf_pmu@module-unload,Fail
|
||||
perf_pmu@rc6,Crash
|
||||
prime_busy@after,Fail
|
||||
sysfs_heartbeat_interval@long,Timeout
|
||||
sysfs_heartbeat_interval@off,Timeout
|
||||
sysfs_preempt_timeout@off,Timeout
|
||||
sysfs_timeslice_duration@off,Timeout
|
||||
testdisplay,Timeout
|
||||
xe_module_load@force-load,Fail
|
||||
xe_module_load@load,Fail
|
||||
xe_module_load@many-reload,Fail
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Board Name: hp-x360-14-G1-sona
|
||||
# Bug Report: https://lore.kernel.org/intel-gfx/af4ca4df-a3ef-4943-bdbf-4c3af2c333af@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
# Failure Rate: 50
|
||||
prime_busy@hang
|
||||
|
@ -6,9 +6,9 @@ kms_plane_scaling@invalid-parameters
|
||||
|
||||
# Skip driver specific tests
|
||||
^amdgpu.*
|
||||
msm_.*
|
||||
^msm.*
|
||||
nouveau_.*
|
||||
panfrost_.*
|
||||
^panfrost.*
|
||||
^v3d.*
|
||||
^vc4.*
|
||||
^vmwgfx*
|
||||
|
@ -1,34 +1,39 @@
|
||||
api_intel_bb@blit-noreloc-keep-cache,Timeout
|
||||
api_intel_allocator@simple-allocator,Timeout
|
||||
api_intel_bb@object-reloc-keep-cache,Timeout
|
||||
api_intel_bb@offset-control,Timeout
|
||||
api_intel_bb@render-ccs,Timeout
|
||||
core_getclient,Timeout
|
||||
core_hotunplug@hotreplug-lateclose,Timeout
|
||||
drm_read@short-buffer-block,Timeout
|
||||
core_auth@getclient-simple,Timeout
|
||||
core_hotunplug@hotunbind-rebind,Timeout
|
||||
debugfs_test@read_all_entries_display_on,Timeout
|
||||
drm_read@invalid-buffer,Timeout
|
||||
drm_read@short-buffer-nonblock,Timeout
|
||||
dumb_buffer@map-uaf,Timeout
|
||||
gen3_render_tiledx_blits,Timeout
|
||||
gen7_exec_parse@basic-allocation,Timeout
|
||||
gen7_exec_parse@batch-without-end,Timeout
|
||||
gen9_exec_parse@batch-invalid-length,Timeout
|
||||
gen9_exec_parse@bb-secure,Timeout
|
||||
gen9_exec_parse@secure-batches,Timeout
|
||||
gen9_exec_parse@shadow-peek,Timeout
|
||||
gen9_exec_parse@unaligned-jump,Timeout
|
||||
i915_module_load@load,Fail
|
||||
i915_module_load@reload,Fail
|
||||
i915_module_load@reload-no-display,Fail
|
||||
i915_module_load@resize-bar,Fail
|
||||
i915_pciid,Timeout
|
||||
i915_query@engine-info,Timeout
|
||||
i915_query@query-topology-kernel-writes,Timeout
|
||||
i915_query@test-query-geometry-subslices,Timeout
|
||||
kms_lease@lease-uevent,Fail
|
||||
kms_rotation_crc@multiplane-rotation,Fail
|
||||
perf@i915-ref-count,Fail
|
||||
perf_pmu@busy,Timeout
|
||||
perf_pmu@enable-race,Timeout
|
||||
perf_pmu@event-wait,Timeout
|
||||
perf_pmu@gt-awake,Timeout
|
||||
perf_pmu@interrupts,Timeout
|
||||
perf_pmu@module-unload,Fail
|
||||
perf_pmu@rc6,Crash
|
||||
prime_mmap@test_map_unmap,Timeout
|
||||
prime_mmap@test_refcounting,Timeout
|
||||
prime_self_import@basic-with_one_bo,Timeout
|
||||
syncobj_basic@bad-destroy,Timeout
|
||||
syncobj_basic@bad-flags-fd-to-handle,Timeout
|
||||
syncobj_eventfd@invalid-bad-pad,Timeout
|
||||
syncobj_wait@invalid-multi-wait-unsubmitted-signaled,Timeout
|
||||
syncobj_wait@invalid-signal-illegal-handle,Timeout
|
||||
@ -37,7 +42,9 @@ syncobj_wait@multi-wait-all-submitted,Timeout
|
||||
syncobj_wait@multi-wait-for-submit-submitted-signaled,Timeout
|
||||
syncobj_wait@wait-any-complex,Timeout
|
||||
syncobj_wait@wait-delayed-signal,Timeout
|
||||
template@A,Timeout
|
||||
xe_module_load@force-load,Fail
|
||||
xe_module_load@load,Fail
|
||||
xe_module_load@many-reload,Fail
|
||||
xe_module_load@reload,Fail
|
||||
xe_module_load@reload-no-display,Fail
|
||||
|
@ -12,9 +12,9 @@ kms_plane_scaling@invalid-parameters
|
||||
|
||||
# Skip driver specific tests
|
||||
^amdgpu.*
|
||||
msm_.*
|
||||
^msm.*
|
||||
nouveau_.*
|
||||
panfrost_.*
|
||||
^panfrost.*
|
||||
^v3d.*
|
||||
^vc4.*
|
||||
^vmwgfx*
|
||||
|
@ -7,18 +7,10 @@ i915_module_load@resize-bar,Fail
|
||||
i915_pm_rpm@gem-execbuf-stress,Timeout
|
||||
i915_pm_rpm@module-reload,Fail
|
||||
i915_pm_rpm@system-suspend-execbuf,Timeout
|
||||
kms_async_flips@invalid-async-flip,Timeout
|
||||
kms_atomic_transition@modeset-transition-fencing,Timeout
|
||||
kms_big_fb@linear-16bpp-rotate-0,Fail
|
||||
kms_big_fb@linear-16bpp-rotate-180,Fail
|
||||
kms_big_fb@linear-32bpp-rotate-0,Fail
|
||||
kms_big_fb@linear-32bpp-rotate-180,Fail
|
||||
kms_big_fb@linear-8bpp-rotate-0,Fail
|
||||
kms_big_fb@linear-8bpp-rotate-180,Fail
|
||||
kms_big_fb@linear-max-hw-stride-32bpp-rotate-0,Fail
|
||||
kms_ccs@crc-primary-rotation-180-yf-tiled-ccs,Timeout
|
||||
kms_cursor_legacy@short-flip-before-cursor-atomic-transitions,Timeout
|
||||
kms_dirtyfb@default-dirtyfb-ioctl,Fail
|
||||
kms_draw_crc@draw-method-render,Fail
|
||||
kms_dirtyfb@fbc-dirtyfb-ioctl,Fail
|
||||
kms_fb_coherency@memset-crc,Crash
|
||||
kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
|
||||
kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
|
||||
@ -40,6 +32,7 @@ kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
|
||||
kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling,Fail
|
||||
kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
|
||||
kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling,Fail
|
||||
kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-cpu,Timeout
|
||||
kms_frontbuffer_tracking@fbc-tiling-linear,Fail
|
||||
kms_lease@lease-uevent,Fail
|
||||
kms_plane_alpha_blend@alpha-basic,Fail
|
||||
@ -47,9 +40,13 @@ kms_plane_alpha_blend@alpha-opaque-fb,Fail
|
||||
kms_plane_alpha_blend@alpha-transparent-fb,Fail
|
||||
kms_plane_alpha_blend@constant-alpha-max,Fail
|
||||
kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation,Timeout
|
||||
kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5,Timeout
|
||||
kms_pm_rpm@modeset-stress-extra-wait,Timeout
|
||||
kms_pm_rpm@universal-planes,Timeout
|
||||
kms_pm_rpm@universal-planes-dpms,Timeout
|
||||
kms_prop_blob@invalid-set-prop,Fail
|
||||
kms_rotation_crc@primary-rotation-180,Timeout
|
||||
kms_vblank@query-forked-hang,Timeout
|
||||
perf@i915-ref-count,Fail
|
||||
perf_pmu@module-unload,Fail
|
||||
perf_pmu@rc6,Crash
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Board Name: dell-latitude-5400-8665U-sarien
|
||||
# Bug Report: https://lore.kernel.org/intel-gfx/af4ca4df-a3ef-4943-bdbf-4c3af2c333af@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
# Failure Rate: 50
|
||||
kms_pm_rpm@modeset-lpsp-stress
|
||||
|
@ -3,9 +3,9 @@ kms_plane_scaling@invalid-parameters
|
||||
|
||||
# Skip driver specific tests
|
||||
^amdgpu.*
|
||||
msm_.*
|
||||
^msm.*
|
||||
nouveau_.*
|
||||
panfrost_.*
|
||||
^panfrost.*
|
||||
^v3d.*
|
||||
^vc4.*
|
||||
^vmwgfx*
|
||||
@ -17,6 +17,7 @@ gem_.*
|
||||
i915_pm_rc6_residency.*
|
||||
i915_suspend.*
|
||||
kms_flip.*
|
||||
i915_pm_rpm.*
|
||||
|
||||
# Kernel panic
|
||||
drm_fdinfo.*
|
||||
|
@ -5,8 +5,15 @@ device_reset@unbind-reset-rebind,Fail
|
||||
dumb_buffer@invalid-bpp,Fail
|
||||
fbdev@eof,Fail
|
||||
fbdev@read,Fail
|
||||
fbdev@unaligned-write,Fail
|
||||
kms_3d,Fail
|
||||
kms_bw@connected-linear-tiling-1-displays-1920x1080p,Fail
|
||||
kms_bw@connected-linear-tiling-1-displays-2160x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-1-displays-2560x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-1-displays-3840x2160p,Fail
|
||||
kms_bw@connected-linear-tiling-2-displays-1920x1080p,Fail
|
||||
kms_bw@connected-linear-tiling-2-displays-2160x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-2-displays-2560x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-2-displays-3840x2160p,Fail
|
||||
kms_bw@linear-tiling-1-displays-1920x1080p,Fail
|
||||
kms_bw@linear-tiling-1-displays-2160x1440p,Fail
|
||||
kms_bw@linear-tiling-1-displays-2560x1440p,Fail
|
||||
|
@ -1,11 +1,41 @@
|
||||
# Board Name: mt8173-elm-hana
|
||||
# Bug Report: https://lore.kernel.org/linux-mediatek/0b2a1899-15dd-42fa-8f63-ea0ca28dbb17@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
# Failure Rate: 50
|
||||
core_setmaster_vs_auth
|
||||
|
||||
# Board Name: mt8173-elm-hana
|
||||
# Bug Report: https://lore.kernel.org/linux-mediatek/0b2a1899-15dd-42fa-8f63-ea0ca28dbb17@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
dumb_buffer@create-clear
|
||||
|
||||
# Board Name: mt8173-elm-hana
|
||||
# Bug Report: https://lore.kernel.org/linux-mediatek/0b2a1899-15dd-42fa-8f63-ea0ca28dbb17@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
fbdev@unaligned-write
|
||||
|
||||
# Board Name: mt8173-elm-hana
|
||||
# Bug Report: https://lore.kernel.org/linux-mediatek/0b2a1899-15dd-42fa-8f63-ea0ca28dbb17@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
fbdev@write
|
||||
|
||||
# Board Name: mt8173-elm-hana
|
||||
# Bug Report: https://lore.kernel.org/linux-mediatek/0b2a1899-15dd-42fa-8f63-ea0ca28dbb17@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
kms_cursor_legacy@cursor-vs-flip-atomic-transitions
|
||||
|
||||
# Board Name: mt8173-elm-hana
|
||||
# Bug Report: https://lore.kernel.org/linux-mediatek/0b2a1899-15dd-42fa-8f63-ea0ca28dbb17@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
kms_prop_blob@invalid-set-prop
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Skip driver specific tests
|
||||
^amdgpu.*
|
||||
msm_.*
|
||||
^msm.*
|
||||
nouveau_.*
|
||||
panfrost_.*
|
||||
^panfrost.*
|
||||
^v3d.*
|
||||
^vc4.*
|
||||
^vmwgfx*
|
||||
|
@ -4,5 +4,5 @@ dumb_buffer@invalid-bpp,Fail
|
||||
dumb_buffer@map-invalid-size,Fail
|
||||
dumb_buffer@map-uaf,Fail
|
||||
dumb_buffer@map-valid,Fail
|
||||
panfrost_prime@gem-prime-import,Fail
|
||||
panfrost/panfrost_prime@gem-prime-import,Fail
|
||||
tools_test@tools_test,Fail
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Skip driver specific tests
|
||||
^amdgpu.*
|
||||
msm_.*
|
||||
^msm.*
|
||||
nouveau_.*
|
||||
^v3d.*
|
||||
^vc4.*
|
||||
|
@ -4,5 +4,5 @@ dumb_buffer@invalid-bpp,Fail
|
||||
dumb_buffer@map-invalid-size,Fail
|
||||
dumb_buffer@map-uaf,Fail
|
||||
dumb_buffer@map-valid,Fail
|
||||
panfrost_prime@gem-prime-import,Fail
|
||||
panfrost/panfrost_prime@gem-prime-import,Fail
|
||||
tools_test@tools_test,Fail
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Skip driver specific tests
|
||||
^amdgpu.*
|
||||
msm_.*
|
||||
^msm.*
|
||||
nouveau_.*
|
||||
^v3d.*
|
||||
^vc4.*
|
||||
|
@ -4,12 +4,9 @@ device_reset@unbind-cold-reset-rebind,Fail
|
||||
device_reset@unbind-reset-rebind,Fail
|
||||
dumb_buffer@invalid-bpp,Fail
|
||||
kms_3d,Fail
|
||||
kms_cursor_legacy@forked-move,Fail
|
||||
kms_cursor_legacy@single-bo,Fail
|
||||
kms_cursor_legacy@torture-bo,Fail
|
||||
kms_cursor_legacy@torture-move,Fail
|
||||
kms_force_connector_basic@force-edid,Fail
|
||||
kms_hdmi_inject@inject-4k,Fail
|
||||
kms_lease@lease-uevent,Fail
|
||||
msm_mapping@ring,Fail
|
||||
msm/msm_mapping@ring,Fail
|
||||
tools_test@tools_test,Fail
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Skip driver specific tests
|
||||
^amdgpu.*
|
||||
nouveau_.*
|
||||
panfrost_.*
|
||||
^panfrost.*
|
||||
^v3d.*
|
||||
^vc4.*
|
||||
^vmwgfx*
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Board Name: apq8096-db820c
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
# Failure Rate: 50
|
||||
dumb_buffer@create-clear
|
||||
|
@ -4,7 +4,7 @@ kms_cursor_legacy@all-pipes-torture-move
|
||||
# Skip driver specific tests
|
||||
^amdgpu.*
|
||||
nouveau_.*
|
||||
panfrost_.*
|
||||
^panfrost.*
|
||||
^v3d.*
|
||||
^vc4.*
|
||||
^vmwgfx*
|
||||
@ -23,4 +23,4 @@ core_hotunplug.*
|
||||
# *** gpu fault: ttbr0=00000001030ea000 iova=0000000001074000 dir=WRITE type=PERMISSION source=1f030000 (0,0,0,0)
|
||||
# msm_mdp 901000.display-controller: RBBM | ME master split | status=0x701000B0
|
||||
# watchdog: BUG: soft lockup - CPU#0 stuck for 26s! [kworker/u16:3:46]
|
||||
msm_mapping@shadow
|
||||
msm/msm_mapping@shadow
|
||||
|
@ -3,13 +3,11 @@ device_reset@reset-bound,Fail
|
||||
device_reset@unbind-cold-reset-rebind,Fail
|
||||
device_reset@unbind-reset-rebind,Fail
|
||||
dumb_buffer@invalid-bpp,Fail
|
||||
kms_atomic_transition@plane-primary-toggle-with-vblank-wait,Fail
|
||||
kms_color@ctm-0-25,Fail
|
||||
kms_color@ctm-0-50,Fail
|
||||
kms_color@ctm-0-75,Fail
|
||||
kms_color@ctm-blue-to-red,Fail
|
||||
kms_color@ctm-green-to-red,Fail
|
||||
kms_color@ctm-max,Fail
|
||||
kms_color@ctm-negative,Fail
|
||||
kms_color@ctm-red-to-blue,Fail
|
||||
kms_color@ctm-signed,Fail
|
||||
@ -21,72 +19,6 @@ kms_content_protection@lic-type-1,Crash
|
||||
kms_content_protection@srm,Crash
|
||||
kms_content_protection@type1,Crash
|
||||
kms_content_protection@uevent,Crash
|
||||
kms_cursor_crc@cursor-alpha-opaque,Fail
|
||||
kms_cursor_crc@cursor-alpha-transparent,Fail
|
||||
kms_cursor_crc@cursor-dpms,Fail
|
||||
kms_cursor_crc@cursor-offscreen-128x128,Fail
|
||||
kms_cursor_crc@cursor-offscreen-128x42,Fail
|
||||
kms_cursor_crc@cursor-offscreen-256x256,Fail
|
||||
kms_cursor_crc@cursor-offscreen-256x85,Fail
|
||||
kms_cursor_crc@cursor-offscreen-32x10,Fail
|
||||
kms_cursor_crc@cursor-offscreen-32x32,Fail
|
||||
kms_cursor_crc@cursor-offscreen-512x170,Fail
|
||||
kms_cursor_crc@cursor-offscreen-512x512,Fail
|
||||
kms_cursor_crc@cursor-offscreen-64x21,Fail
|
||||
kms_cursor_crc@cursor-offscreen-64x64,Fail
|
||||
kms_cursor_crc@cursor-onscreen-128x128,Fail
|
||||
kms_cursor_crc@cursor-onscreen-128x42,Fail
|
||||
kms_cursor_crc@cursor-onscreen-256x256,Fail
|
||||
kms_cursor_crc@cursor-onscreen-256x85,Fail
|
||||
kms_cursor_crc@cursor-onscreen-32x10,Fail
|
||||
kms_cursor_crc@cursor-onscreen-32x32,Fail
|
||||
kms_cursor_crc@cursor-onscreen-512x170,Fail
|
||||
kms_cursor_crc@cursor-onscreen-512x512,Fail
|
||||
kms_cursor_crc@cursor-onscreen-64x21,Fail
|
||||
kms_cursor_crc@cursor-onscreen-64x64,Fail
|
||||
kms_cursor_crc@cursor-random-128x128,Fail
|
||||
kms_cursor_crc@cursor-random-128x42,Fail
|
||||
kms_cursor_crc@cursor-random-256x256,Fail
|
||||
kms_cursor_crc@cursor-random-256x85,Fail
|
||||
kms_cursor_crc@cursor-random-32x10,Fail
|
||||
kms_cursor_crc@cursor-random-32x32,Fail
|
||||
kms_cursor_crc@cursor-random-512x170,Fail
|
||||
kms_cursor_crc@cursor-random-512x512,Fail
|
||||
kms_cursor_crc@cursor-random-64x21,Fail
|
||||
kms_cursor_crc@cursor-random-64x64,Fail
|
||||
kms_cursor_crc@cursor-rapid-movement-128x128,Fail
|
||||
kms_cursor_crc@cursor-rapid-movement-128x42,Fail
|
||||
kms_cursor_crc@cursor-rapid-movement-256x256,Fail
|
||||
kms_cursor_crc@cursor-rapid-movement-256x85,Fail
|
||||
kms_cursor_crc@cursor-rapid-movement-32x10,Fail
|
||||
kms_cursor_crc@cursor-rapid-movement-32x32,Fail
|
||||
kms_cursor_crc@cursor-rapid-movement-512x170,Fail
|
||||
kms_cursor_crc@cursor-rapid-movement-512x512,Fail
|
||||
kms_cursor_crc@cursor-rapid-movement-64x21,Fail
|
||||
kms_cursor_crc@cursor-rapid-movement-64x64,Fail
|
||||
kms_cursor_crc@cursor-size-change,Fail
|
||||
kms_cursor_crc@cursor-sliding-128x128,Fail
|
||||
kms_cursor_crc@cursor-sliding-128x42,Fail
|
||||
kms_cursor_crc@cursor-sliding-256x256,Fail
|
||||
kms_cursor_crc@cursor-sliding-256x85,Fail
|
||||
kms_cursor_crc@cursor-sliding-32x10,Fail
|
||||
kms_cursor_crc@cursor-sliding-32x32,Fail
|
||||
kms_cursor_crc@cursor-sliding-512x170,Fail
|
||||
kms_cursor_crc@cursor-sliding-512x512,Fail
|
||||
kms_cursor_crc@cursor-sliding-64x21,Fail
|
||||
kms_cursor_crc@cursor-sliding-64x64,Fail
|
||||
kms_cursor_edge_walk@128x128-left-edge,Fail
|
||||
kms_cursor_edge_walk@128x128-right-edge,Fail
|
||||
kms_cursor_edge_walk@128x128-top-bottom,Fail
|
||||
kms_cursor_edge_walk@128x128-top-edge,Fail
|
||||
kms_cursor_edge_walk@256x256-left-edge,Fail
|
||||
kms_cursor_edge_walk@256x256-right-edge,Fail
|
||||
kms_cursor_edge_walk@256x256-top-bottom,Fail
|
||||
kms_cursor_edge_walk@256x256-top-edge,Fail
|
||||
kms_cursor_edge_walk@64x64-left-edge,Fail
|
||||
kms_cursor_edge_walk@64x64-right-edge,Fail
|
||||
kms_cursor_edge_walk@64x64-top-bottom,Fail
|
||||
kms_cursor_edge_walk@64x64-top-edge,Fail
|
||||
kms_cursor_legacy@2x-cursor-vs-flip-atomic,Fail
|
||||
kms_cursor_legacy@2x-cursor-vs-flip-legacy,Fail
|
||||
kms_cursor_legacy@2x-flip-vs-cursor-atomic,Fail
|
||||
@ -100,92 +32,15 @@ kms_cursor_legacy@cursor-vs-flip-varying-size,Fail
|
||||
kms_display_modes@extended-mode-basic,Fail
|
||||
kms_flip@2x-flip-vs-modeset-vs-hang,Fail
|
||||
kms_flip@2x-flip-vs-panning-vs-hang,Fail
|
||||
kms_flip@absolute-wf_vblank,Fail
|
||||
kms_flip@absolute-wf_vblank-interruptible,Fail
|
||||
kms_flip@basic-flip-vs-wf_vblank,Fail
|
||||
kms_flip@basic-plain-flip,Fail
|
||||
kms_flip@blocking-absolute-wf_vblank,Fail
|
||||
kms_flip@blocking-absolute-wf_vblank-interruptible,Fail
|
||||
kms_flip@blocking-wf_vblank,Fail
|
||||
kms_flip@busy-flip,Fail
|
||||
kms_flip@dpms-off-confusion,Fail
|
||||
kms_flip@dpms-off-confusion-interruptible,Fail
|
||||
kms_flip@dpms-vs-vblank-race,Fail
|
||||
kms_flip@dpms-vs-vblank-race-interruptible,Fail
|
||||
kms_flip@flip-vs-absolute-wf_vblank,Fail
|
||||
kms_flip@flip-vs-absolute-wf_vblank-interruptible,Fail
|
||||
kms_flip@flip-vs-blocking-wf-vblank,Fail
|
||||
kms_flip@flip-vs-expired-vblank,Fail
|
||||
kms_flip@flip-vs-expired-vblank-interruptible,Fail
|
||||
kms_flip@flip-vs-modeset-vs-hang,Fail
|
||||
kms_flip@flip-vs-panning,Fail
|
||||
kms_flip@flip-vs-panning-interruptible,Fail
|
||||
kms_flip@flip-vs-panning-vs-hang,Fail
|
||||
kms_flip@flip-vs-rmfb,Fail
|
||||
kms_flip@flip-vs-rmfb-interruptible,Fail
|
||||
kms_flip@flip-vs-wf_vblank-interruptible,Fail
|
||||
kms_flip@modeset-vs-vblank-race,Fail
|
||||
kms_flip@modeset-vs-vblank-race-interruptible,Fail
|
||||
kms_flip@plain-flip-fb-recreate,Fail
|
||||
kms_flip@plain-flip-fb-recreate-interruptible,Fail
|
||||
kms_flip@plain-flip-interruptible,Fail
|
||||
kms_flip@plain-flip-ts-check,Fail
|
||||
kms_flip@plain-flip-ts-check-interruptible,Fail
|
||||
kms_flip@wf_vblank-ts-check,Fail
|
||||
kms_flip@wf_vblank-ts-check-interruptible,Fail
|
||||
kms_lease@cursor-implicit-plane,Fail
|
||||
kms_lease@lease-uevent,Fail
|
||||
kms_lease@page-flip-implicit-plane,Fail
|
||||
kms_lease@setcrtc-implicit-plane,Fail
|
||||
kms_lease@simple-lease,Fail
|
||||
kms_multipipe_modeset@basic-max-pipe-crc-check,Fail
|
||||
kms_pipe_crc_basic@compare-crc-sanitycheck-nv12,Fail
|
||||
kms_pipe_crc_basic@compare-crc-sanitycheck-xr24,Fail
|
||||
kms_pipe_crc_basic@disable-crc-after-crtc,Fail
|
||||
kms_pipe_crc_basic@nonblocking-crc,Fail
|
||||
kms_pipe_crc_basic@nonblocking-crc-frame-sequence,Fail
|
||||
kms_pipe_crc_basic@read-crc,Fail
|
||||
kms_pipe_crc_basic@read-crc-frame-sequence,Fail
|
||||
kms_plane@pixel-format,Fail
|
||||
kms_plane@pixel-format-source-clamping,Fail
|
||||
kms_plane@plane-panning-bottom-right,Fail
|
||||
kms_plane@plane-panning-top-left,Fail
|
||||
kms_plane@plane-position-covered,Fail
|
||||
kms_plane@plane-position-hole,Fail
|
||||
kms_plane@plane-position-hole-dpms,Fail
|
||||
kms_plane_alpha_blend@alpha-7efc,Fail
|
||||
kms_plane_alpha_blend@alpha-basic,Fail
|
||||
kms_plane_alpha_blend@alpha-opaque-fb,Fail
|
||||
kms_plane_alpha_blend@alpha-transparent-fb,Fail
|
||||
kms_plane_alpha_blend@constant-alpha-max,Fail
|
||||
kms_plane_alpha_blend@constant-alpha-mid,Fail
|
||||
kms_plane_alpha_blend@constant-alpha-min,Fail
|
||||
kms_plane_alpha_blend@coverage-7efc,Fail
|
||||
kms_plane_alpha_blend@coverage-vs-premult-vs-constant,Fail
|
||||
kms_plane_cursor@primary,Fail
|
||||
kms_plane_lowres@tiling-none,Fail
|
||||
kms_plane_multiple@tiling-none,Fail
|
||||
kms_rmfb@close-fd,Fail
|
||||
kms_rotation_crc@cursor-rotation-180,Fail
|
||||
kms_rotation_crc@primary-rotation-180,Fail
|
||||
kms_sequence@get-busy,Fail
|
||||
kms_sequence@get-forked,Fail
|
||||
kms_sequence@get-forked-busy,Fail
|
||||
kms_sequence@get-idle,Fail
|
||||
kms_sequence@queue-busy,Fail
|
||||
kms_sequence@queue-idle,Fail
|
||||
kms_vblank@accuracy-idle,Fail
|
||||
kms_vblank@crtc-id,Fail
|
||||
kms_vblank@query-busy,Fail
|
||||
kms_vblank@query-forked,Fail
|
||||
kms_vblank@query-forked-busy,Fail
|
||||
kms_vblank@query-idle,Fail
|
||||
kms_vblank@ts-continuation-dpms-rpm,Fail
|
||||
kms_vblank@ts-continuation-idle,Fail
|
||||
kms_vblank@ts-continuation-modeset,Fail
|
||||
kms_vblank@ts-continuation-modeset-rpm,Fail
|
||||
kms_vblank@wait-busy,Fail
|
||||
kms_vblank@wait-forked,Fail
|
||||
kms_vblank@wait-forked-busy,Fail
|
||||
kms_vblank@wait-idle,Fail
|
||||
tools_test@tools_test,Fail
|
||||
|
@ -1,8 +1,20 @@
|
||||
# Board Name: sc7180-trogdor-kingoftown
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
msm/msm_mapping@shadow
|
||||
|
||||
# Board Name: sc7180-trogdor-kingoftown
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
msm_mapping@shadow
|
||||
msm_shrink@copy-gpu-oom-32
|
||||
msm_shrink@copy-gpu-oom-8
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
msm/msm_shrink@copy-gpu-oom-32
|
||||
|
||||
# Board Name: sc7180-trogdor-kingoftown
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
msm/msm_shrink@copy-gpu-oom-8
|
||||
|
@ -4,7 +4,7 @@
|
||||
# Skip driver specific tests
|
||||
^amdgpu.*
|
||||
nouveau_.*
|
||||
panfrost_.*
|
||||
^panfrost.*
|
||||
^v3d.*
|
||||
^vc4.*
|
||||
^vmwgfx*
|
||||
@ -19,3 +19,6 @@ core_hotunplug.*
|
||||
|
||||
# Timeout occurs
|
||||
kms_flip@2x-wf_vblank-ts-check
|
||||
|
||||
# Hangs the machine
|
||||
kms_cursor_crc@cursor-random-max-size
|
||||
|
@ -3,13 +3,11 @@ device_reset@reset-bound,Fail
|
||||
device_reset@unbind-cold-reset-rebind,Fail
|
||||
device_reset@unbind-reset-rebind,Fail
|
||||
dumb_buffer@invalid-bpp,Fail
|
||||
kms_atomic_transition@plane-primary-toggle-with-vblank-wait,Fail
|
||||
kms_color@ctm-0-25,Fail
|
||||
kms_color@ctm-0-50,Fail
|
||||
kms_color@ctm-0-75,Fail
|
||||
kms_color@ctm-blue-to-red,Fail
|
||||
kms_color@ctm-green-to-red,Fail
|
||||
kms_color@ctm-max,Fail
|
||||
kms_color@ctm-negative,Fail
|
||||
kms_color@ctm-red-to-blue,Fail
|
||||
kms_color@ctm-signed,Fail
|
||||
@ -21,72 +19,6 @@ kms_content_protection@lic-type-1,Crash
|
||||
kms_content_protection@srm,Crash
|
||||
kms_content_protection@type1,Crash
|
||||
kms_content_protection@uevent,Crash
|
||||
kms_cursor_crc@cursor-alpha-opaque,Fail
|
||||
kms_cursor_crc@cursor-alpha-transparent,Fail
|
||||
kms_cursor_crc@cursor-dpms,Fail
|
||||
kms_cursor_crc@cursor-offscreen-128x128,Fail
|
||||
kms_cursor_crc@cursor-offscreen-128x42,Fail
|
||||
kms_cursor_crc@cursor-offscreen-256x256,Fail
|
||||
kms_cursor_crc@cursor-offscreen-256x85,Fail
|
||||
kms_cursor_crc@cursor-offscreen-32x10,Fail
|
||||
kms_cursor_crc@cursor-offscreen-32x32,Fail
|
||||
kms_cursor_crc@cursor-offscreen-512x170,Fail
|
||||
kms_cursor_crc@cursor-offscreen-512x512,Fail
|
||||
kms_cursor_crc@cursor-offscreen-64x21,Fail
|
||||
kms_cursor_crc@cursor-offscreen-64x64,Fail
|
||||
kms_cursor_crc@cursor-onscreen-128x128,Fail
|
||||
kms_cursor_crc@cursor-onscreen-128x42,Fail
|
||||
kms_cursor_crc@cursor-onscreen-256x256,Fail
|
||||
kms_cursor_crc@cursor-onscreen-256x85,Fail
|
||||
kms_cursor_crc@cursor-onscreen-32x10,Fail
|
||||
kms_cursor_crc@cursor-onscreen-32x32,Fail
|
||||
kms_cursor_crc@cursor-onscreen-512x170,Fail
|
||||
kms_cursor_crc@cursor-onscreen-512x512,Fail
|
||||
kms_cursor_crc@cursor-onscreen-64x21,Fail
|
||||
kms_cursor_crc@cursor-onscreen-64x64,Fail
|
||||
kms_cursor_crc@cursor-random-128x128,Fail
|
||||
kms_cursor_crc@cursor-random-128x42,Fail
|
||||
kms_cursor_crc@cursor-random-256x256,Fail
|
||||
kms_cursor_crc@cursor-random-256x85,Fail
|
||||
kms_cursor_crc@cursor-random-32x10,Fail
|
||||
kms_cursor_crc@cursor-random-32x32,Fail
|
||||
kms_cursor_crc@cursor-random-512x170,Fail
|
||||
kms_cursor_crc@cursor-random-512x512,Fail
|
||||
kms_cursor_crc@cursor-random-64x21,Fail
|
||||
kms_cursor_crc@cursor-random-64x64,Fail
|
||||
kms_cursor_crc@cursor-rapid-movement-128x128,Fail
|
||||
kms_cursor_crc@cursor-rapid-movement-128x42,Fail
|
||||
kms_cursor_crc@cursor-rapid-movement-256x256,Fail
|
||||
kms_cursor_crc@cursor-rapid-movement-256x85,Fail
|
||||
kms_cursor_crc@cursor-rapid-movement-32x10,Fail
|
||||
kms_cursor_crc@cursor-rapid-movement-32x32,Fail
|
||||
kms_cursor_crc@cursor-rapid-movement-512x170,Fail
|
||||
kms_cursor_crc@cursor-rapid-movement-512x512,Fail
|
||||
kms_cursor_crc@cursor-rapid-movement-64x21,Fail
|
||||
kms_cursor_crc@cursor-rapid-movement-64x64,Fail
|
||||
kms_cursor_crc@cursor-size-change,Fail
|
||||
kms_cursor_crc@cursor-sliding-128x128,Fail
|
||||
kms_cursor_crc@cursor-sliding-128x42,Fail
|
||||
kms_cursor_crc@cursor-sliding-256x256,Fail
|
||||
kms_cursor_crc@cursor-sliding-256x85,Fail
|
||||
kms_cursor_crc@cursor-sliding-32x10,Fail
|
||||
kms_cursor_crc@cursor-sliding-32x32,Fail
|
||||
kms_cursor_crc@cursor-sliding-512x170,Fail
|
||||
kms_cursor_crc@cursor-sliding-512x512,Fail
|
||||
kms_cursor_crc@cursor-sliding-64x21,Fail
|
||||
kms_cursor_crc@cursor-sliding-64x64,Fail
|
||||
kms_cursor_edge_walk@128x128-left-edge,Fail
|
||||
kms_cursor_edge_walk@128x128-right-edge,Fail
|
||||
kms_cursor_edge_walk@128x128-top-bottom,Fail
|
||||
kms_cursor_edge_walk@128x128-top-edge,Fail
|
||||
kms_cursor_edge_walk@256x256-left-edge,Fail
|
||||
kms_cursor_edge_walk@256x256-right-edge,Fail
|
||||
kms_cursor_edge_walk@256x256-top-bottom,Fail
|
||||
kms_cursor_edge_walk@256x256-top-edge,Fail
|
||||
kms_cursor_edge_walk@64x64-left-edge,Fail
|
||||
kms_cursor_edge_walk@64x64-right-edge,Fail
|
||||
kms_cursor_edge_walk@64x64-top-bottom,Fail
|
||||
kms_cursor_edge_walk@64x64-top-edge,Fail
|
||||
kms_cursor_legacy@2x-cursor-vs-flip-atomic,Fail
|
||||
kms_cursor_legacy@2x-cursor-vs-flip-legacy,Fail
|
||||
kms_cursor_legacy@2x-flip-vs-cursor-atomic,Fail
|
||||
@ -100,92 +32,15 @@ kms_cursor_legacy@cursor-vs-flip-varying-size,Fail
|
||||
kms_display_modes@extended-mode-basic,Fail
|
||||
kms_flip@2x-flip-vs-modeset-vs-hang,Fail
|
||||
kms_flip@2x-flip-vs-panning-vs-hang,Fail
|
||||
kms_flip@absolute-wf_vblank,Fail
|
||||
kms_flip@absolute-wf_vblank-interruptible,Fail
|
||||
kms_flip@basic-flip-vs-wf_vblank,Fail
|
||||
kms_flip@basic-plain-flip,Fail
|
||||
kms_flip@blocking-absolute-wf_vblank,Fail
|
||||
kms_flip@blocking-absolute-wf_vblank-interruptible,Fail
|
||||
kms_flip@blocking-wf_vblank,Fail
|
||||
kms_flip@busy-flip,Fail
|
||||
kms_flip@dpms-off-confusion,Fail
|
||||
kms_flip@dpms-off-confusion-interruptible,Fail
|
||||
kms_flip@dpms-vs-vblank-race,Fail
|
||||
kms_flip@dpms-vs-vblank-race-interruptible,Fail
|
||||
kms_flip@flip-vs-absolute-wf_vblank,Fail
|
||||
kms_flip@flip-vs-absolute-wf_vblank-interruptible,Fail
|
||||
kms_flip@flip-vs-blocking-wf-vblank,Fail
|
||||
kms_flip@flip-vs-expired-vblank,Fail
|
||||
kms_flip@flip-vs-expired-vblank-interruptible,Fail
|
||||
kms_flip@flip-vs-modeset-vs-hang,Fail
|
||||
kms_flip@flip-vs-panning,Fail
|
||||
kms_flip@flip-vs-panning-interruptible,Fail
|
||||
kms_flip@flip-vs-panning-vs-hang,Fail
|
||||
kms_flip@flip-vs-rmfb,Fail
|
||||
kms_flip@flip-vs-rmfb-interruptible,Fail
|
||||
kms_flip@flip-vs-wf_vblank-interruptible,Fail
|
||||
kms_flip@modeset-vs-vblank-race,Fail
|
||||
kms_flip@modeset-vs-vblank-race-interruptible,Fail
|
||||
kms_flip@plain-flip-fb-recreate,Fail
|
||||
kms_flip@plain-flip-fb-recreate-interruptible,Fail
|
||||
kms_flip@plain-flip-interruptible,Fail
|
||||
kms_flip@plain-flip-ts-check,Fail
|
||||
kms_flip@plain-flip-ts-check-interruptible,Fail
|
||||
kms_flip@wf_vblank-ts-check,Fail
|
||||
kms_flip@wf_vblank-ts-check-interruptible,Fail
|
||||
kms_lease@cursor-implicit-plane,Fail
|
||||
kms_lease@lease-uevent,Fail
|
||||
kms_lease@page-flip-implicit-plane,Fail
|
||||
kms_lease@setcrtc-implicit-plane,Fail
|
||||
kms_lease@simple-lease,Fail
|
||||
kms_multipipe_modeset@basic-max-pipe-crc-check,Fail
|
||||
kms_pipe_crc_basic@compare-crc-sanitycheck-nv12,Fail
|
||||
kms_pipe_crc_basic@compare-crc-sanitycheck-xr24,Fail
|
||||
kms_pipe_crc_basic@disable-crc-after-crtc,Fail
|
||||
kms_pipe_crc_basic@nonblocking-crc,Fail
|
||||
kms_pipe_crc_basic@nonblocking-crc-frame-sequence,Fail
|
||||
kms_pipe_crc_basic@read-crc,Fail
|
||||
kms_pipe_crc_basic@read-crc-frame-sequence,Fail
|
||||
kms_plane@pixel-format,Fail
|
||||
kms_plane@pixel-format-source-clamping,Fail
|
||||
kms_plane@plane-panning-bottom-right,Fail
|
||||
kms_plane@plane-panning-top-left,Fail
|
||||
kms_plane@plane-position-covered,Fail
|
||||
kms_plane@plane-position-hole,Fail
|
||||
kms_plane@plane-position-hole-dpms,Fail
|
||||
kms_plane_alpha_blend@alpha-7efc,Fail
|
||||
kms_plane_alpha_blend@alpha-basic,Fail
|
||||
kms_plane_alpha_blend@alpha-opaque-fb,Fail
|
||||
kms_plane_alpha_blend@alpha-transparent-fb,Fail
|
||||
kms_plane_alpha_blend@constant-alpha-max,Fail
|
||||
kms_plane_alpha_blend@constant-alpha-mid,Fail
|
||||
kms_plane_alpha_blend@constant-alpha-min,Fail
|
||||
kms_plane_alpha_blend@coverage-7efc,Fail
|
||||
kms_plane_alpha_blend@coverage-vs-premult-vs-constant,Fail
|
||||
kms_plane_cursor@primary,Fail
|
||||
kms_plane_lowres@tiling-none,Fail
|
||||
kms_plane_multiple@tiling-none,Fail
|
||||
kms_rmfb@close-fd,Fail
|
||||
kms_rotation_crc@cursor-rotation-180,Fail
|
||||
kms_rotation_crc@primary-rotation-180,Fail
|
||||
kms_sequence@get-busy,Fail
|
||||
kms_sequence@get-forked,Fail
|
||||
kms_sequence@get-forked-busy,Fail
|
||||
kms_sequence@get-idle,Fail
|
||||
kms_sequence@queue-busy,Fail
|
||||
kms_sequence@queue-idle,Fail
|
||||
kms_vblank@accuracy-idle,Fail
|
||||
kms_vblank@crtc-id,Fail
|
||||
kms_vblank@query-busy,Fail
|
||||
kms_vblank@query-forked,Fail
|
||||
kms_vblank@query-forked-busy,Fail
|
||||
kms_vblank@query-idle,Fail
|
||||
kms_vblank@ts-continuation-dpms-rpm,Fail
|
||||
kms_vblank@ts-continuation-idle,Fail
|
||||
kms_vblank@ts-continuation-modeset,Fail
|
||||
kms_vblank@ts-continuation-modeset-rpm,Fail
|
||||
kms_vblank@wait-busy,Fail
|
||||
kms_vblank@wait-forked,Fail
|
||||
kms_vblank@wait-forked-busy,Fail
|
||||
kms_vblank@wait-idle,Fail
|
||||
tools_test@tools_test,Fail
|
||||
|
@ -1,6 +1,13 @@
|
||||
# Board Name: sc7180-trogdor-lazor-limozeen-nots-r5
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
# Failure Rate: 50
|
||||
msm_mapping@shadow
|
||||
msm/msm_mapping@shadow
|
||||
|
||||
# Board Name: sc7180-trogdor-lazor-limozeen-nots-r5
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 100
|
||||
# IGT Version: 1.28-gf13702b8e
|
||||
# Linux Version: 6.10.0-rc5
|
||||
kms_lease@page-flip-implicit-plane
|
||||
|
@ -4,7 +4,7 @@
|
||||
# Skip driver specific tests
|
||||
^amdgpu.*
|
||||
nouveau_.*
|
||||
panfrost_.*
|
||||
^panfrost.*
|
||||
^v3d.*
|
||||
^vc4.*
|
||||
^vmwgfx*
|
||||
|
@ -1,19 +1,118 @@
|
||||
# Board Name: sdm845-cheza-r3
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
# Failure Rate: 50
|
||||
kms_cursor_legacy@basic-flip-after-cursor-atomic
|
||||
|
||||
# Board Name: sdm845-cheza-r3
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
kms_cursor_legacy@basic-flip-after-cursor-legacy
|
||||
|
||||
# Board Name: sdm845-cheza-r3
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
kms_cursor_legacy@basic-flip-after-cursor-varying-size
|
||||
|
||||
# Board Name: sdm845-cheza-r3
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
kms_cursor_legacy@basic-flip-before-cursor-varying-size
|
||||
|
||||
# Board Name: sdm845-cheza-r3
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
kms_cursor_legacy@flip-vs-cursor-atomic-transitions
|
||||
|
||||
# Board Name: sdm845-cheza-r3
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size
|
||||
|
||||
# Board Name: sdm845-cheza-r3
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
kms_cursor_legacy@flip-vs-cursor-varying-size
|
||||
|
||||
# Board Name: sdm845-cheza-r3
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
kms_cursor_legacy@short-flip-after-cursor-atomic-transitions
|
||||
|
||||
# Board Name: sdm845-cheza-r3
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
kms_cursor_legacy@short-flip-after-cursor-atomic-transitions-varying-size
|
||||
|
||||
# Board Name: sdm845-cheza-r3
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
kms_cursor_legacy@short-flip-after-cursor-toggle
|
||||
|
||||
# Board Name: sdm845-cheza-r3
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
kms_cursor_legacy@short-flip-before-cursor-atomic-transitions
|
||||
|
||||
# Board Name: sdm845-cheza-r3
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
kms_cursor_legacy@short-flip-before-cursor-atomic-transitions-varying-size
|
||||
msm_shrink@copy-gpu-32
|
||||
msm_shrink@copy-gpu-oom-32
|
||||
|
||||
# Board Name: sdm845-cheza-r3
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
msm/msm_shrink@copy-gpu-32
|
||||
|
||||
# Board Name: sdm845-cheza-r3
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
msm/msm_shrink@copy-gpu-oom-32
|
||||
|
||||
# Board Name: sdm845-cheza-r3
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-gf13702b8e
|
||||
# Linux Version: 6.10.0-rc5
|
||||
kms_cursor_legacy@short-flip-before-cursor-toggle
|
||||
|
||||
# Board Name: sdm845-cheza-r3
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-gf13702b8e
|
||||
# Linux Version: 6.10.0-rc5
|
||||
kms_cursor_legacy@flip-vs-cursor-toggle
|
||||
|
||||
# Board Name: sdm845-cheza-r3
|
||||
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-gf13702b8e
|
||||
# Linux Version: 6.10.0-rc5
|
||||
msm/msm_shrink@copy-mmap-oom-8
|
||||
|
@ -4,12 +4,12 @@ kms_bw.*
|
||||
# Failing due to a bootloader/fw issue. The workaround in mesa CI involves these two patches
|
||||
# https://gitlab.freedesktop.org/gfx-ci/linux/-/commit/4b49f902ec6f2bb382cbbf489870573f4b43371e
|
||||
# https://gitlab.freedesktop.org/gfx-ci/linux/-/commit/38cdf4c5559771e2474ae0fecef8469f65147bc1
|
||||
msm_mapping@*
|
||||
msm/msm_mapping@*
|
||||
|
||||
# Skip driver specific tests
|
||||
^amdgpu.*
|
||||
nouveau_.*
|
||||
panfrost_.*
|
||||
^panfrost.*
|
||||
^v3d.*
|
||||
^vc4.*
|
||||
^vmwgfx*
|
||||
|
@ -4,5 +4,5 @@ dumb_buffer@invalid-bpp,Crash
|
||||
dumb_buffer@map-invalid-size,Crash
|
||||
dumb_buffer@map-uaf,Crash
|
||||
dumb_buffer@map-valid,Crash
|
||||
panfrost_prime@gem-prime-import,Crash
|
||||
panfrost/panfrost_prime@gem-prime-import,Crash
|
||||
tools_test@tools_test,Crash
|
||||
|
@ -53,7 +53,7 @@ kms_pipe_crc_basic@disable-crc-after-crtc
|
||||
|
||||
# Skip driver specific tests
|
||||
^amdgpu.*
|
||||
msm_.*
|
||||
^msm.*
|
||||
nouveau_.*
|
||||
^v3d.*
|
||||
^vc4.*
|
||||
|
@ -4,5 +4,5 @@ dumb_buffer@invalid-bpp,Fail
|
||||
dumb_buffer@map-invalid-size,Fail
|
||||
dumb_buffer@map-uaf,Fail
|
||||
dumb_buffer@map-valid,Fail
|
||||
panfrost_prime@gem-prime-import,Fail
|
||||
panfrost/panfrost_prime@gem-prime-import,Fail
|
||||
tools_test@tools_test,Fail
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Board Name: rk3399-gru-kevin
|
||||
# Bug Report: https://lore.kernel.org/dri-devel/5cc34a8b-c1fa-4744-9031-2d33ecf41011@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
# Failure Rate: 50
|
||||
panfrost_submit@pan-unhandled-pagefault
|
||||
panfrost/panfrost_submit@pan-unhandled-pagefault
|
||||
|
@ -6,7 +6,7 @@ kms_cursor_legacy.*
|
||||
|
||||
# Skip driver specific tests
|
||||
^amdgpu.*
|
||||
msm_.*
|
||||
^msm.*
|
||||
nouveau_.*
|
||||
^v3d.*
|
||||
^vc4.*
|
||||
|
@ -3,6 +3,70 @@ kms_addfb_basic@bo-too-small,Fail
|
||||
kms_addfb_basic@size-max,Fail
|
||||
kms_addfb_basic@too-high,Fail
|
||||
kms_atomic_transition@plane-primary-toggle-with-vblank-wait,Fail
|
||||
kms_bw@connected-linear-tiling-1-displays-1920x1080p,Fail
|
||||
kms_bw@connected-linear-tiling-1-displays-2160x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-1-displays-2560x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-1-displays-3840x2160p,Fail
|
||||
kms_bw@connected-linear-tiling-10-displays-1920x1080p,Fail
|
||||
kms_bw@connected-linear-tiling-10-displays-2160x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-10-displays-2560x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-10-displays-3840x2160p,Fail
|
||||
kms_bw@connected-linear-tiling-11-displays-1920x1080p,Fail
|
||||
kms_bw@connected-linear-tiling-11-displays-2160x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-11-displays-2560x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-11-displays-3840x2160p,Fail
|
||||
kms_bw@connected-linear-tiling-12-displays-1920x1080p,Fail
|
||||
kms_bw@connected-linear-tiling-12-displays-2160x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-12-displays-2560x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-12-displays-3840x2160p,Fail
|
||||
kms_bw@connected-linear-tiling-13-displays-1920x1080p,Fail
|
||||
kms_bw@connected-linear-tiling-13-displays-2160x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-13-displays-2560x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-13-displays-3840x2160p,Fail
|
||||
kms_bw@connected-linear-tiling-14-displays-1920x1080p,Fail
|
||||
kms_bw@connected-linear-tiling-14-displays-2160x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-14-displays-2560x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-14-displays-3840x2160p,Fail
|
||||
kms_bw@connected-linear-tiling-15-displays-1920x1080p,Fail
|
||||
kms_bw@connected-linear-tiling-15-displays-2160x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-15-displays-2560x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-15-displays-3840x2160p,Fail
|
||||
kms_bw@connected-linear-tiling-16-displays-1920x1080p,Fail
|
||||
kms_bw@connected-linear-tiling-16-displays-2160x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-16-displays-2560x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-16-displays-3840x2160p,Fail
|
||||
kms_bw@connected-linear-tiling-2-displays-1920x1080p,Fail
|
||||
kms_bw@connected-linear-tiling-2-displays-2160x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-2-displays-2560x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-2-displays-3840x2160p,Fail
|
||||
kms_bw@connected-linear-tiling-3-displays-1920x1080p,Fail
|
||||
kms_bw@connected-linear-tiling-3-displays-2160x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-3-displays-2560x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-3-displays-3840x2160p,Fail
|
||||
kms_bw@connected-linear-tiling-4-displays-1920x1080p,Fail
|
||||
kms_bw@connected-linear-tiling-4-displays-2160x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-4-displays-2560x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-4-displays-3840x2160p,Fail
|
||||
kms_bw@connected-linear-tiling-5-displays-1920x1080p,Fail
|
||||
kms_bw@connected-linear-tiling-5-displays-2160x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-5-displays-2560x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-5-displays-3840x2160p,Fail
|
||||
kms_bw@connected-linear-tiling-6-displays-1920x1080p,Fail
|
||||
kms_bw@connected-linear-tiling-6-displays-2160x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-6-displays-2560x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-6-displays-3840x2160p,Fail
|
||||
kms_bw@connected-linear-tiling-7-displays-1920x1080p,Fail
|
||||
kms_bw@connected-linear-tiling-7-displays-2160x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-7-displays-2560x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-7-displays-3840x2160p,Fail
|
||||
kms_bw@connected-linear-tiling-8-displays-1920x1080p,Fail
|
||||
kms_bw@connected-linear-tiling-8-displays-2160x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-8-displays-2560x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-8-displays-3840x2160p,Fail
|
||||
kms_bw@connected-linear-tiling-9-displays-1920x1080p,Fail
|
||||
kms_bw@connected-linear-tiling-9-displays-2160x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-9-displays-2560x1440p,Fail
|
||||
kms_bw@connected-linear-tiling-9-displays-3840x2160p,Fail
|
||||
kms_bw@linear-tiling-1-displays-1920x1080p,Fail
|
||||
kms_bw@linear-tiling-1-displays-2160x1440p,Fail
|
||||
kms_bw@linear-tiling-1-displays-2560x1440p,Fail
|
||||
|
@ -7,9 +7,9 @@ kms_flip@flip-vs-suspend.*
|
||||
|
||||
# Skip driver specific tests
|
||||
^amdgpu.*
|
||||
msm_.*
|
||||
^msm.*
|
||||
nouveau_.*
|
||||
panfrost_.*
|
||||
^panfrost.*
|
||||
^v3d.*
|
||||
^vc4.*
|
||||
^vmwgfx*
|
||||
|
@ -41,12 +41,8 @@ kms_cursor_legacy@flip-vs-cursor-crc-legacy,Fail
|
||||
kms_cursor_legacy@flip-vs-cursor-legacy,Fail
|
||||
kms_flip@flip-vs-modeset-vs-hang,Fail
|
||||
kms_flip@flip-vs-panning-vs-hang,Fail
|
||||
kms_flip@flip-vs-suspend,Timeout
|
||||
kms_flip@flip-vs-suspend-interruptible,Timeout
|
||||
kms_flip@plain-flip-fb-recreate,Fail
|
||||
kms_lease@lease-uevent,Fail
|
||||
kms_pipe_crc_basic@nonblocking-crc,Fail
|
||||
kms_pipe_crc_basic@nonblocking-crc-frame-sequence,Fail
|
||||
kms_writeback@writeback-check-output,Fail
|
||||
kms_writeback@writeback-check-output-XRGB2101010,Fail
|
||||
kms_writeback@writeback-fb-id,Fail
|
||||
|
@ -67,3 +67,24 @@ kms_flip@flip-vs-absolute-wf_vblank-interruptible
|
||||
# IGT Version: 1.28-g0df7b9b97
|
||||
# Linux Version: 6.9.0-rc7
|
||||
kms_flip@flip-vs-blocking-wf-vblank
|
||||
|
||||
# Board Name: vkms
|
||||
# Bug Report: https://lore.kernel.org/dri-devel/61ed26af-062c-443c-9df2-d1ee319f3fb0@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-gf13702b8e
|
||||
# Linux Version: 6.10.0-rc5
|
||||
kms_cursor_legacy@flip-vs-cursor-varying-size
|
||||
|
||||
# Board Name: vkms
|
||||
# Bug Report: https://lore.kernel.org/dri-devel/61ed26af-062c-443c-9df2-d1ee319f3fb0@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-gf13702b8e
|
||||
# Linux Version: 6.10.0-rc5
|
||||
kms_flip@flip-vs-expired-vblank
|
||||
|
||||
# Board Name: vkms
|
||||
# Bug Report: https://lore.kernel.org/dri-devel/61ed26af-062c-443c-9df2-d1ee319f3fb0@collabora.com/T/#u
|
||||
# Failure Rate: 50
|
||||
# IGT Version: 1.28-gf13702b8e
|
||||
# Linux Version: 6.10.0-rc5
|
||||
kms_pipe_crc_basic@nonblocking-crc-frame-sequence
|
||||
|
@ -104,11 +104,112 @@ kms_cursor_crc@cursor-rapid-movement-256x85
|
||||
# CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
|
||||
# CR2: 0000000000000078 CR3: 0000000109b38000 CR4: 0000000000350ef0
|
||||
|
||||
kms_cursor_crc@cursor-onscreen-256x256
|
||||
# Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI
|
||||
# CPU: 1 PID: 1913 Comm: kworker/u8:6 Not tainted 6.10.0-rc5-g8a28e73ebead #1
|
||||
# Hardware name: ChromiumOS crosvm, BIOS 0
|
||||
# Workqueue: vkms_composer vkms_composer_worker [vkms]
|
||||
# RIP: 0010:compose_active_planes+0x344/0x4e0 [vkms]
|
||||
# Code: 6a 34 0f 8e 91 fe ff ff 44 89 ea 48 8d 7c 24 48 e8 71 f0 ff ff 4b 8b 04 fc 48 8b 4c 24 50 48 8b 7c 24 40 48 8b 80 48 01 00 00 <48> 63 70 18 8b 40 20 48 89 f2 48 c1 e6 03 29 d0 48 8b 54 24 48 48
|
||||
# RSP: 0018:ffffb477409fbd58 EFLAGS: 00010282
|
||||
# RAX: 0000000000000000 RBX: 0000000000000002 RCX: ffff8b124a242000
|
||||
# RDX: 00000000000000ff RSI: ffff8b124a243ff8 RDI: ffff8b124a244000
|
||||
# RBP: 0000000000000002 R08: 0000000000000000 R09: 00000000000003ff
|
||||
# R10: ffff8b124a244000 R11: 0000000000000000 R12: ffff8b1249282f30
|
||||
# R13: 0000000000000002 R14: 0000000000000002 R15: 0000000000000000
|
||||
# FS: 0000000000000000(0000) GS:ffff8b126bd00000(0000) knlGS:0000000000000000
|
||||
# CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
|
||||
# CR2: 0000000000000018 CR3: 0000000107a86000 CR4: 0000000000350ef0
|
||||
# Call Trace:
|
||||
# <TASK>
|
||||
# ? __die+0x1e/0x60
|
||||
# ? page_fault_oops+0x17b/0x4a0
|
||||
# ? exc_page_fault+0x6d/0x230
|
||||
# ? asm_exc_page_fault+0x26/0x30
|
||||
# ? compose_active_planes+0x344/0x4e0 [vkms]
|
||||
# ? compose_active_planes+0x32f/0x4e0 [vkms]
|
||||
# ? srso_return_thunk+0x5/0x5f
|
||||
# vkms_composer_worker+0x205/0x240 [vkms]
|
||||
# process_one_work+0x201/0x6c0
|
||||
# ? lock_is_held_type+0x9e/0x110
|
||||
# worker_thread+0x17e/0x350
|
||||
# ? __pfx_worker_thread+0x10/0x10
|
||||
# kthread+0xce/0x100
|
||||
# ? __pfx_kthread+0x10/0x10
|
||||
# ret_from_fork+0x2f/0x50
|
||||
# ? __pfx_kthread+0x10/0x10
|
||||
# ret_from_fork_asm+0x1a/0x30
|
||||
# </TASK>
|
||||
# Modules linked in: vkms
|
||||
# CR2: 0000000000000018
|
||||
# ---[ end trace 0000000000000000 ]---
|
||||
# RIP: 0010:compose_active_planes+0x344/0x4e0 [vkms]
|
||||
# Code: 6a 34 0f 8e 91 fe ff ff 44 89 ea 48 8d 7c 24 48 e8 71 f0 ff ff 4b 8b 04 fc 48 8b 4c 24 50 48 8b 7c 24 40 48 8b 80 48 01 00 00 <48> 63 70 18 8b 40 20 48 89 f2 48 c1 e6 03 29 d0 48 8b 54 24 48 48
|
||||
# RSP: 0018:ffffb477409fbd58 EFLAGS: 00010282
|
||||
# RAX: 0000000000000000 RBX: 0000000000000002 RCX: ffff8b124a242000
|
||||
# RDX: 00000000000000ff RSI: ffff8b124a243ff8 RDI: ffff8b124a244000
|
||||
# RBP: 0000000000000002 R08: 0000000000000000 R09: 00000000000003ff
|
||||
# R10: ffff8b124a244000 R11: 0000000000000000 R12: ffff8b1249282f30
|
||||
# R13: 0000000000000002 R14: 0000000000000002 R15: 0000000000000000
|
||||
# FS: 0000000000000000(0000) GS:ffff8b126bd00000(0000) knlGS:0000000000000000
|
||||
# CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
|
||||
# CR2: 0000000000000018 CR3: 0000000107a86000 CR4: 0000000000350ef0
|
||||
|
||||
kms_cursor_edge_walk@128x128-right-edge
|
||||
# Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI
|
||||
# CPU: 0 PID: 1911 Comm: kworker/u8:3 Not tainted 6.10.0-rc5-g5e7a002eefe5 #1
|
||||
# Hardware name: ChromiumOS crosvm, BIOS 0
|
||||
# Workqueue: vkms_composer vkms_composer_worker [vkms]
|
||||
# RIP: 0010:compose_active_planes+0x344/0x4e0 [vkms]
|
||||
# Code: 6a 34 0f 8e 91 fe ff ff 44 89 ea 48 8d 7c 24 48 e8 71 f0 ff ff 4b 8b 04 fc 48 8b 4c 24 50 48 8b 7c 24 40 48 8b 80 48 01 00 00 <48> 63 70 18 8b 40 20 48 89 f2 48 c1 e6 03 29 d0 48 8b 54 24 48 48
|
||||
# RSP: 0018:ffffb2f040a43d58 EFLAGS: 00010282
|
||||
# RAX: 0000000000000000 RBX: 0000000000000002 RCX: ffffa2c181792000
|
||||
# RDX: 0000000000000000 RSI: ffffa2c181793ff8 RDI: ffffa2c181790000
|
||||
# RBP: 0000000000000031 R08: 0000000000000000 R09: 00000000000003ff
|
||||
# R10: ffffa2c181790000 R11: 0000000000000000 R12: ffffa2c1814fa810
|
||||
# R13: 0000000000000031 R14: 0000000000000031 R15: 0000000000000000
|
||||
# FS: 0000000000000000(0000) GS:ffffa2c1abc00000(0000) knlGS:0000000000000000
|
||||
# CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
|
||||
# CR2: 0000000000000018 CR3: 0000000106768000 CR4: 0000000000350ef0
|
||||
# Call Trace:
|
||||
# <TASK>
|
||||
# ? __die+0x1e/0x60
|
||||
# ? page_fault_oops+0x17b/0x4a0
|
||||
# ? srso_return_thunk+0x5/0x5f
|
||||
# ? mark_held_locks+0x49/0x80
|
||||
# ? exc_page_fault+0x6d/0x230
|
||||
# ? asm_exc_page_fault+0x26/0x30
|
||||
# ? compose_active_planes+0x344/0x4e0 [vkms]
|
||||
# ? compose_active_planes+0x32f/0x4e0 [vkms]
|
||||
# ? srso_return_thunk+0x5/0x5f
|
||||
# vkms_composer_worker+0x205/0x240 [vkms]
|
||||
# process_one_work+0x201/0x6c0
|
||||
# ? lock_is_held_type+0x9e/0x110
|
||||
# worker_thread+0x17e/0x350
|
||||
# ? __pfx_worker_thread+0x10/0x10
|
||||
# kthread+0xce/0x100
|
||||
# ? __pfx_kthread+0x10/0x10
|
||||
# ret_from_fork+0x2f/0x50
|
||||
# ? __pfx_kthread+0x10/0x10
|
||||
# ret_from_fork_asm+0x1a/0x30
|
||||
# </TASK>
|
||||
# Modules linked in: vkms
|
||||
# CR2: 0000000000000018
|
||||
# ---[ end trace 0000000000000000 ]---
|
||||
# RIP: 0010:compose_active_planes+0x344/0x4e0 [vkms]
|
||||
# Code: 6a 34 0f 8e 91 fe ff ff 44 89 ea 48 8d 7c 24 48 e8 71 f0 ff ff 4b 8b 04 fc 48 8b 4c 24 50 48 8b 7c 24 40 48 8b 80 48 01 00 00 <48> 63 70 18 8b 40 20 48 89 f2 48 c1 e6 03 29 d0 48 8b 54 24 48 48
|
||||
# RSP: 0018:ffffb2f040a43d58 EFLAGS: 00010282
|
||||
# RAX: 0000000000000000 RBX: 0000000000000002 RCX: ffffa2c181792000
|
||||
# RDX: 0000000000000000 RSI: ffffa2c181793ff8 RDI: ffffa2c181790000
|
||||
# RBP: 0000000000000031 R08: 0000000000000000 R09: 00000000000003ff
|
||||
# R10: ffffa2c181790000 R11: 0000000000000000 R12: ffffa2c1814fa810
|
||||
# R13: 0000000000000031 R14: 0000000000000031 R15: 000000000000
|
||||
|
||||
# Skip driver specific tests
|
||||
^amdgpu.*
|
||||
msm_.*
|
||||
^msm.*
|
||||
nouveau_.*
|
||||
panfrost_.*
|
||||
^panfrost.*
|
||||
^v3d.*
|
||||
^vc4.*
|
||||
^vmwgfx*
|
||||
|
@ -2328,6 +2328,31 @@ drm_dp_get_quirks(const struct drm_dp_dpcd_ident *ident, bool is_branch)
|
||||
#undef DEVICE_ID_ANY
|
||||
#undef DEVICE_ID
|
||||
|
||||
static int drm_dp_read_ident(struct drm_dp_aux *aux, unsigned int offset,
|
||||
struct drm_dp_dpcd_ident *ident)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = drm_dp_dpcd_read(aux, offset, ident, sizeof(*ident));
|
||||
|
||||
return ret < 0 ? ret : 0;
|
||||
}
|
||||
|
||||
static void drm_dp_dump_desc(struct drm_dp_aux *aux,
|
||||
const char *device_name, const struct drm_dp_desc *desc)
|
||||
{
|
||||
const struct drm_dp_dpcd_ident *ident = &desc->ident;
|
||||
|
||||
drm_dbg_kms(aux->drm_dev,
|
||||
"%s: %s: OUI %*phD dev-ID %*pE HW-rev %d.%d SW-rev %d.%d quirks 0x%04x\n",
|
||||
aux->name, device_name,
|
||||
(int)sizeof(ident->oui), ident->oui,
|
||||
(int)strnlen(ident->device_id, sizeof(ident->device_id)), ident->device_id,
|
||||
ident->hw_rev >> 4, ident->hw_rev & 0xf,
|
||||
ident->sw_major_rev, ident->sw_minor_rev,
|
||||
desc->quirks);
|
||||
}
|
||||
|
||||
/**
|
||||
* drm_dp_read_desc - read sink/branch descriptor from DPCD
|
||||
* @aux: DisplayPort AUX channel
|
||||
@ -2344,27 +2369,48 @@ int drm_dp_read_desc(struct drm_dp_aux *aux, struct drm_dp_desc *desc,
|
||||
{
|
||||
struct drm_dp_dpcd_ident *ident = &desc->ident;
|
||||
unsigned int offset = is_branch ? DP_BRANCH_OUI : DP_SINK_OUI;
|
||||
int ret, dev_id_len;
|
||||
int ret;
|
||||
|
||||
ret = drm_dp_dpcd_read(aux, offset, ident, sizeof(*ident));
|
||||
ret = drm_dp_read_ident(aux, offset, ident);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
desc->quirks = drm_dp_get_quirks(ident, is_branch);
|
||||
|
||||
dev_id_len = strnlen(ident->device_id, sizeof(ident->device_id));
|
||||
|
||||
drm_dbg_kms(aux->drm_dev,
|
||||
"%s: DP %s: OUI %*phD dev-ID %*pE HW-rev %d.%d SW-rev %d.%d quirks 0x%04x\n",
|
||||
aux->name, is_branch ? "branch" : "sink",
|
||||
(int)sizeof(ident->oui), ident->oui, dev_id_len,
|
||||
ident->device_id, ident->hw_rev >> 4, ident->hw_rev & 0xf,
|
||||
ident->sw_major_rev, ident->sw_minor_rev, desc->quirks);
|
||||
drm_dp_dump_desc(aux, is_branch ? "DP branch" : "DP sink", desc);
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(drm_dp_read_desc);
|
||||
|
||||
/**
|
||||
* drm_dp_dump_lttpr_desc - read and dump the DPCD descriptor for an LTTPR PHY
|
||||
* @aux: DisplayPort AUX channel
|
||||
* @dp_phy: LTTPR PHY instance
|
||||
*
|
||||
* Read the DPCD LTTPR PHY descriptor for @dp_phy and print a debug message
|
||||
* with its details to dmesg.
|
||||
*
|
||||
* Returns 0 on success or a negative error code on failure.
|
||||
*/
|
||||
int drm_dp_dump_lttpr_desc(struct drm_dp_aux *aux, enum drm_dp_phy dp_phy)
|
||||
{
|
||||
struct drm_dp_desc desc = {};
|
||||
int ret;
|
||||
|
||||
if (drm_WARN_ON(aux->drm_dev, dp_phy < DP_PHY_LTTPR1 || dp_phy > DP_MAX_LTTPR_COUNT))
|
||||
return -EINVAL;
|
||||
|
||||
ret = drm_dp_read_ident(aux, DP_OUI_PHY_REPEATER(dp_phy), &desc.ident);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
drm_dp_dump_desc(aux, drm_dp_phy_name(dp_phy), &desc);
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(drm_dp_dump_lttpr_desc);
|
||||
|
||||
/**
|
||||
* drm_dp_dsc_sink_bpp_incr() - Get bits per pixel increment
|
||||
* @dsc_dpcd: DSC capabilities from DPCD
|
||||
|
@ -4963,7 +4963,7 @@ void drm_dp_mst_dump_topology(struct seq_file *m,
|
||||
seq_printf(m, "branch oui: %*phN devid: ", 3, buf);
|
||||
|
||||
for (i = 0x3; i < 0x8 && buf[i]; i++)
|
||||
seq_printf(m, "%c", buf[i]);
|
||||
seq_putc(m, buf[i]);
|
||||
seq_printf(m, " revision: hw: %x.%x sw: %x.%x\n",
|
||||
buf[0x9] >> 4, buf[0x9] & 0xf, buf[0xa], buf[0xb]);
|
||||
if (dump_dp_payload_table(mgr, buf))
|
||||
|
@ -353,8 +353,13 @@ err_reset_bridge:
|
||||
bridge->encoder = NULL;
|
||||
list_del(&bridge->chain_node);
|
||||
|
||||
DRM_ERROR("failed to attach bridge %pOF to encoder %s: %d\n",
|
||||
bridge->of_node, encoder->name, ret);
|
||||
if (ret != -EPROBE_DEFER)
|
||||
DRM_ERROR("failed to attach bridge %pOF to encoder %s: %d\n",
|
||||
bridge->of_node, encoder->name, ret);
|
||||
else
|
||||
dev_err_probe(encoder->dev->dev, -EPROBE_DEFER,
|
||||
"failed to attach bridge %pOF to encoder %s\n",
|
||||
bridge->of_node, encoder->name);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -443,10 +443,8 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm,
|
||||
panel_bridge = bridge;
|
||||
}
|
||||
|
||||
if (connector_type == DRM_MODE_CONNECTOR_Unknown) {
|
||||
kfree(bridge_connector);
|
||||
if (connector_type == DRM_MODE_CONNECTOR_Unknown)
|
||||
return ERR_PTR(-EINVAL);
|
||||
}
|
||||
|
||||
if (bridge_connector->bridge_hdmi)
|
||||
ret = drmm_connector_hdmi_init(drm, connector,
|
||||
@ -461,10 +459,8 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm,
|
||||
ret = drmm_connector_init(drm, connector,
|
||||
&drm_bridge_connector_funcs,
|
||||
connector_type, ddc);
|
||||
if (ret) {
|
||||
kfree(bridge_connector);
|
||||
if (ret)
|
||||
return ERR_PTR(ret);
|
||||
}
|
||||
|
||||
drm_connector_helper_add(connector, &drm_bridge_connector_helper_funcs);
|
||||
|
||||
|
@ -1043,6 +1043,11 @@ static const struct drm_prop_enum_list drm_scaling_mode_enum_list[] = {
|
||||
{ DRM_MODE_SCALE_ASPECT, "Full aspect" },
|
||||
};
|
||||
|
||||
static const struct drm_prop_enum_list drm_power_saving_policy_enum_list[] = {
|
||||
{ __builtin_ffs(DRM_MODE_REQUIRE_COLOR_ACCURACY) - 1, "Require color accuracy" },
|
||||
{ __builtin_ffs(DRM_MODE_REQUIRE_LOW_LATENCY) - 1, "Require low latency" },
|
||||
};
|
||||
|
||||
static const struct drm_prop_enum_list drm_aspect_ratio_enum_list[] = {
|
||||
{ DRM_MODE_PICTURE_ASPECT_NONE, "Automatic" },
|
||||
{ DRM_MODE_PICTURE_ASPECT_4_3, "4:3" },
|
||||
@ -1629,6 +1634,16 @@ EXPORT_SYMBOL(drm_hdmi_connector_get_output_format_name);
|
||||
*
|
||||
* Drivers can set up these properties by calling
|
||||
* drm_mode_create_tv_margin_properties().
|
||||
* power saving policy:
|
||||
* This property is used to set the power saving policy for the connector.
|
||||
* This property is populated with a bitmask of optional requirements set
|
||||
* by the drm master for the drm driver to respect:
|
||||
* - "Require color accuracy": Disable power saving features that will
|
||||
* affect color fidelity.
|
||||
* For example: Hardware assisted backlight modulation.
|
||||
* - "Require low latency": Disable power saving features that will
|
||||
* affect latency.
|
||||
* For example: Panel self refresh (PSR)
|
||||
*/
|
||||
|
||||
int drm_connector_create_standard_properties(struct drm_device *dev)
|
||||
@ -2131,6 +2146,39 @@ int drm_mode_create_scaling_mode_property(struct drm_device *dev)
|
||||
}
|
||||
EXPORT_SYMBOL(drm_mode_create_scaling_mode_property);
|
||||
|
||||
/**
|
||||
* drm_mode_create_power_saving_policy_property - create power saving policy property
|
||||
* @dev: DRM device
|
||||
* @supported_policies: bitmask of supported power saving policies
|
||||
*
|
||||
* Called by a driver the first time it's needed, must be attached to desired
|
||||
* connectors.
|
||||
*
|
||||
* Returns: %0
|
||||
*/
|
||||
int drm_mode_create_power_saving_policy_property(struct drm_device *dev,
|
||||
uint64_t supported_policies)
|
||||
{
|
||||
struct drm_property *power_saving;
|
||||
|
||||
if (dev->mode_config.power_saving_policy)
|
||||
return 0;
|
||||
WARN_ON((supported_policies & DRM_MODE_POWER_SAVING_POLICY_ALL) == 0);
|
||||
|
||||
power_saving =
|
||||
drm_property_create_bitmask(dev, 0, "power saving policy",
|
||||
drm_power_saving_policy_enum_list,
|
||||
ARRAY_SIZE(drm_power_saving_policy_enum_list),
|
||||
supported_policies);
|
||||
if (!power_saving)
|
||||
return -ENOMEM;
|
||||
|
||||
dev->mode_config.power_saving_policy = power_saving;
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(drm_mode_create_power_saving_policy_property);
|
||||
|
||||
/**
|
||||
* DOC: Variable refresh properties
|
||||
*
|
||||
@ -2315,24 +2363,67 @@ EXPORT_SYMBOL(drm_mode_create_aspect_ratio_property);
|
||||
* DOC: standard connector properties
|
||||
*
|
||||
* Colorspace:
|
||||
* This property helps select a suitable colorspace based on the sink
|
||||
* capability. Modern sink devices support wider gamut like BT2020.
|
||||
* This helps switch to BT2020 mode if the BT2020 encoded video stream
|
||||
* is being played by the user, same for any other colorspace. Thereby
|
||||
* giving a good visual experience to users.
|
||||
* This property is used to inform the driver about the color encoding
|
||||
* user space configured the pixel operation properties to produce.
|
||||
* The variants set the colorimetry, transfer characteristics, and which
|
||||
* YCbCr conversion should be used when necessary.
|
||||
* The transfer characteristics from HDR_OUTPUT_METADATA takes precedence
|
||||
* over this property.
|
||||
* User space always configures the pixel operation properties to produce
|
||||
* full quantization range data (see the Broadcast RGB property).
|
||||
*
|
||||
* The expectation from userspace is that it should parse the EDID
|
||||
* and get supported colorspaces. Use this property and switch to the
|
||||
* one supported. Sink supported colorspaces should be retrieved by
|
||||
* userspace from EDID and driver will not explicitly expose them.
|
||||
* Drivers inform the sink about what colorimetry, transfer
|
||||
* characteristics, YCbCr conversion, and quantization range to expect
|
||||
* (this can depend on the output mode, output format and other
|
||||
* properties). Drivers also convert the user space provided data to what
|
||||
* the sink expects.
|
||||
*
|
||||
* Basically the expectation from userspace is:
|
||||
* - Set up CRTC DEGAMMA/CTM/GAMMA to convert to some sink
|
||||
* colorspace
|
||||
* - Set this new property to let the sink know what it
|
||||
* converted the CRTC output to.
|
||||
* - This property is just to inform sink what colorspace
|
||||
* source is trying to drive.
|
||||
* User space has to check if the sink supports all of the possible
|
||||
* colorimetries that the driver is allowed to pick by parsing the EDID.
|
||||
*
|
||||
* For historical reasons this property exposes a number of variants which
|
||||
* result in undefined behavior.
|
||||
*
|
||||
* Default:
|
||||
* The behavior is driver-specific.
|
||||
* BT2020_RGB:
|
||||
* BT2020_YCC:
|
||||
* User space configures the pixel operation properties to produce
|
||||
* RGB content with Rec. ITU-R BT.2020 colorimetry, Rec.
|
||||
* ITU-R BT.2020 (Table 4, RGB) transfer characteristics and full
|
||||
* quantization range.
|
||||
* User space can use the HDR_OUTPUT_METADATA property to set the
|
||||
* transfer characteristics to PQ (Rec. ITU-R BT.2100 Table 4) or
|
||||
* HLG (Rec. ITU-R BT.2100 Table 5) in which case, user space
|
||||
* configures pixel operation properties to produce content with
|
||||
* the respective transfer characteristics.
|
||||
* User space has to make sure the sink supports Rec.
|
||||
* ITU-R BT.2020 R'G'B' and Rec. ITU-R BT.2020 Y'C'BC'R
|
||||
* colorimetry.
|
||||
* Drivers can configure the sink to use an RGB format, tell the
|
||||
* sink to expect Rec. ITU-R BT.2020 R'G'B' colorimetry and convert
|
||||
* to the appropriate quantization range.
|
||||
* Drivers can configure the sink to use a YCbCr format, tell the
|
||||
* sink to expect Rec. ITU-R BT.2020 Y'C'BC'R colorimetry, convert
|
||||
* to YCbCr using the Rec. ITU-R BT.2020 non-constant luminance
|
||||
* conversion matrix and convert to the appropriate quantization
|
||||
* range.
|
||||
* The variants BT2020_RGB and BT2020_YCC are equivalent and the
|
||||
* driver chooses between RGB and YCbCr on its own.
|
||||
* SMPTE_170M_YCC:
|
||||
* BT709_YCC:
|
||||
* XVYCC_601:
|
||||
* XVYCC_709:
|
||||
* SYCC_601:
|
||||
* opYCC_601:
|
||||
* opRGB:
|
||||
* BT2020_CYCC:
|
||||
* DCI-P3_RGB_D65:
|
||||
* DCI-P3_RGB_Theater:
|
||||
* RGB_WIDE_FIXED:
|
||||
* RGB_WIDE_FLOAT:
|
||||
* BT601_YCC:
|
||||
* The behavior is undefined.
|
||||
*
|
||||
* Because between HDMI and DP have different colorspaces,
|
||||
* drm_mode_create_hdmi_colorspace_property() is used for HDMI connector and
|
||||
|
@ -315,4 +315,11 @@ drm_edid_load_firmware(struct drm_connector *connector)
|
||||
}
|
||||
#endif
|
||||
|
||||
/* drm_panic.c */
|
||||
#ifdef CONFIG_DRM_PANIC
|
||||
bool drm_panic_is_enabled(struct drm_device *dev);
|
||||
#else
|
||||
static inline bool drm_panic_is_enabled(struct drm_device *dev) { return false; }
|
||||
#endif
|
||||
|
||||
#endif /* __DRM_CRTC_INTERNAL_H__ */
|
||||
|
@ -44,6 +44,7 @@
|
||||
#include <drm/drm_vblank.h>
|
||||
|
||||
#include "drm_internal.h"
|
||||
#include "drm_crtc_internal.h"
|
||||
|
||||
static bool drm_fbdev_emulation = true;
|
||||
module_param_named(fbdev_emulation, drm_fbdev_emulation, bool, 0600);
|
||||
@ -527,6 +528,7 @@ struct fb_info *drm_fb_helper_alloc_info(struct drm_fb_helper *fb_helper)
|
||||
fb_helper->info = info;
|
||||
info->skip_vt_switch = true;
|
||||
|
||||
info->skip_panic = drm_panic_is_enabled(fb_helper->dev);
|
||||
return info;
|
||||
|
||||
err_release:
|
||||
|
@ -456,6 +456,8 @@ int drmm_mode_config_init(struct drm_device *dev)
|
||||
if (ret == -EDEADLK)
|
||||
ret = drm_modeset_backoff(&modeset_ctx);
|
||||
|
||||
might_fault();
|
||||
|
||||
ww_acquire_init(&resv_ctx, &reservation_ww_class);
|
||||
ret = dma_resv_lock(&resv, &resv_ctx);
|
||||
if (ret == -EDEADLK)
|
||||
|
@ -161,6 +161,15 @@ int drm_panel_unprepare(struct drm_panel *panel)
|
||||
if (!panel)
|
||||
return -EINVAL;
|
||||
|
||||
/*
|
||||
* If you are seeing the warning below it likely means one of two things:
|
||||
* - Your panel driver incorrectly calls drm_panel_unprepare() in its
|
||||
* shutdown routine. You should delete this.
|
||||
* - You are using panel-edp or panel-simple and your DRM modeset
|
||||
* driver's shutdown() callback happened after the panel's shutdown().
|
||||
* In this case the warning is harmless though ideally you should
|
||||
* figure out how to reverse the order of the shutdown() callbacks.
|
||||
*/
|
||||
if (!panel->prepared) {
|
||||
dev_warn(panel->dev, "Skipping unprepare of already unprepared panel\n");
|
||||
return 0;
|
||||
@ -245,6 +254,15 @@ int drm_panel_disable(struct drm_panel *panel)
|
||||
if (!panel)
|
||||
return -EINVAL;
|
||||
|
||||
/*
|
||||
* If you are seeing the warning below it likely means one of two things:
|
||||
* - Your panel driver incorrectly calls drm_panel_disable() in its
|
||||
* shutdown routine. You should delete this.
|
||||
* - You are using panel-edp or panel-simple and your DRM modeset
|
||||
* driver's shutdown() callback happened after the panel's shutdown().
|
||||
* In this case the warning is harmless though ideally you should
|
||||
* figure out how to reverse the order of the shutdown() callbacks.
|
||||
*/
|
||||
if (!panel->enabled) {
|
||||
dev_warn(panel->dev, "Skipping disable of already disabled panel\n");
|
||||
return 0;
|
||||
|
@ -27,6 +27,8 @@
|
||||
#include <drm/drm_plane.h>
|
||||
#include <drm/drm_print.h>
|
||||
|
||||
#include "drm_crtc_internal.h"
|
||||
|
||||
MODULE_AUTHOR("Jocelyn Falempe");
|
||||
MODULE_DESCRIPTION("DRM panic handler");
|
||||
MODULE_LICENSE("GPL");
|
||||
@ -655,11 +657,11 @@ static struct drm_plane *to_drm_plane(struct kmsg_dumper *kd)
|
||||
return container_of(kd, struct drm_plane, kmsg_panic);
|
||||
}
|
||||
|
||||
static void drm_panic(struct kmsg_dumper *dumper, enum kmsg_dump_reason reason)
|
||||
static void drm_panic(struct kmsg_dumper *dumper, struct kmsg_dump_detail *detail)
|
||||
{
|
||||
struct drm_plane *plane = to_drm_plane(dumper);
|
||||
|
||||
if (reason == KMSG_DUMP_PANIC)
|
||||
if (detail->reason == KMSG_DUMP_PANIC)
|
||||
draw_panic_plane(plane);
|
||||
}
|
||||
|
||||
@ -703,6 +705,26 @@ static void debugfs_register_plane(struct drm_plane *plane, int index)
|
||||
static void debugfs_register_plane(struct drm_plane *plane, int index) {}
|
||||
#endif /* CONFIG_DRM_PANIC_DEBUG */
|
||||
|
||||
/**
|
||||
* drm_panic_is_enabled
|
||||
* @dev: the drm device that may supports drm_panic
|
||||
*
|
||||
* returns true if the drm device supports drm_panic
|
||||
*/
|
||||
bool drm_panic_is_enabled(struct drm_device *dev)
|
||||
{
|
||||
struct drm_plane *plane;
|
||||
|
||||
if (!dev->mode_config.num_total_plane)
|
||||
return false;
|
||||
|
||||
drm_for_each_plane(plane, dev)
|
||||
if (plane->helper_private && plane->helper_private->get_scanout_buffer)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
EXPORT_SYMBOL(drm_panic_is_enabled);
|
||||
|
||||
/**
|
||||
* drm_panic_register() - Initialize DRM panic for a device
|
||||
* @dev: the drm device on which the panic screen will be displayed.
|
||||
|
@ -888,7 +888,7 @@ EXPORT_SYMBOL(drm_kms_helper_is_poll_worker);
|
||||
* disabled. Polling is re-enabled by calling drm_kms_helper_poll_enable().
|
||||
*
|
||||
* If however, the polling was never initialized, this call will trigger a
|
||||
* warning and return
|
||||
* warning and return.
|
||||
*
|
||||
* Note that calls to enable and disable polling must be strictly ordered, which
|
||||
* is automatically the case when they're only call from suspend/resume
|
||||
|
@ -131,7 +131,7 @@
|
||||
* guaranteed to be enabled.
|
||||
*
|
||||
* On many hardware disabling the vblank interrupt cannot be done in a race-free
|
||||
* manner, see &drm_driver.vblank_disable_immediate and
|
||||
* manner, see &drm_vblank_crtc_config.disable_immediate and
|
||||
* &drm_driver.max_vblank_count. In that case the vblank core only disables the
|
||||
* vblanks after a timer has expired, which can be configured through the
|
||||
* ``vblankoffdelay`` module parameter.
|
||||
@ -1241,6 +1241,7 @@ EXPORT_SYMBOL(drm_crtc_vblank_get);
|
||||
void drm_vblank_put(struct drm_device *dev, unsigned int pipe)
|
||||
{
|
||||
struct drm_vblank_crtc *vblank = drm_vblank_crtc(dev, pipe);
|
||||
int vblank_offdelay = vblank->config.offdelay_ms;
|
||||
|
||||
if (drm_WARN_ON(dev, pipe >= dev->num_crtcs))
|
||||
return;
|
||||
@ -1250,13 +1251,13 @@ void drm_vblank_put(struct drm_device *dev, unsigned int pipe)
|
||||
|
||||
/* Last user schedules interrupt disable */
|
||||
if (atomic_dec_and_test(&vblank->refcount)) {
|
||||
if (drm_vblank_offdelay == 0)
|
||||
if (!vblank_offdelay)
|
||||
return;
|
||||
else if (drm_vblank_offdelay < 0)
|
||||
else if (vblank_offdelay < 0)
|
||||
vblank_disable_fn(&vblank->disable_timer);
|
||||
else if (!dev->vblank_disable_immediate)
|
||||
else if (!vblank->config.disable_immediate)
|
||||
mod_timer(&vblank->disable_timer,
|
||||
jiffies + ((drm_vblank_offdelay * HZ)/1000));
|
||||
jiffies + ((vblank_offdelay * HZ) / 1000));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1265,7 +1266,8 @@ void drm_vblank_put(struct drm_device *dev, unsigned int pipe)
|
||||
* @crtc: which counter to give up
|
||||
*
|
||||
* Release ownership of a given vblank counter, turning off interrupts
|
||||
* if possible. Disable interrupts after drm_vblank_offdelay milliseconds.
|
||||
* if possible. Disable interrupts after &drm_vblank_crtc_config.offdelay_ms
|
||||
* milliseconds.
|
||||
*/
|
||||
void drm_crtc_vblank_put(struct drm_crtc *crtc)
|
||||
{
|
||||
@ -1466,16 +1468,20 @@ void drm_crtc_set_max_vblank_count(struct drm_crtc *crtc,
|
||||
EXPORT_SYMBOL(drm_crtc_set_max_vblank_count);
|
||||
|
||||
/**
|
||||
* drm_crtc_vblank_on - enable vblank events on a CRTC
|
||||
* drm_crtc_vblank_on_config - enable vblank events on a CRTC with custom
|
||||
* configuration options
|
||||
* @crtc: CRTC in question
|
||||
* @config: Vblank configuration value
|
||||
*
|
||||
* This functions restores the vblank interrupt state captured with
|
||||
* drm_crtc_vblank_off() again and is generally called when enabling @crtc. Note
|
||||
* that calls to drm_crtc_vblank_on() and drm_crtc_vblank_off() can be
|
||||
* unbalanced and so can also be unconditionally called in driver load code to
|
||||
* reflect the current hardware state of the crtc.
|
||||
* See drm_crtc_vblank_on(). In addition, this function allows you to provide a
|
||||
* custom vblank configuration for a given CRTC.
|
||||
*
|
||||
* Note that @config is copied, the pointer does not need to stay valid beyond
|
||||
* this function call. For details of the parameters see
|
||||
* struct drm_vblank_crtc_config.
|
||||
*/
|
||||
void drm_crtc_vblank_on(struct drm_crtc *crtc)
|
||||
void drm_crtc_vblank_on_config(struct drm_crtc *crtc,
|
||||
const struct drm_vblank_crtc_config *config)
|
||||
{
|
||||
struct drm_device *dev = crtc->dev;
|
||||
unsigned int pipe = drm_crtc_index(crtc);
|
||||
@ -1488,6 +1494,8 @@ void drm_crtc_vblank_on(struct drm_crtc *crtc)
|
||||
drm_dbg_vbl(dev, "crtc %d, vblank enabled %d, inmodeset %d\n",
|
||||
pipe, vblank->enabled, vblank->inmodeset);
|
||||
|
||||
vblank->config = *config;
|
||||
|
||||
/* Drop our private "prevent drm_vblank_get" refcount */
|
||||
if (vblank->inmodeset) {
|
||||
atomic_dec(&vblank->refcount);
|
||||
@ -1500,10 +1508,33 @@ void drm_crtc_vblank_on(struct drm_crtc *crtc)
|
||||
* re-enable interrupts if there are users left, or the
|
||||
* user wishes vblank interrupts to be enabled all the time.
|
||||
*/
|
||||
if (atomic_read(&vblank->refcount) != 0 || drm_vblank_offdelay == 0)
|
||||
if (atomic_read(&vblank->refcount) != 0 || !vblank->config.offdelay_ms)
|
||||
drm_WARN_ON(dev, drm_vblank_enable(dev, pipe));
|
||||
spin_unlock_irq(&dev->vbl_lock);
|
||||
}
|
||||
EXPORT_SYMBOL(drm_crtc_vblank_on_config);
|
||||
|
||||
/**
|
||||
* drm_crtc_vblank_on - enable vblank events on a CRTC
|
||||
* @crtc: CRTC in question
|
||||
*
|
||||
* This functions restores the vblank interrupt state captured with
|
||||
* drm_crtc_vblank_off() again and is generally called when enabling @crtc. Note
|
||||
* that calls to drm_crtc_vblank_on() and drm_crtc_vblank_off() can be
|
||||
* unbalanced and so can also be unconditionally called in driver load code to
|
||||
* reflect the current hardware state of the crtc.
|
||||
*
|
||||
* Note that unlike in drm_crtc_vblank_on_config(), default values are used.
|
||||
*/
|
||||
void drm_crtc_vblank_on(struct drm_crtc *crtc)
|
||||
{
|
||||
const struct drm_vblank_crtc_config config = {
|
||||
.offdelay_ms = drm_vblank_offdelay,
|
||||
.disable_immediate = crtc->dev->vblank_disable_immediate
|
||||
};
|
||||
|
||||
drm_crtc_vblank_on_config(crtc, &config);
|
||||
}
|
||||
EXPORT_SYMBOL(drm_crtc_vblank_on);
|
||||
|
||||
static void drm_vblank_restore(struct drm_device *dev, unsigned int pipe)
|
||||
@ -1556,16 +1587,21 @@ static void drm_vblank_restore(struct drm_device *dev, unsigned int pipe)
|
||||
*
|
||||
* Note that drivers must have race-free high-precision timestamping support,
|
||||
* i.e. &drm_crtc_funcs.get_vblank_timestamp must be hooked up and
|
||||
* &drm_driver.vblank_disable_immediate must be set to indicate the
|
||||
* &drm_vblank_crtc_config.disable_immediate must be set to indicate the
|
||||
* time-stamping functions are race-free against vblank hardware counter
|
||||
* increments.
|
||||
*/
|
||||
void drm_crtc_vblank_restore(struct drm_crtc *crtc)
|
||||
{
|
||||
WARN_ON_ONCE(!crtc->funcs->get_vblank_timestamp);
|
||||
WARN_ON_ONCE(!crtc->dev->vblank_disable_immediate);
|
||||
struct drm_device *dev = crtc->dev;
|
||||
unsigned int pipe = drm_crtc_index(crtc);
|
||||
struct drm_vblank_crtc *vblank = drm_vblank_crtc(dev, pipe);
|
||||
|
||||
drm_vblank_restore(crtc->dev, drm_crtc_index(crtc));
|
||||
drm_WARN_ON_ONCE(dev, !crtc->funcs->get_vblank_timestamp);
|
||||
drm_WARN_ON_ONCE(dev, vblank->inmodeset);
|
||||
drm_WARN_ON_ONCE(dev, !vblank->config.disable_immediate);
|
||||
|
||||
drm_vblank_restore(dev, pipe);
|
||||
}
|
||||
EXPORT_SYMBOL(drm_crtc_vblank_restore);
|
||||
|
||||
@ -1754,7 +1790,7 @@ int drm_wait_vblank_ioctl(struct drm_device *dev, void *data,
|
||||
/* If the counter is currently enabled and accurate, short-circuit
|
||||
* queries to return the cached timestamp of the last vblank.
|
||||
*/
|
||||
if (dev->vblank_disable_immediate &&
|
||||
if (vblank->config.disable_immediate &&
|
||||
drm_wait_vblank_is_query(vblwait) &&
|
||||
READ_ONCE(vblank->enabled)) {
|
||||
drm_wait_vblank_reply(dev, pipe, &vblwait->reply);
|
||||
@ -1918,8 +1954,8 @@ bool drm_handle_vblank(struct drm_device *dev, unsigned int pipe)
|
||||
* been signaled. The disable has to be last (after
|
||||
* drm_handle_vblank_events) so that the timestamp is always accurate.
|
||||
*/
|
||||
disable_irq = (dev->vblank_disable_immediate &&
|
||||
drm_vblank_offdelay > 0 &&
|
||||
disable_irq = (vblank->config.disable_immediate &&
|
||||
vblank->config.offdelay_ms > 0 &&
|
||||
!atomic_read(&vblank->refcount));
|
||||
|
||||
drm_handle_vblank_events(dev, pipe);
|
||||
@ -1992,7 +2028,8 @@ int drm_crtc_get_sequence_ioctl(struct drm_device *dev, void *data,
|
||||
pipe = drm_crtc_index(crtc);
|
||||
|
||||
vblank = drm_crtc_vblank_crtc(crtc);
|
||||
vblank_enabled = dev->vblank_disable_immediate && READ_ONCE(vblank->enabled);
|
||||
vblank_enabled = READ_ONCE(vblank->config.disable_immediate) &&
|
||||
READ_ONCE(vblank->enabled);
|
||||
|
||||
if (!vblank_enabled) {
|
||||
ret = drm_crtc_vblank_get(crtc);
|
||||
|
@ -72,7 +72,7 @@ static enum drm_gpu_sched_stat etnaviv_sched_timedout_job(struct drm_sched_job
|
||||
|
||||
drm_sched_resubmit_jobs(&gpu->sched);
|
||||
|
||||
drm_sched_start(&gpu->sched, true);
|
||||
drm_sched_start(&gpu->sched);
|
||||
return DRM_GPU_SCHED_STAT_NOMINAL;
|
||||
|
||||
out_no_timeout:
|
||||
|
@ -568,7 +568,7 @@ void cdv_intel_lvds_init(struct drm_device *dev,
|
||||
dev->dev, "I2C bus registration failed.\n");
|
||||
goto err_encoder_cleanup;
|
||||
}
|
||||
gma_encoder->i2c_bus->slave_addr = 0x2C;
|
||||
gma_encoder->i2c_bus->target_addr = 0x2C;
|
||||
dev_priv->lvds_i2c_bus = gma_encoder->i2c_bus;
|
||||
|
||||
/*
|
||||
|
@ -14,8 +14,8 @@
|
||||
#include "psb_intel_drv.h"
|
||||
#include "psb_intel_reg.h"
|
||||
|
||||
#define SLAVE_ADDR1 0x70
|
||||
#define SLAVE_ADDR2 0x72
|
||||
#define TARGET_ADDR1 0x70
|
||||
#define TARGET_ADDR2 0x72
|
||||
|
||||
static void *find_section(struct bdb_header *bdb, int section_id)
|
||||
{
|
||||
@ -357,10 +357,10 @@ parse_sdvo_device_mapping(struct drm_psb_private *dev_priv,
|
||||
/* skip the device block if device type is invalid */
|
||||
continue;
|
||||
}
|
||||
if (p_child->slave_addr != SLAVE_ADDR1 &&
|
||||
p_child->slave_addr != SLAVE_ADDR2) {
|
||||
if (p_child->target_addr != TARGET_ADDR1 &&
|
||||
p_child->target_addr != TARGET_ADDR2) {
|
||||
/*
|
||||
* If the slave address is neither 0x70 nor 0x72,
|
||||
* If the target address is neither 0x70 nor 0x72,
|
||||
* it is not a SDVO device. Skip it.
|
||||
*/
|
||||
continue;
|
||||
@ -371,22 +371,22 @@ parse_sdvo_device_mapping(struct drm_psb_private *dev_priv,
|
||||
DRM_DEBUG_KMS("Incorrect SDVO port. Skip it\n");
|
||||
continue;
|
||||
}
|
||||
DRM_DEBUG_KMS("the SDVO device with slave addr %2x is found on"
|
||||
DRM_DEBUG_KMS("the SDVO device with target addr %2x is found on"
|
||||
" %s port\n",
|
||||
p_child->slave_addr,
|
||||
p_child->target_addr,
|
||||
(p_child->dvo_port == DEVICE_PORT_DVOB) ?
|
||||
"SDVOB" : "SDVOC");
|
||||
p_mapping = &(dev_priv->sdvo_mappings[p_child->dvo_port - 1]);
|
||||
if (!p_mapping->initialized) {
|
||||
p_mapping->dvo_port = p_child->dvo_port;
|
||||
p_mapping->slave_addr = p_child->slave_addr;
|
||||
p_mapping->target_addr = p_child->target_addr;
|
||||
p_mapping->dvo_wiring = p_child->dvo_wiring;
|
||||
p_mapping->ddc_pin = p_child->ddc_pin;
|
||||
p_mapping->i2c_pin = p_child->i2c_pin;
|
||||
p_mapping->initialized = 1;
|
||||
DRM_DEBUG_KMS("SDVO device: dvo=%x, addr=%x, wiring=%d, ddc_pin=%d, i2c_pin=%d\n",
|
||||
p_mapping->dvo_port,
|
||||
p_mapping->slave_addr,
|
||||
p_mapping->target_addr,
|
||||
p_mapping->dvo_wiring,
|
||||
p_mapping->ddc_pin,
|
||||
p_mapping->i2c_pin);
|
||||
@ -394,10 +394,10 @@ parse_sdvo_device_mapping(struct drm_psb_private *dev_priv,
|
||||
DRM_DEBUG_KMS("Maybe one SDVO port is shared by "
|
||||
"two SDVO device.\n");
|
||||
}
|
||||
if (p_child->slave2_addr) {
|
||||
if (p_child->target2_addr) {
|
||||
/* Maybe this is a SDVO device with multiple inputs */
|
||||
/* And the mapping info is not added */
|
||||
DRM_DEBUG_KMS("there exists the slave2_addr. Maybe this"
|
||||
DRM_DEBUG_KMS("there exists the target2_addr. Maybe this"
|
||||
" is a SDVO device with multiple inputs.\n");
|
||||
}
|
||||
count++;
|
||||
|
@ -186,13 +186,13 @@ struct child_device_config {
|
||||
u16 addin_offset;
|
||||
u8 dvo_port; /* See Device_PORT_* above */
|
||||
u8 i2c_pin;
|
||||
u8 slave_addr;
|
||||
u8 target_addr;
|
||||
u8 ddc_pin;
|
||||
u16 edid_ptr;
|
||||
u8 dvo_cfg; /* See DEVICE_CFG_* above */
|
||||
u8 dvo2_port;
|
||||
u8 i2c2_pin;
|
||||
u8 slave2_addr;
|
||||
u8 target2_addr;
|
||||
u8 ddc2_pin;
|
||||
u8 capabilities;
|
||||
u8 dvo_wiring;/* See DEVICE_WIRE_* above */
|
||||
|
@ -333,7 +333,7 @@ gmbus_xfer(struct i2c_adapter *adapter,
|
||||
clear_err:
|
||||
/* Toggle the Software Clear Interrupt bit. This has the effect
|
||||
* of resetting the GMBUS controller and so clearing the
|
||||
* BUS_ERROR raised by the slave's NAK.
|
||||
* BUS_ERROR raised by the target's NAK.
|
||||
*/
|
||||
GMBUS_REG_WRITE(GMBUS1 + reg_offset, GMBUS_SW_CLR_INT);
|
||||
GMBUS_REG_WRITE(GMBUS1 + reg_offset, 0);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user