Lines Matching refs:ipcdev

54 static inline u32 ipc_read_status(IPC_DEV *ipcdev, IPC_TYPE type)  in ipc_read_status()  argument
56 return readl(ipcdev->base[type][BASE_IFACE]); in ipc_read_status()
59 static inline void ipc_write_cmd(IPC_DEV *ipcdev, IPC_TYPE type, u32 cmd) in ipc_write_cmd() argument
61 writel(cmd, ipcdev->base[type][BASE_IFACE]); in ipc_write_cmd()
64 static inline u32 ipc_read_data_low(IPC_DEV *ipcdev, IPC_TYPE type) in ipc_read_data_low() argument
66 return readl(ipcdev->base[type][BASE_DATA] + OFFSET_DATA_LOW); in ipc_read_data_low()
69 static inline u32 ipc_read_data_high(IPC_DEV *ipcdev, IPC_TYPE type) in ipc_read_data_high() argument
71 return readl(ipcdev->base[type][BASE_DATA] + OFFSET_DATA_HIGH); in ipc_read_data_high()
74 static inline void ipc_write_data_low(IPC_DEV *ipcdev, IPC_TYPE type, u32 data) in ipc_write_data_low() argument
76 writel(data, ipcdev->base[type][BASE_DATA] + OFFSET_DATA_LOW); in ipc_write_data_low()
79 static inline void ipc_write_data_high(IPC_DEV *ipcdev, IPC_TYPE type, u32 data) in ipc_write_data_high() argument
81 writel(data, ipcdev->base[type][BASE_DATA] + OFFSET_DATA_HIGH); in ipc_write_data_high()
104 static int intel_punit_ipc_check_status(IPC_DEV *ipcdev, IPC_TYPE type) in intel_punit_ipc_check_status() argument
110 if (ipcdev->irq) { in intel_punit_ipc_check_status()
111 if (!wait_for_completion_timeout(&ipcdev->cmd_complete, in intel_punit_ipc_check_status()
113 dev_err(ipcdev->dev, "IPC timed out\n"); in intel_punit_ipc_check_status()
117 while ((ipc_read_status(ipcdev, type) & CMD_RUN) && --loops) in intel_punit_ipc_check_status()
120 dev_err(ipcdev->dev, "IPC timed out\n"); in intel_punit_ipc_check_status()
125 status = ipc_read_status(ipcdev, type); in intel_punit_ipc_check_status()
128 dev_err(ipcdev->dev, "IPC failed: %s, IPC_STS=0x%x\n", in intel_punit_ipc_check_status()
148 IPC_DEV *ipcdev = punit_ipcdev; in intel_punit_ipc_simple_command() local
153 mutex_lock(&ipcdev->lock); in intel_punit_ipc_simple_command()
155 reinit_completion(&ipcdev->cmd_complete); in intel_punit_ipc_simple_command()
160 ipc_write_cmd(ipcdev, type, val); in intel_punit_ipc_simple_command()
161 ret = intel_punit_ipc_check_status(ipcdev, type); in intel_punit_ipc_simple_command()
163 mutex_unlock(&ipcdev->lock); in intel_punit_ipc_simple_command()
183 IPC_DEV *ipcdev = punit_ipcdev; in intel_punit_ipc_command() local
188 mutex_lock(&ipcdev->lock); in intel_punit_ipc_command()
190 reinit_completion(&ipcdev->cmd_complete); in intel_punit_ipc_command()
194 ipc_write_data_low(ipcdev, type, *in); in intel_punit_ipc_command()
196 ipc_write_data_high(ipcdev, type, *++in); in intel_punit_ipc_command()
201 ipc_write_cmd(ipcdev, type, val); in intel_punit_ipc_command()
203 ret = intel_punit_ipc_check_status(ipcdev, type); in intel_punit_ipc_command()
208 *out = ipc_read_data_low(ipcdev, type); in intel_punit_ipc_command()
210 *++out = ipc_read_data_high(ipcdev, type); in intel_punit_ipc_command()
214 mutex_unlock(&ipcdev->lock); in intel_punit_ipc_command()
221 IPC_DEV *ipcdev = dev_id; in intel_punit_ioc() local
223 complete(&ipcdev->cmd_complete); in intel_punit_ioc()