drm-misc-next for 6.11:

UAPI Changes:
 
 Cross-subsystem Changes:
 
 Core Changes:
  - Sprinkle MODULE_DESCRIPTIONS everywhere they are missing
  - bridge: Remove drm_bridge_chain_mode_fixup
  - ci: Require a more recent version of mesa, improve farm estup and
    test generation
  - mipi-dbi: Remove mipi_dbi_machine_little_endian, make SPI bits per
    word configurable, support RGB888, and allow pixel formats to be
    specified in the DT.
  - mm: Remove drm_mm_replace_node
  - panic: Allow to dump kmsg to the screen
  - print: Add a drm prefix to warn level messages too, remove
    ___drm_dbg, consolidate prefix handling
 
 Driver Changes:
  - sun4i: Rework the blender setup for DE2
  - bridges:
    - bridge-connector: Plumb in the new HDMI helpers
    - samsung-dsim: Fix timings calculation
    - tc358767: Plenty of small fixes
  - panels:
    - More cleanup of prepare / enable state tracking in drivers
    - New panel: PrimeView PM070WL4,
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRcEzekXsqa64kGDp7j7w1vZxhRxQUCZmqkZAAKCRDj7w1vZxhR
 xUUeAP9ZuOvD8dGBFvR95yXQpsoaxyrC37zsckCo87SWRsyg3QEAmxmzdhgsGzKX
 lXd3KsF/i1nOPflG9QeMj/lfroE28ww=
 =k2mC
 -----END PGP SIGNATURE-----

Merge tag 'drm-misc-next-2024-06-13' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next

drm-misc-next for 6.11:

UAPI Changes:

Cross-subsystem Changes:

Core Changes:
 - Sprinkle MODULE_DESCRIPTIONS everywhere they are missing
 - bridge: Remove drm_bridge_chain_mode_fixup
 - ci: Require a more recent version of mesa, improve farm estup and
   test generation
 - mipi-dbi: Remove mipi_dbi_machine_little_endian, make SPI bits per
   word configurable, support RGB888, and allow pixel formats to be
   specified in the DT.
 - mm: Remove drm_mm_replace_node
 - panic: Allow to dump kmsg to the screen
 - print: Add a drm prefix to warn level messages too, remove
   ___drm_dbg, consolidate prefix handling

Driver Changes:
 - sun4i: Rework the blender setup for DE2
 - bridges:
   - bridge-connector: Plumb in the new HDMI helpers
   - samsung-dsim: Fix timings calculation
   - tc358767: Plenty of small fixes
 - panels:
   - More cleanup of prepare / enable state tracking in drivers
   - New panel: PrimeView PM070WL4,

Signed-off-by: Dave Airlie <airlied@redhat.com>

From: Maxime Ripard <mripard@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240613-cicada-of-infinite-unity-0955ca@houat
This commit is contained in:
Dave Airlie 2024-06-21 10:49:58 +10:00
commit 91c93e475c
145 changed files with 2229 additions and 4112 deletions

View File

@ -50,6 +50,12 @@ description: |
| Command or data |
|<D7><D6><D5><D4><D3><D2><D1><D0>|
The standard defines one pixel format for type C: RGB111. The industry
however has decided to provide the type A/B interface pixel formats also on
the Type C interface and most common among these are RGB565 and RGB666.
The MIPI DCS command set_address_mode (36h) has one bit that controls RGB/BGR
order. This gives each supported RGB format a BGR variant.
The panel resolution is specified using the panel-timing node properties
hactive (width) and vactive (height). The other mandatory panel-timing
properties should be set to zero except clock-frequency which can be
@ -93,6 +99,28 @@ properties:
spi-3wire: true
format:
description: >
Pixel format in bit order as going on the wire:
* `x2r1g1b1r1g1b1` - RGB111, 2 pixels per byte
* `x2b1g1r1b1g1r1` - BGR111, 2 pixels per byte
* `x1r1g1b1x1r1g1b1` - RGB111, 2 pixels per byte
* `x1b1g1r1x1b1g1r1` - BGR111, 2 pixels per byte
* `r5g6b5` - RGB565, 2 bytes
* `b5g6r5` - BGR565, 2 bytes
* `r6x2g6x2b6x2` - RGB666, 3 bytes
* `b6x2g6x2r6x2` - BGR666, 3 bytes
enum:
- x2r1g1b1r1g1b1
- x2b1g1r1b1g1r1
- x1r1g1b1x1r1g1b1
- x1b1g1r1x1b1g1r1
- r5g6b5
- b5g6r5
- r6x2g6x2b6x2
- b6x2g6x2r6x2
default: r5g6b5
required:
- compatible
- reg
@ -119,6 +147,8 @@ examples:
reset-gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
write-only;
format = "r5g6b5";
backlight = <&backlight>;
width-mm = <35>;

View File

@ -236,6 +236,8 @@ properties:
- powertip,ph128800t006-zhc01
# POWERTIP PH800480T013-IDF2 7.0" WVGA TFT LCD panel
- powertip,ph800480t013-idf02
# PrimeView PM070WL4 7.0" 800x480 TFT LCD panel
- primeview,pm070wl4
# QiaoDian XianShi Corporation 4"3 TFT LCD panel
- qiaodian,qd43003c0-40
# Shenzhen QiShenglong Industrialist Co., Ltd. Gopher 2b 4.3" 480(RGB)x272 TFT LCD panel

View File

@ -1164,6 +1164,8 @@ patternProperties:
description: PowerVR (deprecated, use img)
"^powkiddy,.*":
description: Powkiddy
"^primeview,.*":
description: Prime View International (PVI)
"^primux,.*":
description: Primux Trading, S.L.
"^probox2,.*":

View File

@ -469,30 +469,35 @@ Contact: Thomas Zimmermann <tzimmermann@suse.de>
Level: Starter
Clean up checks for already prepared/enabled in panels
------------------------------------------------------
Remove disable/unprepare in remove/shutdown in panel-simple and panel-edp
-------------------------------------------------------------------------
In a whole pile of panel drivers, we have code to make the
prepare/unprepare/enable/disable callbacks behave as no-ops if they've already
been called. To get some idea of the duplicated code, try::
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.
git grep 'if.*>prepared' -- drivers/gpu/drm/panel
git grep 'if.*>enabled' -- drivers/gpu/drm/panel
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.
In the patch ("drm/panel: Check for already prepared/enabled in drm_panel")
we've moved this check to the core. Now we can most definitely remove the
check from the individual panels and save a pile of code.
In adition to removing the check from the individual panels, it is believed
that even the core shouldn't need this check and that should be considered
an error if other code ever relies on this check. The check in the core
currently prints a warning whenever something is relying on this check with
dev_warn(). After a little while, we likely want to promote this to a
WARN(1) to help encourage folks not to rely on this behavior.
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.
Contact: Douglas Anderson <dianders@chromium.org>
Level: Starter/Intermediate
Level: Intermediate
Transition away from using mipi_dsi_*_write_seq()
-------------------------------------------------

View File

@ -137,6 +137,19 @@ config DRM_PANIC_DEBUG
This is unsafe and should not be enabled on a production build.
If in doubt, say "N".
config DRM_PANIC_SCREEN
string "Panic screen formater"
default "user"
depends on DRM_PANIC
help
This option enable to choose what will be displayed when a kernel
panic occurs. You can choose between "user", a short message telling
the user to reboot the system, or "kmsg" which will display the last
lines of kmsg.
This can also be overridden by drm.panic_screen=xxxx kernel parameter
or by writing to /sys/module/drm/parameters/panic_screen sysfs entry
Default is "user"
config DRM_DEBUG_DP_MST_TOPOLOGY_REFS
bool "Enable refcount backtrace history in the DP MST helpers"
depends on STACKTRACE_SUPPORT

View File

@ -2615,7 +2615,7 @@ static int it6505_poweron(struct it6505 *it6505)
gpiod_set_value_cansleep(pdata->gpiod_reset, 0);
usleep_range(1000, 2000);
gpiod_set_value_cansleep(pdata->gpiod_reset, 1);
usleep_range(10000, 20000);
usleep_range(25000, 35000);
}
it6505->powered = true;

View File

@ -1195,4 +1195,5 @@ static struct i2c_driver lt9611_driver = {
};
module_i2c_driver(lt9611_driver);
MODULE_DESCRIPTION("Lontium LT9611 DSI/HDMI bridge driver");
MODULE_LICENSE("GPL v2");

View File

