Skip to content
Closed
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
Original file line number Diff line number Diff line change
@@ -1,28 +1,27 @@
From 87b28eaee6e463bc40abe782a3fe81b62a57e3c0 Mon Sep 17 00:00:00 2001
From: linya14x <linx.yang@intel.com>
Date: Fri, 14 Nov 2025 18:41:08 +0800
Subject: [PATCH 4/7] staging: ipu7: Update IPU7 firmware ABI version to
1.2.1.20251215_224531
From 26c7c65e9ebb17fd1458fbc28467051f5eaa6570 Mon Sep 17 00:00:00 2001
From: "Mishra, Saras" <saras.mishra@intel.com>
Date: Mon, 21 Sep 2026 11:19:47 +0300
Subject: [PATCH] staging: ipu7: Update IPU7 firmware ABI version to 1.2
(recreated for ToT)

Signed-off-by: Hao Yao <hao.yao@intel.com>
---
drivers/staging/media/ipu7/abi/ipu7_fw_boot_abi.h | 1 +
drivers/staging/media/ipu7/abi/ipu7_fw_isys_abi.h | 11 +++++++----
drivers/staging/media/ipu7/abi/ipu7_fw_msg_abi.h | 2 +-
3 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/media/ipu7/abi/ipu7_fw_boot_abi.h b/drivers/staging/media/ipu7/abi/ipu7_fw_boot_abi.h
index a1519c4fe661..4ce304f54e4b 100644
index 56b90aab83ea..82e14e59100b 100644
--- a/drivers/staging/media/ipu7/abi/ipu7_fw_boot_abi.h
+++ b/drivers/staging/media/ipu7/abi/ipu7_fw_boot_abi.h
@@ -153,6 +153,7 @@ enum ia_gofo_boot_state {
IA_GOFO_FW_BOOT_STATE_CRIT_MPU_CONFIG_FAILURE = 0xdead1013U,
IA_GOFO_FW_BOOT_STATE_CRIT_SHARED_BUFFER_FAILURE = 0xdead1014U,
IA_GOFO_FW_BOOT_STATE_CRIT_CMEM_FAILURE = 0xdead1015U,
+ IA_GOFO_FW_BOOT_STATE_CRIT_SYSCOM_CONTEXT_FAILURE = 0xDEAD1016U,
IA_GOFO_FW_BOOT_STATE_SHUTDOWN_CMD = 0x57a7f001U,
IA_GOFO_FW_BOOT_STATE_SHUTDOWN_START = 0x57a7e200U,
IA_GOFO_FW_BOOT_STATE_INACTIVE = 0x57a7e300U,
IA_GOFO_FW_BOOT_STATE_CRIT_MPU_CONFIG_FAILURE = 0xdead1013,
IA_GOFO_FW_BOOT_STATE_CRIT_SHARED_BUFFER_FAILURE = 0xdead1014,
IA_GOFO_FW_BOOT_STATE_CRIT_CMEM_FAILURE = 0xdead1015,
+ IA_GOFO_FW_BOOT_STATE_CRIT_SYSCOM_CONTEXT_FAILURE = 0xdead1016,
IA_GOFO_FW_BOOT_STATE_SHUTDOWN_CMD = 0x57a7f001,
IA_GOFO_FW_BOOT_STATE_SHUTDOWN_START = 0x57a7e200,
IA_GOFO_FW_BOOT_STATE_INACTIVE = 0x57a7e300,
diff --git a/drivers/staging/media/ipu7/abi/ipu7_fw_isys_abi.h b/drivers/staging/media/ipu7/abi/ipu7_fw_isys_abi.h
index c42d0b7a2627..7f622bfe9af6 100644
--- a/drivers/staging/media/ipu7/abi/ipu7_fw_isys_abi.h
Expand All @@ -34,7 +33,7 @@ index c42d0b7a2627..7f622bfe9af6 100644
- IPU_INSYS_RESP_TYPE_PWM_IRQ = 11,
N_IPU_INSYS_RESP_TYPE
};

