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

Commit ae3614fd authored by Chanwoo Choi's avatar Chanwoo Choi
Browse files

Merge branch 'ib-extcon-usb-phy-4.14' into extcon-next

parents 1cf76c4e 808ae8f3
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -253,16 +253,16 @@ static void extcon_work(struct work_struct *work)
	vbus = gpiod_get_value_cansleep(driver->vbus_gpiod);

	if (!id && vbus) { /* Host connected */
		extcon_set_cable_state_(driver->edev, EXTCON_USB_HOST, true);
		extcon_set_state_sync(driver->edev, EXTCON_USB_HOST, true);
		pr_debug("Host cable connected\n");
		driver->data->new_state = EVT_HOST;
		connect_change(driver);
	} else if (id && !vbus) { /* Disconnected */
		extcon_set_cable_state_(driver->edev, EXTCON_USB_HOST, false);
		extcon_set_cable_state_(driver->edev, EXTCON_USB, false);
		extcon_set_state_sync(driver->edev, EXTCON_USB_HOST, false);
		extcon_set_state_sync(driver->edev, EXTCON_USB, false);
		pr_debug("Cable disconnected\n");
	} else if (id && vbus) { /* Device connected */
		extcon_set_cable_state_(driver->edev, EXTCON_USB, true);
		extcon_set_state_sync(driver->edev, EXTCON_USB, true);
		pr_debug("Device cable connected\n");
		driver->data->new_state = EVT_DEVICE;
		connect_change(driver);
+3 −11
Original line number Diff line number Diff line
@@ -155,12 +155,12 @@ static int qcom_usb_hs_phy_power_on(struct phy *phy)
	}

	if (uphy->vbus_edev) {
		state = extcon_get_cable_state_(uphy->vbus_edev, EXTCON_USB);
		state = extcon_get_state(uphy->vbus_edev, EXTCON_USB);
		/* setup initial state */
		qcom_usb_hs_phy_vbus_notifier(&uphy->vbus_notify, state,
					      uphy->vbus_edev);
		ret = extcon_register_notifier(uphy->vbus_edev, EXTCON_USB,
				&uphy->vbus_notify);
		ret = devm_extcon_register_notifier(&ulpi->dev, uphy->vbus_edev,
				EXTCON_USB, &uphy->vbus_notify);
		if (ret)
			goto err_ulpi;
	}
@@ -179,16 +179,8 @@ static int qcom_usb_hs_phy_power_on(struct phy *phy)

static int qcom_usb_hs_phy_power_off(struct phy *phy)
{
	int ret;
	struct qcom_usb_hs_phy *uphy = phy_get_drvdata(phy);

	if (uphy->vbus_edev) {
		ret = extcon_unregister_notifier(uphy->vbus_edev, EXTCON_USB,
						 &uphy->vbus_notify);
		if (ret)
			return ret;
	}

	regulator_disable(uphy->v3p3);
	regulator_disable(uphy->v1p8);
	clk_disable_unprepare(uphy->sleep_clk);
+5 −5
Original line number Diff line number Diff line
@@ -545,7 +545,7 @@ static void rockchip_usb2phy_otg_sm_work(struct work_struct *work)
			rockchip_usb2phy_power_off(rport->phy);
		/* fall through */
	case OTG_STATE_B_IDLE:
		if (extcon_get_cable_state_(rphy->edev, EXTCON_USB_HOST) > 0) {
		if (extcon_get_state(rphy->edev, EXTCON_USB_HOST) > 0) {
			dev_dbg(&rport->phy->dev, "usb otg host connect\n");
			rport->state = OTG_STATE_A_HOST;
			rockchip_usb2phy_power_on(rport->phy);
@@ -598,7 +598,7 @@ static void rockchip_usb2phy_otg_sm_work(struct work_struct *work)
			rport->vbus_attached = vbus_attach;

			if (notify_charger && rphy->edev) {
				extcon_set_cable_state_(rphy->edev,
				extcon_set_state_sync(rphy->edev,
							cable, vbus_attach);
				if (cable == EXTCON_CHG_USB_SDP)
					extcon_set_state_sync(rphy->edev,
@@ -619,7 +619,7 @@ static void rockchip_usb2phy_otg_sm_work(struct work_struct *work)
		sch_work = true;
		break;
	case OTG_STATE_A_HOST:
		if (extcon_get_cable_state_(rphy->edev, EXTCON_USB_HOST) == 0) {
		if (extcon_get_state(rphy->edev, EXTCON_USB_HOST) == 0) {
			dev_dbg(&rport->phy->dev, "usb otg host disconnect\n");
			rport->state = OTG_STATE_B_IDLE;
			rockchip_usb2phy_power_off(rport->phy);
@@ -1006,8 +1006,8 @@ static int rockchip_usb2phy_otg_port_init(struct rockchip_usb2phy *rphy,
	if (!IS_ERR(rphy->edev)) {
		rport->event_nb.notifier_call = rockchip_otg_event;

		ret = extcon_register_notifier(rphy->edev, EXTCON_USB_HOST,
					       &rport->event_nb);
		ret = devm_extcon_register_notifier(rphy->dev, rphy->edev,
					EXTCON_USB_HOST, &rport->event_nb);
		if (ret)
			dev_err(rphy->dev, "register USB HOST notifier failed\n");
	}
+3 −3
Original line number Diff line number Diff line
@@ -184,7 +184,7 @@ static int udc_plat_probe(struct platform_device *pdev)
			goto exit_phy;
		}

		ret = extcon_get_cable_state_(udc->edev, EXTCON_USB);
		ret = extcon_get_state(udc->edev, EXTCON_USB);
		if (ret < 0) {
			dev_err(dev, "Can't get cable state\n");
			goto exit_extcon;
@@ -273,7 +273,7 @@ static int udc_plat_suspend(struct device *dev)
	udc = dev_get_drvdata(dev);
	stop_udc(udc);

	if (extcon_get_cable_state_(udc->edev, EXTCON_USB) > 0) {
	if (extcon_get_state(udc->edev, EXTCON_USB) > 0) {
		dev_dbg(udc->dev, "device -> idle\n");
		stop_udc(udc);
	}
@@ -303,7 +303,7 @@ static int udc_plat_resume(struct device *dev)
		return ret;
	}

	if (extcon_get_cable_state_(udc->edev, EXTCON_USB) > 0) {
	if (extcon_get_state(udc->edev, EXTCON_USB) > 0) {
		dev_dbg(udc->dev, "idle -> device\n");
		start_udc(udc);
	}
+0 −11
Original line number Diff line number Diff line
@@ -422,15 +422,4 @@ static inline int extcon_unregister_interest(struct extcon_specific_cable_nb
{
	return -EINVAL;
}

static inline int extcon_get_cable_state_(struct extcon_dev *edev, unsigned int id)
{
	return extcon_get_state(edev, id);
}

static inline int extcon_set_cable_state_(struct extcon_dev *edev, unsigned int id,
				   bool cable_state)
{
	return extcon_set_state_sync(edev, id, cable_state);
}
#endif /* __LINUX_EXTCON_H__ */