Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion autotools/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ DEF_VER=@DOLLAR_SIGN@(shell cat debian/changelog.in | head -1 | cut -d '(' -f 2
#------------------------------------------------------------------------------


export KBUILD_ONLYXEDIRS := src/drivers/gpu src/include src/scripts src/drivers/platform src/drivers/mtd
export KBUILD_ONLYXEDIRS := src/drivers/gpu src/include src/scripts src/drivers/platform src/drivers/mtd src/drivers/misc
export KBUILD_XEVFIOPCIDIRS := src/drivers/vfio/pci/xe
export KBUILD_AUTOTOOLS := m4 AUTHORS ChangeLog configure.ac COPYING INSTALL Makefile Makefile.am NEWS README.md compile.sh
XE_TAR_CONTENT=$(KBUILD_ONLYXEDIRS) $(KBUILD_AUTOTOOLS) $(KBUILD_XEVFIOPCIDIRS) src/Makefile* src/local-symbols src/MAINTAINERS src/local-symbols-autoconf \
Expand Down
23 changes: 23 additions & 0 deletions autotools/m4/mei_cl_device_match.m4
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
dnl #
dnl # v6.11-d69d80484598
dnl # driver core: have match() callback in struct bus_type take a const *
dnl #
AC_DEFUN([AC_MEI_CL_DEVICE_MATCH_CONST_ARG_NOT_PRESENT], [
AC_KERNEL_DO_BACKGROUND([
AC_KERNEL_TRY_COMPILE([
#include <linux/device.h>
#include <linux/device/bus.h>
],[
int mei_cl_device_match(struct device *dev,
const struct device_driver *drv);
struct bus_type test_bus = {
.match = mei_cl_device_match,
};
(void)test_bus;
],[
],[
AC_DEFINE([BPM_MEI_CL_DEVICE_MATCH_CONST_ARG_NOT_PRESENT], 1,
[const argument not supported in struct bus_type match callback])
])
])
])
19 changes: 19 additions & 0 deletions autotools/m4/pf_driver_remove.m4
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
dnl #
dnl # v6.11-0edb555a65d1
dnl # platform: Make platform_driver::remove() return void
dnl #
AC_DEFUN([AC_PF_DRIVER_REMOVE_RETURN_VOID_NOT_PRESENT], [
AC_KERNEL_DO_BACKGROUND([
AC_KERNEL_TRY_COMPILE([
#include <linux/platform_device.h>
],[
void remove_cb(struct platform_device *pdev);
struct platform_driver pdrv = { .remove = remove_cb };
(void)pdrv;
],[
],[
AC_DEFINE([BPM_PF_DRIVER_REMOVE_RETURN_VOID_NOT_PRESENT], 1,
[platform_device.remove callback returns int])
])
])
])
4 changes: 4 additions & 0 deletions autotools/m4/xe.m4
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ AC_DEFUN([AC_XE_CONFIG], [
AC_DRM_WEDGE_TASK_INFO_NOT_PRESENT
AC_DRM_GEM_GPUVA_MUTEX_NOT_PRESENT
AC_DRM_GEM_GPUVA_LOCK_DEP_MAP_NOT_PRESENT
AC_MEI_CL_DEVICE_MATCH_CONST_ARG_NOT_PRESENT
AC_PF_DRIVER_REMOVE_RETURN_VOID_NOT_PRESENT

dnl # SVM-related probes
AC_SHRINKER_ALLOC_NOT_PRESENT
Expand All @@ -95,6 +97,8 @@ dnl # Macros to check for header availability
AC_KERNEL_CHECK_HEADERS([linux/workqueue_types.h])
dnl # v6.8-d84f31791517 locking/mutex: split out mutex_types.h
AC_KERNEL_CHECK_HEADERS([linux/mutex_types.h])
dnl # v6.12-5f60d5f6bbc1 move asm/unaligned.h to linux/unaligned.h
AC_KERNEL_CHECK_HEADERS([linux/unaligned.h])

AC_KERNEL_WAIT
])
6 changes: 6 additions & 0 deletions backport/Kconfig.sources
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,9 @@ source "$BACKPORT_DIR/drivers/platform/x86/intel/pmt/Kconfig"

#VFIO
source "$BACKPORT_DIR/drivers/vfio/pci/xe/Kconfig"

# MEI
source "$BACKPORT_DIR/drivers/misc/mei/Kconfig"
source "$BACKPORT_DIR/drivers/misc/mei/hdcp/Kconfig"
source "$BACKPORT_DIR/drivers/misc/mei/gsc_proxy/Kconfig"
source "$BACKPORT_DIR/drivers/misc/mei/pxp/Kconfig"
2 changes: 2 additions & 0 deletions backport/Makefile.kernel
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,5 @@ mtd_intel_dg-y := drivers/mtd/devices/mtd_intel_dg.o
obj-$(CPTCFG_MTD_INTEL_DG) += mtd_intel_dg.o
#vfio
obj-$(CPTCFG_XE_VFIO_PCI) += drivers/vfio/pci/xe/
#mei
obj-$(CPTCFG_INTEL_MEI) += drivers/misc/mei/
12 changes: 12 additions & 0 deletions backport/backport-include/linux/unaligned.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#ifndef __BACKPORT_LINUX_UNALIGNED_H
#define __BACKPORT_LINUX_UNALIGNED_H

#include <backport/backport_auto.h>

#ifndef HAVE_LINUX_UNALIGNED_H
#include <asm/unaligned.h>
#else
#include_next <linux/unaligned.h>
#endif

#endif /* __BACKPORT_LINUX_UNALIGNED_H */
12 changes: 12 additions & 0 deletions backport/defconfigs/xe
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,15 @@ CPTCFG_DRM_XE_ENABLE_SCHEDTIMEOUT_LIMIT=y
# VFIO
#
CPTCFG_XE_VFIO_PCI=m

#
# MEI
#
CPTCFG_INTEL_MEI_HDCP=m
CPTCFG_INTEL_MEI_PXP=m
CPTCFG_INTEL_MEI_GSC_PROXY=m
CPTCFG_INTEL_MEI_TXE=m
CPTCFG_INTEL_MEI_GSC=m
CPTCFG_INTEL_MEI_VSC_HW=m
CPTCFG_INTEL_MEI_LB=m
CPTCFG_INTEL_MEI_VSC=m
40 changes: 40 additions & 0 deletions backport/scripts/backport-mkdrmdkmsconf
Original file line number Diff line number Diff line change
Expand Up @@ -85,4 +85,44 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
BUILT_MODULE_NAME[10]="mtd_intel_dg"
BUILT_MODULE_LOCATION[10]="src"
DEST_MODULE_LOCATION[10]="/updates"

BUILT_MODULE_NAME[11]="mei"
BUILT_MODULE_LOCATION[11]="src/drivers/misc/mei"
DEST_MODULE_LOCATION[11]="/updates"

BUILT_MODULE_NAME[12]="mei-me"
BUILT_MODULE_LOCATION[12]="src/drivers/misc/mei"
DEST_MODULE_LOCATION[12]="/updates"

BUILT_MODULE_NAME[13]="mei-gsc"
BUILT_MODULE_LOCATION[13]="src/drivers/misc/mei"
DEST_MODULE_LOCATION[13]="/updates"

BUILT_MODULE_NAME[14]="mei-txe"
BUILT_MODULE_LOCATION[14]="src/drivers/misc/mei"
DEST_MODULE_LOCATION[14]="/updates"

BUILT_MODULE_NAME[15]="mei_hdcp"
BUILT_MODULE_LOCATION[15]="src/drivers/misc/mei/hdcp"
DEST_MODULE_LOCATION[15]="/updates"

BUILT_MODULE_NAME[16]="mei_pxp"
BUILT_MODULE_LOCATION[16]="src/drivers/misc/mei/pxp"
DEST_MODULE_LOCATION[16]="/updates"

BUILT_MODULE_NAME[17]="mei_gsc_proxy"
BUILT_MODULE_LOCATION[17]="src/drivers/misc/mei/gsc_proxy"
DEST_MODULE_LOCATION[17]="/updates"

BUILT_MODULE_NAME[18]="mei_lb"
BUILT_MODULE_LOCATION[18]="src/drivers/misc/mei"
DEST_MODULE_LOCATION[18]="/updates"

BUILT_MODULE_NAME[19]="mei-vsc"
BUILT_MODULE_LOCATION[19]="src/drivers/misc/mei"
DEST_MODULE_LOCATION[19]="/updates"

BUILT_MODULE_NAME[20]="mei-vsc-hw"
BUILT_MODULE_LOCATION[20]="src/drivers/misc/mei"
DEST_MODULE_LOCATION[20]="/updates"
EOF
52 changes: 46 additions & 6 deletions backport/scripts/backport-mkxedebdkms
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,46 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
BUILT_MODULE_LOCATION[11]="src/drivers/vfio/pci/xe"
DEST_MODULE_LOCATION[11]="/updates"

BUILT_MODULE_NAME[12]="mei"
BUILT_MODULE_LOCATION[12]="src/drivers/misc/mei"
DEST_MODULE_LOCATION[12]="/updates"

BUILT_MODULE_NAME[13]="mei-me"
BUILT_MODULE_LOCATION[13]="src/drivers/misc/mei"
DEST_MODULE_LOCATION[13]="/updates"

BUILT_MODULE_NAME[14]="mei-gsc"
BUILT_MODULE_LOCATION[14]="src/drivers/misc/mei"
DEST_MODULE_LOCATION[14]="/updates"

BUILT_MODULE_NAME[15]="mei-txe"
BUILT_MODULE_LOCATION[15]="src/drivers/misc/mei"
DEST_MODULE_LOCATION[15]="/updates"

BUILT_MODULE_NAME[16]="mei_hdcp"
BUILT_MODULE_LOCATION[16]="src/drivers/misc/mei/hdcp"
DEST_MODULE_LOCATION[16]="/updates"

BUILT_MODULE_NAME[17]="mei_pxp"
BUILT_MODULE_LOCATION[17]="src/drivers/misc/mei/pxp"
DEST_MODULE_LOCATION[17]="/updates"

BUILT_MODULE_NAME[18]="mei_gsc_proxy"
BUILT_MODULE_LOCATION[18]="src/drivers/misc/mei/gsc_proxy"
DEST_MODULE_LOCATION[18]="/updates"

BUILT_MODULE_NAME[19]="mei_lb"
BUILT_MODULE_LOCATION[19]="src/drivers/misc/mei"
DEST_MODULE_LOCATION[19]="/updates"

BUILT_MODULE_NAME[20]="mei-vsc"
BUILT_MODULE_LOCATION[20]="src/drivers/misc/mei"
DEST_MODULE_LOCATION[20]="/updates"

BUILT_MODULE_NAME[21]="mei-vsc-hw"
BUILT_MODULE_LOCATION[21]="src/drivers/misc/mei"
DEST_MODULE_LOCATION[21]="/updates"

select_drm_gpuvm() {
if [ -z "\$kernelver" ]; then
echo "false"
Expand All @@ -100,13 +140,13 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
}

if [ "\$(select_drm_gpuvm)" = "true" ]; then
BUILT_MODULE_NAME[11]="drm_gpuvm"
BUILT_MODULE_LOCATION[11]="src"
DEST_MODULE_LOCATION[11]="/updates"
BUILT_MODULE_NAME[22]="drm_gpuvm"
BUILT_MODULE_LOCATION[22]="src"
DEST_MODULE_LOCATION[22]="/updates"

BUILT_MODULE_NAME[12]="drm_gpusvm_helper"
BUILT_MODULE_LOCATION[12]="src"
DEST_MODULE_LOCATION[12]="/updates"
BUILT_MODULE_NAME[23]="drm_gpusvm_helper"
BUILT_MODULE_LOCATION[23]="src"
DEST_MODULE_LOCATION[23]="/updates"
fi

# Find out how many CPU cores can be use if we pass appropriate -j option to make.
Expand Down
8 changes: 8 additions & 0 deletions copy-list
Original file line number Diff line number Diff line change
Expand Up @@ -81,3 +81,11 @@ drivers/mtd/devices/Kconfig
#vfio-pci
drivers/vfio/pci/xe/
include/drm/intel/xe_sriov_vfio.h

#mei
drivers/misc/mei/
include/linux/mei_aux.h
include/linux/mei_cl_bus.h
include/uapi/linux/mei.h
include/drm/intel/i915_hdcp_interface.h

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be part of previous commit

include/drm/intel/i915_pxp_tee_interface.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,32 @@ with kernel's existing namespace handling.

V1: Rebase to 6.17

V2: fix VSC_TP namespace import for mei-vsc

Reference:
cdd30ebb1b9f
module: Convert symbol namespace to string literal

Signed-off-by: Kanaka Raju Nayana <kanaka.raju.nayana@intel.com>
---
drivers/misc/mei/platform-vsc.c | 4 ++++
drivers/platform/x86/intel/pmt/crashlog.c | 4 ++++
drivers/platform/x86/intel/pmt/telemetry.c | 5 +++++
2 files changed, 9 insertions(+)
3 files changed, 13 insertions(+)

diff --git a/drivers/misc/mei/platform-vsc.c b/drivers/misc/mei/platform-vsc.c
index 9787b9c..cfc9646 100644
--- a/drivers/misc/mei/platform-vsc.c
+++ b/drivers/misc/mei/platform-vsc.c
@@ -456,4 +456,8 @@ MODULE_AUTHOR("Wentong Wu <wentong.wu@intel.com>");
MODULE_AUTHOR("Zhifeng Wang <zhifeng.wang@intel.com>");
MODULE_DESCRIPTION("Intel Visual Sensing Controller Interface");
MODULE_LICENSE("GPL");
+#ifdef BPM_MODULE_IMPORT_TO_STRING_LITERAL_PRESENT
+MODULE_IMPORT_NS(VSC_TP);
+#else
MODULE_IMPORT_NS("VSC_TP");
+#endif
diff --git a/drivers/platform/x86/intel/pmt/crashlog.c b/drivers/platform/x86/intel/pmt/crashlog.c
index b0393c9..9a581d3 100644
--- a/drivers/platform/x86/intel/pmt/crashlog.c
Expand All @@ -35,7 +51,7 @@ index b0393c9..9a581d3 100644
MODULE_IMPORT_NS("INTEL_PMT");
+#endif
diff --git a/drivers/platform/x86/intel/pmt/telemetry.c b/drivers/platform/x86/intel/pmt/telemetry.c
index a4dfca6..f70a305 100644
index a52803b..03d2609 100644
--- a/drivers/platform/x86/intel/pmt/telemetry.c
+++ b/drivers/platform/x86/intel/pmt/telemetry.c
@@ -438,5 +438,10 @@ module_exit(pmt_telem_exit);
Expand All @@ -51,4 +67,3 @@ index a4dfca6..f70a305 100644
+#endif
--
2.43.0

Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Kanaka Raju Nayana <kanaka.raju.nayana@intel.com>
Date: Mon, 29 Jun 2026 18:13:32 +0530
Subject: mei: bus: fix match callback const argument compatibility

When compiling mei bus driver for kernel 6.6, the mei_cl_device_match()
function signature is incompatible with newer kernels (6.11+) where
struct bus_type.match requires const struct device_driver *.
This causes a compilation error on kernel 6.11+.

Add conditional compilation to support both older kernels (6.6-6.10)
with non-const parameter and newer kernels (6.11+) with const parameter.

Signed-off-by: Kanaka Raju Nayana <kanaka.raju.nayana@intel.com>
---
drivers/misc/mei/bus.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/misc/mei/bus.c b/drivers/misc/mei/bus.c
index f739dbc..34406ae 100644
--- a/drivers/misc/mei/bus.c
+++ b/drivers/misc/mei/bus.c
@@ -1085,7 +1085,11 @@ struct mei_cl_device_id *mei_cl_device_find(const struct mei_cl_device *cldev,
*
* Return: 1 if matching device was found 0 otherwise
*/
+#ifdef BPM_MEI_CL_DEVICE_MATCH_CONST_ARG_NOT_PRESENT
+static int mei_cl_device_match(struct device *dev, struct device_driver *drv)
+#else
static int mei_cl_device_match(struct device *dev, const struct device_driver *drv)
+#endif
{
const struct mei_cl_device *cldev = to_mei_cl_device(dev);
const struct mei_cl_driver *cldrv = to_mei_cl_driver(drv);
--
2.43.0
Loading