|
@@ -2165,20 +2165,21 @@ handle_irq:
|
|
|
case SWRM_INTERRUPT_STATUS_CLK_STOP_FINISHED:
|
|
|
break;
|
|
|
case SWRM_INTERRUPT_STATUS_EXT_CLK_STOP_WAKEUP:
|
|
|
- if (swrm->state == SWR_MSTR_UP)
|
|
|
+ if (swrm->state == SWR_MSTR_UP) {
|
|
|
dev_dbg(swrm->dev,
|
|
|
"%s:SWR Master is already up\n",
|
|
|
__func__);
|
|
|
- else
|
|
|
+ } else {
|
|
|
dev_err_ratelimited(swrm->dev,
|
|
|
"%s: SWR wokeup during clock stop\n",
|
|
|
__func__);
|
|
|
- /* It might be possible the slave device gets reset
|
|
|
- * and slave interrupt gets missed. So re-enable
|
|
|
- * Host IRQ and process slave pending
|
|
|
- * interrupts, if any.
|
|
|
- */
|
|
|
- swrm_enable_slave_irq(swrm);
|
|
|
+ /* It might be possible the slave device gets
|
|
|
+ * reset and slave interrupt gets missed. So
|
|
|
+ * re-enable Host IRQ and process slave pending
|
|
|
+ * interrupts, if any.
|
|
|
+ */
|
|
|
+ swrm_enable_slave_irq(swrm);
|
|
|
+ }
|
|
|
break;
|
|
|
default:
|
|
|
dev_err_ratelimited(swrm->dev,
|
|
@@ -2674,6 +2675,8 @@ static int swrm_probe(struct platform_device *pdev)
|
|
|
SWRM_NUM_AUTO_ENUM_SLAVES);
|
|
|
ret = -EINVAL;
|
|
|
goto err_pdata_fail;
|
|
|
+ } else {
|
|
|
+ swrm->master.num_dev = swrm->num_dev;
|
|
|
}
|
|
|
}
|
|
|
|