diff options
author | Denis Brockus <dbrockus@google.com> | 2020-11-19 17:18:14 +0000 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-11-20 23:54:26 +0000 |
commit | 5f5740506571e5e775074c9d77fdffd0d4de5093 (patch) | |
tree | 16ca4078eeea73f2757834aeafc502e566690072 | |
parent | 86cd11143962af1a6e9b695599c0af605df9256b (diff) | |
download | chrome-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.xml | 4 | ||||
-rw-r--r-- | test/genvif/vif/exp_test_vif.xml | 4 | ||||
-rw-r--r-- | util/genvif.c | 134 |
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); + } } /********************************************************************* |