@@ -201,7 +200,8 @@ enum ipu7_insys_mipi_dt_rename_mode {
enum ipu7_insys_output_link_dest {
IPU_INSYS_OUTPUT_LINK_DEST_MEM = 0,
Expand All @@ -43,17 +42,17 @@ index c42d0b7a2627..7f622bfe9af6 100644
+ IPU_INSYS_OUTPUT_LINK_DEST_IPU_EXTERNAL = 2,
+ N_IPU_INSYS_OUTPUT_LINK_DEST
};

enum ipu7_insys_dpcm_type {
@@ -220,9 +220,12 @@ enum ipu7_insys_dpcm_predictor {

enum ipu7_insys_send_queue_token_flag {
IPU_INSYS_SEND_QUEUE_TOKEN_FLAG_NONE = 0,
- IPU_INSYS_SEND_QUEUE_TOKEN_FLAG_FLUSH_FORCE = 1
+ IPU_INSYS_SEND_QUEUE_TOKEN_FLAG_FLUSH_FORCE = 1,
+ N_IPU_INSYS_SEND_QUEUE_TOKEN_FLAG
};

+#define IPU_INSYS_MIPI_FRAME_NUMBER_DONT_CARE UINT16_MAX
+
#pragma pack(push, 1)
Expand All @@ -66,10 +65,10 @@ index c42d0b7a2627..7f622bfe9af6 100644
- u8 pad[2];
+ u16 mipi_fn;
};

struct ipu7_insys_resp_queue_token {
diff --git a/drivers/staging/media/ipu7/abi/ipu7_fw_msg_abi.h b/drivers/staging/media/ipu7/abi/ipu7_fw_msg_abi.h
index 8a78dd0936df..1319f0eb6319 100644
index 311248385993..9d96ba675cf0 100644
--- a/drivers/staging/media/ipu7/abi/ipu7_fw_msg_abi.h
+++ b/drivers/staging/media/ipu7/abi/ipu7_fw_msg_abi.h
@@ -217,7 +217,7 @@ struct ipu7_msg_task {
Expand All @@ -81,6 +80,6 @@ index 8a78dd0936df..1319f0eb6319 100644
ipu7_msg_teb_t payload_reuse_bm;
ia_gofo_addr_t term_buffers[IPU_MSG_MAX_NODE_TERMS];
};
--
--
2.43.0

15 changes: 7 additions & 8 deletions patch/v7.0.0/0005-staging-ipu7-Support-IPU8-PCI-ID.patch
Original file line number Diff line number Diff line change
@@ -1,25 +1,24 @@
From 53ff925f22ce2a546f9cfc71e66434958caaeeda Mon Sep 17 00:00:00 2001
From: linya14x <linx.yang@intel.com>
Date: Fri, 24 Oct 2025 15:01:40 +0800
Subject: [PATCH 5/7] staging: ipu7: Support IPU8 PCI ID
From a9293142696d2742c8d69cd58d0f44b5c89a10ee Mon Sep 17 00:00:00 2001
From: "Mishra, Saras" <saras.mishra@intel.com>
Date: Mon, 21 Sep 2026 11:19:48 +0300
Subject: [PATCH] staging: ipu7: Support IPU8 PCI ID

Signed-off-by: Bingbu Cao <bingbu.cao@intel.com>
---
drivers/staging/media/ipu7/ipu7.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/staging/media/ipu7/ipu7.c b/drivers/staging/media/ipu7/ipu7.c
index a4b0264cc5c7..630a87b83b4b 100644
index 310e3f24e571..bf20e74ff6e9 100644
--- a/drivers/staging/media/ipu7/ipu7.c
+++ b/drivers/staging/media/ipu7/ipu7.c
@@ -2807,6 +2807,7 @@ static const struct dev_pm_ops ipu7_pm_ops = {
@@ -2745,6 +2745,7 @@ static const struct dev_pm_ops ipu7_pm_ops = {
static const struct pci_device_id ipu7_pci_tbl[] = {
{PCI_DEVICE(PCI_VENDOR_ID_INTEL, IPU7_PCI_ID)},
{PCI_DEVICE(PCI_VENDOR_ID_INTEL, IPU7P5_PCI_ID)},
+ {PCI_DEVICE(PCI_VENDOR_ID_INTEL, IPU8_PCI_ID)},
{0,}
};
MODULE_DEVICE_TABLE(pci, ipu7_pci_tbl);
--
--
2.43.0

81 changes: 39 additions & 42 deletions patch/v7.0.0/0006-staging-ipu7-Add-IPU8-ABI-version-1.0.12.patch
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
From 998cf5f5f0e4ea225fe0c452f564c242c2f87c14 Mon Sep 17 00:00:00 2001
From: linya14x <linx.yang@intel.com>
Date: Fri, 24 Oct 2025 12:09:58 +0800
Subject: [PATCH 6/7] staging: ipu7: Add IPU8 ABI version 1.0.12
From 0f8b181239a86b9a83b09e85115203e219c8ab31 Mon Sep 17 00:00:00 2001
From: "Mishra, Saras" <saras.mishra@intel.com>
Date: Mon, 21 Sep 2026 11:22:07 +0300
Subject: [PATCH] staging: ipu7: Add IPU8 ABI version 1.0.12 (recreated for
ToT)

IPU8 firmware ABI should be enabled by
-DIPU8_INSYS_NEW_ABI

Signed-off-by: Hao Yao <hao.yao@intel.com>
---
.../staging/media/ipu7/abi/ipu7_fw_boot_abi.h | 15 +++--
.../staging/media/ipu7/abi/ipu7_fw_isys_abi.h | 60 +++++++++++++++++++
Expand All @@ -16,34 +13,34 @@ Signed-off-by: Hao Yao <hao.yao@intel.com>
5 files changed, 122 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/media/ipu7/abi/ipu7_fw_boot_abi.h b/drivers/staging/media/ipu7/abi/ipu7_fw_boot_abi.h
index 4ce304f54e4b..539192cdd0e7 100644
index 82e14e59100b..0b2b18ec8ab4 100644
--- a/drivers/staging/media/ipu7/abi/ipu7_fw_boot_abi.h
+++ b/drivers/staging/media/ipu7/abi/ipu7_fw_boot_abi.h
@@ -113,14 +113,19 @@ struct ia_gofo_secondary_boot_config {
#define IA_GOFO_DOUBLE_EXCEPTION_ERR 0xdead0806U
#define IA_GOFO_BIST_DMEM_FAULT_DETECTION_ERR 0xdead1000U
#define IA_GOFO_BIST_DATA_INTEGRITY_FAILURE 0xdead1010U
+#define IA_GOFO_BOOT_STATE_UNINIT 0x57a7e000U
+#define IA_GOFO_BOOT_STATE_STARTING_0 0x57a7d000U
+#define IA_GOFO_BOOT_STATE_CACHE_INIT_DONE 0x57a7d010U
+#define IA_GOFO_BOOT_STATE_MEM_INIT_DONE 0x57a7d020U
+#define IA_GOFO_BOOT_STATE_STACK_INIT_DONE 0x57a7d030U

#define IA_GOFO_DOUBLE_EXCEPTION_ERR 0xdead0806
#define IA_GOFO_BIST_DMEM_FAULT_DETECTION_ERR 0xdead1000
#define IA_GOFO_BIST_DATA_INTEGRITY_FAILURE 0xdead1010
+#define IA_GOFO_BOOT_STATE_UNINIT 0x57a7e000
+#define IA_GOFO_BOOT_STATE_STARTING_0 0x57a7d000
+#define IA_GOFO_BOOT_STATE_CACHE_INIT_DONE 0x57a7d010
+#define IA_GOFO_BOOT_STATE_MEM_INIT_DONE 0x57a7d020
+#define IA_GOFO_BOOT_STATE_STACK_INIT_DONE 0x57a7d030
enum ia_gofo_boot_state {
IA_GOFO_FW_BOOT_STATE_SECONDARY_BOOT_CONFIG_READY = 0x57a7b000U,
- IA_GOFO_FW_BOOT_STATE_UNINIT = 0x57a7e000U,
- IA_GOFO_FW_BOOT_STATE_STARTING_0 = 0x57a7d000U,
- IA_GOFO_FW_BOOT_STATE_CACHE_INIT_DONE = 0x57a7d010U,
- IA_GOFO_FW_BOOT_STATE_MEM_INIT_DONE = 0x57a7d020U,
- IA_GOFO_FW_BOOT_STATE_STACK_INIT_DONE = 0x57a7d030U,
IA_GOFO_FW_BOOT_STATE_SECONDARY_BOOT_CONFIG_READY = 0x57a7b000,
- IA_GOFO_FW_BOOT_STATE_UNINIT = 0x57a7e000,
- IA_GOFO_FW_BOOT_STATE_STARTING_0 = 0x57a7d000,
- IA_GOFO_FW_BOOT_STATE_CACHE_INIT_DONE = 0x57a7d010,
- IA_GOFO_FW_BOOT_STATE_MEM_INIT_DONE = 0x57a7d020,
- IA_GOFO_FW_BOOT_STATE_STACK_INIT_DONE = 0x57a7d030,
+ IA_GOFO_FW_BOOT_STATE_UNINIT = IA_GOFO_BOOT_STATE_UNINIT,
+ IA_GOFO_FW_BOOT_STATE_STARTING_0 = IA_GOFO_BOOT_STATE_STARTING_0,
+ IA_GOFO_FW_BOOT_STATE_CACHE_INIT_DONE = IA_GOFO_BOOT_STATE_CACHE_INIT_DONE,
+ IA_GOFO_FW_BOOT_STATE_MEM_INIT_DONE = IA_GOFO_BOOT_STATE_MEM_INIT_DONE,
+ IA_GOFO_FW_BOOT_STATE_STACK_INIT_DONE = IA_GOFO_BOOT_STATE_STACK_INIT_DONE,
IA_GOFO_FW_BOOT_STATE_EARLY_BOOT_DONE = 0x57a7d100U,
IA_GOFO_FW_BOOT_STATE_BOOT_CONFIG_START = 0x57a7d200U,
IA_GOFO_FW_BOOT_STATE_QUEUE_INIT_DONE = 0x57a7d300U,
IA_GOFO_FW_BOOT_STATE_EARLY_BOOT_DONE = 0x57a7d100,
IA_GOFO_FW_BOOT_STATE_BOOT_CONFIG_START = 0x57a7d200,
IA_GOFO_FW_BOOT_STATE_QUEUE_INIT_DONE = 0x57a7d300,
diff --git a/drivers/staging/media/ipu7/abi/ipu7_fw_isys_abi.h b/drivers/staging/media/ipu7/abi/ipu7_fw_isys_abi.h
index 7f622bfe9af6..f32674f081d2 100644
--- a/drivers/staging/media/ipu7/abi/ipu7_fw_isys_abi.h
Expand All @@ -57,12 +54,12 @@ index 7f622bfe9af6..f32674f081d2 100644
+ u16 column_right;
+#endif
};

struct ipu7_insys_output_dpcm {
@@ -263,16 +267,55 @@ struct ipu7_insys_output_dpcm {
u8 pad;
};

+#ifdef IPU8_INSYS_NEW_ABI
+enum ipu_insys_cfa_dim {
+ IPU_INSYS_CFA_DIM_2x2 = 0,
Expand Down Expand Up @@ -113,11 +110,11 @@ index 7f622bfe9af6..f32674f081d2 100644
u8 pad[3];
+#endif
};

struct ipu7_insys_input_pin {
@@ -297,7 +340,11 @@ struct ipu7_insys_stream_cfg {
};

struct ipu7_insys_buffset {
+#ifdef IPU8_INSYS_NEW_ABI
+ struct ipu7_insys_capture_output_pin_cfg output_pins[4];
Expand All @@ -144,7 +141,7 @@ index 7f622bfe9af6..f32674f081d2 100644
u16 mipi_fn;
+#endif
};

struct ipu7_insys_resp_queue_token {
@@ -372,6 +424,14 @@ enum insys_msg_err_stream {
INSYS_MSG_ERR_STREAM_INSUFFICIENT_RESOURCES_OUTPUT = 36,
Expand All @@ -160,7 +157,7 @@ index 7f622bfe9af6..f32674f081d2 100644
+#endif
INSYS_MSG_ERR_STREAM_N
};

diff --git a/drivers/staging/media/ipu7/ipu7-fw-isys.c b/drivers/staging/media/ipu7/ipu7-fw-isys.c
index e4b9c364572b..c98326bd9fee 100644
--- a/drivers/staging/media/ipu7/ipu7-fw-isys.c
Expand All @@ -175,7 +172,7 @@ index e4b9c364572b..c98326bd9fee 100644
+ dev_dbg(dev, "\t.crop.colunm_right = %d\n",
+ cfg->output_pins[i].crop.column_right);
+#endif

dev_dbg(dev, "\t.dpcm_enable = %d\n",
cfg->output_pins[i].dpcm.enable);
@@ -275,6 +281,20 @@ void ipu7_fw_isys_dump_stream_cfg(struct device *dev,
Expand All @@ -200,7 +197,7 @@ index e4b9c364572b..c98326bd9fee 100644
dev_dbg(dev, "---------------------------\n");
}
@@ -293,9 +313,18 @@ void ipu7_fw_isys_dump_frame_buff_set(struct device *dev,

for (i = 0; i < outputs; i++) {
dev_dbg(dev, ".output_pin[%d]:\n", i);
+#ifndef IPU8_INSYS_NEW_ABI
Expand All @@ -225,7 +222,7 @@ index 434d9d9c7158..eed46243df43 100644
@@ -248,8 +248,14 @@ static void ipu7_isys_buf_to_fw_frame_buf_pin(struct vb2_buffer *vb,
struct ipu7_isys_video_buffer *ivb =
vb2_buffer_to_ipu7_isys_video_buffer(vvb);

+#ifndef IPU8_INSYS_NEW_ABI
set->output_pins[aq->fw_output].addr = ivb->dma_addr;
set->output_pins[aq->fw_output].user_token = (uintptr_t)set;
Expand All @@ -235,24 +232,24 @@ index 434d9d9c7158..eed46243df43 100644
+ set->output_pins[aq->fw_output].upipe_capture_cfg = 0;
+#endif
}

/*
diff --git a/drivers/staging/media/ipu7/ipu7-isys-video.c b/drivers/staging/media/ipu7/ipu7-isys-video.c
index 1a7c8a91fffb..09a60170357f 100644
index 8c6730833f24..7d76d28871d6 100644
--- a/drivers/staging/media/ipu7/ipu7-isys-video.c
+++ b/drivers/staging/media/ipu7/ipu7-isys-video.c
@@ -418,10 +418,27 @@ static int ipu7_isys_fw_pin_cfg(struct ipu7_isys_video *av,
@@ -413,10 +413,27 @@ static int ipu7_isys_fw_pin_cfg(struct ipu7_isys_video *av,
/* output pin crop */
output_pin->crop.line_top = 0;
output_pin->crop.line_bottom = 0;
+#ifdef IPU8_INSYS_NEW_ABI
+ output_pin->crop.column_left = 0;
+ output_pin->crop.column_right = 0;
+#endif

/* output de-compression */
output_pin->dpcm.enable = 0;

+#ifdef IPU8_INSYS_NEW_ABI
+ /* upipe_cfg */
+ output_pin->upipe_pin_cfg.opaque_pin_cfg = 0;
Expand All @@ -269,6 +266,6 @@ index 1a7c8a91fffb..09a60170357f 100644
/* frame format type */
pfmt = ipu7_isys_get_isys_format(av->pix_fmt.pixelformat);
output_pin->ft = (u16)pfmt->css_pixelformat;
--
--
2.43.0

Loading