@ -1016,6 +1016,7 @@ static struct i2c_driver lt9611uxc_driver = {
module_i2c_driver(lt9611uxc_driver);
MODULE_AUTHOR("Dmitry Baryshkov <dmitry.baryshkov@linaro.org>");
MODULE_DESCRIPTION("Lontium LT9611UXC DSI/HDMI bridge driver");
MODULE_LICENSE("GPL v2");
MODULE_FIRMWARE(FW_FILE);

View File

@ -574,8 +574,8 @@ static unsigned long samsung_dsim_pll_find_pms(struct samsung_dsim *dsi,
u16 _m, best_m;
u8 _s, best_s;
p_min = DIV_ROUND_UP(fin, (12 * MHZ));
p_max = fin / (6 * MHZ);
p_min = DIV_ROUND_UP(fin, (driver_data->pll_fin_max * MHZ));
p_max = fin / (driver_data->pll_fin_min * MHZ);
for (_p = p_min; _p <= p_max; ++_p) {
for (_s = 0; _s <= 5; ++_s) {
@ -1606,6 +1606,27 @@ static int samsung_dsim_atomic_check(struct drm_bridge *bridge,
adjusted_mode->flags |= (DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC);
}
/*
* When using video sync pulses, the HFP, HBP, and HSA are divided between
* the available lanes if there is more than one lane. For certain
* timings and lane configurations, the HFP may not be evenly divisible.
* If the HFP is rounded down, it ends up being too small which can cause
* some monitors to not sync properly. In these instances, adjust htotal
* and hsync to round the HFP up, and recalculate the htotal. Through trial
* and error, it appears that the HBP and HSA do not appearto need the same
* correction that HFP does.
*/
if (dsi->lanes > 1) {
int hfp = adjusted_mode->hsync_start - adjusted_mode->hdisplay;
int remainder = hfp % dsi->lanes;
if (remainder) {
adjusted_mode->hsync_start += remainder;
adjusted_mode->hsync_end += remainder;
adjusted_mode->htotal += remainder;
}
}
return 0;
}

View File

@ -961,4 +961,5 @@ static struct i2c_driver sii9234_driver = {
};
module_i2c_driver(sii9234_driver);
MODULE_DESCRIPTION("Silicon Image SII9234 HDMI/MHL bridge driver");
MODULE_LICENSE("GPL");

View File

@ -2384,4 +2384,5 @@ static struct i2c_driver sii8620_driver = {
};
module_i2c_driver(sii8620_driver);
MODULE_DESCRIPTION("Silicon Image SiI8620 HDMI/MHL bridge driver");
MODULE_LICENSE("GPL v2");

View File

@ -1646,7 +1646,7 @@ tc_edp_mode_valid(struct drm_bridge *bridge,
u32 req, avail;
u32 bits_per_pixel = 24;
/* DPI interface clock limitation: upto 154 MHz */
/* DPI->(e)DP interface clock limitation: up to 154 MHz */
if (mode->clock > 154000)
return MODE_CLOCK_HIGH;
@ -2152,7 +2152,7 @@ static irqreturn_t tc_irq_handler(int irq, void *arg)
dev_err(tc->dev, "syserr %x\n", stat);
}
if (tc->hpd_pin >= 0 && tc->bridge.dev) {
if (tc->hpd_pin >= 0 && tc->bridge.dev && tc->aux.drm_dev) {
/*
* H is triggered when the GPIO goes high.
*

View File

@ -3,6 +3,30 @@
set -ex
function generate_testlist {
set +x
while read -r line; do
if [ "$line" = "TESTLIST" ] || [ "$line" = "END TESTLIST" ]; then
continue
fi
tests=$(echo "$line" | tr ' ' '\n')
for test in $tests; do
output=$(/igt/libexec/igt-gpu-tools/"$test" --list-subtests || true)
if [ -z "$output" ]; then
echo "$test"
else
echo "$output" | while read -r subtest; do
echo "$test@$subtest"
done
fi
done
done < /igt/libexec/igt-gpu-tools/test-list.txt > /igt/libexec/igt-gpu-tools/ci-testlist.txt
set -x
}
git clone https://gitlab.freedesktop.org/drm/igt-gpu-tools.git --single-branch --no-checkout
cd igt-gpu-tools
git checkout $IGT_VERSION
@ -21,15 +45,30 @@ MESON_OPTIONS="-Doverlay=disabled \
-Dlibunwind=enabled \
-Dprefix=/igt"
if [[ "$KERNEL_ARCH" = "arm64" ]] || [[ "$KERNEL_ARCH" = "arm" ]]; then
MESON_OPTIONS="$MESON_OPTIONS -Dxe_driver=disabled"
fi
mkdir -p /igt
meson build $MESON_OPTIONS $EXTRA_MESON_ARGS
ninja -C build -j${FDO_CI_CONCURRENT:-4} || ninja -C build -j 1
ninja -C build install
if [[ "$KERNEL_ARCH" = "arm64" ]]; then
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/igt/lib/aarch64-linux-gnu
elif [[ "$KERNEL_ARCH" = "arm" ]]; then
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/igt/lib
else
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/igt/lib64
fi
echo "Generating ci-testlist.txt"
generate_testlist
mkdir -p artifacts/
tar -cf artifacts/igt.tar /igt
# Pass needed files to the test stage
S3_ARTIFACT_NAME="igt.tar.gz"
gzip -c artifacts/igt.tar > ${S3_ARTIFACT_NAME}
ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" ${S3_ARTIFACT_NAME} https://${PIPELINE_ARTIFACTS_BASE}/${KERNEL_ARCH}/${S3_ARTIFACT_NAME}
ci-fairy s3cp --token-file "${S3_JWT_FILE}" ${S3_ARTIFACT_NAME} https://${PIPELINE_ARTIFACTS_BASE}/${KERNEL_ARCH}/${S3_ARTIFACT_NAME}

View File

@ -131,6 +131,7 @@ fi
# Pass needed files to the test stage
mkdir -p install
cp -rfv .gitlab-ci/* install/.
cp -rfv ci/* install/.
cp -rfv install/common install/ci-common
cp -rfv drivers/gpu/drm/ci/* install/.
@ -144,14 +145,15 @@ if [[ "$UPLOAD_TO_MINIO" = "1" ]]; then
FILES_TO_UPLOAD="$FILES_TO_UPLOAD $(basename -a $DEVICE_TREES)"
fi
ls -l "${S3_JWT_FILE}"
for f in $FILES_TO_UPLOAD; do
ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" /lava-files/$f \
ci-fairy s3cp --token-file "${S3_JWT_FILE}" /lava-files/$f \
https://${PIPELINE_ARTIFACTS_BASE}/${DEBIAN_ARCH}/$f
done
S3_ARTIFACT_NAME="kernel-files.tar.zst"
tar --zstd -cf $S3_ARTIFACT_NAME install
ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" ${S3_ARTIFACT_NAME} https://${PIPELINE_ARTIFACTS_BASE}/${DEBIAN_ARCH}/${S3_ARTIFACT_NAME}
ci-fairy s3cp --token-file "${S3_JWT_FILE}" ${S3_ARTIFACT_NAME} https://${PIPELINE_ARTIFACTS_BASE}/${DEBIAN_ARCH}/${S3_ARTIFACT_NAME}
echo "Download vmlinux.xz from https://${PIPELINE_ARTIFACTS_BASE}/${DEBIAN_ARCH}/vmlinux.xz"
fi

View File

@ -36,15 +36,15 @@ debian/android_build:
rules:
- when: never
debian/x86_64_test-android:
.debian/x86_64_test-android:
rules:
- when: never
windows_build_vs2019:
windows_build_msvc:
rules:
- when: never
windows_test_vs2019:
windows_test_msvc:
rules:
- when: never
@ -56,10 +56,6 @@ rustfmt:
rules:
- when: never
windows_vs2019:
rules:
- when: never
clang-format:
windows_msvc:
rules:
- when: never

View File

@ -1,11 +1,11 @@
variables:
DRM_CI_PROJECT_PATH: &drm-ci-project-path mesa/mesa
DRM_CI_COMMIT_SHA: &drm-ci-commit-sha 9d162de9a05155e1c4041857a5848842749164cf
DRM_CI_COMMIT_SHA: &drm-ci-commit-sha e2b9c5a9e3e4f9b532067af8022eaef8d6fc6c00
UPSTREAM_REPO: git://anongit.freedesktop.org/drm/drm
TARGET_BRANCH: drm-next
IGT_VERSION: d2af13d9f5be5ce23d996e4afd3e45990f5ab977
IGT_VERSION: 0df7b9b97f9da0e364f5ee30fe331004b8c86b56
DEQP_RUNNER_GIT_URL: https://gitlab.freedesktop.org/anholt/deqp-runner.git
DEQP_RUNNER_GIT_TAG: v0.15.0
@ -19,33 +19,47 @@ variables:
bash download-git-cache.sh
rm download-git-cache.sh
set +o xtrace
S3_JWT_FILE: /s3_jwt
S3_HOST: s3.freedesktop.org
# This bucket is used to fetch the kernel image
S3_KERNEL_BUCKET: mesa-rootfs
# Bucket for git cache
S3_GITCACHE_BUCKET: git-cache
# Bucket for the pipeline artifacts pushed to S3
S3_ARTIFACTS_BUCKET: artifacts
# per-pipeline artifact storage on MinIO
PIPELINE_ARTIFACTS_BASE: ${S3_HOST}/artifacts/${CI_PROJECT_PATH}/${CI_PIPELINE_ID}
PIPELINE_ARTIFACTS_BASE: ${S3_HOST}/${S3_ARTIFACTS_BUCKET}/${CI_PROJECT_PATH}/${CI_PIPELINE_ID}
# per-job artifact storage on MinIO
JOB_ARTIFACTS_BASE: ${PIPELINE_ARTIFACTS_BASE}/${CI_JOB_ID}
# default kernel for rootfs before injecting the current kernel tree
KERNEL_REPO: "gfx-ci/linux"
KERNEL_TAG: "v6.6.4-for-mesa-ci-e4f4c500f7fb"
KERNEL_IMAGE_BASE: https://${S3_HOST}/mesa-lava/${KERNEL_REPO}/${KERNEL_TAG}
KERNEL_TAG: "v6.6.21-mesa-f8ea"
KERNEL_IMAGE_BASE: https://${S3_HOST}/${S3_KERNEL_BUCKET}/${KERNEL_REPO}/${KERNEL_TAG}
PKG_REPO_REV: "3cc12a2a"
LAVA_TAGS: subset-1-gfx
LAVA_JOB_PRIORITY: 30
ARTIFACTS_BASE_URL: https://${CI_PROJECT_ROOT_NAMESPACE}.${CI_PAGES_DOMAIN}/-/${CI_PROJECT_NAME}/-/jobs/${CI_JOB_ID}/artifacts
# Python scripts for structured logger
PYTHONPATH: "$PYTHONPATH:$CI_PROJECT_DIR/install"
default:
id_tokens:
S3_JWT:
aud: https://s3.freedesktop.org
before_script:
- export SCRIPTS_DIR=$(mktemp -d)
- curl -L -s --retry 4 -f --retry-all-errors --retry-delay 60 -O --output-dir "${SCRIPTS_DIR}" "${DRM_CI_PROJECT_URL}/-/raw/${DRM_CI_COMMIT_SHA}/.gitlab-ci/setup-test-env.sh"
- source ${SCRIPTS_DIR}/setup-test-env.sh
- echo -e "\e[0Ksection_start:$(date +%s):unset_env_vars_section[collapsed=true]\r\e[0KUnsetting vulnerable environment variables"
- export CI_JOB_JWT_FILE="${CI_JOB_JWT_FILE:-$(mktemp)}"
- echo -n "${CI_JOB_JWT}" > "${CI_JOB_JWT_FILE}"
- unset CI_JOB_JWT
- echo -n "${S3_JWT}" > "${S3_JWT_FILE}"
- unset CI_JOB_JWT S3_JWT
- echo -e "\e[0Ksection_end:$(date +%s):unset_env_vars_section\r\e[0K"
- echo -e "\e[0Ksection_start:$(date +%s):drm_ci_download_section[collapsed=true]\r\e[0KDownloading mesa from $DRM_CI_PROJECT_URL/-/archive/$DRM_CI_COMMIT_SHA/mesa-$DRM_CI_COMMIT_SHA.tar.gz"
- cd $CI_PROJECT_DIR
- curl --output - $DRM_CI_PROJECT_URL/-/archive/$DRM_CI_COMMIT_SHA/mesa-$DRM_CI_COMMIT_SHA.tar.gz | tar -xz
- mv mesa-$DRM_CI_COMMIT_SHA/.gitlab-ci* .
- mv mesa-$DRM_CI_COMMIT_SHA/bin/ci .
- rm -rf mesa-$DRM_CI_COMMIT_SHA/
- echo -e "\e[0Ksection_end:$(date +%s):drm_ci_download_section\r\e[0K"
@ -53,9 +67,9 @@ default:
- >
set +x
test -e "${CI_JOB_JWT_FILE}" &&
export CI_JOB_JWT="$(<${CI_JOB_JWT_FILE})" &&
rm "${CI_JOB_JWT_FILE}"
test -e "${S3_JWT_FILE}" &&
export S3_JWT="$(<${S3_JWT_FILE})" &&
rm "${S3_JWT_FILE}"
include:
- project: 'freedesktop/ci-templates'
@ -87,6 +101,7 @@ include:
- '/src/intel/ci/gitlab-ci-inc.yml'
- '/src/freedreno/ci/gitlab-ci-inc.yml'
- '/src/amd/ci/gitlab-ci-inc.yml'
- '/src/virtio/ci/gitlab-ci-inc.yml'
- drivers/gpu/drm/ci/image-tags.yml
- drivers/gpu/drm/ci/container.yml
- drivers/gpu/drm/ci/static-checks.yml
@ -98,6 +113,7 @@ include:
stages:
- sanity
- container
- code-validation
- git-archive
- build
- amdgpu
@ -107,7 +123,6 @@ stages:
- msm
- rockchip
- virtio-gpu
- lint
# YAML anchors for rule conditions
# --------------------------------
@ -218,14 +233,15 @@ make git archive:
script:
# Remove drm-ci files we just added
- rm -rf .gitlab-ci.*
- rm -rf ci
# Compactify the .git directory
- git gc --aggressive
# compress the current folder
- tar -cvzf ../$CI_PROJECT_NAME.tar.gz .
# login with the JWT token file
- ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" ../$CI_PROJECT_NAME.tar.gz https://$S3_HOST/git-cache/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/$CI_PROJECT_NAME.tar.gz
# Use id_tokens for JWT auth
- ci-fairy s3cp --token-file "${S3_JWT_FILE}" ../$CI_PROJECT_NAME.tar.gz https://$S3_HOST/${S3_GITCACHE_BUCKET}/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/$CI_PROJECT_NAME.tar.gz
# Sanity checks of MR settings and commit logs
@ -262,4 +278,4 @@ sanity:
# Jobs that need to pass before spending hardware resources on further testing
.required-for-hardware-jobs:
needs: []
needs: []

View File

@ -59,25 +59,26 @@ fi
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 -s ${FDO_HTTP_CACHE_URI:-}$PIPELINE_ARTIFACTS_BASE/$ARCH/igt.tar.gz | tar --zstd -v -x -C /
TESTLIST="/igt/libexec/igt-gpu-tools/ci-testlist.txt"
# If the job is parallel at the gitab job level, take the corresponding fraction
# of the caselist.
if [ -n "$CI_NODE_INDEX" ]; then
sed -ni $CI_NODE_INDEX~$CI_NODE_TOTAL"p" /install/testlist.txt
sed -ni $CI_NODE_INDEX~$CI_NODE_TOTAL"p" $TESTLIST
fi
# core_getversion checks if the driver is loaded and probed correctly
# so run it in all shards
if ! grep -q "core_getversion" /install/testlist.txt; then
if ! grep -q "core_getversion" $TESTLIST; then
# Add the line to the file
echo "core_getversion" >> /install/testlist.txt
echo "core_getversion" >> $TESTLIST
fi
set +e
igt-runner \
run \
--igt-folder /igt/libexec/igt-gpu-tools \
--caselist /install/testlist.txt \
--caselist $TESTLIST \
--output /results \
$IGT_SKIPS \
$IGT_FLAKES \

View File

@ -1,5 +1,5 @@
variables:
CONTAINER_TAG: "2023-10-11-mesa-uprev"
CONTAINER_TAG: "2024-05-09-mesa-uprev"
DEBIAN_X86_64_BUILD_BASE_IMAGE: "debian/x86_64_build-base"
DEBIAN_BASE_TAG: "${CONTAINER_TAG}"

View File

@ -27,7 +27,7 @@ KERNEL_IMAGE_BASE="https://${BASE_SYSTEM_HOST_PATH}" \
section_end variables
tar zcf job-rootfs-overlay.tar.gz -C results/job-rootfs-overlay/ .
ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" job-rootfs-overlay.tar.gz "https://${JOB_ROOTFS_OVERLAY_PATH}"
ci-fairy s3cp --token-file "${S3_JWT_FILE}" job-rootfs-overlay.tar.gz "https://${JOB_ROOTFS_OVERLAY_PATH}"
touch results/lava.log
tail -f results/lava.log &
@ -45,7 +45,7 @@ PYTHONPATH=artifacts/ artifacts/lava/lava_job_submitter.py \
--ci-project-dir "${CI_PROJECT_DIR}" \
--device-type "${DEVICE_TYPE}" \
--dtb-filename "${DTB}" \
--jwt-file "${CI_JOB_JWT_FILE}" \
--jwt-file "${S3_JWT_FILE}" \
--kernel-image-name "${KERNEL_IMAGE_NAME}" \
--kernel-image-type "${KERNEL_IMAGE_TYPE}" \
--boot-method "${BOOT_METHOD}" \

View File

@ -24,6 +24,7 @@
variables:
HWCI_TEST_SCRIPT: "/install/igt_runner.sh"
DEBIAN_ARCH: "armhf"
FARM: collabora
dependencies:
- testing:arm32
needs:
@ -39,6 +40,7 @@
variables:
HWCI_TEST_SCRIPT: "/install/igt_runner.sh"
DEBIAN_ARCH: "arm64"
FARM: collabora
dependencies:
- testing:arm64
needs:
@ -54,6 +56,7 @@
variables:
HWCI_TEST_SCRIPT: "/install/igt_runner.sh"
DEBIAN_ARCH: "amd64"
FARM: collabora
dependencies:
- testing:x86_64
needs:
@ -74,6 +77,7 @@
S3_ARTIFACT_NAME: "arm64/kernel-files"
BM_KERNEL: https://${PIPELINE_ARTIFACTS_BASE}/arm64/Image.gz
BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8 $BM_KERNEL_EXTRA_ARGS root=/dev/nfs rw nfsrootdebug nfsroot=,tcp,nfsvers=4.2 init=/init $BM_KERNELARGS"
FARM: google
needs:
- debian/arm64_test
- job: testing:arm64
@ -116,8 +120,9 @@ msm:apq8016:
- .baremetal-igt-arm64
stage: msm
variables:
DEVICE_TYPE: apq8016-sbc-usb-host
DRIVER_NAME: msm
BM_DTB: https://${PIPELINE_ARTIFACTS_BASE}/arm64/apq8016-sbc-usb-host.dtb
BM_DTB: https://${PIPELINE_ARTIFACTS_BASE}/arm64/${DEVICE_TYPE}.dtb
GPU_VERSION: apq8016
# disabling unused clocks congests with the MDSS runtime PM trying to
# disable those clocks and causes boot to fail.
@ -132,9 +137,10 @@ msm:apq8096:
- .baremetal-igt-arm64
stage: msm
variables:
DEVICE_TYPE: apq8096-db820c
DRIVER_NAME: msm
BM_KERNEL_EXTRA_ARGS: maxcpus=2
BM_DTB: https://${PIPELINE_ARTIFACTS_BASE}/arm64/apq8096-db820c.dtb
BM_DTB: https://${PIPELINE_ARTIFACTS_BASE}/arm64/${DEVICE_TYPE}.dtb
GPU_VERSION: apq8096
RUNNER_TAG: google-freedreno-db820c
script:
@ -146,6 +152,7 @@ msm:sdm845:
stage: msm
parallel: 6
variables:
DEVICE_TYPE: sdm845-cheza-r3
DRIVER_NAME: msm
BM_KERNEL: https://${PIPELINE_ARTIFACTS_BASE}/arm64/cheza-kernel
GPU_VERSION: sdm845
@ -184,6 +191,7 @@ rockchip:rk3399:
extends:
- .lava-igt:x86_64
stage: i915
timeout: "1h30m"
variables:
DRIVER_NAME: i915
DTB: ""
@ -194,7 +202,6 @@ i915:apl:
extends:
- .i915
parallel: 3
timeout: "1h30m"
variables:
DEVICE_TYPE: asus-C523NA-A20057-coral
GPU_VERSION: apl
@ -204,7 +211,6 @@ i915:glk:
extends:
- .i915
parallel: 2
timeout: "1h30m"
variables:
DEVICE_TYPE: hp-x360-12b-ca0010nr-n4020-octopus
GPU_VERSION: glk
@ -214,7 +220,6 @@ i915:amly:
extends:
- .i915
parallel: 2
timeout: "1h30m"
variables:
DEVICE_TYPE: asus-C433TA-AJ0005-rammus
GPU_VERSION: amly
@ -233,7 +238,6 @@ i915:whl:
extends:
- .i915
parallel: 2
timeout: "1h30m"
variables:
DEVICE_TYPE: dell-latitude-5400-8665U-sarien
GPU_VERSION: whl
@ -243,7 +247,6 @@ i915:cml:
extends:
- .i915
parallel: 2
timeout: "1h30m"
variables:
DEVICE_TYPE: asus-C436FA-Flip-hatch
GPU_VERSION: cml

File diff suppressed because it is too large Load Diff

View File

@ -1,27 +1,40 @@
amdgpu/amd_abm@abm_enabled,Fail
amdgpu/amd_abm@abm_gradual,Fail
amdgpu/amd_abm@backlight_monotonic_abm,Fail
amdgpu/amd_abm@backlight_monotonic_basic,Fail
amdgpu/amd_assr@assr-links,Fail
amdgpu/amd_assr@assr-links-dpms,Fail
amdgpu/amd_mall@static-screen,Crash
amdgpu/amd_mode_switch@mode-switch-first-last-pipe-2,Crash
amdgpu/amd_plane@mpo-pan-nv12,Fail
amdgpu/amd_plane@mpo-pan-p010,Fail
amdgpu/amd_plane@mpo-pan-rgb,Crash
amdgpu/amd_plane@mpo-scale-nv12,Fail
amdgpu/amd_plane@mpo-scale-p010,Fail
amdgpu/amd_plane@mpo-scale-rgb,Crash
amdgpu/amd_plane@mpo-swizzle-toggle,Fail
amdgpu/amd_uvd_dec@amdgpu_uvd_decode,Fail
dumb_buffer@invalid-bpp,Fail
kms_addfb_basic@bad-pitch-65536,Fail
kms_addfb_basic@bo-too-small,Fail
kms_addfb_basic@too-high,Fail
kms_async_flips@async-flip-with-page-flip-events,Fail
kms_async_flips@crc,Fail
kms_async_flips@invalid-async-flip,Fail
kms_atomic_transition@plane-all-modeset-transition-internal-panels,Fail
kms_atomic_transition@plane-all-transition,Fail
kms_atomic_transition@plane-all-transition-nonblocking,Fail
kms_atomic_transition@plane-toggle-modeset-transition,Fail
kms_atomic_transition@plane-use-after-nonblocking-unbind,Fail
kms_bw@linear-tiling-1-displays-2560x1440p,Fail
kms_bw@linear-tiling-1-displays-3840x2160p,Fail
kms_bw@linear-tiling-2-displays-3840x2160p,Fail
kms_bw@linear-tiling-3-displays-1920x1080p,Fail
kms_color@degamma,Fail
kms_cursor_crc@cursor-onscreen-64x21,Fail
kms_cursor_crc@cursor-onscreen-64x64,Fail
kms_cursor_crc@cursor-random-64x21,Fail
kms_cursor_crc@cursor-random-64x64,Fail
kms_cursor_crc@cursor-size-change,Fail
kms_cursor_crc@pipe-A-cursor-size-change,Fail
kms_cursor_crc@pipe-B-cursor-size-change,Fail
kms_cursor_crc@cursor-sliding-64x21,Fail
kms_cursor_crc@cursor-sliding-64x64,Fail
kms_flip@flip-vs-modeset-vs-hang,Fail
kms_flip@flip-vs-panning-vs-hang,Fail
kms_hdr@bpc-switch,Fail
kms_hdr@bpc-switch-dpms,Fail
kms_lease@lease-uevent,Fail
kms_plane@pixel-format,Fail
kms_plane_multiple@atomic-pipe-A-tiling-none,Fail
kms_rmfb@close-fd,Fail
kms_plane_cursor@primary,Fail
kms_rotation_crc@primary-rotation-180,Fail
perf@i915-ref-count,Fail
tools_test@tools_test,Fail

View File

@ -1 +1,8 @@
# Board Name: hp-11A-G6-EE-grunt
# Bug Report: https://lore.kernel.org/amd-gfx/3542730f-b8d7-404d-a947-b7a5e95d661c@collabora.com/T/#u
# IGT Version: 1.28-g0df7b9b97
# Linux Version: 6.9.0-rc7
# Failure Rate: 50
kms_async_flips@async-flip-with-page-flip-events
kms_async_flips@crc
kms_plane@pixel-format-source-clamping

View File

@ -1,2 +1,33 @@
# Suspend to RAM seems to be broken on this machine
.*suspend.*
.*suspend.*
# Skip driver specific tests
msm_.*
nouveau_.*
panfrost_.*
^v3d.*
^vc4.*
^vmwgfx*
# Skip intel specific tests
gem_.*
i915_.*
xe_.*
# Currently fails and causes coverage loss for other tests
# since core_getversion also fails.
amdgpu/amd_module_load@reload
core_hotunplug.*
# GPU reset seen and it hangs the machine
amdgpu/amd_deadlock@amdgpu-deadlock-sdma
amdgpu/amd_deadlock@amdgpu-gfx-illegal-reg-access
amdgpu/amd_dispatch@amdgpu-reset-test-gfx-with-IP-GFX-and-COMPUTE
# Hangs the machine and timeout occurs
amdgpu/amd_pci_unplug@amdgpu_hotunplug_simple
amdgpu/amd_pci_unplug@amdgpu_hotunplug_with_cs
amdgpu/amd_pci_unplug@amdgpu_hotunplug_with_exported_bo
amdgpu/amd_pci_unplug@amdgpu_hotunplug_with_exported_fence
amdgpu/amd_vrr_range@freesync-parsing
device_reset.*

View File

@ -1,3 +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
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_fb_coherency@memset-crc,Crash
kms_flip@flip-vs-dpms-off-vs-modeset,Timeout
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
@ -20,7 +33,25 @@ 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_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_pm_rpm@modeset-stress-extra-wait,Timeout
kms_pm_rpm@universal-planes,Timeout
kms_pm_rpm@universal-planes-dpms,Timeout
perf@i915-ref-count,Fail
perf_pmu@module-unload,Fail
perf_pmu@rc6,Crash
sysfs_heartbeat_interval@long,Timeout
sysfs_heartbeat_interval@off,Timeout
sysfs_preempt_timeout@off,Timeout
sysfs_timeslice_duration@off,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

View File

@ -0,0 +1,9 @@
# Board Name: asus-C433TA-AJ0005-rammus
# Bug Report: https://lore.kernel.org/intel-gfx/af4ca4df-a3ef-4943-bdbf-4c3af2c333af@collabora.com/T/#u
# IGT Version: 1.28-g0df7b9b97
# Linux Version: 6.9.0-rc7
# Failure Rate: 50
i915_hangman@engine-engine-error
i915_hangman@gt-engine-hang
kms_async_flips@crc
kms_universal_plane@cursor-fb-leak

View File

@ -1,4 +1,24 @@
# Suspend to RAM seems to be broken on this machine
.*suspend.*
# This is generating kernel oops with divide error
kms_plane_scaling@invalid-parameters
kms_plane_scaling@invalid-parameters
# Skip driver specific tests
^amdgpu.*
msm_.*
nouveau_.*
panfrost_.*
^v3d.*
^vc4.*
^vmwgfx*
# GEM tests takes ~1000 hours, so skip it
gem_.*
# Hangs the machine and timeout occurs
i915_pm_rc6_residency.*
i915_suspend.*
kms_scaling_modes.*
# Kernel panic
drm_fdinfo.*

View File

@ -1,13 +1,7 @@
kms_3d,Timeout
kms_bw@linear-tiling-2-displays-1920x1080p,Fail
kms_bw@linear-tiling-2-displays-2560x1440p,Fail
kms_bw@linear-tiling-2-displays-3840x2160p,Fail
kms_bw@linear-tiling-3-displays-1920x1080p,Fail
kms_bw@linear-tiling-3-displays-2560x1440p,Fail
kms_bw@linear-tiling-3-displays-3840x2160p,Fail
kms_bw@linear-tiling-4-displays-1920x1080p,Fail
kms_bw@linear-tiling-4-displays-2560x1440p,Fail
kms_bw@linear-tiling-4-displays-3840x2160p,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_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
@ -30,18 +24,30 @@ 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_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
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_alpha_blend@pipe-A-alpha-opaque-fb,Fail
kms_plane_alpha_blend@pipe-A-alpha-transparent-fb,Fail
kms_plane_alpha_blend@pipe-A-constant-alpha-max,Fail
kms_plane_alpha_blend@pipe-B-alpha-opaque-fb,Fail
kms_plane_alpha_blend@pipe-B-alpha-transparent-fb,Fail
kms_plane_alpha_blend@pipe-B-constant-alpha-max,Fail
kms_plane_alpha_blend@pipe-C-alpha-opaque-fb,Fail
kms_plane_alpha_blend@pipe-C-alpha-transparent-fb,Fail
kms_plane_alpha_blend@pipe-C-constant-alpha-max,Fail
kms_pm_backlight@basic-brightness,Fail
kms_pm_backlight@fade,Fail
kms_pm_backlight@fade-with-dpms,Fail
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_sysfs_edid_timing,Fail
perf@i915-ref-count,Fail
perf@non-zero-reason,Timeout
perf_pmu@module-unload,Fail
perf_pmu@rc6,Crash
sysfs_heartbeat_interval@long,Timeout
sysfs_heartbeat_interval@off,Timeout
sysfs_preempt_timeout@off,Timeout
sysfs_timeslice_duration@off,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

View File

@ -0,0 +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
# IGT Version: 1.28-g0df7b9b97
# Linux Version: 6.9.0-rc7
# Failure Rate: 50
kms_fb_coherency@memset-crc

View File

@ -3,4 +3,28 @@
# This is generating kernel oops with divide error
kms_plane_scaling@invalid-parameters
# This is cascading issues
kms_3d
kms_3d
# Skip driver specific tests
^amdgpu.*
msm_.*
nouveau_.*
panfrost_.*
^v3d.*
^vc4.*
^vmwgfx*
# GEM tests takes ~1000 hours, so skip it
gem_.*
# Hangs the machine and timeout occurs
i915_pm_rc6_residency.*
i915_suspend.*
i915_pm_rpm.*
device_reset.*
api_intel_allocator.*
kms_frontbuffer_tracking.*
kms_ccs.*
# Kernel panic
drm_fdinfo.*

View File

@ -1,3 +1,19 @@
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
i915_pipe_stress@stress-xrgb8888-untiled,Fail
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_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
@ -20,11 +36,33 @@ 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_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_alpha_blend@constant-alpha-min,Fail
kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation,Timeout
kms_pm_rpm@modeset-stress-extra-wait,Timeout
kms_pm_rpm@universal-planes,Timeout
kms_pm_rpm@universal-planes-dpms,Timeout
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@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_setmode@basic,Fail
perf@i915-ref-count,Fail
perf_pmu@module-unload,Fail
perf_pmu@rc6,Crash
perf_pmu@rc6-suspend,Crash
sysfs_heartbeat_interval@long,Timeout
sysfs_heartbeat_interval@off,Timeout
sysfs_preempt_timeout@off,Timeout
sysfs_timeslice_duration@off,Timeout
xe_module_load@force-load,Fail
xe_module_load@load,Fail
xe_module_load@many-reload,Fail

View File

@ -0,0 +1,6 @@
# Board Name: asus-C436FA-Flip-hatch
# Bug Report: https://lore.kernel.org/intel-gfx/af4ca4df-a3ef-4943-bdbf-4c3af2c333af@collabora.com/T/#u
# IGT Version: 1.28-g0df7b9b97
# Linux Version: 6.9.0-rc7
# Failure Rate: 50
kms_plane_alpha_blend@constant-alpha-min

View File

@ -1,2 +1,25 @@
# This is generating kernel oops with divide error
kms_plane_scaling@invalid-parameters
# Skip driver specific tests
^amdgpu.*
msm_.*
nouveau_.*
panfrost_.*
^v3d.*
^vc4.*
^vmwgfx*
# GEM tests takes ~1000 hours, so skip it
gem_.*
# Hangs the machine and timeout occurs
i915_pm_rc6_residency.*
i915_suspend.*
xe_module_load.*
api_intel_allocator.*
kms_cursor_legacy.*
# Kernel panic
drm_fdinfo.*
kms_frontbuffer_tracking.*

View File

@ -1,5 +1,20 @@
kms_fbcon_fbt@fbc,Fail
kms_flip@blocking-wf_vblank,Fail
core_setmaster@master-drop-set-user,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_dirtyfb@default-dirtyfb-ioctl,Fail
kms_draw_crc@draw-method-render,Fail
kms_flip@flip-vs-dpms-off-vs-modeset,Timeout
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
@ -11,7 +26,6 @@ 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
@ -26,11 +40,24 @@ 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-tiling-linear,Fail
kms_frontbuffer_tracking@fbcdrrs-tiling-linear,Fail
kms_plane_alpha_blend@alpha-basic,Fail
kms_lease@lease-uevent,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@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_rotation_crc@multiplane-rotation,Fail
kms_rotation_crc@multiplane-rotation-cropping-bottom,Fail
kms_rotation_crc@multiplane-rotation-cropping-top,Fail
kms_setmode@basic,Fail
perf@non-zero-reason,Timeout
sysfs_heartbeat_interval@long,Timeout
sysfs_heartbeat_interval@off,Timeout
sysfs_preempt_timeout@off,Timeout
sysfs_timeslice_duration@off,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

View File

@ -0,0 +1,7 @@
# 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
# IGT Version: 1.28-g0df7b9b97
# Linux Version: 6.9.0-rc7
# Failure Rate: 50
core_hotunplug@unplug-rescan
kms_fb_coherency@memset-crc

View File

@ -2,4 +2,28 @@
.*suspend.*
# This is generating kernel oops with divide error
kms_plane_scaling@invalid-parameters
kms_plane_scaling@invalid-parameters
# Skip driver specific tests
^amdgpu.*
msm_.*
nouveau_.*
panfrost_.*
^v3d.*
^vc4.*
^vmwgfx*
# GEM tests takes ~1000 hours, so skip it
gem_.*
# Hangs the machine and timeout occurs
i915_pm_rc6_residency.*
i915_suspend.*
i915_pm_rpm.*
kms_ccs.*
kms_plane_multiple.*
perf.*
# Kernel panic
drm_fdinfo.*
kms_plane_alpha_blend.*

View File

@ -1,32 +1,28 @@
kms_bw@linear-tiling-2-displays-2560x1440p,Fail
kms_bw@linear-tiling-4-displays-2560x1440p,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
i915_module_load@load,Fail
i915_module_load@reload,Fail
i915_module_load@reload-no-display,Fail
i915_module_load@resize-bar,Fail
i915_pm_rpm@gem-execbuf-stress,Timeout
kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling,Fail
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
kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling,Fail
kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling,Fail
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_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
kms_plane_alpha_blend@alpha-basic,Fail
kms_plane_alpha_blend@alpha-opaque-fb,Fail
kms_lease@lease-uevent,Fail
kms_plane_alpha_blend@alpha-transparent-fb,Fail
kms_plane_alpha_blend@constant-alpha-max,Fail
kms_plane_alpha_blend@pipe-A-constant-alpha-max,Fail
kms_plane_alpha_blend@pipe-B-alpha-opaque-fb,Fail
kms_plane_alpha_blend@pipe-C-constant-alpha-max,Fail
perf@i915-ref-count,Fail
perf_pmu@busy-accuracy-50,Fail
perf_pmu@module-unload,Fail
perf_pmu@rc6,Crash
sysfs_heartbeat_interval@long,Timeout
sysfs_heartbeat_interval@off,Timeout
sysfs_preempt_timeout@off,Timeout
sysfs_timeslice_duration@off,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

View File

@ -1 +1,6 @@
kms_async_flips@crc
# Board Name: hp-x360-14-G1-sona
# Bug Report: https://lore.kernel.org/intel-gfx/af4ca4df-a3ef-4943-bdbf-4c3af2c333af@collabora.com/T/#u
# IGT Version: 1.28-g0df7b9b97
# Linux Version: 6.9.0-rc7
# Failure Rate: 50
prime_busy@hang

View File

@ -2,4 +2,38 @@
.*suspend.*
# This is generating kernel oops with divide error
kms_plane_scaling@invalid-parameters
kms_plane_scaling@invalid-parameters
# Skip driver specific tests
^amdgpu.*
msm_.*
nouveau_.*
panfrost_.*
^v3d.*
^vc4.*
^vmwgfx*
# GEM tests takes ~1000 hours, so skip it
gem_.*
# Hangs the machine and timeout occurs
i915_.*
api_intel_bb.*
# Kernel panic
drm_fdinfo.*
kms_.*
prime_mmap_coherency.*
perf.*
drm_read.*
api_intel_allocator.*
sysfs_preempt_timeout.*
dumb_buffer.*
gen9_exec_parse.*
debugfs_test.*
core_hotunplug.*
tools_test.*
# GPU hang
sysfs_timeslice_.*
sysfs_heartbeat_.*

View File

@ -1,36 +1,43 @@
kms_bw@linear-tiling-2-displays-3840x2160p,Fail
kms_bw@linear-tiling-3-displays-1920x1080p,Fail
kms_bw@linear-tiling-3-displays-2560x1440p,Fail
kms_bw@linear-tiling-3-displays-3840x2160p,Fail
kms_bw@linear-tiling-4-displays-1920x1080p,Fail
kms_bw@linear-tiling-4-displays-2560x1440p,Fail
kms_bw@linear-tiling-4-displays-3840x2160p,Fail
kms_bw@linear-tiling-5-displays-1920x1080p,Fail
kms_bw@linear-tiling-5-displays-2560x1440p,Fail
kms_bw@linear-tiling-5-displays-3840x2160p,Fail
kms_flip@flip-vs-panning-vs-hang,Timeout
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
kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling,Fail
kms_flip_scaled_crc@flip-32bpp-ytile-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
kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling,Fail
kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling,Fail
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_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
kms_rotation_crc@bad-pixel-format,Fail
api_intel_bb@blit-noreloc-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
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
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
kms_lease@lease-uevent,Fail
kms_rotation_crc@multiplane-rotation,Fail
kms_rotation_crc@multiplane-rotation-cropping-bottom,Fail
kms_rotation_crc@multiplane-rotation-cropping-top,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@module-unload,Fail
perf_pmu@rc6,Crash
prime_mmap@test_map_unmap,Timeout
prime_self_import@basic-with_one_bo,Timeout
syncobj_basic@bad-destroy,Timeout
syncobj_eventfd@invalid-bad-pad,Timeout
syncobj_wait@invalid-multi-wait-unsubmitted-signaled,Timeout
syncobj_wait@invalid-signal-illegal-handle,Timeout
syncobj_wait@invalid-single-wait-all-unsubmitted,Timeout
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
xe_module_load@force-load,Fail
xe_module_load@load,Fail
xe_module_load@reload,Fail
xe_module_load@reload-no-display,Fail

View File

@ -8,4 +8,30 @@ gem_eio.*
kms_flip@absolute-wf_vblank@a-edp1
# This is generating kernel oops with divide error
kms_plane_scaling@invalid-parameters
kms_plane_scaling@invalid-parameters
# Skip driver specific tests
^amdgpu.*
msm_.*
nouveau_.*
panfrost_.*
^v3d.*
^vc4.*
^vmwgfx*
# GEM tests takes ~1000 hours, so skip it
gem_.*
# Kernel panic
drm_fdinfo.*
# Hangs the machine and timeout occurs
i915_pm_rc6_residency.*
i915_suspend.*
sysfs_heartbeat_interval.*
syncobj_timeline.*
sysfs_timeslice_duration.*
syncobj_wait.*
# Kernel panic and test hangs with multiple kms tests
kms_.*

View File

@ -1,14 +1,25 @@
kms_bw@linear-tiling-2-displays-1920x1080p,Fail
kms_bw@linear-tiling-2-displays-2560x1440p,Fail
kms_bw@linear-tiling-2-displays-3840x2160p,Fail
kms_bw@linear-tiling-3-displays-1920x1080p,Fail
kms_bw@linear-tiling-3-displays-2560x1440p,Fail
kms_bw@linear-tiling-3-displays-3840x2160p,Fail
kms_bw@linear-tiling-4-displays-1920x1080p,Fail
kms_bw@linear-tiling-4-displays-2560x1440p,Fail
kms_bw@linear-tiling-4-displays-3840x2160p,Fail
kms_fbcon_fbt@fbc,Fail
kms_fbcon_fbt@fbc-suspend,Fail
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
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_dirtyfb@default-dirtyfb-ioctl,Fail
kms_draw_crc@draw-method-render,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
kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
@ -18,8 +29,6 @@ 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
kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
@ -31,18 +40,26 @@ 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_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
kms_frontbuffer_tracking@fbc-tiling-linear,Fail
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_alpha_blend@pipe-A-alpha-opaque-fb,Fail
kms_plane_alpha_blend@pipe-A-alpha-transparent-fb,Fail
kms_plane_alpha_blend@pipe-A-constant-alpha-max,Fail
kms_plane_alpha_blend@pipe-B-alpha-opaque-fb,Fail
kms_plane_alpha_blend@pipe-B-alpha-transparent-fb,Fail
kms_plane_alpha_blend@pipe-B-constant-alpha-max,Fail
kms_plane_alpha_blend@pipe-C-alpha-opaque-fb,Fail
kms_plane_alpha_blend@pipe-C-alpha-transparent-fb,Fail
kms_plane_alpha_blend@pipe-C-constant-alpha-max,Fail
kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation,Timeout
kms_pm_rpm@modeset-stress-extra-wait,Timeout
kms_pm_rpm@universal-planes,Timeout
kms_pm_rpm@universal-planes-dpms,Timeout
perf@i915-ref-count,Fail
perf_pmu@module-unload,Fail
perf_pmu@rc6,Crash
perf_pmu@rc6-suspend,Crash
sysfs_heartbeat_interval@long,Timeout
sysfs_heartbeat_interval@off,Timeout
sysfs_preempt_timeout@off,Timeout
sysfs_timeslice_duration@off,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

View File

@ -0,0 +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
# IGT Version: 1.28-g0df7b9b97
# Linux Version: 6.9.0-rc7
# Failure Rate: 50
kms_pm_rpm@modeset-lpsp-stress

View File

@ -1,2 +1,22 @@
# This is generating kernel oops with divide error
kms_plane_scaling@invalid-parameters
kms_plane_scaling@invalid-parameters
# Skip driver specific tests
^amdgpu.*
msm_.*
nouveau_.*
panfrost_.*
^v3d.*
^vc4.*
^vmwgfx*
# GEM tests takes ~1000 hours, so skip it
gem_.*
# Hangs the machine and timeout occurs
i915_pm_rc6_residency.*
i915_suspend.*
kms_flip.*
# Kernel panic
drm_fdinfo.*

View File

@ -1,36 +1,30 @@
device_reset@cold-reset-bound,Fail
device_reset@reset-bound,Fail
device_reset@unbind-cold-reset-rebind,Fail
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@linear-tiling-1-displays-1920x1080p,Fail
kms_bw@linear-tiling-1-displays-2160x1440p,Fail
kms_bw@linear-tiling-1-displays-2560x1440p,Fail
kms_bw@linear-tiling-1-displays-3840x2160p,Fail
kms_bw@linear-tiling-2-displays-1920x1080p,Fail
kms_bw@linear-tiling-2-displays-2160x1440p,Fail
kms_bw@linear-tiling-2-displays-2560x1440p,Fail
kms_bw@linear-tiling-2-displays-3840x2160p,Fail
kms_bw@linear-tiling-3-displays-1920x1080p,Fail
kms_bw@linear-tiling-3-displays-2560x1440p,Fail
kms_bw@linear-tiling-3-displays-3840x2160p,Fail
kms_color@invalid-gamma-lut-sizes,Fail
kms_color@pipe-A-invalid-gamma-lut-sizes,Fail
kms_color@pipe-B-invalid-gamma-lut-sizes,Fail
kms_cursor_legacy@cursor-vs-flip-atomic,Fail
kms_cursor_legacy@cursor-vs-flip-legacy,Fail
kms_flip@flip-vs-modeset-vs-hang,Fail
kms_flip@flip-vs-panning-vs-hang,Fail
kms_flip@flip-vs-suspend,Fail
kms_flip@flip-vs-suspend-interruptible,Fail
kms_force_connector_basic@force-edid,Fail
kms_force_connector_basic@force-load-detect,Fail
kms_force_connector_basic@prune-stale-modes,Fail
kms_hdmi_inject@inject-4k,Fail
kms_plane_scaling@planes-upscale-20x20,Fail
kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25,Fail
kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5,Fail
kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75,Fail
kms_plane_scaling@upscale-with-modifier-20x20,Fail
kms_plane_scaling@upscale-with-pixel-format-20x20,Fail
kms_plane_scaling@upscale-with-rotation-20x20,Fail
kms_lease@lease-uevent,Fail
kms_properties@get_properties-sanity-atomic,Fail
kms_properties@plane-properties-atomic,Fail
kms_properties@plane-properties-legacy,Fail
kms_rmfb@close-fd,Fail
kms_selftest@drm_format,Timeout
kms_selftest@drm_format_helper,Timeout
tools_test@tools_test,Fail

View File

@ -0,0 +1,11 @@
# Board Name: mt8173-elm-hana
# Bug Report: https://lore.kernel.org/linux-mediatek/0b2a1899-15dd-42fa-8f63-ea0ca28dbb17@collabora.com/T/#u
# IGT Version: 1.28-g0df7b9b97
# Linux Version: 6.9.0-rc7
# Failure Rate: 50
core_setmaster_vs_auth
dumb_buffer@create-clear
fbdev@unaligned-write
fbdev@write
kms_cursor_legacy@cursor-vs-flip-atomic-transitions
kms_prop_blob@invalid-set-prop

View File

@ -0,0 +1,16 @@
# Skip driver specific tests
^amdgpu.*
msm_.*
nouveau_.*
panfrost_.*
^v3d.*
^vc4.*
^vmwgfx*
# Skip intel specific tests
gem_.*
i915_.*
# Currently fails and causes coverage loss for other tests
# since core_getversion also fails.
core_hotunplug.*

View File

@ -1,13 +1,8 @@
kms_addfb_basic@addfb25-bad-modifier,Fail
kms_bw@linear-tiling-1-displays-2560x1440p,Fail
kms_bw@linear-tiling-2-displays-1920x1080p,Fail
kms_bw@linear-tiling-2-displays-2560x1440p,Fail
kms_bw@linear-tiling-2-displays-3840x2160p,Fail
kms_bw@linear-tiling-3-displays-2560x1440p,Fail
kms_bw@linear-tiling-3-displays-3840x2160p,Fail
kms_color@pipe-A-invalid-gamma-lut-sizes,Fail
kms_plane_cursor@overlay,Fail
kms_plane_cursor@primary,Fail
kms_plane_cursor@viewport,Fail
kms_plane_scaling@upscale-with-rotation-20x20,Fail
kms_rmfb@close-fd,Fail
dumb_buffer@create-clear,Fail
dumb_buffer@create-valid-dumb,Fail
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
tools_test@tools_test,Fail

View File

@ -0,0 +1,18 @@
# Skip driver specific tests
^amdgpu.*
msm_.*
nouveau_.*
^v3d.*
^vc4.*
^vmwgfx*
# Skip intel specific tests
gem_.*
i915_.*
# Panfrost is not a KMS driver, so skip the KMS tests
kms_.*
# Currently fails and causes coverage loss for other tests
# since core_getversion also fails.
core_hotunplug.*

View File

@ -1,16 +1,8 @@
kms_3d,Fail
kms_cursor_legacy@forked-bo,Fail
kms_cursor_legacy@forked-move,Fail
kms_cursor_legacy@single-bo,Fail
kms_cursor_legacy@single-move,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_plane_cursor@overlay,Fail
kms_plane_cursor@primary,Fail
kms_plane_cursor@viewport,Fail
kms_properties@connector-properties-atomic,Fail
kms_properties@connector-properties-legacy,Fail
kms_properties@get_properties-sanity-atomic,Fail
kms_properties@get_properties-sanity-non-atomic,Fail
dumb_buffer@create-clear,Fail
dumb_buffer@create-valid-dumb,Fail
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
tools_test@tools_test,Fail

View File

@ -0,0 +1,18 @@
# Skip driver specific tests
^amdgpu.*
msm_.*
nouveau_.*
^v3d.*
^vc4.*
^vmwgfx*
# Skip intel specific tests
gem_.*
i915_.*
# Panfrost is not a KMS driver, so skip the KMS tests
kms_.*
# Currently fails and causes coverage loss for other tests
# since core_getversion also fails.
core_hotunplug.*

View File

@ -1,8 +1,16 @@
device_reset@cold-reset-bound,Fail
device_reset@reset-bound,Fail
device_reset@unbind-cold-reset-rebind,Fail
device_reset@unbind-reset-rebind,Fail
dumb_buffer@invalid-bpp,Fail
kms_3d,Fail
kms_addfb_basic@addfb25-bad-modifier,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_selftest@drm_format,Timeout
kms_selftest@drm_format_helper,Timeout
kms_lease@lease-uevent,Fail
msm_mapping@ring,Fail
tools_test@tools_test,Fail

View File

@ -0,0 +1,15 @@
# Skip driver specific tests
^amdgpu.*
nouveau_.*
panfrost_.*
^v3d.*
^vc4.*
^vmwgfx*
# Skip intel specific tests
gem_.*
i915_.*
# Currently fails and causes coverage loss for other tests
# since core_getversion also fails.
core_hotunplug.*

View File

@ -1,2 +1,9 @@
device_reset@cold-reset-bound,Fail
device_reset@reset-bound,Fail
device_reset@unbind-cold-reset-rebind,Fail
device_reset@unbind-reset-rebind,Fail
dumb_buffer@invalid-bpp,Fail
kms_3d,Fail
kms_addfb_basic@addfb25-bad-modifier,Fail
kms_lease@lease-uevent,Fail
tools_test@tools_test,Fail

View File

@ -0,0 +1,6 @@
# Board Name: apq8096-db820c
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
# IGT Version: 1.28-g0df7b9b97
# Linux Version: 6.9.0-rc7
# Failure Rate: 50
dumb_buffer@create-clear

View File

@ -1,2 +1,26 @@
# Whole machine hangs
kms_cursor_legacy@all-pipes-torture-move
kms_cursor_legacy@all-pipes-torture-move
# Skip driver specific tests
^amdgpu.*
nouveau_.*
panfrost_.*
^v3d.*
^vc4.*
^vmwgfx*
# Skip intel specific tests
gem_.*
i915_.*
# Currently fails and causes coverage loss for other tests
# since core_getversion also fails.
core_hotunplug.*
# gpu fault
# [IGT] msm_mapping: executing
# [IGT] msm_mapping: starting subtest shadow
# *** 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

View File

@ -1,18 +1,191 @@
device_reset@cold-reset-bound,Fail
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
kms_content_protection@atomic,Crash
kms_content_protection@atomic-dpms,Crash
kms_content_protection@content-type-change,Crash
kms_content_protection@lic-type-0,Crash
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
kms_cursor_legacy@2x-flip-vs-cursor-legacy,Fail
kms_cursor_legacy@2x-long-cursor-vs-flip-atomic,Fail
kms_cursor_legacy@2x-long-cursor-vs-flip-legacy,Fail
kms_cursor_legacy@2x-long-flip-vs-cursor-atomic,Fail
kms_cursor_legacy@2x-long-flip-vs-cursor-legacy,Fail
kms_cursor_legacy@cursor-vs-flip-toggle,Fail
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_universal_plane@universal-plane-sanity,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

View File

@ -0,0 +1,8 @@
# Board Name: sc7180-trogdor-kingoftown
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
# IGT Version: 1.28-g0df7b9b97
# Linux Version: 6.9.0-rc7
# Failure Rate: 50
msm_mapping@shadow
msm_shrink@copy-gpu-oom-32
msm_shrink@copy-gpu-oom-8

View File

@ -1,2 +1,21 @@
# Suspend to RAM seems to be broken on this machine
.*suspend.*
# Skip driver specific tests
^amdgpu.*
nouveau_.*
panfrost_.*
^v3d.*
^vc4.*
^vmwgfx*
# Skip intel specific tests
gem_.*
i915_.*
# Currently fails and causes coverage loss for other tests
# since core_getversion also fails.
core_hotunplug.*
# Timeout occurs
kms_flip@2x-wf_vblank-ts-check

View File

@ -1,18 +1,191 @@
device_reset@cold-reset-bound,Fail
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
kms_content_protection@atomic,Crash
kms_content_protection@atomic-dpms,Crash
kms_content_protection@content-type-change,Crash
kms_content_protection@lic-type-0,Crash
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
kms_cursor_legacy@2x-flip-vs-cursor-legacy,Fail
kms_cursor_legacy@2x-long-cursor-vs-flip-atomic,Fail
kms_cursor_legacy@2x-long-cursor-vs-flip-legacy,Fail
kms_cursor_legacy@2x-long-flip-vs-cursor-atomic,Fail
kms_cursor_legacy@2x-long-flip-vs-cursor-legacy,Fail
kms_cursor_legacy@cursor-vs-flip-toggle,Fail
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_universal_plane@universal-plane-sanity,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

View File

@ -0,0 +1,6 @@
# 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
# IGT Version: 1.28-g0df7b9b97
# Linux Version: 6.9.0-rc7
# Failure Rate: 50
msm_mapping@shadow

View File

@ -1,2 +1,18 @@
# Suspend to RAM seems to be broken on this machine
.*suspend.*
# Skip driver specific tests
^amdgpu.*
nouveau_.*
panfrost_.*
^v3d.*
^vc4.*
^vmwgfx*
# Skip intel specific tests
gem_.*
i915_.*
# Currently fails and causes coverage loss for other tests
# since core_getversion also fails.
core_hotunplug.*

View File

@ -1,3 +1,8 @@
device_reset@cold-reset-bound,Fail
device_reset@reset-bound,Fail
device_reset@unbind-cold-reset-rebind,Fail
device_reset@unbind-reset-rebind,Fail
dumb_buffer@invalid-bpp,Fail
kms_color@ctm-0-25,Fail
kms_color@ctm-0-50,Fail
kms_color@ctm-0-75,Fail
@ -6,17 +11,6 @@ kms_color@ctm-green-to-red,Fail
kms_color@ctm-negative,Fail
kms_color@ctm-red-to-blue,Fail
kms_color@ctm-signed,Fail
kms_color@pipe-A-ctm-0-25,Fail
kms_color@pipe-A-ctm-0-5,Fail
kms_color@pipe-A-ctm-0-75,Fail
kms_color@pipe-A-ctm-blue-to-red,Fail
kms_color@pipe-A-ctm-green-to-red,Fail
kms_color@pipe-A-ctm-max,Fail
kms_color@pipe-A-ctm-negative,Fail
kms_color@pipe-A-ctm-red-to-blue,Fail
kms_color@pipe-A-legacy-gamma,Fail
kms_cursor_legacy@basic-flip-after-cursor-atomic,Fail
kms_cursor_legacy@basic-flip-after-cursor-varying-size,Fail
kms_cursor_legacy@basic-flip-before-cursor-atomic,Fail
kms_cursor_legacy@basic-flip-before-cursor-legacy,Fail
kms_cursor_legacy@cursor-vs-flip-atomic,Fail
@ -31,30 +25,12 @@ 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_lease@lease-uevent,Fail
kms_pipe_crc_basic@compare-crc-sanitycheck-nv12,Fail
kms_plane_alpha_blend@alpha-7efc,Fail
kms_plane_alpha_blend@coverage-7efc,Fail
kms_plane_alpha_blend@coverage-vs-premult-vs-constant,Fail
kms_plane_alpha_blend@pipe-A-alpha-7efc,Fail
kms_plane_alpha_blend@pipe-A-coverage-7efc,Fail
kms_plane_alpha_blend@pipe-A-coverage-vs-premult-vs-constant,Fail
kms_plane_cursor@overlay,Fail
kms_plane_cursor@pipe-A-overlay-size-128,Fail
kms_plane_cursor@pipe-A-overlay-size-256,Fail
kms_plane_cursor@pipe-A-overlay-size-64,Fail
kms_plane_cursor@pipe-A-viewport-size-128,Fail
kms_plane_cursor@pipe-A-viewport-size-256,Fail
kms_plane_cursor@pipe-A-viewport-size-64,Fail
kms_plane_cursor@viewport,Fail
kms_plane_scaling@downscale-with-pixel-format-factor-0-25,Timeout
kms_plane_scaling@downscale-with-pixel-format-factor-0-5,Timeout
kms_plane_scaling@downscale-with-pixel-format-factor-0-75,Timeout
kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-25,Timeout
kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-5,Timeout
kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-75,Timeout
kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats,Timeout
kms_plane_scaling@plane-scaler-with-pixel-format-unity-scaling,Timeout
kms_plane_scaling@planes-downscale-factor-0-25,Fail
kms_plane_scaling@scaler-with-clipping-clamping,Timeout
kms_plane_scaling@scaler-with-pixel-format-unity-scaling,Timeout
kms_rmfb@close-fd,Fail
tools_test@tools_test,Fail

View File

@ -1,22 +1,19 @@
# Board Name: msm:sdm845
# Bug Report: https://lore.kernel.org/dri-devel/46287831-edfa-78e8-6055-d7a08831c445@collabora.com/T/#u
# Board Name: sdm845-cheza-r3
# Bug Report: https://lore.kernel.org/linux-arm-msm/661483c8-ad82-400d-bcd8-e94986d20d7d@collabora.com/T/#u
# IGT Version: 1.28-g0df7b9b97
# Linux Version: 6.9.0-rc7
# Failure Rate: 50
# IGT Version: 1.28-gd2af13d9f
# Linux Version: 6.7.0-rc3
# Reported by deqp-runner
kms_cursor_legacy@basic-flip-after-cursor-atomic
kms_cursor_legacy@basic-flip-after-cursor-legacy
kms_cursor_legacy@flip-vs-cursor-toggle
kms_cursor_legacy@basic-flip-after-cursor-varying-size
kms_cursor_legacy@basic-flip-before-cursor-varying-size
kms_cursor_legacy@flip-vs-cursor-atomic-transitions
kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size
kms_cursor_legacy@flip-vs-cursor-varying-size
kms_cursor_legacy@short-flip-after-cursor-atomic-transitions
kms_cursor_legacy@short-flip-after-cursor-atomic-transitions-varying-size
kms_cursor_legacy@short-flip-after-cursor-toggle
kms_cursor_legacy@short-flip-before-cursor-atomic-transitions
kms_cursor_legacy@short-flip-before-cursor-atomic-transitions-varying-size
msm_shrink@copy-gpu-32
msm_shrink@copy-gpu-oom-32
# The below test shows inconsistency across multiple runs, giving
# results of Pass and Fail alternately.
kms_cursor_legacy@basic-flip-before-cursor-varying-size
kms_cursor_legacy@flip-vs-cursor-atomic-transitions
kms_cursor_legacy@short-flip-after-cursor-atomic-transitions
kms_cursor_legacy@short-flip-after-cursor-atomic-transitions-varying-size

View File

@ -5,3 +5,22 @@ kms_bw.*
# https://gitlab.freedesktop.org/gfx-ci/linux/-/commit/4b49f902ec6f2bb382cbbf489870573f4b43371e
# https://gitlab.freedesktop.org/gfx-ci/linux/-/commit/38cdf4c5559771e2474ae0fecef8469f65147bc1
msm_mapping@*
# Skip driver specific tests
^amdgpu.*
nouveau_.*
panfrost_.*
^v3d.*
^vc4.*
^vmwgfx*
# Skip intel specific tests
gem_.*
i915_.*
# Currently fails and causes coverage loss for other tests
# since core_getversion also fails.
core_hotunplug.*
# Whole machine hangs
kms_cursor_crc.*

View File

@ -1,54 +1,8 @@
kms_3d,Crash
kms_bw@linear-tiling-2-displays-1920x1080p,Fail
kms_bw@linear-tiling-2-displays-2560x1440p,Fail
kms_bw@linear-tiling-2-displays-3840x2160p,Fail
kms_bw@linear-tiling-3-displays-1920x1080p,Fail
kms_bw@linear-tiling-3-displays-2560x1440p,Fail
kms_bw@linear-tiling-3-displays-3840x2160p,Fail
kms_flip@flip-vs-modeset-vs-hang,Crash
kms_flip@flip-vs-panning-vs-hang,Crash
kms_force_connector_basic@force-load-detect,Fail
kms_invalid_mode@int-max-clock,Crash
kms_pipe_crc_basic@compare-crc-sanitycheck-nv12,Crash
kms_pipe_crc_basic@nonblocking-crc-frame-sequence,Crash
kms_pipe_crc_basic@read-crc-frame-sequence,Crash
kms_plane@pixel-format,Crash
kms_plane@pixel-format-source-clamping,Crash
kms_plane@plane-position-hole,Crash
kms_plane@plane-position-hole-dpms,Crash
kms_plane_cursor@overlay,Crash
kms_plane_cursor@pipe-A-overlay-size-128,Fail
kms_plane_cursor@pipe-A-overlay-size-256,Fail
kms_plane_cursor@pipe-A-overlay-size-64,Fail
kms_plane_cursor@pipe-A-primary-size-128,Fail
kms_plane_cursor@pipe-A-primary-size-256,Fail
kms_plane_cursor@pipe-A-primary-size-64,Fail
kms_plane_cursor@pipe-A-viewport-size-128,Fail
kms_plane_cursor@pipe-A-viewport-size-256,Fail
kms_plane_cursor@pipe-A-viewport-size-64,Fail
kms_plane_cursor@pipe-B-overlay-size-128,Fail
kms_plane_cursor@pipe-B-overlay-size-256,Fail
kms_plane_cursor@pipe-B-overlay-size-64,Fail
kms_plane_cursor@pipe-B-primary-size-128,Fail
kms_plane_cursor@pipe-B-primary-size-256,Fail
kms_plane_cursor@pipe-B-primary-size-64,Fail
kms_plane_cursor@pipe-B-viewport-size-128,Fail
kms_plane_cursor@pipe-B-viewport-size-256,Fail
kms_plane_cursor@pipe-B-viewport-size-64,Fail
kms_plane_cursor@primary,Crash
kms_plane_cursor@viewport,Crash
kms_plane_lowres@tiling-none,Fail
kms_plane_scaling@downscale-with-modifier-factor-0-25,Fail
kms_plane_scaling@downscale-with-rotation-factor-0-25,Fail
kms_plane_scaling@upscale-with-modifier-20x20,Fail
kms_plane_scaling@upscale-with-modifier-factor-0-25,Fail
kms_plane_scaling@upscale-with-pixel-format-20x20,Fail
kms_plane_scaling@upscale-with-pixel-format-factor-0-25,Fail
kms_plane_scaling@upscale-with-rotation-20x20,Fail
kms_prime@basic-crc,Fail
kms_properties@connector-properties-atomic,Crash
kms_properties@connector-properties-legacy,Crash
kms_properties@get_properties-sanity-atomic,Crash
kms_properties@get_properties-sanity-non-atomic,Crash
kms_rmfb@close-fd,Crash
kms_setmode@invalid-clone-single-crtc,Crash
dumb_buffer@create-clear,Crash
dumb_buffer@create-valid-dumb,Crash
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
tools_test@tools_test,Crash

View File

@ -49,4 +49,23 @@ kms_plane_lowres@pipe-F-tiling-y
kms_cursor_crc.*
# Machine is hanging in this test, so skip it
kms_pipe_crc_basic@disable-crc-after-crtc
kms_pipe_crc_basic@disable-crc-after-crtc
# Skip driver specific tests
^amdgpu.*
msm_.*
nouveau_.*
^v3d.*
^vc4.*
^vmwgfx*
# Skip intel specific tests
gem_.*
i915_.*
# Panfrost is not a KMS driver, so skip the KMS tests
kms_.*
# Currently fails and causes coverage loss for other tests
# since core_getversion also fails.
core_hotunplug.*

View File

@ -1,75 +1,8 @@
kms_color@gamma,Fail
kms_color@legacy-gamma,Fail
kms_color@pipe-A-legacy-gamma,Fail
kms_color@pipe-B-legacy-gamma,Fail
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-32x10,Fail
kms_cursor_crc@cursor-offscreen-32x32,Fail
kms_cursor_crc@cursor-offscreen-64x64,Fail
kms_cursor_crc@cursor-onscreen-32x10,Fail
kms_cursor_crc@cursor-onscreen-32x32,Fail
kms_cursor_crc@cursor-onscreen-64x21,Fail
kms_cursor_crc@cursor-onscreen-64x64,Fail
kms_cursor_crc@cursor-random-32x10,Fail
kms_cursor_crc@cursor-random-32x32,Fail
kms_cursor_crc@cursor-random-64x21,Fail
kms_cursor_crc@cursor-random-64x64,Fail
kms_cursor_crc@cursor-rapid-movement-32x32,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-32x10,Fail
kms_cursor_crc@cursor-sliding-32x32,Fail
kms_cursor_crc@cursor-sliding-64x21,Fail
kms_cursor_crc@cursor-sliding-64x64,Fail
kms_flip@basic-flip-vs-wf_vblank,Fail
kms_flip@blocking-wf_vblank,Fail
kms_flip@dpms-vs-vblank-race,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-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@modeset-vs-vblank-race,Fail
kms_flip@plain-flip-fb-recreate,Fail
kms_flip@plain-flip-fb-recreate-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_invalid_mode@int-max-clock,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_cursor@overlay,Fail
kms_plane_cursor@pipe-B-overlay-size-128,Fail
kms_plane_cursor@pipe-B-overlay-size-256,Fail
kms_plane_cursor@pipe-B-overlay-size-64,Fail
kms_plane_cursor@pipe-B-primary-size-128,Fail
kms_plane_cursor@pipe-B-primary-size-256,Fail
kms_plane_cursor@pipe-B-primary-size-64,Fail
kms_plane_cursor@pipe-B-viewport-size-128,Fail
kms_plane_cursor@pipe-B-viewport-size-256,Fail
kms_plane_cursor@pipe-B-viewport-size-64,Fail
kms_plane_cursor@primary,Fail
kms_plane_cursor@viewport,Fail
kms_plane_multiple@atomic-pipe-B-tiling-none,Fail
kms_plane_multiple@tiling-none,Fail
kms_prime@basic-crc,Fail
kms_rmfb@close-fd,Fail
kms_universal_plane@universal-plane-pipe-B-functional,Fail
dumb_buffer@create-clear,Fail
dumb_buffer@create-valid-dumb,Fail
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
tools_test@tools_test,Fail

View File

@ -1,7 +1,6 @@
kms_bw@linear-tiling-2-displays-1920x1080p
kms_cursor_crc@cursor-offscreen-64x21
kms_flip@dpms-vs-vblank-race-interruptible
kms_flip@flip-vs-wf_vblank-interruptible
kms_plane_cursor@overlay
kms_plane_cursor@primary
kms_plane_cursor@viewport
# Board Name: rk3399-gru-kevin
# Bug Report: https://lore.kernel.org/dri-devel/5cc34a8b-c1fa-4744-9031-2d33ecf41011@collabora.com/T/#u
# IGT Version: 1.28-g0df7b9b97
# Linux Version: 6.9.0-rc7
# Failure Rate: 50
panfrost_submit@pan-unhandled-pagefault

View File

@ -3,3 +3,22 @@
# Too unstable, machine ends up hanging after lots of Oopses
kms_cursor_legacy.*
# Skip driver specific tests
^amdgpu.*
msm_.*
nouveau_.*
^v3d.*
^vc4.*
^vmwgfx*
# Skip intel specific tests
gem_.*
i915_.*
# Panfrost is not a KMS driver, so skip the KMS tests
kms_.*
# Currently fails and causes coverage loss for other tests
# since core_getversion also fails.
core_hotunplug.*

View File

@ -93,10 +93,10 @@ def add_unit_test_or_update_result_to_fails_if_present(fails_txt, unit_test, fai
def split_unit_test_from_collate(xfails):
for job_name in xfails.keys():
for job_id in xfails[job_name].copy().keys():
if "not found" in xfails[job_name][job_id]:
if "not found" in xfails[job_name][job_id].content_as_str:
del xfails[job_name][job_id]
continue
xfails[job_name][job_id] = xfails[job_name][job_id].strip().split("\n")
xfails[job_name][job_id] = xfails[job_name][job_id].content_as_str.splitlines()
def get_xfails_from_pipeline_url(pipeline_url):

View File

@ -1,33 +1,72 @@
kms_addfb_basic@addfb25-bad-modifier,Fail
kms_addfb_basic@bad-pitch-65536,Fail
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@linear-tiling-1-displays-1920x1080p,Fail
kms_bw@linear-tiling-1-displays-2160x1440p,Fail
kms_bw@linear-tiling-1-displays-2560x1440p,Fail
kms_bw@linear-tiling-1-displays-3840x2160p,Fail
kms_bw@linear-tiling-10-displays-1920x1080p,Fail
kms_bw@linear-tiling-10-displays-2160x1440p,Fail
kms_bw@linear-tiling-10-displays-2560x1440p,Fail
kms_bw@linear-tiling-10-displays-3840x2160p,Fail
kms_bw@linear-tiling-11-displays-1920x1080p,Fail
kms_bw@linear-tiling-11-displays-2160x1440p,Fail
kms_bw@linear-tiling-11-displays-2560x1440p,Fail
kms_bw@linear-tiling-11-displays-3840x2160p,Fail
kms_bw@linear-tiling-12-displays-1920x1080p,Fail
kms_bw@linear-tiling-12-displays-2160x1440p,Fail
kms_bw@linear-tiling-12-displays-2560x1440p,Fail
kms_bw@linear-tiling-12-displays-3840x2160p,Fail
kms_bw@linear-tiling-13-displays-1920x1080p,Fail
kms_bw@linear-tiling-13-displays-2160x1440p,Fail
kms_bw@linear-tiling-13-displays-2560x1440p,Fail
kms_bw@linear-tiling-13-displays-3840x2160p,Fail
kms_bw@linear-tiling-14-displays-1920x1080p,Fail
kms_bw@linear-tiling-14-displays-2160x1440p,Fail
kms_bw@linear-tiling-14-displays-2560x1440p,Fail
kms_bw@linear-tiling-14-displays-3840x2160p,Fail
kms_bw@linear-tiling-15-displays-1920x1080p,Fail
kms_bw@linear-tiling-15-displays-2160x1440p,Fail
kms_bw@linear-tiling-15-displays-2560x1440p,Fail
kms_bw@linear-tiling-15-displays-3840x2160p,Fail
kms_bw@linear-tiling-16-displays-1920x1080p,Fail
kms_bw@linear-tiling-16-displays-2160x1440p,Fail
kms_bw@linear-tiling-16-displays-2560x1440p,Fail
kms_bw@linear-tiling-16-displays-3840x2160p,Fail
kms_bw@linear-tiling-2-displays-1920x1080p,Fail
kms_bw@linear-tiling-2-displays-2160x1440p,Fail
kms_bw@linear-tiling-2-displays-2560x1440p,Fail
kms_bw@linear-tiling-2-displays-3840x2160p,Fail
kms_bw@linear-tiling-3-displays-1920x1080p,Fail
kms_bw@linear-tiling-3-displays-2160x1440p,Fail
kms_bw@linear-tiling-3-displays-2560x1440p,Fail
kms_bw@linear-tiling-3-displays-3840x2160p,Fail
kms_bw@linear-tiling-4-displays-1920x1080p,Fail
kms_bw@linear-tiling-4-displays-2160x1440p,Fail
kms_bw@linear-tiling-4-displays-2560x1440p,Fail
kms_bw@linear-tiling-4-displays-3840x2160p,Fail
kms_bw@linear-tiling-5-displays-1920x1080p,Fail
kms_bw@linear-tiling-5-displays-2160x1440p,Fail
kms_bw@linear-tiling-5-displays-2560x1440p,Fail
kms_bw@linear-tiling-5-displays-3840x2160p,Fail
kms_bw@linear-tiling-6-displays-1920x1080p,Fail
kms_bw@linear-tiling-6-displays-2160x1440p,Fail
kms_bw@linear-tiling-6-displays-2560x1440p,Fail
kms_bw@linear-tiling-6-displays-3840x2160p,Fail
kms_bw@linear-tiling-7-displays-1920x1080p,Fail
kms_bw@linear-tiling-7-displays-2160x1440p,Fail
kms_bw@linear-tiling-7-displays-2560x1440p,Fail
kms_bw@linear-tiling-7-displays-3840x2160p,Fail
kms_bw@linear-tiling-8-displays-1920x1080p,Fail
kms_bw@linear-tiling-8-displays-2160x1440p,Fail
kms_bw@linear-tiling-8-displays-2560x1440p,Fail
kms_bw@linear-tiling-8-displays-3840x2160p,Fail
kms_bw@linear-tiling-9-displays-1920x1080p,Fail
kms_bw@linear-tiling-9-displays-2160x1440p,Fail
kms_bw@linear-tiling-9-displays-2560x1440p,Fail
kms_bw@linear-tiling-9-displays-3840x2160p,Fail
kms_flip@absolute-wf_vblank,Fail
kms_flip@absolute-wf_vblank-interruptible,Fail
kms_flip@basic-flip-vs-wf_vblank,Fail
@ -54,31 +93,34 @@ kms_flip@plain-flip-ts-check-interruptible,Fail
kms_flip@wf_vblank-ts-check,Fail
kms_flip@wf_vblank-ts-check-interruptible,Fail
kms_invalid_mode@int-max-clock,Fail
kms_plane_scaling@downscale-with-modifier-factor-0-25,Fail
kms_plane_scaling@downscale-with-rotation-factor-0-25,Fail
kms_plane_scaling@planes-upscale-20x20,Fail
kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25,Fail
kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5,Fail
kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75,Fail
kms_plane_scaling@upscale-with-modifier-20x20,Fail
kms_plane_scaling@upscale-with-modifier-factor-0-25,Fail
kms_plane_scaling@upscale-with-pixel-format-20x20,Fail
kms_plane_scaling@upscale-with-pixel-format-factor-0-25,Fail
kms_plane_scaling@upscale-with-rotation-20x20,Fail
kms_selftest@drm_format,Timeout
kms_selftest@drm_format_helper,Timeout
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_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_setmode@basic,Fail
kms_vblank@accuracy-idle,Fail
kms_vblank@crtc-id,Fail
kms_vblank@invalid,Fail
kms_vblank@pipe-A-accuracy-idle,Fail
kms_vblank@pipe-A-query-busy,Fail
kms_vblank@pipe-A-query-forked,Fail
kms_vblank@pipe-A-query-forked-busy,Fail
kms_vblank@pipe-A-query-idle,Fail
kms_vblank@pipe-A-ts-continuation-idle,Fail
kms_vblank@pipe-A-ts-continuation-modeset,Fail
kms_vblank@pipe-A-ts-continuation-suspend,Fail
kms_vblank@pipe-A-wait-busy,Fail
kms_vblank@pipe-A-wait-forked,Fail
kms_vblank@pipe-A-wait-forked-busy,Fail
kms_vblank@pipe-A-wait-idle,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-dpms-suspend,Fail
kms_vblank@ts-continuation-idle,Fail
kms_vblank@ts-continuation-modeset,Fail
kms_vblank@ts-continuation-modeset-rpm,Fail
kms_vblank@ts-continuation-suspend,Fail
kms_vblank@wait-busy,Fail
kms_vblank@wait-forked,Fail
kms_vblank@wait-forked-busy,Fail
kms_vblank@wait-idle,Fail
perf@i915-ref-count,Fail
tools_test@tools_test,Fail

View File

@ -3,4 +3,22 @@
kms_cursor_legacy.*
# Job just hangs without any output
kms_flip@flip-vs-suspend.*
kms_flip@flip-vs-suspend.*
# Skip driver specific tests
^amdgpu.*
msm_.*
nouveau_.*
panfrost_.*
^v3d.*
^vc4.*
^vmwgfx*
# Skip intel specific tests
gem_.*
i915_.*
xe_.*
# Currently fails and causes coverage loss for other tests
# since core_getversion also fails.
core_hotunplug.*

View File

@ -714,3 +714,39 @@ drm_atomic_helper_connector_hdmi_update_audio_infoframe(struct drm_connector *co
return ret;
}
EXPORT_SYMBOL(drm_atomic_helper_connector_hdmi_update_audio_infoframe);
/**
* drm_atomic_helper_connector_hdmi_disable_audio_infoframe - Stop sending the Audio Infoframe
* @connector: A pointer to the HDMI connector
*
* This function is meant for HDMI connector drivers to stop sending their
* audio infoframe. It will typically be used in one of the ALSA hooks
* (most likely shutdown).
*
* Returns:
* Zero on success, error code on failure.
*/
int
drm_atomic_helper_connector_hdmi_disable_audio_infoframe(struct drm_connector *connector)
{
struct drm_connector_hdmi_infoframe *infoframe =
&connector->hdmi.infoframes.audio;
struct drm_display_info *info = &connector->display_info;
int ret;
if (!info->is_hdmi)
return 0;
mutex_lock(&connector->hdmi.infoframes.lock);
infoframe->set = false;
ret = clear_infoframe(connector, infoframe);
memset(&infoframe->data, 0, sizeof(infoframe->data));
mutex_unlock(&connector->hdmi.infoframes.lock);
return ret;
}
EXPORT_SYMBOL(drm_atomic_helper_connector_hdmi_disable_audio_infoframe);

View File

@ -467,43 +467,6 @@ void drm_bridge_detach(struct drm_bridge *bridge)
* needed, in order to gradually transition to the new model.
*/
/**
* drm_bridge_chain_mode_fixup - fixup proposed mode for all bridges in the
* encoder chain
* @bridge: bridge control structure
* @mode: desired mode to be set for the bridge
* @adjusted_mode: updated mode that works for this bridge
*
* Calls &drm_bridge_funcs.mode_fixup for all the bridges in the
* encoder chain, starting from the first bridge to the last.
*
* Note: the bridge passed should be the one closest to the encoder
*
* RETURNS:
* true on success, false on failure
*/
bool drm_bridge_chain_mode_fixup(struct drm_bridge *bridge,
const struct drm_display_mode *mode,
struct drm_display_mode *adjusted_mode)
{
struct drm_encoder *encoder;
if (!bridge)
return true;
encoder = bridge->encoder;
list_for_each_entry_from(bridge, &encoder->bridge_chain, chain_node) {
if (!bridge->funcs->mode_fixup)
continue;
if (!bridge->funcs->mode_fixup(bridge, mode, adjusted_mode))
return false;
}
return true;
}
EXPORT_SYMBOL(drm_bridge_chain_mode_fixup);
/**
* drm_bridge_chain_mode_valid - validate the mode against all bridges in the
* encoder chain.

View File

@ -15,8 +15,10 @@
#include <drm/drm_connector.h>
#include <drm/drm_device.h>
#include <drm/drm_edid.h>
#include <drm/drm_managed.h>
#include <drm/drm_modeset_helper_vtables.h>
#include <drm/drm_probe_helper.h>
#include <drm/display/drm_hdmi_state_helper.h>
/**
* DOC: overview
@ -86,6 +88,13 @@ struct drm_bridge_connector {
* connector modes detection, if any (see &DRM_BRIDGE_OP_MODES).
*/
struct drm_bridge *bridge_modes;
/**
* @bridge_hdmi:
*
* The bridge in the chain that implements necessary support for the
* HDMI connector infrastructure, if any (see &DRM_BRIDGE_OP_HDMI).
*/
struct drm_bridge *bridge_hdmi;
};
#define to_drm_bridge_connector(x) \
@ -193,19 +202,6 @@ drm_bridge_connector_detect(struct drm_connector *connector, bool force)
return status;
}
static void drm_bridge_connector_destroy(struct drm_connector *connector)
{
struct drm_bridge_connector *bridge_connector =
to_drm_bridge_connector(connector);
drm_connector_unregister(connector);
drm_connector_cleanup(connector);
fwnode_handle_put(connector->fwnode);
kfree(bridge_connector);
}
static void drm_bridge_connector_debugfs_init(struct drm_connector *connector,
struct dentry *root)
{
@ -224,7 +220,6 @@ static const struct drm_connector_funcs drm_bridge_connector_funcs = {
.reset = drm_atomic_helper_connector_reset,
.detect = drm_bridge_connector_detect,
.fill_modes = drm_helper_probe_single_connector_modes,
.destroy = drm_bridge_connector_destroy,
.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
.debugfs_init = drm_bridge_connector_debugfs_init,
@ -300,6 +295,60 @@ static const struct drm_connector_helper_funcs drm_bridge_connector_helper_funcs
.disable_hpd = drm_bridge_connector_disable_hpd,
};
static enum drm_mode_status
drm_bridge_connector_tmds_char_rate_valid(const struct drm_connector *connector,
const struct drm_display_mode *mode,
unsigned long long tmds_rate)
{
struct drm_bridge_connector *bridge_connector =
to_drm_bridge_connector(connector);
struct drm_bridge *bridge;
bridge = bridge_connector->bridge_hdmi;
if (!bridge)
return MODE_ERROR;
if (bridge->funcs->hdmi_tmds_char_rate_valid)
return bridge->funcs->hdmi_tmds_char_rate_valid(bridge, mode, tmds_rate);
else
return MODE_OK;
}
static int drm_bridge_connector_clear_infoframe(struct drm_connector *connector,
enum hdmi_infoframe_type type)
{
struct drm_bridge_connector *bridge_connector =
to_drm_bridge_connector(connector);
struct drm_bridge *bridge;
bridge = bridge_connector->bridge_hdmi;
if (!bridge)
return -EINVAL;
return bridge->funcs->hdmi_clear_infoframe(bridge, type);
}
static int drm_bridge_connector_write_infoframe(struct drm_connector *connector,
enum hdmi_infoframe_type type,
const u8 *buffer, size_t len)
{
struct drm_bridge_connector *bridge_connector =
to_drm_bridge_connector(connector);
struct drm_bridge *bridge;
bridge = bridge_connector->bridge_hdmi;
if (!bridge)
return -EINVAL;
return bridge->funcs->hdmi_write_infoframe(bridge, type, buffer, len);
}
static const struct drm_connector_hdmi_funcs drm_bridge_connector_hdmi_funcs = {
.tmds_char_rate_valid = drm_bridge_connector_tmds_char_rate_valid,
.clear_infoframe = drm_bridge_connector_clear_infoframe,
.write_infoframe = drm_bridge_connector_write_infoframe,
};
/* -----------------------------------------------------------------------------
* Bridge Connector Initialisation
*/
@ -325,10 +374,12 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm,
struct drm_connector *connector;
struct i2c_adapter *ddc = NULL;
struct drm_bridge *bridge, *panel_bridge = NULL;
unsigned int supported_formats = BIT(HDMI_COLORSPACE_RGB);
unsigned int max_bpc = 8;
int connector_type;
int ret;
bridge_connector = kzalloc(sizeof(*bridge_connector), GFP_KERNEL);
bridge_connector = drmm_kzalloc(drm, sizeof(*bridge_connector), GFP_KERNEL);
if (!bridge_connector)
return ERR_PTR(-ENOMEM);
@ -361,6 +412,20 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm,
bridge_connector->bridge_detect = bridge;
if (bridge->ops & DRM_BRIDGE_OP_MODES)
bridge_connector->bridge_modes = bridge;
if (bridge->ops & DRM_BRIDGE_OP_HDMI) {
if (bridge_connector->bridge_hdmi)
return ERR_PTR(-EBUSY);
if (!bridge->funcs->hdmi_write_infoframe ||
!bridge->funcs->hdmi_clear_infoframe)
return ERR_PTR(-EINVAL);
bridge_connector->bridge_hdmi = bridge;
if (bridge->supported_formats)
supported_formats = bridge->supported_formats;
if (bridge->max_bpc)
max_bpc = bridge->max_bpc;
}
if (!drm_bridge_get_next_bridge(bridge))
connector_type = bridge->type;
@ -383,7 +448,17 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm,
return ERR_PTR(-EINVAL);
}
ret = drm_connector_init_with_ddc(drm, connector,
if (bridge_connector->bridge_hdmi)
ret = drmm_connector_hdmi_init(drm, connector,
bridge_connector->bridge_hdmi->vendor,
bridge_connector->bridge_hdmi->product,
&drm_bridge_connector_funcs,
&drm_bridge_connector_hdmi_funcs,
connector_type, ddc,
supported_formats,
max_bpc);
else
ret = drmm_connector_init(drm, connector,
&drm_bridge_connector_funcs,
connector_type, ddc);
if (ret) {

View File

@ -762,6 +762,8 @@ static int bridges_show(struct seq_file *m, void *data)
drm_puts(&p, " hpd");
if (bridge->ops & DRM_BRIDGE_OP_MODES)
drm_puts(&p, " modes");
if (bridge->ops & DRM_BRIDGE_OP_HDMI)
drm_puts(&p, " hdmi");
drm_puts(&p, "\n");
}

View File

@ -206,6 +206,7 @@ int mipi_dbi_buf_copy(void *dst, struct iosys_map *src, struct drm_framebuffer *
struct drm_rect *clip, bool swap,
struct drm_format_conv_state *fmtcnv_state)
{
struct mipi_dbi_dev *dbidev = drm_to_mipi_dbi_dev(fb->dev);
struct drm_gem_object *gem = drm_gem_fb_get_obj(fb, 0);
struct iosys_map dst_map = IOSYS_MAP_INIT_VADDR(dst);
int ret;
@ -222,8 +223,18 @@ int mipi_dbi_buf_copy(void *dst, struct iosys_map *src, struct drm_framebuffer *
else
drm_fb_memcpy(&dst_map, NULL, src, fb, clip);
break;
case DRM_FORMAT_RGB888:
drm_fb_memcpy(&dst_map, NULL, src, fb, clip);
break;
case DRM_FORMAT_XRGB8888:
drm_fb_xrgb8888_to_rgb565(&dst_map, NULL, src, fb, clip, fmtcnv_state, swap);
switch (dbidev->pixel_format) {
case DRM_FORMAT_RGB565:
drm_fb_xrgb8888_to_rgb565(&dst_map, NULL, src, fb, clip, fmtcnv_state, swap);
break;
case DRM_FORMAT_RGB888:
drm_fb_xrgb8888_to_rgb888(&dst_map, NULL, src, fb, clip, fmtcnv_state);
break;
}
break;
default:
drm_err_once(fb->dev, "Format is not supported: %p4cc\n",
@ -260,9 +271,11 @@ static void mipi_dbi_fb_dirty(struct iosys_map *src, struct drm_framebuffer *fb,
struct mipi_dbi_dev *dbidev = drm_to_mipi_dbi_dev(fb->dev);
unsigned int height = rect->y2 - rect->y1;
unsigned int width = rect->x2 - rect->x1;
const struct drm_format_info *dst_format;
struct mipi_dbi *dbi = &dbidev->dbi;
bool swap = dbi->swap_bytes;
int ret = 0;
size_t len;
bool full;
void *tr;
@ -283,8 +296,13 @@ static void mipi_dbi_fb_dirty(struct iosys_map *src, struct drm_framebuffer *fb,
mipi_dbi_set_window_address(dbidev, rect->x1, rect->x2 - 1, rect->y1,
rect->y2 - 1);
ret = mipi_dbi_command_buf(dbi, MIPI_DCS_WRITE_MEMORY_START, tr,
width * height * 2);
if (fb->format->format == DRM_FORMAT_XRGB8888)
dst_format = drm_format_info(dbidev->pixel_format);
else
dst_format = fb->format;
len = drm_format_info_min_pitch(dst_format, 0, width) * height;
ret = mipi_dbi_command_buf(dbi, MIPI_DCS_WRITE_MEMORY_START, tr, len);
err_msg:
if (ret)
drm_err_once(fb->dev, "Failed to update display %d\n", ret);
@ -572,7 +590,7 @@ static const uint32_t mipi_dbi_formats[] = {
* has one fixed &drm_display_mode which is rotated according to @rotation.
* This mode is used to set the mode config min/max width/height properties.
*
* Use mipi_dbi_dev_init() if you don't need custom formats.
* Use mipi_dbi_dev_init() if you want native RGB565 and emulated XRGB8888 format.
*
* Note:
* Some of the helper functions expects RGB565 to be the default format and the
@ -631,6 +649,9 @@ int mipi_dbi_dev_init_with_formats(struct mipi_dbi_dev *dbidev,
drm->mode_config.min_height = dbidev->mode.vdisplay;
drm->mode_config.max_height = dbidev->mode.vdisplay;
dbidev->rotation = rotation;
dbidev->pixel_format = formats[0];
if (formats[0] == DRM_FORMAT_RGB888)
dbidev->dbi.write_memory_bpw = 8;
DRM_DEBUG_KMS("rotation = %u\n", rotation);
@ -824,15 +845,6 @@ u32 mipi_dbi_spi_cmd_max_speed(struct spi_device *spi, size_t len)
}
EXPORT_SYMBOL(mipi_dbi_spi_cmd_max_speed);
static bool mipi_dbi_machine_little_endian(void)
{
#if defined(__LITTLE_ENDIAN)
return true;
#else
return false;
#endif
}
/*
* MIPI DBI Type C Option 1
*
@ -855,7 +867,7 @@ static int mipi_dbi_spi1e_transfer(struct mipi_dbi *dbi, int dc,
const void *buf, size_t len,
unsigned int bpw)
{
bool swap_bytes = (bpw == 16 && mipi_dbi_machine_little_endian());
bool swap_bytes = (bpw == 16);
size_t chunk, max_chunk = dbi->tx_buf9_len;
struct spi_device *spi = dbi->spi;
struct spi_transfer tr = {
@ -1004,7 +1016,7 @@ static int mipi_dbi_spi1_transfer(struct mipi_dbi *dbi, int dc,
size_t chunk = min(len, max_chunk);
unsigned int i;
if (bpw == 16 && mipi_dbi_machine_little_endian()) {
if (bpw == 16) {
for (i = 0; i < (chunk * 2); i += 2) {
dst16[i] = *src16 >> 8;
dst16[i + 1] = *src16++ & 0xFF;
@ -1088,7 +1100,7 @@ static int mipi_dbi_typec1_command_read(struct mipi_dbi *dbi, u8 *cmd,
static int mipi_dbi_typec1_command(struct mipi_dbi *dbi, u8 *cmd,
u8 *parameters, size_t num)
{
unsigned int bpw = (*cmd == MIPI_DCS_WRITE_MEMORY_START) ? 16 : 8;
unsigned int bpw = 8;
int ret;
if (mipi_dbi_command_is_read(dbi, *cmd))
@ -1100,6 +1112,9 @@ static int mipi_dbi_typec1_command(struct mipi_dbi *dbi, u8 *cmd,
if (ret || !num)
return ret;
if (*cmd == MIPI_DCS_WRITE_MEMORY_START)
bpw = dbi->write_memory_bpw;
return mipi_dbi_spi1_transfer(dbi, 1, parameters, num, bpw);
}
@ -1193,8 +1208,8 @@ static int mipi_dbi_typec3_command(struct mipi_dbi *dbi, u8 *cmd,
if (ret || !num)
return ret;
if (*cmd == MIPI_DCS_WRITE_MEMORY_START && !dbi->swap_bytes)
bpw = 16;
if (*cmd == MIPI_DCS_WRITE_MEMORY_START)
bpw = dbi->write_memory_bpw;
spi_bus_lock(spi->controller);
gpiod_set_value_cansleep(dbi->dc, 1);
@ -1218,11 +1233,23 @@ static int mipi_dbi_typec3_command(struct mipi_dbi *dbi, u8 *cmd,
* If @dc is set, a Type C Option 3 interface is assumed, if not
* Type C Option 1.
*
* If the SPI master driver doesn't support the necessary bits per word,
* the following transformation is used:
* If the command is %MIPI_DCS_WRITE_MEMORY_START and the pixel format is RGB565, endianness has
* to be taken into account. The MIPI DBI serial interface is big endian and framebuffers are
* assumed stored in memory as little endian (%DRM_FORMAT_BIG_ENDIAN is not supported).
*
* - 9-bit: reorder buffer as 9x 8-bit words, padded with no-op command.
* - 16-bit: if big endian send as 8-bit, if little endian swap bytes
* This is how endianness is handled:
*
* Option 1 (D/C as a bit): The buffer is sent on the wire byte by byte so the 16-bit buffer is
* byteswapped before transfer.
*
* Option 3 (D/C as a gpio): If the SPI controller supports 16 bits per word the buffer can be
* sent as-is. If not the caller is responsible for swapping the bytes
* before calling mipi_dbi_command_buf() and the buffer is sent 8 bpw.
*
* This handling is optimised for %DRM_FORMAT_RGB565 framebuffers.
*
* If the interface is Option 1 and the SPI controller doesn't support 9 bits per word,
* the buffer is sent as 9x 8-bit words, padded with MIPI DCS no-op commands if necessary.
*
* Returns:
* Zero on success, negative error code on failure.
@ -1253,12 +1280,15 @@ int mipi_dbi_spi_init(struct spi_device *spi, struct mipi_dbi *dbi,
dbi->spi = spi;
dbi->read_commands = mipi_dbi_dcs_read_commands;
dbi->write_memory_bpw = 16;
if (dc) {
dbi->command = mipi_dbi_typec3_command;
dbi->dc = dc;
if (mipi_dbi_machine_little_endian() && !spi_is_bpw_supported(spi, 16))
if (!spi_is_bpw_supported(spi, 16)) {
dbi->write_memory_bpw = 8;
dbi->swap_bytes = true;
}
} else {
dbi->command = mipi_dbi_typec1_command;
dbi->tx_buf9_len = SZ_16K;
@ -1475,4 +1505,5 @@ EXPORT_SYMBOL(mipi_dbi_debugfs_init);
#endif
MODULE_DESCRIPTION("MIPI Display Bus Interface (DBI) LCD controller support");
MODULE_LICENSE("GPL");

View File

@ -648,41 +648,6 @@ void drm_mm_remove_node(struct drm_mm_node *node)
}
EXPORT_SYMBOL(drm_mm_remove_node);
/**
* drm_mm_replace_node - move an allocation from @old to @new
* @old: drm_mm_node to remove from the allocator
* @new: drm_mm_node which should inherit @old's allocation
*
* This is useful for when drivers embed the drm_mm_node structure and hence
* can't move allocations by reassigning pointers. It's a combination of remove
* and insert with the guarantee that the allocation start will match.
*/
void drm_mm_replace_node(struct drm_mm_node *old, struct drm_mm_node *new)
{
struct drm_mm *mm = old->mm;
DRM_MM_BUG_ON(!drm_mm_node_allocated(old));
*new = *old;
__set_bit(DRM_MM_NODE_ALLOCATED_BIT, &new->flags);
list_replace(&old->node_list, &new->node_list);
rb_replace_node_cached(&old->rb, &new->rb, &mm->interval_tree);
if (drm_mm_hole_follows(old)) {
list_replace(&old->hole_stack, &new->hole_stack);
rb_replace_node_cached(&old->rb_hole_size,
&new->rb_hole_size,
&mm->holes_size);
rb_replace_node(&old->rb_hole_addr,
&new->rb_hole_addr,
&mm->holes_addr);
}
clear_bit_unlock(DRM_MM_NODE_ALLOCATED_BIT, &old->flags);
}
EXPORT_SYMBOL(drm_mm_replace_node);
/**
* DOC: lru scan roster
*

View File

@ -501,4 +501,5 @@ EXPORT_SYMBOL(drm_get_panel_orientation_quirk);
#endif
MODULE_DESCRIPTION("Quirks for non-normal panel orientation");
MODULE_LICENSE("Dual MIT/GPL");

View File

@ -12,6 +12,7 @@
#include <linux/kmsg_dump.h>
#include <linux/list.h>
#include <linux/module.h>
#include <linux/printk.h>
#include <linux/types.h>
#include <drm/drm_drv.h>
@ -27,6 +28,12 @@ MODULE_AUTHOR("Jocelyn Falempe");
MODULE_DESCRIPTION("DRM panic handler");
MODULE_LICENSE("GPL");
static char drm_panic_screen[16] = CONFIG_DRM_PANIC_SCREEN;
module_param_string(panic_screen, drm_panic_screen, sizeof(drm_panic_screen), 0644);
MODULE_PARM_DESC(panic_screen,
"Choose what will be displayed by drm_panic, 'user' or 'kmsg' [default="
CONFIG_DRM_PANIC_SCREEN "]");
/**
* DOC: overview
*
@ -194,40 +201,42 @@ static u32 convert_from_xrgb8888(u32 color, u32 format)
/*
* Blit & Fill
*/
/* check if the pixel at coord x,y is 1 (foreground) or 0 (background) */
static bool drm_panic_is_pixel_fg(const u8 *sbuf8, unsigned int spitch, int x, int y)
{
return (sbuf8[(y * spitch) + x / 8] & (0x80 >> (x % 8))) != 0;
}
static void drm_panic_blit16(struct iosys_map *dmap, unsigned int dpitch,
const u8 *sbuf8, unsigned int spitch,
unsigned int height, unsigned int width,
u16 fg16, u16 bg16)
u16 fg16)
{
unsigned int y, x;
u16 val16;
for (y = 0; y < height; y++) {
for (x = 0; x < width; x++) {
val16 = (sbuf8[(y * spitch) + x / 8] & (0x80 >> (x % 8))) ? fg16 : bg16;
iosys_map_wr(dmap, y * dpitch + x * sizeof(u16), u16, val16);
}
}
for (y = 0; y < height; y++)
for (x = 0; x < width; x++)
if (drm_panic_is_pixel_fg(sbuf8, spitch, x, y))
iosys_map_wr(dmap, y * dpitch + x * sizeof(u16), u16, fg16);
}
static void drm_panic_blit24(struct iosys_map *dmap, unsigned int dpitch,
const u8 *sbuf8, unsigned int spitch,
unsigned int height, unsigned int width,
u32 fg32, u32 bg32)
u32 fg32)
{
unsigned int y, x;
u32 val32;
for (y = 0; y < height; y++) {
for (x = 0; x < width; x++) {
u32 off = y * dpitch + x * 3;
val32 = (sbuf8[(y * spitch) + x / 8] & (0x80 >> (x % 8))) ? fg32 : bg32;
/* write blue-green-red to output in little endianness */
iosys_map_wr(dmap, off, u8, (val32 & 0x000000FF) >> 0);
iosys_map_wr(dmap, off + 1, u8, (val32 & 0x0000FF00) >> 8);
iosys_map_wr(dmap, off + 2, u8, (val32 & 0x00FF0000) >> 16);
if (drm_panic_is_pixel_fg(sbuf8, spitch, x, y)) {
/* write blue-green-red to output in little endianness */
iosys_map_wr(dmap, off, u8, (fg32 & 0x000000FF) >> 0);
iosys_map_wr(dmap, off + 1, u8, (fg32 & 0x0000FF00) >> 8);
iosys_map_wr(dmap, off + 2, u8, (fg32 & 0x00FF0000) >> 16);
}
}
}
}
@ -235,55 +244,64 @@ static void drm_panic_blit24(struct iosys_map *dmap, unsigned int dpitch,
static void drm_panic_blit32(struct iosys_map *dmap, unsigned int dpitch,
const u8 *sbuf8, unsigned int spitch,
unsigned int height, unsigned int width,
u32 fg32, u32 bg32)
u32 fg32)
{
unsigned int y, x;
u32 val32;
for (y = 0; y < height; y++) {
for (x = 0; x < width; x++) {
val32 = (sbuf8[(y * spitch) + x / 8] & (0x80 >> (x % 8))) ? fg32 : bg32;
iosys_map_wr(dmap, y * dpitch + x * sizeof(u32), u32, val32);
}
}
for (y = 0; y < height; y++)
for (x = 0; x < width; x++)
if (drm_panic_is_pixel_fg(sbuf8, spitch, x, y))
iosys_map_wr(dmap, y * dpitch + x * sizeof(u32), u32, fg32);
}
static void drm_panic_blit_pixel(struct drm_scanout_buffer *sb, struct drm_rect *clip,
const u8 *sbuf8, unsigned int spitch, u32 fg_color)
{
unsigned int y, x;
for (y = 0; y < drm_rect_height(clip); y++)
for (x = 0; x < drm_rect_width(clip); x++)
if (drm_panic_is_pixel_fg(sbuf8, spitch, x, y))
sb->set_pixel(sb, clip->x1 + x, clip->y1 + y, fg_color);
}
/*
* drm_panic_blit - convert a monochrome image to a linear framebuffer
* @dmap: destination iosys_map
* @dpitch: destination pitch in bytes
* @sb: destination scanout buffer
* @clip: destination rectangle
* @sbuf8: source buffer, in monochrome format, 8 pixels per byte.
* @spitch: source pitch in bytes
* @height: height of the image to copy, in pixels
* @width: width of the image to copy, in pixels
* @fg_color: foreground color, in destination format
* @bg_color: background color, in destination format
* @pixel_width: pixel width in bytes.
*
* This can be used to draw a font character, which is a monochrome image, to a
* framebuffer in other supported format.
*/
static void drm_panic_blit(struct iosys_map *dmap, unsigned int dpitch,
const u8 *sbuf8, unsigned int spitch,
unsigned int height, unsigned int width,
u32 fg_color, u32 bg_color,
unsigned int pixel_width)
static void drm_panic_blit(struct drm_scanout_buffer *sb, struct drm_rect *clip,
const u8 *sbuf8, unsigned int spitch, u32 fg_color)
{
switch (pixel_width) {
struct iosys_map map;
if (sb->set_pixel)
return drm_panic_blit_pixel(sb, clip, sbuf8, spitch, fg_color);
map = sb->map[0];
iosys_map_incr(&map, clip->y1 * sb->pitch[0] + clip->x1 * sb->format->cpp[0]);
switch (sb->format->cpp[0]) {
case 2:
drm_panic_blit16(dmap, dpitch, sbuf8, spitch,
height, width, fg_color, bg_color);
drm_panic_blit16(&map, sb->pitch[0], sbuf8, spitch,
drm_rect_height(clip), drm_rect_width(clip), fg_color);
break;
case 3:
drm_panic_blit24(dmap, dpitch, sbuf8, spitch,
height, width, fg_color, bg_color);
drm_panic_blit24(&map, sb->pitch[0], sbuf8, spitch,
drm_rect_height(clip), drm_rect_width(clip), fg_color);
break;
case 4:
drm_panic_blit32(dmap, dpitch, sbuf8, spitch,
height, width, fg_color, bg_color);
drm_panic_blit32(&map, sb->pitch[0], sbuf8, spitch,
drm_rect_height(clip), drm_rect_width(clip), fg_color);
break;
default:
WARN_ONCE(1, "Can't blit with pixel width %d\n", pixel_width);
WARN_ONCE(1, "Can't blit with pixel width %d\n", sb->format->cpp[0]);
}
}
@ -327,33 +345,51 @@ static void drm_panic_fill32(struct iosys_map *dmap, unsigned int dpitch,
iosys_map_wr(dmap, y * dpitch + x * sizeof(u32), u32, color);
}
static void drm_panic_fill_pixel(struct drm_scanout_buffer *sb,
struct drm_rect *clip,
u32 color)
{
unsigned int y, x;
for (y = 0; y < drm_rect_height(clip); y++)
for (x = 0; x < drm_rect_width(clip); x++)
sb->set_pixel(sb, clip->x1 + x, clip->y1 + y, color);
}
/*
* drm_panic_fill - Fill a rectangle with a color
* @dmap: destination iosys_map, pointing to the top left corner of the rectangle
* @dpitch: destination pitch in bytes
* @height: height of the rectangle, in pixels
* @width: width of the rectangle, in pixels
* @color: color to fill the rectangle.
* @pixel_width: pixel width in bytes
* @sb: destination scanout buffer
* @clip: destination rectangle
* @color: foreground color, in destination format
*
* Fill a rectangle with a color, in a linear framebuffer.
*/
static void drm_panic_fill(struct iosys_map *dmap, unsigned int dpitch,
unsigned int height, unsigned int width,
u32 color, unsigned int pixel_width)
static void drm_panic_fill(struct drm_scanout_buffer *sb, struct drm_rect *clip,
u32 color)
{
switch (pixel_width) {
struct iosys_map map;
if (sb->set_pixel)
return drm_panic_fill_pixel(sb, clip, color);
map = sb->map[0];
iosys_map_incr(&map, clip->y1 * sb->pitch[0] + clip->x1 * sb->format->cpp[0]);
switch (sb->format->cpp[0]) {
case 2:
drm_panic_fill16(dmap, dpitch, height, width, color);
drm_panic_fill16(&map, sb->pitch[0], drm_rect_height(clip),
drm_rect_width(clip), color);
break;
case 3:
drm_panic_fill24(dmap, dpitch, height, width, color);
drm_panic_fill24(&map, sb->pitch[0], drm_rect_height(clip),
drm_rect_width(clip), color);
break;
case 4:
drm_panic_fill32(dmap, dpitch, height, width, color);
drm_panic_fill32(&map, sb->pitch[0], drm_rect_height(clip),
drm_rect_width(clip), color);
break;
default:
WARN_ONCE(1, "Can't fill with pixel width %d\n", pixel_width);
WARN_ONCE(1, "Can't fill with pixel width %d\n", sb->format->cpp[0]);
}
}
@ -381,53 +417,46 @@ static void draw_txt_rectangle(struct drm_scanout_buffer *sb,
unsigned int msg_lines,
bool centered,
struct drm_rect *clip,
u32 fg_color,
u32 bg_color)
u32 color)
{
int i, j;
const u8 *src;
size_t font_pitch = DIV_ROUND_UP(font->width, 8);
struct iosys_map dst;
unsigned int px_width = sb->format->cpp[0];
int left = 0;
struct drm_rect rec;
msg_lines = min(msg_lines, drm_rect_height(clip) / font->height);
for (i = 0; i < msg_lines; i++) {
size_t line_len = min(msg[i].len, drm_rect_width(clip) / font->width);
if (centered)
left = (drm_rect_width(clip) - (line_len * font->width)) / 2;
rec.y1 = clip->y1 + i * font->height;
rec.y2 = rec.y1 + font->height;
rec.x1 = clip->x1;
if (centered)
rec.x1 += (drm_rect_width(clip) - (line_len * font->width)) / 2;
dst = sb->map[0];
iosys_map_incr(&dst, (clip->y1 + i * font->height) * sb->pitch[0] +
(clip->x1 + left) * px_width);
for (j = 0; j < line_len; j++) {
src = get_char_bitmap(font, msg[i].txt[j], font_pitch);
drm_panic_blit(&dst, sb->pitch[0], src, font_pitch,
font->height, font->width,
fg_color, bg_color, px_width);
iosys_map_incr(&dst, font->width * px_width);
rec.x2 = rec.x1 + font->width;
drm_panic_blit(sb, &rec, src, font_pitch, color);
rec.x1 += font->width;
}
}
}
/*
* Draw the panic message at the center of the screen
*/
static void draw_panic_static(struct drm_scanout_buffer *sb)
static void draw_panic_static_user(struct drm_scanout_buffer *sb)
{
size_t msg_lines = ARRAY_SIZE(panic_msg);
size_t logo_lines = ARRAY_SIZE(logo);
u32 fg_color = CONFIG_DRM_PANIC_FOREGROUND_COLOR;
u32 bg_color = CONFIG_DRM_PANIC_BACKGROUND_COLOR;
u32 fg_color = convert_from_xrgb8888(CONFIG_DRM_PANIC_FOREGROUND_COLOR, sb->format->format);
u32 bg_color = convert_from_xrgb8888(CONFIG_DRM_PANIC_BACKGROUND_COLOR, sb->format->format);
const struct font_desc *font = get_default_font(sb->width, sb->height, NULL, NULL);
struct drm_rect r_logo, r_msg;
struct drm_rect r_screen, r_logo, r_msg;
if (!font)
return;
fg_color = convert_from_xrgb8888(fg_color, sb->format->format);
bg_color = convert_from_xrgb8888(bg_color, sb->format->format);
r_screen = DRM_RECT_INIT(0, 0, sb->width, sb->height);
r_logo = DRM_RECT_INIT(0, 0,
get_max_line_len(logo, logo_lines) * font->width,
@ -440,14 +469,92 @@ static void draw_panic_static(struct drm_scanout_buffer *sb)
drm_rect_translate(&r_msg, (sb->width - r_msg.x2) / 2, (sb->height - r_msg.y2) / 2);
/* Fill with the background color, and draw text on top */
drm_panic_fill(&sb->map[0], sb->pitch[0], sb->height, sb->width,
bg_color, sb->format->cpp[0]);
drm_panic_fill(sb, &r_screen, bg_color);
if ((r_msg.x1 >= drm_rect_width(&r_logo) || r_msg.y1 >= drm_rect_height(&r_logo)) &&
drm_rect_width(&r_logo) < sb->width && drm_rect_height(&r_logo) < sb->height) {
draw_txt_rectangle(sb, font, logo, logo_lines, false, &r_logo, fg_color, bg_color);
draw_txt_rectangle(sb, font, logo, logo_lines, false, &r_logo, fg_color);
}
draw_txt_rectangle(sb, font, panic_msg, msg_lines, true, &r_msg, fg_color);
}
/*
* Draw one line of kmsg, and handle wrapping if it won't fit in the screen width.
* Return the y-offset of the next line.
*/
static int draw_line_with_wrap(struct drm_scanout_buffer *sb, const struct font_desc *font,
struct drm_panic_line *line, int yoffset, u32 fg_color)
{
int chars_per_row = sb->width / font->width;
struct drm_rect r_txt = DRM_RECT_INIT(0, yoffset, sb->width, sb->height);
struct drm_panic_line line_wrap;
if (line->len > chars_per_row) {
line_wrap.len = line->len % chars_per_row;
line_wrap.txt = line->txt + line->len - line_wrap.len;
draw_txt_rectangle(sb, font, &line_wrap, 1, false, &r_txt, fg_color);
r_txt.y1 -= font->height;
if (r_txt.y1 < 0)
return r_txt.y1;
while (line_wrap.txt > line->txt) {
line_wrap.txt -= chars_per_row;
line_wrap.len = chars_per_row;
draw_txt_rectangle(sb, font, &line_wrap, 1, false, &r_txt, fg_color);
r_txt.y1 -= font->height;
if (r_txt.y1 < 0)
return r_txt.y1;
}
} else {
draw_txt_rectangle(sb, font, line, 1, false, &r_txt, fg_color);
r_txt.y1 -= font->height;
}
return r_txt.y1;
}
/*
* Draw the kmsg buffer to the screen, starting from the youngest message at the bottom,
* and going up until reaching the top of the screen.
*/
static void draw_panic_static_kmsg(struct drm_scanout_buffer *sb)
{
u32 fg_color = convert_from_xrgb8888(CONFIG_DRM_PANIC_FOREGROUND_COLOR, sb->format->format);
u32 bg_color = convert_from_xrgb8888(CONFIG_DRM_PANIC_BACKGROUND_COLOR, sb->format->format);
const struct font_desc *font = get_default_font(sb->width, sb->height, NULL, NULL);
struct drm_rect r_screen = DRM_RECT_INIT(0, 0, sb->width, sb->height);
struct kmsg_dump_iter iter;
char kmsg_buf[512];
size_t kmsg_len;
struct drm_panic_line line;
int yoffset;
if (!font)
return;
yoffset = sb->height - font->height - (sb->height % font->height) / 2;
/* Fill with the background color, and draw text on top */
drm_panic_fill(sb, &r_screen, bg_color);
kmsg_dump_rewind(&iter);
while (kmsg_dump_get_buffer(&iter, false, kmsg_buf, sizeof(kmsg_buf), &kmsg_len)) {
char *start;
char *end;
/* ignore terminating NUL and newline */
start = kmsg_buf + kmsg_len - 2;
end = kmsg_buf + kmsg_len - 1;
while (start > kmsg_buf && yoffset >= 0) {
while (start > kmsg_buf && *start != '\n')
start--;
/* don't count the newline character */
line.txt = start + (start == kmsg_buf ? 0 : 1);
line.len = end - line.txt;
yoffset = draw_line_with_wrap(sb, font, &line, yoffset, fg_color);
end = start;
start--;
}
}
draw_txt_rectangle(sb, font, panic_msg, msg_lines, true, &r_msg, fg_color, bg_color);
}
/*
@ -464,6 +571,15 @@ static bool drm_panic_is_format_supported(const struct drm_format_info *format)
return convert_from_xrgb8888(0xffffff, format->format) != 0;
}
static void draw_panic_dispatch(struct drm_scanout_buffer *sb)
{
if (!strcmp(drm_panic_screen, "kmsg")) {
draw_panic_static_kmsg(sb);
} else {
draw_panic_static_user(sb);
}
}
static void draw_panic_plane(struct drm_plane *plane)
{
struct drm_scanout_buffer sb;
@ -476,7 +592,7 @@ static void draw_panic_plane(struct drm_plane *plane)
ret = plane->helper_private->get_scanout_buffer(plane, &sb);
if (!ret && drm_panic_is_format_supported(sb.format)) {
draw_panic_static(&sb);
draw_panic_dispatch(&sb);
if (plane->helper_private->panic_flush)
plane->helper_private->panic_flush(plane);
}

View File

@ -176,6 +176,32 @@ void __drm_printfn_seq_file(struct drm_printer *p, struct va_format *vaf)
}
EXPORT_SYMBOL(__drm_printfn_seq_file);
static void __drm_dev_vprintk(const struct device *dev, const char *level,
const void *origin, const char *prefix,
struct va_format *vaf)
{
const char *prefix_pad = prefix ? " " : "";
if (!prefix)
prefix = "";
if (dev) {
if (origin)
dev_printk(level, dev, "[" DRM_NAME ":%ps]%s%s %pV",
origin, prefix_pad, prefix, vaf);
else
dev_printk(level, dev, "[" DRM_NAME "]%s%s %pV",
prefix_pad, prefix, vaf);
} else {
if (origin)
printk("%s" "[" DRM_NAME ":%ps]%s%s %pV",
level, origin, prefix_pad, prefix, vaf);
else
printk("%s" "[" DRM_NAME "]%s%s %pV",
level, prefix_pad, prefix, vaf);
}
}
void __drm_printfn_info(struct drm_printer *p, struct va_format *vaf)
{
dev_info(p->arg, "[" DRM_NAME "] %pV", vaf);
@ -187,19 +213,11 @@ void __drm_printfn_dbg(struct drm_printer *p, struct va_format *vaf)
const struct drm_device *drm = p->arg;
const struct device *dev = drm ? drm->dev : NULL;
enum drm_debug_category category = p->category;
const char *prefix = p->prefix ?: "";
const char *prefix_pad = p->prefix ? " " : "";
if (!__drm_debug_enabled(category))
return;
/* Note: __builtin_return_address(0) is useless here. */
if (dev)
dev_printk(KERN_DEBUG, dev, "[" DRM_NAME "]%s%s %pV",
prefix_pad, prefix, vaf);
else
printk(KERN_DEBUG "[" DRM_NAME "]%s%s %pV",
prefix_pad, prefix, vaf);
__drm_dev_vprintk(dev, KERN_DEBUG, p->origin, p->prefix, vaf);
}
EXPORT_SYMBOL(__drm_printfn_dbg);
@ -287,12 +305,7 @@ void drm_dev_printk(const struct device *dev, const char *level,
vaf.fmt = format;
vaf.va = &args;
if (dev)
dev_printk(level, dev, "[" DRM_NAME ":%ps] %pV",
__builtin_return_address(0), &vaf);
else
printk("%s" "[" DRM_NAME ":%ps] %pV",
level, __builtin_return_address(0), &vaf);
__drm_dev_vprintk(dev, level, __builtin_return_address(0), NULL, &vaf);
va_end(args);
}
@ -312,36 +325,12 @@ void __drm_dev_dbg(struct _ddebug *desc, const struct device *dev,
vaf.fmt = format;
vaf.va = &args;
if (dev)
dev_printk(KERN_DEBUG, dev, "[" DRM_NAME ":%ps] %pV",
__builtin_return_address(0), &vaf);
else
printk(KERN_DEBUG "[" DRM_NAME ":%ps] %pV",
__builtin_return_address(0), &vaf);
__drm_dev_vprintk(dev, KERN_DEBUG, __builtin_return_address(0), NULL, &vaf);
va_end(args);
}
EXPORT_SYMBOL(__drm_dev_dbg);
void ___drm_dbg(struct _ddebug *desc, enum drm_debug_category category, const char *format, ...)
{
struct va_format vaf;
va_list args;
if (!__drm_debug_enabled(category))
return;
va_start(args, format);
vaf.fmt = format;
vaf.va = &args;
printk(KERN_DEBUG "[" DRM_NAME ":%ps] %pV",
__builtin_return_address(0), &vaf);
va_end(args);
}
EXPORT_SYMBOL(___drm_dbg);
void __drm_err(const char *format, ...)
{
struct va_format vaf;
@ -351,8 +340,7 @@ void __drm_err(const char *format, ...)
vaf.fmt = format;
vaf.va = &args;
printk(KERN_ERR "[" DRM_NAME ":%ps] *ERROR* %pV",
__builtin_return_address(0), &vaf);
__drm_dev_vprintk(NULL, KERN_ERR, __builtin_return_address(0), "*ERROR*", &vaf);
va_end(args);
}

View File

@ -453,4 +453,5 @@ int drm_simple_display_pipe_init(struct drm_device *dev,
}
EXPORT_SYMBOL(drm_simple_display_pipe_init);
MODULE_DESCRIPTION("Helpers for drivers for simple display hardware");
MODULE_LICENSE("GPL");

View File

@ -678,4 +678,5 @@ static struct usb_driver gud_usb_driver = {
module_usb_driver(gud_usb_driver);
MODULE_AUTHOR("Noralf Trønnes");
MODULE_DESCRIPTION("GUD USB Display driver");
MODULE_LICENSE("Dual MIT/GPL");

View File

@ -1025,7 +1025,7 @@ void intel_gt_set_wedged(struct intel_gt *gt)
if (GEM_SHOW_DEBUG()) {
struct drm_printer p = drm_dbg_printer(&gt->i915->drm,
DRM_UT_DRIVER, __func__);
DRM_UT_DRIVER, NULL);
struct intel_engine_cs *engine;
enum intel_engine_id id;

View File

@ -286,7 +286,7 @@ out_engine:
if (intel_engine_pm_is_awake(engine)) {
struct drm_printer p = drm_dbg_printer(&engine->i915->drm,
DRM_UT_DRIVER, __func__);
DRM_UT_DRIVER, NULL);
intel_engine_dump(engine, &p,
"%s is still awake:%d after idle-barriers\n",

View File

@ -1985,5 +1985,6 @@ static void __exit kvmgt_exit(void)
module_init(kvmgt_init);
module_exit(kvmgt_exit);
MODULE_DESCRIPTION("Intel mediated pass-through framework for KVM");
MODULE_LICENSE("GPL and additional rights");
MODULE_AUTHOR("Intel Corporation");

View File

@ -1208,22 +1208,11 @@ mtk_hdmi_bridge_mode_valid(struct drm_bridge *bridge,
const struct drm_display_mode *mode)
{
struct mtk_hdmi *hdmi = hdmi_ctx_from_bridge(bridge);
struct drm_bridge *next_bridge;
dev_dbg(hdmi->dev, "xres=%d, yres=%d, refresh=%d, intl=%d clock=%d\n",
mode->hdisplay, mode->vdisplay, drm_mode_vrefresh(mode),
!!(mode->flags & DRM_MODE_FLAG_INTERLACE), mode->clock * 1000);
next_bridge = drm_bridge_get_next_bridge(&hdmi->bridge);
if (next_bridge) {
struct drm_display_mode adjusted_mode;
drm_mode_init(&adjusted_mode, mode);
if (!drm_bridge_chain_mode_fixup(next_bridge, mode,
&adjusted_mode))
return MODE_BAD;
}
if (hdmi->conf) {
if (hdmi->conf->cea_modes_only && !drm_match_cea_mode(mode))
return MODE_BAD;

View File

@ -534,6 +534,7 @@ int meson_plane_create(struct meson_drm *priv)
struct meson_plane *meson_plane;
struct drm_plane *plane;
const uint64_t *format_modifiers = format_modifiers_default;
int ret;
meson_plane = devm_kzalloc(priv->drm->dev, sizeof(*meson_plane),
GFP_KERNEL);
@ -548,12 +549,16 @@ int meson_plane_create(struct meson_drm *priv)
else if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A))
format_modifiers = format_modifiers_afbc_g12a;
drm_universal_plane_init(priv->drm, plane, 0xFF,
&meson_plane_funcs,
supported_drm_formats,
ARRAY_SIZE(supported_drm_formats),
format_modifiers,
DRM_PLANE_TYPE_PRIMARY, "meson_primary_plane");
ret = drm_universal_plane_init(priv->drm, plane, 0xFF,
&meson_plane_funcs,
supported_drm_formats,
ARRAY_SIZE(supported_drm_formats),
format_modifiers,
DRM_PLANE_TYPE_PRIMARY, "meson_primary_plane");
if (ret) {
devm_kfree(priv->drm->dev, meson_plane);
return ret;
}
drm_plane_helper_add(plane, &meson_plane_helper_funcs);

View File

@ -381,4 +381,5 @@ module_spi_driver(y030xx067a_driver);
MODULE_AUTHOR("Paul Cercueil <paul@crapouillou.net>");
MODULE_AUTHOR("Christophe Branchereau <cbranchereau@gmail.com>");
MODULE_DESCRIPTION("Asia Better Technology Ltd. Y030XX067A IPS LCD panel driver");
MODULE_LICENSE("GPL v2");

View File

@ -305,4 +305,5 @@ module_spi_driver(a030jtn01_driver);
MODULE_AUTHOR("Paul Cercueil <paul@crapouillou.net>");
MODULE_AUTHOR("Christophe Branchereau <cbranchereau@gmail.com>");
MODULE_DESCRIPTION("AU Optronics A030JTN01.0 TFT LCD panel driver");
MODULE_LICENSE("GPL");

View File

@ -47,9 +47,6 @@ struct panel_info {
struct gpio_desc *enable_gpio;
struct gpio_desc *pp33_gpio;
struct gpio_desc *pp18_gpio;
bool prepared;
bool enabled;
};
static inline struct panel_info *to_panel_info(struct drm_panel *panel)
@ -86,17 +83,12 @@ static int boe_panel_disable(struct drm_panel *panel)
struct panel_info *pinfo = to_panel_info(panel);
int err;
if (!pinfo->enabled)
return 0;
err = mipi_dsi_dcs_set_display_off(pinfo->link);
if (err < 0) {
dev_err(panel->dev, "failed to set display off: %d\n", err);
return err;
}
pinfo->enabled = false;
return 0;
}
@ -105,9 +97,6 @@ static int boe_panel_unprepare(struct drm_panel *panel)
struct panel_info *pinfo = to_panel_info(panel);
int err;
if (!pinfo->prepared)
return 0;
err = mipi_dsi_dcs_set_display_off(pinfo->link);
if (err < 0)
dev_err(panel->dev, "failed to set display off: %d\n", err);
@ -121,8 +110,6 @@ static int boe_panel_unprepare(struct drm_panel *panel)
disable_gpios(pinfo);
pinfo->prepared = false;
return 0;
}
@ -131,9 +118,6 @@ static int boe_panel_prepare(struct drm_panel *panel)
struct panel_info *pinfo = to_panel_info(panel);
int err;
if (pinfo->prepared)
return 0;
gpiod_set_value(pinfo->pp18_gpio, 1);
/* T1: 5ms - 6ms */
usleep_range(5000, 6000);
@ -180,8 +164,6 @@ static int boe_panel_prepare(struct drm_panel *panel)
/* T7: 20ms - 21ms */
usleep_range(20000, 21000);
pinfo->prepared = true;
return 0;
poweroff:
@ -194,9 +176,6 @@ static int boe_panel_enable(struct drm_panel *panel)
struct panel_info *pinfo = to_panel_info(panel);
int ret;
if (pinfo->enabled)
return 0;
usleep_range(120000, 121000);
ret = mipi_dsi_dcs_set_display_on(pinfo->link);
@ -205,8 +184,6 @@ static int boe_panel_enable(struct drm_panel *panel)
return ret;
}
pinfo->enabled = true;
return 0;
}
@ -917,14 +894,6 @@ static void panel_remove(struct mipi_dsi_device *dsi)
struct panel_info *pinfo = mipi_dsi_get_drvdata(dsi);
int err;
err = boe_panel_disable(&pinfo->base);
if (err < 0)
dev_err(&dsi->dev, "failed to disable panel: %d\n", err);
err = boe_panel_unprepare(&pinfo->base);
if (err < 0)
dev_err(&dsi->dev, "failed to unprepare panel: %d\n", err);
err = mipi_dsi_detach(dsi);
if (err < 0)
dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", err);
@ -932,14 +901,6 @@ static void panel_remove(struct mipi_dsi_device *dsi)
drm_panel_remove(&pinfo->base);
}
static void panel_shutdown(struct mipi_dsi_device *dsi)
{
struct panel_info *pinfo = mipi_dsi_get_drvdata(dsi);
boe_panel_disable(&pinfo->base);
boe_panel_unprepare(&pinfo->base);
}
static struct mipi_dsi_driver panel_driver = {
.driver = {
.name = "panel-boe-himax8279d",
@ -947,7 +908,6 @@ static struct mipi_dsi_driver panel_driver = {
},
.probe = panel_probe,
.remove = panel_remove,
.shutdown = panel_shutdown,
};
module_mipi_dsi_driver(panel_driver);

View File

@ -286,7 +286,7 @@ static int boe_nv110wum_init(struct hx83102 *ctx)
mipi_dsi_dcs_write_seq_multi(&dsi_ctx, HX83102_SETBANK, 0x00);
hx83102_enable_extended_cmds(&dsi_ctx, false);
mipi_dsi_msleep(dsi_ctx, 50);
mipi_dsi_msleep(&dsi_ctx, 50);
return dsi_ctx.accum_err;
};
@ -391,7 +391,7 @@ static int ivo_t109nw41_init(struct hx83102 *ctx)
mipi_dsi_dcs_write_seq_multi(&dsi_ctx, HX83102_SETBANK, 0x00);
hx83102_enable_extended_cmds(&dsi_ctx, false);
mipi_dsi_msleep(dsi_ctx, 60);
mipi_dsi_msleep(&dsi_ctx, 60);
return dsi_ctx.accum_err;
};
@ -538,7 +538,7 @@ static int hx83102_prepare(struct drm_panel *panel)
dsi_ctx.accum_err = ctx->desc->init(ctx);
mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
mipi_dsi_msleep(dsi_ctx, 120);
mipi_dsi_msleep(&dsi_ctx, 120);
mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
if (dsi_ctx.accum_err)
goto poweroff;

View File

@ -306,4 +306,5 @@ module_spi_driver(ej030na_driver);
MODULE_AUTHOR("Paul Cercueil <paul@crapouillou.net>");
MODULE_AUTHOR("Christophe Branchereau <cbranchereau@gmail.com>");
MODULE_DESCRIPTION("Innolux/Chimei EJ030NA TFT LCD panel driver");
MODULE_LICENSE("GPL v2");

View File

@ -37,9 +37,6 @@ struct jdi_panel {
struct gpio_desc *dcdc_en_gpio;
struct backlight_device *backlight;
bool prepared;
bool enabled;
const struct drm_display_mode *mode;
};
@ -176,13 +173,8 @@ static int jdi_panel_disable(struct drm_panel *panel)
{
struct jdi_panel *jdi = to_jdi_panel(panel);
if (!jdi->enabled)
return 0;
backlight_disable(jdi->backlight);
jdi->enabled = false;
return 0;
}
@ -192,9 +184,6 @@ static int jdi_panel_unprepare(struct drm_panel *panel)
struct device *dev = &jdi->dsi->dev;
int ret;
if (!jdi->prepared)
return 0;
jdi_panel_off(jdi);
ret = regulator_bulk_disable(ARRAY_SIZE(jdi->supplies), jdi->supplies);
@ -207,8 +196,6 @@ static int jdi_panel_unprepare(struct drm_panel *panel)
gpiod_set_value(jdi->dcdc_en_gpio, 0);
jdi->prepared = false;
return 0;
}
@ -218,9 +205,6 @@ static int jdi_panel_prepare(struct drm_panel *panel)
struct device *dev = &jdi->dsi->dev;
int ret;
if (jdi->prepared)
return 0;
ret = regulator_bulk_enable(ARRAY_SIZE(jdi->supplies), jdi->supplies);
if (ret < 0) {
dev_err(dev, "regulator enable failed, %d\n", ret);
@ -250,8 +234,6 @@ static int jdi_panel_prepare(struct drm_panel *panel)
goto poweroff;
}
jdi->prepared = true;
return 0;
poweroff:
@ -272,13 +254,8 @@ static int jdi_panel_enable(struct drm_panel *panel)
{
struct jdi_panel *jdi = to_jdi_panel(panel);
if (jdi->enabled)
return 0;
backlight_enable(jdi->backlight);
jdi->enabled = true;
return 0;
}
@ -475,10 +452,6 @@ static void jdi_panel_remove(struct mipi_dsi_device *dsi)
struct jdi_panel *jdi = mipi_dsi_get_drvdata(dsi);
int ret;
ret = jdi_panel_disable(&jdi->base);
if (ret < 0)
dev_err(&dsi->dev, "failed to disable panel: %d\n", ret);
ret = mipi_dsi_detach(dsi);
if (ret < 0)
dev_err(&dsi->dev, "failed to detach from DSI host: %d\n",
@ -487,13 +460,6 @@ static void jdi_panel_remove(struct mipi_dsi_device *dsi)
jdi_panel_del(jdi);
}
static void jdi_panel_shutdown(struct mipi_dsi_device *dsi)
{
struct jdi_panel *jdi = mipi_dsi_get_drvdata(dsi);
jdi_panel_disable(&jdi->base);
}
static struct mipi_dsi_driver jdi_panel_driver = {
.driver = {
.name = "panel-jdi-lt070me05000",
@ -501,7 +467,6 @@ static struct mipi_dsi_driver jdi_panel_driver = {
},
.probe = jdi_panel_probe,
.remove = jdi_panel_remove,
.shutdown = jdi_panel_shutdown,
};
module_mipi_dsi_driver(jdi_panel_driver);

View File

@ -26,9 +26,6 @@ struct khadas_ts050_panel {
struct gpio_desc *reset_gpio;
struct gpio_desc *enable_gpio;
struct khadas_ts050_panel_data *panel_data;
bool prepared;
bool enabled;
};
struct khadas_ts050_panel_cmd {
@ -642,9 +639,6 @@ static int khadas_ts050_panel_prepare(struct drm_panel *panel)
unsigned int i;
int err;
if (khadas_ts050->prepared)
return 0;
gpiod_set_value_cansleep(khadas_ts050->enable_gpio, 0);
err = regulator_enable(khadas_ts050->supply);
@ -708,8 +702,6 @@ static int khadas_ts050_panel_prepare(struct drm_panel *panel)
usleep_range(10000, 11000);
khadas_ts050->prepared = true;
return 0;
poweroff:
@ -726,11 +718,6 @@ static int khadas_ts050_panel_unprepare(struct drm_panel *panel)
struct khadas_ts050_panel *khadas_ts050 = to_khadas_ts050_panel(panel);
int err;
if (!khadas_ts050->prepared)
return 0;
khadas_ts050->prepared = false;
err = mipi_dsi_dcs_enter_sleep_mode(khadas_ts050->link);
if (err < 0)
dev_err(panel->dev, "failed to enter sleep mode: %d\n", err);
@ -747,31 +734,17 @@ static int khadas_ts050_panel_unprepare(struct drm_panel *panel)
return 0;
}
static int khadas_ts050_panel_enable(struct drm_panel *panel)
{
struct khadas_ts050_panel *khadas_ts050 = to_khadas_ts050_panel(panel);
khadas_ts050->enabled = true;
return 0;
}
static int khadas_ts050_panel_disable(struct drm_panel *panel)
{
struct khadas_ts050_panel *khadas_ts050 = to_khadas_ts050_panel(panel);
int err;
if (!khadas_ts050->enabled)
return 0;
err = mipi_dsi_dcs_set_display_off(khadas_ts050->link);
if (err < 0)
dev_err(panel->dev, "failed to set display off: %d\n", err);
usleep_range(10000, 11000);
khadas_ts050->enabled = false;
return 0;
}
@ -815,7 +788,6 @@ static int khadas_ts050_panel_get_modes(struct drm_panel *panel,
static const struct drm_panel_funcs khadas_ts050_panel_funcs = {
.prepare = khadas_ts050_panel_prepare,
.unprepare = khadas_ts050_panel_unprepare,
.enable = khadas_ts050_panel_enable,
.disable = khadas_ts050_panel_disable,
.get_modes = khadas_ts050_panel_get_modes,
};
@ -908,16 +880,6 @@ static void khadas_ts050_panel_remove(struct mipi_dsi_device *dsi)
dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", err);
drm_panel_remove(&khadas_ts050->base);
drm_panel_disable(&khadas_ts050->base);
drm_panel_unprepare(&khadas_ts050->base);
}
static void khadas_ts050_panel_shutdown(struct mipi_dsi_device *dsi)
{
struct khadas_ts050_panel *khadas_ts050 = mipi_dsi_get_drvdata(dsi);
drm_panel_disable(&khadas_ts050->base);
drm_panel_unprepare(&khadas_ts050->base);
}
static struct mipi_dsi_driver khadas_ts050_panel_driver = {
@ -927,7 +889,6 @@ static struct mipi_dsi_driver khadas_ts050_panel_driver = {
},
.probe = khadas_ts050_panel_probe,
.remove = khadas_ts050_panel_remove,
.shutdown = khadas_ts050_panel_shutdown,
};
module_mipi_dsi_driver(khadas_ts050_panel_driver);

View File

@ -944,4 +944,5 @@ module_spi_driver(nv3052c_driver);
MODULE_AUTHOR("Paul Cercueil <paul@crapouillou.net>");
MODULE_AUTHOR("Christophe Branchereau <cbranchereau@gmail.com>");
MODULE_AUTHOR("Ryan Walklin <ryan@testtoast.com");
MODULE_DESCRIPTION("NewVision NV3052C IPS LCD panel driver");
MODULE_LICENSE("GPL v2");

View File

@ -356,4 +356,5 @@ module_spi_driver(nt39016_driver);
MODULE_AUTHOR("Maarten ter Huurne <maarten@treewalker.org>");
MODULE_AUTHOR("Paul Cercueil <paul@crapouillou.net>");
MODULE_DESCRIPTION("Novatek NT39016 TFT LCD panel driver");
MODULE_LICENSE("GPL v2");

View File

@ -64,9 +64,6 @@ struct lcd_olinuxino {
struct i2c_client *client;
struct mutex mutex;
bool prepared;
bool enabled;
struct regulator *supply;
struct gpio_desc *enable_gpio;
@ -78,30 +75,13 @@ static inline struct lcd_olinuxino *to_lcd_olinuxino(struct drm_panel *panel)
return container_of(panel, struct lcd_olinuxino, panel);
}
static int lcd_olinuxino_disable(struct drm_panel *panel)
{
struct lcd_olinuxino *lcd = to_lcd_olinuxino(panel);
if (!lcd->enabled)
return 0;
lcd->enabled = false;
return 0;
}
static int lcd_olinuxino_unprepare(struct drm_panel *panel)
{
struct lcd_olinuxino *lcd = to_lcd_olinuxino(panel);
if (!lcd->prepared)
return 0;
gpiod_set_value_cansleep(lcd->enable_gpio, 0);
regulator_disable(lcd->supply);
lcd->prepared = false;
return 0;
}
@ -110,27 +90,11 @@ static int lcd_olinuxino_prepare(struct drm_panel *panel)
struct lcd_olinuxino *lcd = to_lcd_olinuxino(panel);
int ret;
if (lcd->prepared)
return 0;
ret = regulator_enable(lcd->supply);
if (ret < 0)
return ret;
gpiod_set_value_cansleep(lcd->enable_gpio, 1);
lcd->prepared = true;
return 0;
}
static int lcd_olinuxino_enable(struct drm_panel *panel)
{
struct lcd_olinuxino *lcd = to_lcd_olinuxino(panel);
if (lcd->enabled)
return 0;
lcd->enabled = true;
return 0;
}
@ -195,10 +159,8 @@ static int lcd_olinuxino_get_modes(struct drm_panel *panel,
}
static const struct drm_panel_funcs lcd_olinuxino_funcs = {
.disable = lcd_olinuxino_disable,
.unprepare = lcd_olinuxino_unprepare,
.prepare = lcd_olinuxino_prepare,
.enable = lcd_olinuxino_enable,
.get_modes = lcd_olinuxino_get_modes,
};
@ -264,9 +226,6 @@ static int lcd_olinuxino_probe(struct i2c_client *client)
lcd->eeprom.num_modes = 4;
}
lcd->enabled = false;
lcd->prepared = false;
lcd->supply = devm_regulator_get(dev, "power");
if (IS_ERR(lcd->supply))
return PTR_ERR(lcd->supply);
@ -292,9 +251,6 @@ static void lcd_olinuxino_remove(struct i2c_client *client)
struct lcd_olinuxino *panel = i2c_get_clientdata(client);
drm_panel_remove(&panel->panel);
drm_panel_disable(&panel->panel);
drm_panel_unprepare(&panel->panel);
}
static const struct of_device_id lcd_olinuxino_of_ids[] = {

View File

@ -360,4 +360,5 @@ static struct spi_driver ota5601a_driver = {
module_spi_driver(ota5601a_driver);
MODULE_AUTHOR("Christophe Branchereau <cbranchereau@gmail.com>");
MODULE_DESCRIPTION("Orisetech OTA5601A TFT LCD panel driver");
MODULE_LICENSE("GPL");

Some files were not shown because too many files have changed in this diff Show More