TCPMv2: Update dedicated capability if charger is allow-listed

Once we know the identity of our port partner, update whether they
are considered a dedicated charger.

BRANCH=None
BUG=b:169107245
TEST=on drawlat, plug in apple dongle multiple times and confirm that we
start charging from them even if discovery completes post-power role
swap

Signed-off-by: Diana Z <dzigterman@chromium.org>
Change-Id: I5b541cc9dca2c0e0481b79986573b2c503fe77c3
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2488140
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
diff --git a/common/usbc/usb_pe_drp_sm.c b/common/usbc/usb_pe_drp_sm.c
index f6d150c..e599097 100644
--- a/common/usbc/usb_pe_drp_sm.c
+++ b/common/usbc/usb_pe_drp_sm.c
@@ -4979,6 +4979,13 @@
 
 		/* PE_INIT_PORT_VDM_Identity_ACKed embedded here */
 		dfp_consume_identity(port, sop, cnt, payload);
+
+#ifdef CONFIG_CHARGE_MANAGER
+		/* Evaluate whether this is an allow-listed charger */
+		if (pd_charge_from_device(pd_get_identity_vid(port),
+					  pd_get_identity_pid(port)))
+			charge_manager_update_dualrole(port, CAP_DEDICATED);
+#endif
 		break;
 		}
 	case VDM_RESULT_NAK: