mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 21:21:41 +00:00
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:
commit
91c93e475c
@ -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>;
|
||||
|
@ -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
|
||||
|
@ -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,.*":
|
||||
|
@ -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()
|
||||
-------------------------------------------------
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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");
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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");
|
||||
|
@ -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");
|
||||
|
@ -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.
|
||||
*
|
||||
|
@ -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}
|
||||
|
@ -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
|
||||
|
@ -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
|
@ -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: []
|
||||
|
@ -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 \
|
||||
|
@ -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}"
|
||||
|
||||
|
@ -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}" \
|
||||
|
@ -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
@ -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
|
||||
|
@ -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
|
||||
|
@ -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.*
|
||||
|
@ -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
|
||||
|
9
drivers/gpu/drm/ci/xfails/i915-amly-flakes.txt
Normal file
9
drivers/gpu/drm/ci/xfails/i915-amly-flakes.txt
Normal 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
|
@ -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.*
|
||||
|
@ -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
|
||||
|
6
drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt
Normal file
6
drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt
Normal 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
|
@ -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.*
|
||||
|
@ -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
|
||||
|
6
drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt
Normal file
6
drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt
Normal 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
|
@ -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.*
|
||||
|
@ -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
|
||||
|
7
drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt
Normal file
7
drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt
Normal 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
|
@ -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.*
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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_.*
|
||||
|
@ -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
|
||||
|
@ -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_.*
|
||||
|
@ -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
|
||||
|
6
drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt
Normal file
6
drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt
Normal 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
|
@ -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.*
|
||||
|
@ -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
|
||||
|
11
drivers/gpu/drm/ci/xfails/mediatek-mt8173-flakes.txt
Normal file
11
drivers/gpu/drm/ci/xfails/mediatek-mt8173-flakes.txt
Normal 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
|
16
drivers/gpu/drm/ci/xfails/mediatek-mt8173-skips.txt
Normal file
16
drivers/gpu/drm/ci/xfails/mediatek-mt8173-skips.txt
Normal 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.*
|
@ -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
|
||||
|
18
drivers/gpu/drm/ci/xfails/mediatek-mt8183-skips.txt
Normal file
18
drivers/gpu/drm/ci/xfails/mediatek-mt8183-skips.txt
Normal 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.*
|
@ -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
|
||||
|
18
drivers/gpu/drm/ci/xfails/meson-g12b-skips.txt
Normal file
18
drivers/gpu/drm/ci/xfails/meson-g12b-skips.txt
Normal 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.*
|
@ -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
|
||||
|
15
drivers/gpu/drm/ci/xfails/msm-apq8016-skips.txt
Normal file
15
drivers/gpu/drm/ci/xfails/msm-apq8016-skips.txt
Normal 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.*
|
@ -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
|
||||
|
6
drivers/gpu/drm/ci/xfails/msm-apq8096-flakes.txt
Normal file
6
drivers/gpu/drm/ci/xfails/msm-apq8096-flakes.txt
Normal 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
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
@ -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.*
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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.*
|
||||
|
@ -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
|
||||
|
@ -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.*
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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.*
|
||||
|
@ -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):
|
||||
|
@ -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
|
||||
|
@ -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.*
|
||||
|
@ -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);
|
||||
|
@ -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.
|
||||
|
@ -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) {
|
||||
|
@ -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");
|
||||
}
|
||||
|
||||
|
@ -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");
|
||||
|
@ -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
|
||||
*
|
||||
|
@ -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");
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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");
|
||||
|
@ -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");
|
||||
|
@ -1025,7 +1025,7 @@ void intel_gt_set_wedged(struct intel_gt *gt)
|
||||
|
||||
if (GEM_SHOW_DEBUG()) {
|
||||
struct drm_printer p = drm_dbg_printer(>->i915->drm,
|
||||
DRM_UT_DRIVER, __func__);
|
||||
DRM_UT_DRIVER, NULL);
|
||||
struct intel_engine_cs *engine;
|
||||
enum intel_engine_id id;
|
||||
|
||||
|
@ -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",
|
||||
|
@ -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");
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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");
|
||||
|
@ -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");
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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");
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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");
|
||||
|
@ -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");
|
||||
|
@ -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[] = {
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user