Spaghetti (with meatballs) hacking and reverse engineering to bring IPU4 support to modern Linux kernel.
Find a file
2025-08-17 22:20:47 -07:00
drivers/media round one 2025-08-17 22:17:24 -07:00
include Initial Joule ipu4 driver repository 2017-02-10 10:48:10 +02:00
scripts Initial Joule ipu4 driver repository 2017-02-10 10:48:10 +02:00
build-modern.sh round one 2025-08-17 22:17:24 -07:00
build.sh round one 2025-08-17 22:17:24 -07:00
clean-source-test.sh round one 2025-08-17 22:17:24 -07:00
COPYING Initial Joule ipu4 driver repository 2017-02-10 10:48:10 +02:00
final-patch-test.sh round one 2025-08-17 22:17:24 -07:00
final-test-6.6.sh round one 2025-08-17 22:17:24 -07:00
fix-patch.sh round one 2025-08-17 22:17:24 -07:00
generate-kernel-patch.sh round one 2025-08-17 22:17:24 -07:00
install-patch.sh round one 2025-08-17 22:17:24 -07:00
intel-ipu4-drivers-kernel-6.6.patch round one 2025-08-17 22:17:24 -07:00
Kconfig Initial Joule ipu4 driver repository 2017-02-10 10:48:10 +02:00
KERNEL_6.6_STATUS.md round one 2025-08-17 22:17:24 -07:00
KERNEL_6.6_TEST_RESULTS.md round one 2025-08-17 22:17:24 -07:00
KERNEL_COMPATIBILITY.md round one 2025-08-17 22:17:24 -07:00
KERNEL_PATCH_SUMMARY.md round one 2025-08-17 22:17:24 -07:00
Makefile Initial Joule ipu4 driver repository 2017-02-10 10:48:10 +02:00
MODERN_KERNEL_VERSION.md round one 2025-08-17 22:17:24 -07:00
PATCH_TEST_SUCCESS.md round one 2025-08-17 22:17:24 -07:00
README-INTEL-IPU4-PATCH.md round one 2025-08-17 22:17:24 -07:00
README.md replaced original upstream README. 2025-08-17 22:20:47 -07:00
regenerate-patch.sh round one 2025-08-17 22:17:24 -07:00
test-compile-6.6.sh round one 2025-08-17 22:17:24 -07:00
test-kernel-6.6.sh round one 2025-08-17 22:17:24 -07:00
test-patch-application.sh round one 2025-08-17 22:17:24 -07:00
test-simple-6.6.sh round one 2025-08-17 22:17:24 -07:00

Intel IPU4 Drivers Kernel Patch

Overview

This patch adds Intel IPU4 camera drivers to Linux kernel 6.6+. The drivers have been modernized to use current kernel APIs and integrate directly with the kernel build system.

What's Included

  • Core IPU4 Driver: Main hardware interface
  • ISYS Driver: Input system for camera data capture
  • PSYS Driver: Processing system for image processing
  • CRL Module: Camera sensor framework
  • DW9714 Driver: VCM actuator support
  • ACPI Support: Platform integration

Target Kernels

  • Linux 6.6.0 and newer
  • Tested on: 6.6.1
  • Architecture: x86_64

Installation

1. Apply the Patch

cd /path/to/kernel-source
patch -p1 < intel-ipu4-drivers-kernel-6.6.patch

2. Configure Kernel

make menuconfig

Navigate to:

Device Drivers →
  Multimedia support →
    Media PCI Adapters →
      [M] Intel IPU4 camera drivers
    Media I2C Adapters →  
      [M] CRL module sensor framework
      [M] DW9714 VCM driver
    Media platform devices →
      [M] Intel IPU4 ACPI support

3. Build Kernel

make -j$(nproc)
make modules_install
make install

4. Load Modules

modprobe intel-ipu4
modprobe intel-ipu4-isys
modprobe intel-ipu4-psys
modprobe crlmodule
modprobe dw9714

Verification

# Check modules loaded
lsmod | grep -E "(intel-ipu4|crlmodule|dw9714)"

# Check device nodes
ls -la /dev/intel-ipu4*

# Check kernel messages
dmesg | grep -i ipu4

Configuration Options

  • CONFIG_VIDEO_INTEL_IPU4: Main IPU4 driver
  • CONFIG_VIDEO_INTEL_IPU4_DEBUG: Debug interface
  • CONFIG_VIDEO_INTEL_IPU4_ACPI: ACPI support
  • CONFIG_VIDEO_CRLMODULE: Sensor framework
  • CONFIG_VIDEO_DW9714: VCM actuator

Hardware Support

This driver supports Intel platforms with IPU4 hardware, including:

  • Intel Broxton platforms
  • Various Intel camera-enabled systems

Modern Kernel Features Used

  • timer_setup() API (replaces init_timer)
  • Modern get_user_pages() API
  • access_ok() without type parameter
  • media_entity_pads_init() API
  • class_create() without owner parameter
  • Direct timestamp assignment for V4L2 buffers

Troubleshooting

  1. Module not loading: Check dmesg for error messages
  2. Device not found: Verify hardware compatibility
  3. Permission denied: Check udev rules for device nodes
  4. Build errors: Ensure all dependencies are enabled

Support

This is a modernized version of the Intel IPU4 drivers. For hardware-specific issues, consult your platform documentation.