On Thu Oct 1 10:31:34 2026 +0300, Divyamani Tripathi wrote:
> Add the IPU8 PCI ID and probe wiring. IPU8 reuses the IPU7P5 buttress
> register map (unvalidated against IPU8's hardware spec) but needs its
> own default control ratio (0x10), so add dedicated
> ipu8_{isys,psys}_buttress_ctrl structs instead of reusing IPU7's.
> 
> Signed-off-by: Divyamani Tripathi <[email protected]>
> [Sakari Ailus: Drop IPU8 from no_force_probe list.]
> Signed-off-by: Sakari Ailus <[email protected]>

Patch committed.

Thanks,
Sakari Ailus

 drivers/media/pci/intel/ipu6/ipu6.c | 37 +++++++++++++++++++++++++++++++++++++
 include/media/ipu6-pci-table.h      |  2 ++
 2 files changed, 39 insertions(+)

---

diff --git a/drivers/media/pci/intel/ipu6/ipu6.c 
b/drivers/media/pci/intel/ipu6/ipu6.c
index acc492f5cc11..1fc7a6aedd61 100644
--- a/drivers/media/pci/intel/ipu6/ipu6.c
+++ b/drivers/media/pci/intel/ipu6/ipu6.c
@@ -140,6 +140,28 @@ static const struct ipu6_buttress_ctrl 
ipu7_psys_buttress_ctrl = {
        .pwr_sts_off = IPU6_BUTTRESS_PWR_STATE_DN_DONE,
 };
 
+static const struct ipu6_buttress_ctrl ipu8_isys_buttress_ctrl = {
+       .subsys_id = IPU_ISYS,
+       .ratio = IPU8_IS_FREQ_CTL_DEFAULT_RATIO,
+       .qos_floor = 0,
+       .freq_ctl = IPU7_BUTTRESS_REG_IS_WORKPOINT_REQ,
+       .pwr_sts_shift = IPU7_BUTTRESS_PWR_STATE_IS_PWR_SHIFT,
+       .pwr_sts_mask = IPU7_BUTTRESS_PWR_STATE_IS_PWR_MASK,
+       .pwr_sts_on = IPU6_BUTTRESS_PWR_STATE_UP_DONE,
+       .pwr_sts_off = IPU6_BUTTRESS_PWR_STATE_DN_DONE,
+};
+
+static const struct ipu6_buttress_ctrl ipu8_psys_buttress_ctrl = {
+       .subsys_id = IPU_PSYS,
+       .ratio = IPU8_PS_FREQ_CTL_DEFAULT_RATIO,
+       .qos_floor = 0,
+       .freq_ctl = IPU7_BUTTRESS_REG_PS_WORKPOINT_REQ,
+       .pwr_sts_shift = IPU7_BUTTRESS_PWR_STATE_PS_PWR_SHIFT,
+       .pwr_sts_mask = IPU7_BUTTRESS_PWR_STATE_PS_PWR_MASK,
+       .pwr_sts_on = IPU6_BUTTRESS_PWR_STATE_UP_DONE,
+       .pwr_sts_off = IPU6_BUTTRESS_PWR_STATE_DN_DONE,
+};
+
 static const struct ipu6_buttress_registers ipu6_buttress_regs = {
        /* Registers */
        .irq_status     = BUTTRESS_REG_ISR_STATUS,
@@ -677,6 +699,21 @@ static int ipu6_pci_probe(struct pci_dev *pdev, const 
struct pci_device_id *id)
                isys_ctrl = &ipu7_isys_buttress_ctrl;
                psys_ctrl = &ipu7_psys_buttress_ctrl;
                break;
+       case PCI_DEVICE_ID_INTEL_IPU8:
+               /*
+                * IPU8 reuses the IPU7P5 buttress register map,
+                * matching staging ipu7 (no dedicated ipu8_buttress_regs
+                * there either). isys/psys control ratios use IPU8's own
+                * 0x10 default, unlike IPU7/IPU7P5.
+                * TODO: confirm buttress register map against IPU8 hw spec.
+                */
+               isp->hw_ver = IPU_VERSION_8;
+               isp->cpd_fw_name = IPU8_FIRMWARE_NAME;
+               isp->model_name = IPU8_MEDIA_DEV_MODEL_NAME;
+               isp->buttress.regs = &ipu7p5_buttress_regs;
+               isys_ctrl = &ipu8_isys_buttress_ctrl;
+               psys_ctrl = &ipu8_psys_buttress_ctrl;
+               break;
        default:
                return dev_err_probe(dev, -ENODEV,
                                     "Unsupported IPU6 device %x\n",
diff --git a/include/media/ipu6-pci-table.h b/include/media/ipu6-pci-table.h
index cacb8a3170d0..4c7e724ea15e 100644
--- a/include/media/ipu6-pci-table.h
+++ b/include/media/ipu6-pci-table.h
@@ -16,6 +16,7 @@
 #define PCI_DEVICE_ID_INTEL_IPU6EP_MTL         0x7d19
 #define PCI_DEVICE_ID_INTEL_IPU7               0x645d
 #define PCI_DEVICE_ID_INTEL_IPU7P5             0xb05d
+#define PCI_DEVICE_ID_INTEL_IPU8               0xd719
 
 static const struct pci_device_id ipu6_pci_tbl[] = {
        { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IPU6) },
@@ -26,6 +27,7 @@ static const struct pci_device_id ipu6_pci_tbl[] = {
        { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IPU6EP_MTL) },
        { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IPU7) },
        { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IPU7P5) },
+       { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IPU8) },
        { }
 };
 
_______________________________________________
linuxtv-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to