On 22/11/2022 13:23, hejunhao wrote:
On 2022/11/21 18:47, Suzuki Kuruppassery Poulose wrote:
On 18/11/2022 12:45, hejunhao wrote:
Hi Suzuki ,
On 2022/11/15 19:06, Suzuki K Poulose wrote:
On 14/11/2022 09:03, Junhao He wrote:
From: Qi Liu <liuqi115@xxxxxxxxxx>
+static void smb_init_hw(struct smb_drv_data *drvdata)
+{
+ /* First disable SMB and clear the status of SMB buffer */
+ smb_reset_buffer_status(drvdata);
+ smb_disable_hw(drvdata);
+ smb_purge_data(drvdata);
+
+ writel(SMB_LB_CFG_LO_DEFAULT, drvdata->base + SMB_LB_CFG_LO_REG);
+ writel(SMB_LB_CFG_HI_DEFAULT, drvdata->base + SMB_LB_CFG_HI_REG);
+ writel(SMB_GLB_CFG_DEFAULT, drvdata->base + SMB_GLB_CFG_REG);
+ writel(SMB_GLB_INT_CFG, drvdata->base + SMB_GLB_INT_REG);
+ writel(SMB_LB_INT_CTRL_CFG, drvdata->base + SMB_LB_INT_CTRL_REG);
Does this come with interrupt on overflow ? Do we not use this ?
When the buffer overflow, no interrupt will come.
Interrupt will upgrade SMB_LB_INT_STS_REG register status if start
trace.
Thanks.
Rest looks fine to me.
What is the purpose of the "Interrupt" on the SMB ? It is not clear to
me.
The SMB_LB_INT_CTRL_REG register control the validity of both real-time
events and interrupts. When logical buffer status changes causes to
issue an
interrupt at the same time as it issues a real-time event.
Real-time events are used in SMB driver, which needs to get the buffer
status.
Interrupts are used in debugger mode and cannot be registered in kernel.
..._BUF_NOTE_MASK control which events flags or interrupts are valid.
Please add this to a comment in the code above the register write.
Thanks
Suzuki
Thanks.
Best regards,
Junhao.
Suzuki
_______________________________________________
CoreSight mailing list -- coresight@xxxxxxxxxxxxxxxx
To unsubscribe send an email to coresight-leave@xxxxxxxxxxxxxxxx