Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 668a0166 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "platform: msm: Fix USB device does not enumerate in SS mode"

parents 7eb529ae 8b53c3c3
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ static irqreturn_t gpio_usbdetect_vbus_irq(int irq, void *data)
	if (usb->vbus_state) {
		dev_dbg(&usb->pdev->dev, "setting vbus notification\n");
		extcon_set_cable_state_(usb->extcon_dev, EXTCON_USB, 1);
		extcon_set_cable_state_(usb->extcon_dev, EXTCON_USB_SPEED, 1);
	} else {
		dev_dbg(&usb->pdev->dev, "setting vbus removed notification\n");
		extcon_set_cable_state_(usb->extcon_dev, EXTCON_USB, 0);
@@ -85,6 +86,7 @@ static irqreturn_t gpio_usbdetect_id_irq_thread(int irq, void *data)
		dev_dbg(&usb->pdev->dev, "starting usb HOST\n");
		disable_irq(usb->vbus_det_irq);
		extcon_set_cable_state_(usb->extcon_dev, EXTCON_USB_HOST, 1);
		extcon_set_cable_state_(usb->extcon_dev, EXTCON_USB_SPEED, 1);
	}
	return IRQ_HANDLED;
}
@@ -186,6 +188,14 @@ static int gpio_usbdetect_probe(struct platform_device *pdev)
	enable_irq_wake(usb->id_det_irq);
	dev_set_drvdata(&pdev->dev, usb);

	if (usb->id_det_irq) {
		gpio_usbdetect_id_irq(usb->id_det_irq, usb);
		if (!usb->id_state) {
			gpio_usbdetect_id_irq_thread(usb->id_det_irq, usb);
			return 0;
		}
	}

	/* Read and report initial VBUS state */
	gpio_usbdetect_vbus_irq(usb->vbus_det_irq, usb);