am e834722f: Merge "Fix failure to open AVRCP input device due to EPERM." into eclair

Merge commit 'e834722f547d13eaa453464502456892c6225e42' into eclair-plus-aosp

* commit 'e834722f547d13eaa453464502456892c6225e42':
  Fix failure to open AVRCP input device due to EPERM.
This commit is contained in:
Nick Pelly
2010-01-20 20:46:35 -08:00
committed by Android Git Automerger

View File

@@ -489,6 +489,7 @@ int EventHub::open_device(const char *deviceName)
{
int version;
int fd;
int attempt;
struct pollfd *new_mFDs;
device_t **new_devices;
char **new_device_names;
@@ -500,12 +501,17 @@ int EventHub::open_device(const char *deviceName)
LOGV("Opening device: %s", deviceName);
AutoMutex _l(mLock);
fd = open(deviceName, O_RDWR);
for (attempt = 0; attempt < 10; attempt++) {
fd = open(deviceName, O_RDWR);
if (fd >= 0) break;
usleep(100);
}
if(fd < 0) {
LOGE("could not open %s, %s\n", deviceName, strerror(errno));
return -1;
}
LOGV("Opened device: %s (%d failures)", deviceName, attempt);
if(ioctl(fd, EVIOCGVERSION, &version)) {
LOGE("could not get driver version for %s, %s\n", deviceName, strerror(errno));