Add Embedded USB Debugger (EUD) driver
Subsystems (7)
cover Add Embedded USB Debugger (EUD) driver
This is a series of patches that implements a driver for the control peripheral, EUD (Embedded USB Debugger). The EUD is a mini-USB hub implemented on chip to support the USB-based debug and trace capabilities. Apart from debug capabilities, EUD has a control peripheral. Control Peripheral is on when EUD is on and gets signals like USB attach, pet EUD etc. EUD driver listens to events like USB attach or detach and then informs the USB about these events via ROLE-SWITCH. At regular intervals, the EUD driver receives an interrupt to pet the driver indicating that the software is functional.
Changes in V1
* EUD has now been mapped as a separate DT node as it is an independent QCOM IP.
* EUD is attached to the connector child of dwc3 via port end point since EUD driver needs the connector for role-switching,
* EUD driver has been moved now to drivers/soc/qcom/qcom_eud.c.
* All the comments from version 0 of the patch has been implemented.
Souradeep Chowdhury (8):
dt-bindings: Add the yaml bindings for EUD
dt-bindings: connector: Add property for EUD type-C connector
bindings: usb: dwc3: Update dwc3 properties for EUD connector
usb: dwc3: drd: Register the eud connector child node for dwc3
soc: qcom: eud: Add driver support for Embedded USB Debugger(EUD)
arm64: dts: qcom: sc7280: Add EUD dt node and dwc3 connector
arm64: dts: qcom: sc7280: Set the default dr_mode for usb2
MAINTAINERS: Add maintainer entry for EUD
Documentation/ABI/testing/sysfs-driver-eud | 9 + .../bindings/connector/usb-connector.yaml | 4 + .../devicetree/bindings/soc/qcom/qcom,eud.yaml | 52 ++++ .../devicetree/bindings/usb/snps,dwc3.yaml | 6 + MAINTAINERS | 8 + arch/arm64/boot/dts/qcom/sc7280-idp.dts | 4 + arch/arm64/boot/dts/qcom/sc7280.dtsi | 25 ++ drivers/soc/qcom/Kconfig | 10 + drivers/soc/qcom/Makefile | 1 + drivers/soc/qcom/qcom_eud.c | 268 +++++++++++++++++++++ drivers/usb/dwc3/drd.c | 26 ++ 11 files changed, 413 insertions(+) create mode 100644 Documentation/ABI/testing/sysfs-driver-eud create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml create mode 100644 drivers/soc/qcom/qcom_eud.c
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
PATCH 1/8 dt-bindings: Add the yaml bindings for EUD
Documentation for Embedded USB Debugger(EUD) device tree bindings in yaml format.
--- .../devicetree/bindings/soc/qcom/qcom,eud.yaml | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml new file +52 -0
@@ -0,0 +1,52 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/soc/qcom/qcom,eud.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" + +title: Qualcomm Embedded USB Debugger + +maintainers: + - Souradeep Chowdhury <[email protected]> + +description: | + This binding is used to describe the Qualcomm Embedded USB Debugger, which is + mini USB-hub implemented on chip to support USB-based debug capabilities. + +properties: + compatible: + items: + - enum: + - qcom,sc7280-eud + - const: qcom,eud + + reg: + items: + - description: EUD Base Register Region + - description: EUD Mode Manager Register + + interrupts: + description: + EUD interrupt + + + port: + description: + Any connector to the data bus of this controller should be modelled + using the OF graph bindings specified, if the "usb-role-switch" + property is used. See graph.txt + $ref: /schemas/graph.yaml#/properties/port + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + eud@88e0000 { + compatible = "qcom,sc7280-eud","qcom,eud"; + reg = <0 0x88e0000 0 0x2000>, + <0 0x88e2000 0 0x1000>; + };
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
PATCH 2/8 dt-bindings: connector: Add property for EUD type-C connector
In reply to Souradeep ChowdhuryAdded the property for EUD(Embedded USB Debugger) connector. EUD is a mini usb hub with debug and trace capabilities and it has a type C connector attached to it for role-switching. This connector is attached to EUD via port.
--- Documentation/devicetree/bindings/connector/usb-connector.yaml | 4 ++++ 1 file changed, 4 insertions(+)
Documentation/devicetree/bindings/connector/usb-connector.yaml +4 -0
@@ -30,6 +30,10 @@ properties: - const: samsung,usb-connector-11pin - const: usb-b-connector + - items: + - const: qcom,usb-connector-eud + - const: usb-c-connector + label: description: Symbolic name for the connector.
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
PATCH 3/8 bindings: usb: dwc3: Update dwc3 properties for EUD connector
In reply to Souradeep ChowdhuryAdd the connector property for dwc3 node. This connector can be used to role-switch the controller from device to host and vice versa.
--- Documentation/devicetree/bindings/usb/snps,dwc3.yaml | 6 ++++++ 1 file changed, 6 insertions(+)
Documentation/devicetree/bindings/usb/snps,dwc3.yaml +6 -0
@@ -318,6 +318,12 @@ properties: items: enum: [1, 4, 8, 16, 32, 64, 128, 256] + connector: + type: object + $ref: /connector/usb-connector.yaml# + description: + Connector for dual role switch, especially for "eud-usb-c-connector" + unevaluatedProperties: false required:
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
PATCH 4/8 usb: dwc3: drd: Register the eud connector child node for dwc3
In reply to Souradeep ChowdhuryRegister the child node for dwc3 which is the "eud_usb_connector". The eud driver will be able to switch the usb role from device to host and vice versa using the role switch property of dwc3 node.
--- drivers/usb/dwc3/drd.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+)
drivers/usb/dwc3/drd.c +26 -0
@@ -8,6 +8,7 @@*/ #include <linux/extcon.h> +#include <linux/of_platform.h> #include <linux/of_graph.h> #include <linux/platform_device.h> #include <linux/property.h>
@@ -164,6 +165,27 @@ static int dwc3_otg_get_irq(struct dwc3 *dwc)return irq; } +static int dwc3_register_eud (struct dwc3 *dwc) +{ +struct device *dev = dwc->dev; +struct device_node *np = dev->of_node; +int ret; + +of_get_child_by_name (np,"eud_usb_connector" ); +if (!np) { +dev_dbg (dev,"no usb_connector child node specified\n" ); +return 0 ; + } + + ret =of_platform_populate (np,NULL ,NULL , dev); +if (ret) { +dev_err (dev,"failed to register usb_connector - %d\n" , ret); +return ret; + } + +return 0 ; +} +void dwc3_otg_init (struct dwc3 *dwc) {u32 reg;
@@ -580,6 +602,10 @@ int dwc3_drd_init(struct dwc3 *dwc) ret =dwc3_setup_role_switch (dwc);if (ret <0 )return ret; + + ret =dwc3_register_eud (dwc); +if (ret <0 ) +return ret; }else if (dwc->edev) { dwc->edev_nb.notifier_call = dwc3_drd_notifier; ret = extcon_register_notifier(dwc->edev, EXTCON_USB_HOST,
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
PATCH 5/8 soc: qcom: eud: Add driver support for Embedded USB Debugger(EUD)
In reply to Souradeep ChowdhuryAdd support for control peripheral of EUD (Embedded USB Debugger) to listen to events such as USB attach/detach, pet EUD to indicate software is functional.Reusing the platform device kobj, sysfs entry 'enable' is created to enable or disable EUD.
To enable the eud the following needs to be done
echo 1 > /sys/bus/platform/.../enable
To disable eud, following is the command
echo 0 > /sys/bus/platform/.../enable
--- Documentation/ABI/testing/sysfs-driver-eud | 9 + drivers/soc/qcom/Kconfig | 10 ++ drivers/soc/qcom/Makefile | 1 + drivers/soc/qcom/qcom_eud.c | 268 +++++++++++++++++++++++++++++ 4 files changed, 288 insertions(+) create mode 100644 Documentation/ABI/testing/sysfs-driver-eud create mode 100644 drivers/soc/qcom/qcom_eud.c
Documentation/ABI/testing/sysfs-driver-eud new file +9 -0
@@ -0,0 +1,9 @@ +What: /sys/bus/platform/drivers/eud/.../enable +Date: October 2021 +Contact: Souradeep Chowdhury <[email protected]> +Description: + The Enable/Disable sysfs interface for Embedded + USB Debugger(EUD). This enables and disables the + EUD based on a 1 or a 0 value. By enabling EUD, + the user is able to activate the mini-usb hub of + EUD for debug and trace capabilities.
drivers/soc/qcom/Kconfig +10 -0
@@ -42,6 +42,16 @@ config QCOM_CPR To compile this driver as a module, choose M here: the module will be called qcom-cpr +config QCOM_EUD + tristate "QCOM Embedded USB Debugger(EUD) Driver" + select USB_ROLE_SWITCH + help + This module enables support for Qualcomm Technologies, Inc. + Embedded USB Debugger (EUD). The EUD is a control peripheral + which reports VBUS attach/detach events and has USB-based + debug and trace capabilities. On selecting m, the module name + that is built is qcom_eud.ko + config QCOM_GENI_SE tristate "QCOM GENI Serial Engine Driver" depends on ARCH_QCOM || COMPILE_TEST
drivers/soc/qcom/Makefile +1 -0
@@ -4,6 +4,7 @@ obj-$(CONFIG_QCOM_AOSS_QMP) += qcom_aoss.o obj-$(CONFIG_QCOM_GENI_SE) += qcom-geni-se.o obj-$(CONFIG_QCOM_COMMAND_DB) += cmd-db.o obj-$(CONFIG_QCOM_CPR) += cpr.o +obj-$(CONFIG_QCOM_EUD) += qcom_eud.o obj-$(CONFIG_QCOM_GSBI) += qcom_gsbi.o obj-$(CONFIG_QCOM_MDT_LOADER) += mdt_loader.o obj-$(CONFIG_QCOM_OCMEM) += ocmem.o
drivers/soc/qcom/qcom_eud.c new file +268 -0
268 lines not on this page · raw message
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
PATCH 6/8 arm64: dts: qcom: sc7280: Add EUD dt node and dwc3 connector
In reply to Souradeep ChowdhuryAdd the Embedded USB Debugger(EUD) device tree node. The node contains EUD base register region and EUD mode manager register regions along with the interrupt entry. Also add the connector to EUD which is mapped as the child of dwc3. The connector is attached to EUD via port. Also add the role-switch property to dwc3 node.
--- arch/arm64/boot/dts/qcom/sc7280.dtsi | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)
arch/arm64/boot/dts/qcom/sc7280.dtsi +25 -0
@@ -1315,6 +1315,18 @@ phys = <&usb_2_hsphy>; phy-names = "usb2-phy"; maximum-speed = "high-speed"; + usb-role-switch; + usb_con: eud_usb_connector { + compatible = "qcom,usb-connector-eud", + "usb-c-connector"; + ports { + port@0 { + usb2_role_switch: endpoint { + remote-endpoint = <&eud_ep>; + }; + }; + }; + }; }; };
@@ -1339,6 +1351,19 @@ interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>; }; + eud: eud@88e0000 { + compatible = "qcom,sc7280-eud","qcom,eud"; + reg = <0 0x88e0000 0 0x2000>, + <0 0x88e2000 0 0x1000>; + interrupt-parent = <&pdc>; + interrupts = <11 IRQ_TYPE_LEVEL_HIGH>; + port { + eud_ep: endpoint { + remote-endpoint = <&usb2_role_switch>; + }; + }; + }; + nsp_noc: interconnect@a0c0000 { reg = <0 0x0a0c0000 0 0x10000>; compatible = "qcom,sc7280-nsp-noc";
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
PATCH 7/8 arm64: dts: qcom: sc7280: Set the default dr_mode for usb2
In reply to Souradeep ChowdhurySet the default dr_mode for usb2 node to "otg" to enable. role-switch for EUD(Embedded USB Debugger) connector node.
--- arch/arm64/boot/dts/qcom/sc7280-idp.dts | 4 ++++ 1 file changed, 4 insertions(+)
arch/arm64/boot/dts/qcom/sc7280-idp.dts +4 -0
@@ -61,6 +61,10 @@ modem-init; }; +&usb_2_dwc3 { + dr_mode = "otg"; +}; + &pmk8350_vadc { pmr735a_die_temp { reg = <PMR735A_ADC7_DIE_TEMP>;
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
PATCH 8/8 MAINTAINERS: Add maintainer entry for EUD
In reply to Souradeep ChowdhuryAdd the entry for maintainer for EUD driver
and other associated files.
--- MAINTAINERS | 8 ++++++++ 1 file changed, 8 insertions(+)
MAINTAINERS +8 -0
@@ -7018,6 +7018,14 @@ F: include/trace/events/mdio.h F: include/uapi/linux/mdio.h F: include/uapi/linux/mii.h +EUD-QCOM +M: Souradeep Chowdhury <[email protected]> +L: [email protected] +S: Maintained +F: Documentation/ABI/testing/sysfs-driver-eud +F: Documentation/devicetree/bindings/arm/msm/qcom,eud.yaml +F: drivers/usb/common/qcom_eud.c + EXFAT FILE SYSTEM M: Namjae Jeon <[email protected]> M: Sungjong Seo <[email protected]>
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
Rob Herring
maintainerRe: [PATCH V1 1/8] dt-bindings: Add the yaml bindings for EUD
In reply to Souradeep ChowdhuryQuoted 9 lines · Souradeep Chowdhury
Documentation for Embedded USB Debugger(EUD) device tree bindings in yaml format.
Signed-off-by Souradeep Chowdhury <[email protected]>--- .../devicetree/bindings/soc/qcom/qcom,eud.yaml | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml
My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' on your patch (DT_CHECKER_FLAGS is new in v5.13):
yamllint warnings/errors:
dtschema/dtc warnings/errors:
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/soc/qcom/qcom,eud.example.dt.yaml: example-0: eud@88e0000:reg:0: [0, 143523840, 0, 8192] is too long
From schema: /usr/local/lib/python3.8/dist-packages/dtschema/schemas/reg.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/soc/qcom/qcom,eud.example.dt.yaml: example-0: eud@88e0000:reg:1: [0, 143532032, 0, 4096] is too long
From schema: /usr/local/lib/python3.8/dist-packages/dtschema/schemas/reg.yaml
doc reference errors (make refcheckdocs):
See https://patchwork.ozlabs.org/patch/1558347
This check can fail if there are any dependencies. The base for a patch series is generally the most recent rc1.
If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date:
pip3 install dtschema --upgrade
Please check and re-submit.
Re: [PATCH V1 1/8] dt-bindings: Add the yaml bindings for EUD
In reply to Souradeep ChowdhuryQuoted 17 lines · Souradeep Chowdhury
Documentation for Embedded USB Debugger(EUD) device tree bindings in yaml format.
Signed-off-by Souradeep Chowdhury <[email protected]>--- .../devicetree/bindings/soc/qcom/qcom,eud.yaml | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,eud.yamlDocumentation/devicetree/bindings/soc/qcom/qcom,eud.yaml new file +2
-0@@ -0,0 +1,52 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml line 12
Quoted 10 lines
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml new file +10
-0+--- +$id: "http://devicetree.org/schemas/soc/qcom/qcom,eud.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" + +title: Qualcomm Embedded USB Debugger + +maintainers: + - Souradeep Chowdhury <[email protected]> + +description: |
The '|' indicates that the formatting is significant, but it's not.
Quoted 10 lines
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml new file +10
-0+ This binding is used to describe the Qualcomm Embedded USB Debugger, which is + mini USB-hub implemented on chip to support USB-based debug capabilities. + +properties: + compatible: + items: + - enum: + - qcom,sc7280-eud + - const: qcom,eud +
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml line 32
Quoted 10 lines
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml new file +10
-0+ reg: + items: + - description: EUD Base Register Region + - description: EUD Mode Manager Register + + interrupts: + description: + EUD interrupt + +
Drop one of these two empty lines please.
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml line 37
Quoted 5 lines
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml new file +5
-0+ port: + description: + Any connector to the data bus of this controller should be modelled + using the OF graph bindings specified, if the "usb-role-switch" + property is used. See graph.txt
This description does unfortunately not help me to understand what to point this port to.
What's "the data bus"?
Is usb-role-switch a property to be put in this node? Doesn't it need to be mentioned as a valid property?
Quoted 4 lines
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml new file +4
-0+ $ref: /schemas/graph.yaml#/properties/port + +required: + - compatible
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml line 51
Quoted 10 lines
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml new file +10
-0+ - reg + +additionalProperties: false + +examples: + - | + eud@88e0000 { + compatible = "qcom,sc7280-eud","qcom,eud"; + reg = <0 0x88e0000 0 0x2000>, + <0 0x88e2000 0 0x1000>;
The example is compiled with #address-cells == #size-cells == 1, so drop the four lone 0s from the reg.
Regards,
Bjorn
Quoted 5 lines
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml new file +1
-0+ };Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
Re: [PATCH V1 1/8] dt-bindings: Add the yaml bindings for EUD
Quoted 25 lines · Bjorn Andersson
Quoted 23 lines · Souradeep Chowdhury
Documentation for Embedded USB Debugger(EUD) device tree bindings in yaml format.
Signed-off-by Souradeep Chowdhury <[email protected]>--- .../devicetree/bindings/soc/qcom/qcom,eud.yaml | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yamlDocumentation/devicetree/bindings/soc/qcom/qcom,eud.yaml new file +6
-0@@ -0,0 +1,52 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/soc/qcom/qcom,eud.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" +
Quoted 8 lines
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml line 12
Quoted 6 lines
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml new file +6
-0+title: Qualcomm Embedded USB Debugger + +maintainers: + - Souradeep Chowdhury <[email protected]> + +description: |The '|' indicates that the formatting is significant, but it's not.
Ack
Quoted 17 lines
Quoted 17 lines
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml new file +1
-0+ This binding is used to describe the Qualcomm Embedded USBDebugger, which is
+ mini USB-hub implemented on chip to support USB-based debug capabilities.Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml new file +12
-0+ +properties: + compatible: + items: + - enum: + - qcom,sc7280-eud + - const: qcom,eud + + reg: + items: + - description: EUD Base Register Region + - description: EUD Mode Manager Register
Quoted 8 lines
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml line 32
Quoted 6 lines
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml new file +6
-0+ + interrupts: + description: + EUD interrupt + +Drop one of these two empty lines please.
Ack
Quoted 8 lines
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml line 37
Quoted 7 lines
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml new file +3
-0+ port: + description: + Any connector to the data bus of this controller should bemodelled
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml new file +2
-0+ using the OF graph bindings specified, if the "usb-role-switch" + property is used. See graph.txt
Quoted 7 lines
This description does unfortunately not help me to understand what to point this port to.
What's "the data bus"?
Is usb-role-switch a property to be put in this node? Doesn't it need to be mentioned as a valid property?
The end point of this port is attached to the connector child of dwc3 node. The dwc3 node has the "usb-role-switch" property. So "usb-role-switch" is not a valid property of the EUD node.
Will update the description with more clarity accordingly.
Quoted 10 lines
Quoted 10 lines
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml new file +9
-0+ $ref: /schemas/graph.yaml#/properties/port + +required: + - compatible + - reg + +additionalProperties: false + +examples:
Quoted 8 lines
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml line 51
Quoted 5 lines
Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml new file +5
-0+ - | + eud@88e0000 { + compatible = "qcom,sc7280-eud","qcom,eud"; + reg = <0 0x88e0000 0 0x2000>, + <0 0x88e2000 0 0x1000>;The example is compiled with #address-cells == #size-cells == 1, so drop the four lone 0s from the reg.
Ack
Quoted 9 lines
Regards,
BjornQuoted 5 lines
+ };
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation