Skip to contentSkip to conversation

ucsi_ccg: Check DEV_INT bit only when starting CCG4

PATCH Superseded Wayne Chang 2 participants 5 messages Jan 11, 2022 – Jan 12, 2022

Subsystems (2)

v2 of 5 Superseded Latest is v5 →

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 ucsi_ccg: Check DEV_INT bit only when starting CCG4

From: Sing-Han Chen <[email protected]>

after driver sending the UCSI_START cmd, CCGx would clear Bit 0:Device Interrupt in the INTR_REG if CCGX reset successfully.

however, there might be a chance that other bits in INTR_REG are not cleared due to internal data queued in PPM and cause the driver thinks CCGx reset failed.

the commit checks bit 0 in INTR_REG and ignore other bits. ucsi driver would reset PPM later.

---
 drivers/usb/typec/ucsi/ucsi_ccg.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/usb/typec/ucsi/ucsi_ccg.c +1 -1
index bff96d64dddf..6db7c8ddd51c 100644
@@ -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
maintainer
#1 lore raw
Quoted 10 lines · Wayne Chang

From: Sing-Han Chen <[email protected]>

after driver sending the UCSI_START cmd, CCGx would clear Bit 0:Device Interrupt in the INTR_REG if CCGX reset successfully.

however, there might be a chance that other bits in INTR_REG are not cleared due to internal data queued in PPM and cause the driver thinks CCGx reset failed.

Quoted 8 lines

the commit checks bit 0 in INTR_REG and ignore other bits. ucsi driver would reset PPM later.

---
 drivers/usb/typec/ucsi/ucsi_ccg.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

What commit id does this fix?

thanks,

greg k-h

#2 lore raw

Hi Greg,
Thanks for the review.

Quoted 16 lines · Greg KH
Quoted 13 lines · Wayne Chang

From: Sing-Han Chen <[email protected]>

after driver sending the UCSI_START cmd, CCGx would clear Bit 0:Device Interrupt in the INTR_REG if CCGX reset successfully.

however, there might be a chance that other bits in INTR_REG are not cleared due to internal data queued in PPM and cause the driver thinks CCGx reset failed.

the commit checks bit 0 in INTR_REG and ignore other bits. ucsi driver would reset PPM later.

Quoted 7 lines
Quoted 5 lines
---
  drivers/usb/typec/ucsi/ucsi_ccg.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

What commit id does this fix?

The change is to fix the defect of ucsi_ccg_init func based on the CCGx spec.
The original implementation's commit Id is i247c554a14aa1.

Quoted 4 lines

thanks,

greg k-h

thanks,
Wayne.

maintainer
#3 lore raw
Quoted 26 lines · Wayne Chang

Hi Greg,
Thanks for the review.

Quoted 22 lines · Greg KH
Quoted 18 lines · Wayne Chang

From: Sing-Han Chen <[email protected]>

after driver sending the UCSI_START cmd, CCGx would clear Bit 0:Device Interrupt in the INTR_REG if CCGX reset successfully.

however, there might be a chance that other bits in INTR_REG are not cleared due to internal data queued in PPM and cause the driver thinks CCGx reset failed.

the commit checks bit 0 in INTR_REG and ignore other bits. ucsi driver would reset PPM later.

---
  drivers/usb/typec/ucsi/ucsi_ccg.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
Quoted 4 lines
Quoted 1 line

What commit id does this fix?

The change is to fix the defect of ucsi_ccg_init func based on the CCGx spec.
The original implementation's commit Id is i247c554a14aa1.

Great, can you resend this with a proper "Fixes:" tag on it?

thanks,

greg k-h

#4 lore raw
Quoted 30 lines · Greg KH

External email: Use caution opening links or attachments

Quoted 26 lines · Wayne Chang

Hi Greg,
Thanks for the review.

Quoted 22 lines · Greg KH
Quoted 18 lines · Wayne Chang

From: Sing-Han Chen <[email protected]>

after driver sending the UCSI_START cmd, CCGx would clear Bit 0:Device Interrupt in the INTR_REG if CCGX reset successfully.

however, there might be a chance that other bits in INTR_REG are not cleared due to internal data queued in PPM and cause the driver thinks CCGx reset failed.

the commit checks bit 0 in INTR_REG and ignore other bits. ucsi driver would reset PPM later.

---
   drivers/usb/typec/ucsi/ucsi_ccg.c | 2 +-
   1 file changed, 1 insertion(+), 1 deletion(-)
Quoted 6 lines
Quoted 4 lines
Quoted 1 line

What commit id does this fix?

The change is to fix the defect of ucsi_ccg_init func based on the CCGx spec.
The original implementation's commit Id is i247c554a14aa1.

Great, can you resend this with a proper "Fixes:" tag on it?

Sure. Will do. Thanks for the review.

Quoted 5 lines

thanks,

greg k-h

thanks,
Wayne.