diff options
author | Simon Rettberg | 2022-12-06 16:02:13 +0100 |
---|---|---|
committer | Simon Rettberg | 2022-12-06 16:02:13 +0100 |
commit | aaa8e24b88c3e3e0ddd8458969ca7b578a4d2c83 (patch) | |
tree | 37d737c292f2b4094c8775ce89edcc8d983faaa9 /core/modules/kernel-vanilla | |
parent | [vbox-src] Bump to 7.0.4, remove --disable-libopus (diff) | |
download | mltk-aaa8e24b88c3e3e0ddd8458969ca7b578a4d2c83.tar.gz mltk-aaa8e24b88c3e3e0ddd8458969ca7b578a4d2c83.tar.xz mltk-aaa8e24b88c3e3e0ddd8458969ca7b578a4d2c83.zip |
[kernel-vanilla] DP++ patch is now upstream
Diffstat (limited to 'core/modules/kernel-vanilla')
-rw-r--r-- | core/modules/kernel-vanilla/module.conf | 2 | ||||
-rw-r--r-- | core/modules/kernel-vanilla/patches/dp-detect-5.15.patch | 99 |
2 files changed, 1 insertions, 100 deletions
diff --git a/core/modules/kernel-vanilla/module.conf b/core/modules/kernel-vanilla/module.conf index 9519b4ed..35ad746a 100644 --- a/core/modules/kernel-vanilla/module.conf +++ b/core/modules/kernel-vanilla/module.conf @@ -5,5 +5,5 @@ REQUIRED_DIRECTORIES=" /lib/firmware/intel /usr/bin " -REQUIRED_KERNEL="${CONFIG_KERNEL_VERSION:-"5.10.75"}" +REQUIRED_KERNEL="${CONFIG_KERNEL_VERSION:-"5.15.81"}" REQUIRED_GIT="git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git" diff --git a/core/modules/kernel-vanilla/patches/dp-detect-5.15.patch b/core/modules/kernel-vanilla/patches/dp-detect-5.15.patch deleted file mode 100644 index 535e786f..00000000 --- a/core/modules/kernel-vanilla/patches/dp-detect-5.15.patch +++ /dev/null @@ -1,99 +0,0 @@ -diff --git a/drivers/gpu/drm/drm_dp_dual_mode_helper.c b/drivers/gpu/drm/drm_dp_dual_mode_helper.c -index 3ea53bb67d3b..bd61e20770a5 100644 ---- a/drivers/gpu/drm/drm_dp_dual_mode_helper.c -+++ b/drivers/gpu/drm/drm_dp_dual_mode_helper.c -@@ -63,23 +63,45 @@ - ssize_t drm_dp_dual_mode_read(struct i2c_adapter *adapter, - u8 offset, void *buffer, size_t size) - { -+ u8 zero = 0; -+ char *tmpbuf = NULL; -+ /* -+ * As sub-addressing is not supported by all adaptors, -+ * always explicitly read from the start and discard -+ * any bytes that come before the requested offset. -+ * This way, no matter whether the adaptor supports it -+ * or not, we'll end up reading the proper data. -+ */ - struct i2c_msg msgs[] = { - { - .addr = DP_DUAL_MODE_SLAVE_ADDRESS, - .flags = 0, - .len = 1, -- .buf = &offset, -+ .buf = &zero, - }, - { - .addr = DP_DUAL_MODE_SLAVE_ADDRESS, - .flags = I2C_M_RD, -- .len = size, -+ .len = size + offset, - .buf = buffer, - }, - }; - int ret; - -+ if (offset) { -+ tmpbuf = kmalloc(size + offset, GFP_KERNEL); -+ if (!tmpbuf) -+ return -ENOMEM; -+ -+ msgs[1].buf = tmpbuf; -+ } -+ - ret = i2c_transfer(adapter, msgs, ARRAY_SIZE(msgs)); -+ if (tmpbuf) -+ memcpy(buffer, tmpbuf + offset, size); -+ -+ kfree(tmpbuf); -+ - if (ret < 0) - return ret; - if (ret != ARRAY_SIZE(msgs)) -@@ -208,18 +230,6 @@ enum drm_dp_dual_mode_type drm_dp_dual_mode_detect(const struct drm_device *dev, - if (ret) - return DRM_DP_DUAL_MODE_UNKNOWN; - -- /* -- * Sigh. Some (maybe all?) type 1 adaptors are broken and ack -- * the offset but ignore it, and instead they just always return -- * data from the start of the HDMI ID buffer. So for a broken -- * type 1 HDMI adaptor a single byte read will always give us -- * 0x44, and for a type 1 DVI adaptor it should give 0x00 -- * (assuming it implements any registers). Fortunately neither -- * of those values will match the type 2 signature of the -- * DP_DUAL_MODE_ADAPTOR_ID register so we can proceed with -- * the type 2 adaptor detection safely even in the presence -- * of broken type 1 adaptors. -- */ - ret = drm_dp_dual_mode_read(adapter, DP_DUAL_MODE_ADAPTOR_ID, - &adaptor_id, sizeof(adaptor_id)); - drm_dbg_kms(dev, "DP dual mode adaptor ID: %02x (err %zd)\n", adaptor_id, ret); -@@ -233,11 +243,10 @@ enum drm_dp_dual_mode_type drm_dp_dual_mode_detect(const struct drm_device *dev, - return DRM_DP_DUAL_MODE_TYPE2_DVI; - } - /* -- * If neither a proper type 1 ID nor a broken type 1 adaptor -- * as described above, assume type 1, but let the user know -- * that we may have misdetected the type. -+ * If not a proper type 1 ID, still assume type 1, but let -+ * the user know that we may have misdetected the type. - */ -- if (!is_type1_adaptor(adaptor_id) && adaptor_id != hdmi_id[0]) -+ if (!is_type1_adaptor(adaptor_id)) - drm_err(dev, "Unexpected DP dual mode adaptor ID %02x\n", adaptor_id); - - } -@@ -343,10 +352,8 @@ EXPORT_SYMBOL(drm_dp_dual_mode_get_tmds_output); - * @enable: enable (as opposed to disable) the TMDS output buffers - * - * Set the state of the TMDS output buffers in the adaptor. For -- * type2 this is set via the DP_DUAL_MODE_TMDS_OEN register. As -- * some type 1 adaptors have problems with registers (see comments -- * in drm_dp_dual_mode_detect()) we avoid touching the register, -- * making this function a no-op on type 1 adaptors. -+ * type2 this is set via the DP_DUAL_MODE_TMDS_OEN register. -+ * Type1 adaptors do not support any register writes. - * - * Returns: - * 0 on success, negative error code on failure |