Merge tag 'usb-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
[linux-2.6-microblaze.git] / drivers / usb / dwc3 / dwc3-qcom.c
index 49e6ca9..9abbd01 100644 (file)
@@ -115,7 +115,7 @@ static inline void dwc3_qcom_clrbits(void __iomem *base, u32 offset, u32 val)
        readl(base + offset);
 }
 
-static void dwc3_qcom_vbus_overrride_enable(struct dwc3_qcom *qcom, bool enable)
+static void dwc3_qcom_vbus_override_enable(struct dwc3_qcom *qcom, bool enable)
 {
        if (enable) {
                dwc3_qcom_setbits(qcom->qscratch_base, QSCRATCH_SS_PHY_CTRL,
@@ -136,7 +136,7 @@ static int dwc3_qcom_vbus_notifier(struct notifier_block *nb,
        struct dwc3_qcom *qcom = container_of(nb, struct dwc3_qcom, vbus_nb);
 
        /* enable vbus override for device mode */
-       dwc3_qcom_vbus_overrride_enable(qcom, event);
+       dwc3_qcom_vbus_override_enable(qcom, event);
        qcom->mode = event ? USB_DR_MODE_PERIPHERAL : USB_DR_MODE_HOST;
 
        return NOTIFY_DONE;
@@ -148,7 +148,7 @@ static int dwc3_qcom_host_notifier(struct notifier_block *nb,
        struct dwc3_qcom *qcom = container_of(nb, struct dwc3_qcom, host_nb);
 
        /* disable vbus override in host mode */
-       dwc3_qcom_vbus_overrride_enable(qcom, !event);
+       dwc3_qcom_vbus_override_enable(qcom, !event);
        qcom->mode = event ? USB_DR_MODE_HOST : USB_DR_MODE_PERIPHERAL;
 
        return NOTIFY_DONE;
@@ -614,6 +614,10 @@ static int dwc3_qcom_acpi_register_core(struct platform_device *pdev)
                qcom->acpi_pdata->dwc3_core_base_size;
 
        irq = platform_get_irq(pdev_irq, 0);
+       if (irq < 0) {
+               ret = irq;
+               goto out;
+       }
        child_res[1].flags = IORESOURCE_IRQ;
        child_res[1].start = child_res[1].end = irq;
 
@@ -645,6 +649,7 @@ static int dwc3_qcom_of_register_core(struct platform_device *pdev)
        struct dwc3_qcom        *qcom = platform_get_drvdata(pdev);
        struct device_node      *np = pdev->dev.of_node, *dwc3_np;
        struct device           *dev = &pdev->dev;
+       struct property         *prop;
        int                     ret;
 
        dwc3_np = of_get_compatible_child(np, "snps,dwc3");
@@ -653,6 +658,20 @@ static int dwc3_qcom_of_register_core(struct platform_device *pdev)
                return -ENODEV;
        }
 
+       prop = devm_kzalloc(dev, sizeof(*prop), GFP_KERNEL);
+       if (!prop) {
+               ret = -ENOMEM;
+               dev_err(dev, "unable to allocate memory for property\n");
+               goto node_put;
+       }
+
+       prop->name = "tx-fifo-resize";
+       ret = of_add_property(dwc3_np, prop);
+       if (ret) {
+               dev_err(dev, "unable to add property\n");
+               goto node_put;
+       }
+
        ret = of_platform_populate(np, NULL, NULL, dev);
        if (ret) {
                dev_err(dev, "failed to register dwc3 core - %d\n", ret);
@@ -811,7 +830,7 @@ static int dwc3_qcom_probe(struct platform_device *pdev)
 
        /* enable vbus override for device mode */
        if (qcom->mode == USB_DR_MODE_PERIPHERAL)
-               dwc3_qcom_vbus_overrride_enable(qcom, true);
+               dwc3_qcom_vbus_override_enable(qcom, true);
 
        /* register extcon to override sw_vbus on Vbus change later */
        ret = dwc3_qcom_register_extcon(qcom);
@@ -916,6 +935,7 @@ static const struct of_device_id dwc3_qcom_of_match[] = {
        { .compatible = "qcom,dwc3" },
        { .compatible = "qcom,msm8996-dwc3" },
        { .compatible = "qcom,msm8998-dwc3" },
+       { .compatible = "qcom,sdm660-dwc3" },
        { .compatible = "qcom,sdm845-dwc3" },
        { }
 };