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

Commit 79d54bc5 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes from topic "resetUsbPort"

* changes:
  Implement VTS for resetUsbPort and notifyResetUsbPort
  Add resetUsbPort in USB HAL interface
parents ab62fa67 a9040400
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -41,4 +41,5 @@ interface IUsb {
  oneway void setCallback(in android.hardware.usb.IUsbCallback callback);
  oneway void switchRole(in String portName, in android.hardware.usb.PortRole role, long transactionId);
  oneway void limitPowerTransfer(in String portName, boolean limit, long transactionId);
  oneway void resetUsbPort(in String portName,long transactionId);
}
+1 −0
Original line number Diff line number Diff line
@@ -41,4 +41,5 @@ interface IUsbCallback {
  oneway void notifyContaminantEnabledStatus(in String portName, boolean enable, in android.hardware.usb.Status retval, long transactionId);
  oneway void notifyQueryPortStatus(in String portName, in android.hardware.usb.Status retval, long transactionId);
  oneway void notifyLimitPowerTransferStatus(in String portName, boolean limit, in android.hardware.usb.Status retval, long transactionId);
  oneway void notifyResetUsbPortStatus(in String portName, in android.hardware.usb.Status retval, long transactionId);
}
+9 −0
Original line number Diff line number Diff line
@@ -104,4 +104,13 @@ oneway interface IUsb {
     * @param transactionId ID to be used when invoking the callback.
     */
    void limitPowerTransfer(in String portName, boolean limit, long transactionId);

    /**
     * This function is used to reset the port role of a specific port.
     * For instance, when data transfer through the port fails.
     *
     * @param portName name of the port that is being reset
     * @param transactionId ID to be used when invoking the callback.
     */
    void resetUsbPort(in String portName, long transactionId);
}
+9 −0
Original line number Diff line number Diff line
@@ -105,4 +105,13 @@ oneway interface IUsbCallback {
     * @param transactionId ID sent during limitPowerTransfer request.
     */
    void notifyLimitPowerTransferStatus(in String portName, boolean limit, in Status retval, long transactionId);

    /**
     * Used to notify the result of requesting resetUsbPort.
     *
     * @param portName name of the port that was being reset.
     * @param retval SUCCESS if current request succeeded. FAILURE otherwise.
     * @param transactionId current transactionId sent during resetUsbPort request.
     */
    void notifyResetUsbPortStatus(in String portName, in Status retval, long transactionId);
}
+16 −0
Original line number Diff line number Diff line
@@ -90,6 +90,22 @@ ScopedAStatus Usb::enableUsbDataWhileDocked(const string& in_portName, int64_t i
    return ScopedAStatus::ok();
}

ScopedAStatus Usb::resetUsbPort(const string& in_portName, int64_t in_transactionId) {

    pthread_mutex_lock(&mLock);
    if (mCallback != NULL) {
        ScopedAStatus ret = mCallback->notifyResetUsbPortStatus(
            in_portName, Status::NOT_SUPPORTED, in_transactionId);
        if (!ret.isOk())
            ALOGE("notifyResetUsbPortStatus error %s", ret.getDescription().c_str());
    } else {
        ALOGE("Not notifying the userspace. Callback is not set");
    }
    pthread_mutex_unlock(&mLock);

    return ScopedAStatus::ok();
}

Status queryMoistureDetectionStatus(std::vector<PortStatus> *currentPortStatus) {
    string enabled, status, path, DetectedPath;

Loading