]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
media: intel/ipu6: remove buttress ish structure
authorStanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
Tue, 5 Nov 2024 07:27:50 +0000 (08:27 +0100)
committerHans Verkuil <hverkuil@xs4all.nl>
Thu, 7 Nov 2024 08:05:58 +0000 (09:05 +0100)
The buttress ipc ish structure is not effectively used on IPU6 - data
is nullified on init. Remove the ish structure and handing of related
interrupts to cleanup the code.

Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
drivers/media/pci/intel/ipu6/ipu6-buttress.c
drivers/media/pci/intel/ipu6/ipu6-buttress.h
drivers/media/pci/intel/ipu6/ipu6-platform-buttress-regs.h

index 2e89af845166bf7917a69dece27547e75ceb1cad..277e101da137ec1fefa1ec58c77bb3b8d71b151e 100644 (file)
@@ -215,20 +215,17 @@ static void ipu6_buttress_ipc_recv(struct ipu6_device *isp,
 }
 
 static int ipu6_buttress_ipc_send_bulk(struct ipu6_device *isp,
-                                      enum ipu6_buttress_ipc_domain ipc_domain,
                                       struct ipu6_ipc_buttress_bulk_msg *msgs,
                                       u32 size)
 {
        unsigned long tx_timeout_jiffies, rx_timeout_jiffies;
        unsigned int i, retry = BUTTRESS_IPC_CMD_SEND_RETRY;
        struct ipu6_buttress *b = &isp->buttress;
-       struct ipu6_buttress_ipc *ipc;
+       struct ipu6_buttress_ipc *ipc = &b->cse;
        u32 val;
        int ret;
        int tout;
 
-       ipc = ipc_domain == IPU6_BUTTRESS_IPC_CSE ? &b->cse : &b->ish;
-
        mutex_lock(&b->ipc_mutex);
 
        ret = ipu6_buttress_ipc_validity_open(isp, ipc);
@@ -306,7 +303,6 @@ out:
 
 static int
 ipu6_buttress_ipc_send(struct ipu6_device *isp,
-                      enum ipu6_buttress_ipc_domain ipc_domain,
                       u32 ipc_msg, u32 size, bool require_resp,
                       u32 expected_resp)
 {
@@ -317,7 +313,7 @@ ipu6_buttress_ipc_send(struct ipu6_device *isp,
                .expected_resp = expected_resp,
        };
 
-       return ipu6_buttress_ipc_send_bulk(isp, ipc_domain, &msg, 1);
+       return ipu6_buttress_ipc_send_bulk(isp, &msg, 1);
 }
 
 static irqreturn_t ipu6_buttress_call_isr(struct ipu6_bus_device *adev)
@@ -386,25 +382,12 @@ irqreturn_t ipu6_buttress_isr(int irq, void *isp_ptr)
                        complete(&b->cse.recv_complete);
                }
 
-               if (irq_status & BUTTRESS_ISR_IPC_FROM_ISH_IS_WAITING) {
-                       dev_dbg(&isp->pdev->dev,
-                               "BUTTRESS_ISR_IPC_FROM_ISH_IS_WAITING\n");
-                       ipu6_buttress_ipc_recv(isp, &b->ish, &b->ish.recv_data);
-                       complete(&b->ish.recv_complete);
-               }
-
                if (irq_status & BUTTRESS_ISR_IPC_EXEC_DONE_BY_CSE) {
                        dev_dbg(&isp->pdev->dev,
                                "BUTTRESS_ISR_IPC_EXEC_DONE_BY_CSE\n");
                        complete(&b->cse.send_complete);
                }
 
-               if (irq_status & BUTTRESS_ISR_IPC_EXEC_DONE_BY_ISH) {
-                       dev_dbg(&isp->pdev->dev,
-                               "BUTTRESS_ISR_IPC_EXEC_DONE_BY_CSE\n");
-                       complete(&b->ish.send_complete);
-               }
-
                if (irq_status & BUTTRESS_ISR_SAI_VIOLATION &&
                    ipu6_buttress_get_secure_mode(isp))
                        dev_err(&isp->pdev->dev,
@@ -666,7 +649,7 @@ int ipu6_buttress_authenticate(struct ipu6_device *isp)
         */
        dev_info(&isp->pdev->dev, "Sending BOOT_LOAD to CSE\n");
 
-       ret = ipu6_buttress_ipc_send(isp, IPU6_BUTTRESS_IPC_CSE,
+       ret = ipu6_buttress_ipc_send(isp,
                                     BUTTRESS_IU2CSEDATA0_IPC_BOOT_LOAD,
                                     1, true,
                                     BUTTRESS_CSE2IUDATA0_IPC_BOOT_LOAD_DONE);
@@ -708,7 +691,7 @@ int ipu6_buttress_authenticate(struct ipu6_device *isp)
         * IU2CSEDB.IU2CSECMD and set IU2CSEDB.IU2CSEBUSY as
         */
        dev_info(&isp->pdev->dev, "Sending AUTHENTICATE_RUN to CSE\n");
-       ret = ipu6_buttress_ipc_send(isp, IPU6_BUTTRESS_IPC_CSE,
+       ret = ipu6_buttress_ipc_send(isp,
                                     BUTTRESS_IU2CSEDATA0_IPC_AUTH_RUN,
                                     1, true,
                                     BUTTRESS_CSE2IUDATA0_IPC_AUTH_RUN_DONE);
@@ -849,9 +832,7 @@ int ipu6_buttress_init(struct ipu6_device *isp)
        mutex_init(&b->auth_mutex);
        mutex_init(&b->cons_mutex);
        mutex_init(&b->ipc_mutex);
-       init_completion(&b->ish.send_complete);
        init_completion(&b->cse.send_complete);
-       init_completion(&b->ish.recv_complete);
        init_completion(&b->cse.recv_complete);
 
        b->cse.nack = BUTTRESS_CSE2IUDATA0_IPC_NACK;
@@ -863,8 +844,6 @@ int ipu6_buttress_init(struct ipu6_device *isp)
        b->cse.data0_in = BUTTRESS_REG_CSE2IUDATA0;
        b->cse.data0_out = BUTTRESS_REG_IU2CSEDATA0;
 
-       /* no ISH on IPU6 */
-       memset(&b->ish, 0, sizeof(b->ish));
        INIT_LIST_HEAD(&b->constraints);
 
        isp->secure_mode = ipu6_buttress_get_secure_mode(isp);
index 9b6f56958be7e2895852f2691d82395255f09b2a..482978c2a09dc72c9f578b7c0170b1945bc87da3 100644 (file)
@@ -46,18 +46,12 @@ struct ipu6_buttress_ipc {
 struct ipu6_buttress {
        struct mutex power_mutex, auth_mutex, cons_mutex, ipc_mutex;
        struct ipu6_buttress_ipc cse;
-       struct ipu6_buttress_ipc ish;
        struct list_head constraints;
        u32 wdt_cached_value;
        bool force_suspend;
        u32 ref_clk;
 };
 
-enum ipu6_buttress_ipc_domain {
-       IPU6_BUTTRESS_IPC_CSE,
-       IPU6_BUTTRESS_IPC_ISH,
-};
-
 struct ipu6_ipc_buttress_bulk_msg {
        u32 cmd;
        u32 expected_resp;
index 20f27011df43eeb5cebe8351cb384949d4ad2cc4..efd65e494c16495d7587e9c6720c1b1334f908a6 100644 (file)
@@ -219,8 +219,6 @@ enum {
                                 BUTTRESS_ISR_IS_IRQ | BUTTRESS_ISR_PS_IRQ)
 
 #define BUTTRESS_EVENT          (BUTTRESS_ISR_IPC_FROM_CSE_IS_WAITING | \
-                                 BUTTRESS_ISR_IPC_FROM_ISH_IS_WAITING | \
                                  BUTTRESS_ISR_IPC_EXEC_DONE_BY_CSE |    \
-                                 BUTTRESS_ISR_IPC_EXEC_DONE_BY_ISH |    \
                                  BUTTRESS_ISR_SAI_VIOLATION)
 #endif /* IPU6_PLATFORM_BUTTRESS_REGS_H */