ucsi_ccg: Check DEV_INT bit only when starting CCG4
Subsystems (3)
PATCH v5 1/1 ucsi_ccg: Check DEV_INT bit only when starting CCG4
From: Sing-Han Chen <[email protected]>
CCGx clears Bit 0:Device Interrupt in the INTR_REG if CCGx is reset successfully. However, there might be a chance that other bits in INTR_REG are not cleared due to internal data queued in PPM. This case misleads the driver that CCGx reset failed.
The commit checks bit 0 in INTR_REG and ignores other bits. The ucsi driver would reset PPM later.
---
V4 -> V5: Added Cc tag and revised the commit messages V3 -> V4: Updated the Fixes tag
V2 -> V3: Added the Fixes tag
V1 -> V2: Fixed the name of Sign-off-by
drivers/usb/typec/ucsi/ucsi_ccg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/usb/typec/ucsi/ucsi_ccg.c +1 -1
@@ -325,7 +325,7 @@ static int ucsi_ccg_init(struct ucsi_ccg *uc)if (status <0 )return status; -if (!data) +if (!(data &DEV_INT ))return 0 ; status =ccg_write (uc,CCGX_RAB_INTR_REG , &data,sizeof (data));
Signature · 1 line
2.25.1
Quoted 8 lines · Wayne Chang
From: Sing-Han Chen <[email protected]>
CCGx clears Bit 0:Device Interrupt in the
INTR_REGif CCGx is reset successfully. However, there might be a chance that other bits inINTR_REGare not cleared due to internal data queued in PPM. This case misleads the driver that CCGx reset failed.
Quoted 7 lines
The commit checks bit 0 in
INTR_REGand ignores other bits. The ucsi driver would reset PPM later.Fixes 247c554a14aa ("usb: typec: ucsi: add support for Cypress CCGx")Signed-off-by Sing-Han Chen <[email protected]>Signed-off-by Wayne Chang <[email protected]>
Quoted 23 lines
---
V4 -> V5: Added Cc tag and revised the commit messages V3 -> V4: Updated the Fixes tag
V2 -> V3: Added the Fixes tag
V1 -> V2: Fixed the name of Sign-off-bydrivers/usb/typec/ucsi/ucsi_ccg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/usb/typec/ucsi/ucsi_ccg.c +1
-1@@ -325,7 +325,7 @@ static int ucsi_ccg_init(struct ucsi_ccg *uc)if (status <0 )return status; -if (!data) +if (!(data &DEV_INT ))return 0 ; status =ccg_write (uc,CCGX_RAB_INTR_REG , &data,sizeof (data));Signature · 1 line
2.25.1
thanks,
Signature · 1 line
heikki