Merge "Usb: Add status check to prevent NPE" into main
This commit is contained in:
commit
348defd241
1 changed files with 21 additions and 17 deletions
|
@ -1215,25 +1215,29 @@ void queryVersionHelper(android::hardware::usb::Usb *usb,
|
||||||
|
|
||||||
pthread_mutex_lock(&usb->mLock);
|
pthread_mutex_lock(&usb->mLock);
|
||||||
status = getPortStatusHelper(usb, currentPortStatus);
|
status = getPortStatusHelper(usb, currentPortStatus);
|
||||||
queryMoistureDetectionStatus(usb, currentPortStatus);
|
if (status == Status::SUCCESS && currentPortStatus->size() > 0) {
|
||||||
queryPowerTransferStatus(usb, currentPortStatus);
|
queryMoistureDetectionStatus(usb, currentPortStatus);
|
||||||
queryNonCompliantChargerStatus(currentPortStatus);
|
queryPowerTransferStatus(usb, currentPortStatus);
|
||||||
pthread_mutex_lock(&usb->mDisplayPortLock);
|
queryNonCompliantChargerStatus(currentPortStatus);
|
||||||
if (!usb->mDisplayPortFirstSetupDone &&
|
pthread_mutex_lock(&usb->mDisplayPortLock);
|
||||||
usb->getDisplayPortUsbPathHelper(&displayPortUsbPath) == Status::SUCCESS) {
|
if (!usb->mDisplayPortFirstSetupDone &&
|
||||||
|
usb->getDisplayPortUsbPathHelper(&displayPortUsbPath) == Status::SUCCESS) {
|
||||||
|
|
||||||
ALOGI("usbdp: boot with display connected or usb hal restarted");
|
ALOGI("usbdp: boot with display connected or usb hal restarted");
|
||||||
usb->setupDisplayPortPoll();
|
usb->setupDisplayPortPoll();
|
||||||
}
|
}
|
||||||
pthread_mutex_unlock(&usb->mDisplayPortLock);
|
pthread_mutex_unlock(&usb->mDisplayPortLock);
|
||||||
queryDisplayPortStatus(usb, currentPortStatus);
|
queryDisplayPortStatus(usb, currentPortStatus);
|
||||||
if (usb->mCallback != NULL) {
|
if (usb->mCallback != NULL) {
|
||||||
ScopedAStatus ret = usb->mCallback->notifyPortStatusChange(*currentPortStatus,
|
ScopedAStatus ret = usb->mCallback->notifyPortStatusChange(*currentPortStatus,
|
||||||
status);
|
status);
|
||||||
if (!ret.isOk())
|
if (!ret.isOk())
|
||||||
ALOGE("queryPortStatus error %s", ret.getDescription().c_str());
|
ALOGE("queryPortStatus error %s", ret.getDescription().c_str());
|
||||||
|
} else {
|
||||||
|
ALOGI("Notifying userspace skipped. Callback is NULL");
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
ALOGI("Notifying userspace skipped. Callback is NULL");
|
ALOGI("%s skipped. currentPortStatus is empty", __func__);
|
||||||
}
|
}
|
||||||
pthread_mutex_unlock(&usb->mLock);
|
pthread_mutex_unlock(&usb->mLock);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue