lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20231016-dwc3-refactor-v1-0-ab4a84165470@quicinc.com>
Date:   Mon, 16 Oct 2023 20:11:08 -0700
From:   Bjorn Andersson <quic_bjorande@...cinc.com>
To:     Bjorn Andersson <andersson@...nel.org>,
        Konrad Dybcio <konrad.dybcio@...aro.org>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Rob Herring <robh+dt@...nel.org>,
        Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
        Conor Dooley <conor+dt@...nel.org>,
        Wesley Cheng <quic_wcheng@...cinc.com>,
        Thinh Nguyen <Thinh.Nguyen@...opsys.com>,
        Felipe Balbi <balbi@...nel.org>,
        Philipp Zabel <p.zabel@...gutronix.de>
CC:     <linux-arm-msm@...r.kernel.org>, <linux-usb@...r.kernel.org>,
        <devicetree@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
        Johan Hovold <johan@...nel.org>,
        Krishna Kurapati PSSNV <quic_kriskura@...cinc.com>,
        "Bjorn Andersson" <quic_bjorande@...cinc.com>
Subject: [PATCH 00/12] usb: dwc3: qcom: Flatten dwc3 structure

The USB IP-block found in most Qualcomm platforms is modelled in the
Linux kernel as 3 different independent device drivers, but as shown by
the already existing layering violations in the Qualcomm glue driver
they can not be operated independently.

With the current implementation, the glue driver registers the core and
has no way to know when this is done. As a result, e.g. the suspend
callbacks needs to guard against NULL pointer dereferences when trying
to peek into the struct dwc3 found in the drvdata of the child.

Missing from the upstream Qualcomm USB support is handling of role
switching, in which the glue needs to be notified upon DRD mode changes.
Several attempts has been made through the years to register callbacks
etc, but they always fall short when it comes to handling of the core's
probe deferral on resources etc.

Furhtermore, the DeviceTree binding is a direct representation of the
Linux driver model, and doesn't necessarily describe "the USB IP-block".

This series therefor attempts to flatten the driver split, and operate
the glue and core out of the same platform_device instance. And in order
to do this, the DeviceTree representation of the IP block is flattened.

As a side effect, much of the ACPI integration code is dropped.

Signed-off-by: Bjorn Andersson <quic_bjorande@...cinc.com>
---
Bjorn Andersson (12):
      dt-bindings: usb: qcom,dwc3: Add qcom,sc8180x-dwc3
      usb: dwc3: qcom: Rename dwc3 platform_device reference
      usb: dwc3: qcom: Merge resources from urs_usb device
      usb: dwc3: Expose core driver as library
      usb: dwc3: Override end of dwc3 memory resource
      usb: dwc3: qcom: Add dwc3 core reference in driver state
      usb: dwc3: qcom: Instantiate dwc3 core directly
      usb: dwc3: qcom: Inline the qscratch constants
      dt-bindings: usb: qcom,dwc3: Rename to "glue"
      dt-bindings: usb: qcom,dwc3: Introduce flattened qcom,dwc3 binding
      usb: dwc3: qcom: Flatten the Qualcomm dwc3 binding and implementation
      arm64: dts: qcom: sc8180x: flatten usb_sec node

 .../devicetree/bindings/usb/qcom,dwc3-glue.yaml    | 626 +++++++++++++++++++++
 .../devicetree/bindings/usb/qcom,dwc3.yaml         | 321 ++++-------
 .../devicetree/bindings/usb/snps,dwc3.yaml         |  14 +-
 .../arm64/boot/dts/qcom/sc8180x-lenovo-flex-5g.dts |   6 +-
 arch/arm64/boot/dts/qcom/sc8180x-primus.dts        |   6 +-
 arch/arm64/boot/dts/qcom/sc8180x.dtsi              |  34 +-
 drivers/usb/dwc3/core.c                            | 136 +++--
 drivers/usb/dwc3/core.h                            |  10 +
 drivers/usb/dwc3/dwc3-qcom.c                       | 328 ++++++-----
 9 files changed, 1057 insertions(+), 424 deletions(-)
---
base-commit: 4d0515b235dec789578d135a5db586b25c5870cb
change-id: 20231016-dwc3-refactor-931e3b08a8b9

Best regards,
-- 
Bjorn Andersson <quic_bjorande@...cinc.com>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