summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Brockus <dbrockus@google.com>2020-11-19 17:18:14 +0000
committerCommit Bot <commit-bot@chromium.org>2020-11-20 23:54:26 +0000
commit5f5740506571e5e775074c9d77fdffd0d4de5093 (patch)
tree16ca4078eeea73f2757834aeafc502e566690072
parent86cd11143962af1a6e9b695599c0af605df9256b (diff)
downloadchrome-ec-5f5740506571e5e775074c9d77fdffd0d4de5093.tar.gz
genvif: host/device data only if enabled
Some device data is only valid if Device_Supports_USB_Data in the Upstream Facing Port Fields group. Some host data is only valid if Host_Supports_USB_Data in Downstream Facing Port Fields BUG=b:172441959,b:172438944 BRANCH=none TEST=verify XML output Signed-off-by: Denis Brockus <dbrockus@google.com> Change-Id: I41edde27d9cc6fb49934e0d176efc90540a9faee Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2550308 Tested-by: Denis Brockus <dbrockus@chromium.org> Auto-Submit: Denis Brockus <dbrockus@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
-rw-r--r--test/genvif/vif/exp_test_over_vif.xml4
-rw-r--r--test/genvif/vif/exp_test_vif.xml4
-rw-r--r--util/genvif.c134
3 files changed, 75 insertions, 67 deletions
diff --git a/test/genvif/vif/exp_test_over_vif.xml b/test/genvif/vif/exp_test_over_vif.xml
index 21fe7c8af9..e0cb1fb502 100644
--- a/test/genvif/vif/exp_test_over_vif.xml
+++ b/test/genvif/vif/exp_test_over_vif.xml
@@ -60,10 +60,6 @@
<Type_C_Port_On_Hub value="false">NO</Type_C_Port_On_Hub>
<Type_C_Supports_Audio_Accessory value="false">NO</Type_C_Supports_Audio_Accessory>
<Type_C_Sources_VCONN value="false">NO</Type_C_Sources_VCONN>
- <Device_Speed value="1">USB 3.2 GEN 1x1</Device_Speed>
- <Host_Speed value="1">USB 3.2 GEN 1x1</Host_Speed>
- <Host_Contains_Captive_Retimer value="false">NO</Host_Contains_Captive_Retimer>
- <Host_Is_Embedded value="false">NO</Host_Is_Embedded>
<PD_Power_As_Source value="15000">15000 mW</PD_Power_As_Source>
<USB_Suspend_May_Be_Cleared value="false">NO</USB_Suspend_May_Be_Cleared>
<FR_Swap_Type_C_Current_Capability_As_Initial_Sink value="0">FR_Swap not supported</FR_Swap_Type_C_Current_Capability_As_Initial_Sink>
diff --git a/test/genvif/vif/exp_test_vif.xml b/test/genvif/vif/exp_test_vif.xml
index f2dba6cfcc..c5164d4e21 100644
--- a/test/genvif/vif/exp_test_vif.xml
+++ b/test/genvif/vif/exp_test_vif.xml
@@ -59,10 +59,6 @@
<Type_C_Port_On_Hub value="false">NO</Type_C_Port_On_Hub>
<Type_C_Supports_Audio_Accessory value="false">NO</Type_C_Supports_Audio_Accessory>
<Type_C_Sources_VCONN value="false">NO</Type_C_Sources_VCONN>
- <Device_Speed value="1">USB 3.2 GEN 1x1</Device_Speed>
- <Host_Speed value="1">USB 3.2 GEN 1x1</Host_Speed>
- <Host_Contains_Captive_Retimer value="false">NO</Host_Contains_Captive_Retimer>
- <Host_Is_Embedded value="false">NO</Host_Is_Embedded>
<PD_Power_As_Source value="15000">15000 mW</PD_Power_As_Source>
<USB_Suspend_May_Be_Cleared value="false">NO</USB_Suspend_May_Be_Cleared>
<Sends_Pings value="false">NO</Sends_Pings>
diff --git a/util/genvif.c b/util/genvif.c
index 6b505a508e..c74a9b91d8 100644
--- a/util/genvif.c
+++ b/util/genvif.c
@@ -3041,33 +3041,41 @@ static void init_vif_component_usb_data_ufp_fields(
* TOTO(b:172441959) Adjust the speed based on CONFIG_
*/
enum usb_speed ds = USB_GEN11;
+ bool supports_usb_data;
- switch (ds) {
- case USB_2:
- set_vif_field_itss(&vif_fields[Device_Speed],
- vif_component_name[Device_Speed],
- USB_2, "USB 2");
- break;
- case USB_GEN11:
- set_vif_field_itss(&vif_fields[Device_Speed],
- vif_component_name[Device_Speed],
- USB_GEN11, "USB 3.2 GEN 1x1");
- break;
- case USB_GEN21:
- set_vif_field_itss(&vif_fields[Device_Speed],
- vif_component_name[Device_Speed],
- USB_GEN21, "USB 3.2 GEN 2x1");
- break;
- case USB_GEN12:
- set_vif_field_itss(&vif_fields[Device_Speed],
- vif_component_name[Device_Speed],
- USB_GEN12, "USB 3.2 GEN 1x2");
- break;
- case USB_GEN22:
- set_vif_field_itss(&vif_fields[Device_Speed],
- vif_component_name[Device_Speed],
- USB_GEN22, "USB 3.2 GEN 2x2");
- break;
+ if (!get_vif_field_tag_bool(
+ &vif_fields[Device_Supports_USB_Data],
+ &supports_usb_data))
+ supports_usb_data = false;
+
+ if (supports_usb_data) {
+ switch (ds) {
+ case USB_2:
+ set_vif_field_itss(&vif_fields[Device_Speed],
+ vif_component_name[Device_Speed],
+ USB_2, "USB 2");
+ break;
+ case USB_GEN11:
+ set_vif_field_itss(&vif_fields[Device_Speed],
+ vif_component_name[Device_Speed],
+ USB_GEN11, "USB 3.2 GEN 1x1");
+ break;
+ case USB_GEN21:
+ set_vif_field_itss(&vif_fields[Device_Speed],
+ vif_component_name[Device_Speed],
+ USB_GEN21, "USB 3.2 GEN 2x1");
+ break;
+ case USB_GEN12:
+ set_vif_field_itss(&vif_fields[Device_Speed],
+ vif_component_name[Device_Speed],
+ USB_GEN12, "USB 3.2 GEN 1x2");
+ break;
+ case USB_GEN22:
+ set_vif_field_itss(&vif_fields[Device_Speed],
+ vif_component_name[Device_Speed],
+ USB_GEN22, "USB 3.2 GEN 2x2");
+ break;
+ }
}
}
@@ -3095,42 +3103,50 @@ static void init_vif_component_usb_data_dfp_fields(
* TOTO(b:172438944) Adjust the speed based on CONFIG_
*/
enum usb_speed ds = USB_GEN11;
+ bool supports_usb_data;
- switch (ds) {
- case USB_2:
- set_vif_field_itss(&vif_fields[Host_Speed],
- vif_component_name[Host_Speed],
- USB_2, "USB 2");
- break;
- case USB_GEN11:
- set_vif_field_itss(&vif_fields[Host_Speed],
- vif_component_name[Host_Speed],
- USB_GEN11, "USB 3.2 GEN 1x1");
- break;
- case USB_GEN21:
- set_vif_field_itss(&vif_fields[Host_Speed],
- vif_component_name[Host_Speed],
- USB_GEN21, "USB 3.2 GEN 2x1");
- break;
- case USB_GEN12:
- set_vif_field_itss(&vif_fields[Host_Speed],
- vif_component_name[Host_Speed],
- USB_GEN12, "USB 3.2 GEN 1x2");
- break;
- case USB_GEN22:
- set_vif_field_itss(&vif_fields[Host_Speed],
- vif_component_name[Host_Speed],
- USB_GEN22, "USB 3.2 GEN 2x2");
- break;
- }
+ if (!get_vif_field_tag_bool(
+ &vif_fields[Host_Supports_USB_Data],
+ &supports_usb_data))
+ supports_usb_data = false;
+
+ if (supports_usb_data) {
+ switch (ds) {
+ case USB_2:
+ set_vif_field_itss(&vif_fields[Host_Speed],
+ vif_component_name[Host_Speed],
+ USB_2, "USB 2");
+ break;
+ case USB_GEN11:
+ set_vif_field_itss(&vif_fields[Host_Speed],
+ vif_component_name[Host_Speed],
+ USB_GEN11, "USB 3.2 GEN 1x1");
+ break;
+ case USB_GEN21:
+ set_vif_field_itss(&vif_fields[Host_Speed],
+ vif_component_name[Host_Speed],
+ USB_GEN21, "USB 3.2 GEN 2x1");
+ break;
+ case USB_GEN12:
+ set_vif_field_itss(&vif_fields[Host_Speed],
+ vif_component_name[Host_Speed],
+ USB_GEN12, "USB 3.2 GEN 1x2");
+ break;
+ case USB_GEN22:
+ set_vif_field_itss(&vif_fields[Host_Speed],
+ vif_component_name[Host_Speed],
+ USB_GEN22, "USB 3.2 GEN 2x2");
+ break;
+ }
- set_vif_field_b(&vif_fields[Host_Contains_Captive_Retimer],
- vif_component_name[Host_Contains_Captive_Retimer],
- false);
+ set_vif_field_b(&vif_fields[Host_Contains_Captive_Retimer],
+ vif_component_name[Host_Contains_Captive_Retimer],
+ false);
- set_vif_field_b(&vif_fields[Host_Is_Embedded],
- vif_component_name[Host_Is_Embedded],
- false);
+ set_vif_field_b(&vif_fields[Host_Is_Embedded],
+ vif_component_name[Host_Is_Embedded],
+ false);
+ }
}
/*********************************************************************