mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-06 14:05:39 +00:00
media: intel/ipu6: remove buttress ish structure
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>
This commit is contained in:
parent
be7de82384
commit
23e0661de5
@ -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 @@ static int ipu6_buttress_ipc_send_bulk(struct ipu6_device *isp,
|
||||
|
||||
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);
|
||||
|
@ -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;
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user