summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThe Android Automerger <android-build@android.com>2010-11-10 09:25:12 -0800
committerThe Android Automerger <android-build@android.com>2010-11-10 09:25:12 -0800
commitf325c261d2c83fc1a6fb8e5e1724cb5bde28937d (patch)
tree83afe0aad35e0d66128cb922f28363b891565a93
parentcf0fd819901aaf9c44c9292ac9f196ffb5a8664e (diff)
parent82d5df491f920e7dc8d13059c5887c8e896c84d6 (diff)
downloaddevice_samsung_crespo-f325c261d2c83fc1a6fb8e5e1724cb5bde28937d.zip
device_samsung_crespo-f325c261d2c83fc1a6fb8e5e1724cb5bde28937d.tar.gz
device_samsung_crespo-f325c261d2c83fc1a6fb8e5e1724cb5bde28937d.tar.bz2
Merge branch 'gingerbread' into gingerbread-release
-rw-r--r--bcm4329.kobin259028 -> 259028 bytes
-rwxr-xr-xinit.herring.rc4
-rw-r--r--kernelbin2800164 -> 2800408 bytes
-rw-r--r--libaudio2/AudioHardware.cpp59
-rw-r--r--libaudio2/AudioHardware.h6
-rw-r--r--libaudio2/AudioPolicyManager.cpp29
-rw-r--r--libaudio2/AudioPolicyManager.h1
-rw-r--r--libcamera/SecCameraHWInterface.cpp42
-rw-r--r--libsensors/AkmSensor.cpp4
-rw-r--r--libsensors/GyroSensor.cpp2
-rw-r--r--libsensors/sensors.cpp8
-rw-r--r--libsensors/sensors.h34
12 files changed, 117 insertions, 72 deletions
diff --git a/bcm4329.ko b/bcm4329.ko
index 9c19505..3e17018 100644
--- a/bcm4329.ko
+++ b/bcm4329.ko
Binary files differ
diff --git a/init.herring.rc b/init.herring.rc
index 1c8c1b5..d7620cf 100755
--- a/init.herring.rc
+++ b/init.herring.rc
@@ -43,6 +43,10 @@ on fs
chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type
+# We chown/chmod /efs because mount is run as root + defaults
+ chown radio radio /efs
+ chmod 0775 /efs
+
# permissions for NFC
setprop ro.nfc.port "I2C"
chmod 0600 /dev/pn544
diff --git a/kernel b/kernel
index ee108dd..9634ffa 100644
--- a/kernel
+++ b/kernel
Binary files differ
diff --git a/libaudio2/AudioHardware.cpp b/libaudio2/AudioHardware.cpp
index 53e9c65..86a2f80 100644
--- a/libaudio2/AudioHardware.cpp
+++ b/libaudio2/AudioHardware.cpp
@@ -80,7 +80,7 @@ AudioHardware::AudioHardware() :
mPcmOpenCnt(0),
mMixerOpenCnt(0),
mInCallAudioMode(false),
- mVrModeEnabled(false),
+ mInputSource("Default"),
mBluetoothNrec(true),
mSecRilLibHandle(NULL),
mRilClient(0),
@@ -331,11 +331,11 @@ status_t AudioHardware::setMode(int mode)
LOGV("setMode() openPcmOut_l()");
openPcmOut_l();
openMixer_l();
- setVoiceRecognition_l(false);
+ setInputSource_l(String8("Default"));
mInCallAudioMode = true;
}
if (mMode == AudioSystem::MODE_NORMAL && mInCallAudioMode) {
- setVoiceRecognition_l(mVrModeEnabled);
+ setInputSource_l(mInputSource);
LOGV("setMode() closeMixer_l()");
closeMixer_l();
LOGV("setMode() closePcmOut_l()");
@@ -549,8 +549,7 @@ status_t AudioHardware::dump(int fd, const Vector<String16>& args)
snprintf(buffer, SIZE, "\tIn Call Audio Mode %s\n",
(mInCallAudioMode) ? "ON" : "OFF");
result.append(buffer);
- snprintf(buffer, SIZE, "\tVr Mode %s\n",
- (mVrModeEnabled) ? "Enabled" : "Disabled");
+ snprintf(buffer, SIZE, "\tInput source %s\n", mInputSource.string());
result.append(buffer);
snprintf(buffer, SIZE, "\tmSecRilLibHandle: %p\n", mSecRilLibHandle);
result.append(buffer);
@@ -705,7 +704,10 @@ struct mixer *AudioHardware::openMixer_l()
TRACE_DRIVER_IN(DRV_MIXER_OPEN)
mMixer = mixer_open();
TRACE_DRIVER_OUT
- LOGE_IF(mMixer == NULL, "openMixer_l() cannot open mixer");
+ if (mMixer == NULL) {
+ LOGE("openMixer_l() cannot open mixer");
+ mMixerOpenCnt--;
+ }
}
return mMixer;
}
@@ -822,27 +824,25 @@ sp <AudioHardware::AudioStreamInALSA> AudioHardware::getActiveInput_l()
return spIn;
}
-status_t AudioHardware::setVoiceRecognition_l(bool enable)
+status_t AudioHardware::setInputSource_l(String8 source)
{
- LOGV("setVoiceRecognition_l(%d)", enable);
- if (enable != mVrModeEnabled) {
- if (!(enable && (mMode == AudioSystem::MODE_IN_CALL))) {
+ LOGV("setInputSource_l(%s)", source.string());
+ if (source != mInputSource) {
+ if ((source == "Default") || (mMode != AudioSystem::MODE_IN_CALL)) {
if (mMixer) {
TRACE_DRIVER_IN(DRV_MIXER_GET)
- struct mixer_ctl *ctl= mixer_get_control(mMixer, "Recognition Control", 0);
+ struct mixer_ctl *ctl= mixer_get_control(mMixer, "Input Source", 0);
TRACE_DRIVER_OUT
if (ctl == NULL) {
- closeMixer_l();
return NO_INIT;
}
- const char *mode = enable ? "RECOGNITION_ON" : "RECOGNITION_OFF";
- LOGV("mixer_ctl_select, Recognition Control, (%s)", mode);
+ LOGV("mixer_ctl_select, Input Source, (%s)", source.string());
TRACE_DRIVER_IN(DRV_MIXER_SEL)
- mixer_ctl_select(ctl, mode);
+ mixer_ctl_select(ctl, source.string());
TRACE_DRIVER_OUT
}
}
- mVrModeEnabled = enable;
+ mInputSource = source;
}
return NO_ERROR;
@@ -934,9 +934,11 @@ ssize_t AudioHardware::AudioStreamOutALSA::write(const void* buffer, size_t byte
if (mHardware->mode() != AudioSystem::MODE_IN_CALL) {
next_route = mHardware->getOutputRouteFromDevice(mDevices);
LOGV("write() wakeup setting route %s", next_route);
- TRACE_DRIVER_IN(DRV_MIXER_SEL)
- mixer_ctl_select(mRouteCtl, next_route);
- TRACE_DRIVER_OUT
+ if (next_route && mRouteCtl) {
+ TRACE_DRIVER_IN(DRV_MIXER_SEL)
+ mixer_ctl_select(mRouteCtl, next_route);
+ TRACE_DRIVER_OUT
+ }
}
next_route = 0;
acquire_wake_lock (PARTIAL_WAKE_LOCK, "AudioOutLock");
@@ -965,7 +967,7 @@ Error:
standby();
// Simulate audio output timing in case of error
- usleep(bytes * 1000000 / frameSize() / sampleRate());
+ usleep((((bytes * 1000) / frameSize()) * 1000) / sampleRate());
return status;
}
@@ -1230,9 +1232,11 @@ ssize_t AudioHardware::AudioStreamInALSA::read(void* buffer, ssize_t bytes)
if (mHardware->mode() != AudioSystem::MODE_IN_CALL) {
next_route = mHardware->getInputRouteFromDevice(mDevices);
LOGV("read() wakeup setting route %s", next_route);
- TRACE_DRIVER_IN(DRV_MIXER_SEL)
- mixer_ctl_select(mRouteCtl, next_route);
- TRACE_DRIVER_OUT
+ if (next_route && mRouteCtl) {
+ TRACE_DRIVER_IN(DRV_MIXER_SEL)
+ mixer_ctl_select(mRouteCtl, next_route);
+ TRACE_DRIVER_OUT
+ }
}
next_route = 0;
@@ -1273,7 +1277,7 @@ Error:
standby();
// Simulate audio output timing in case of error
- usleep(bytes * 1000000 / frameSize() / sampleRate());
+ usleep((((bytes * 1000) / frameSize()) * 1000) / sampleRate());
return status;
}
@@ -1358,6 +1362,7 @@ status_t AudioHardware::AudioStreamInALSA::setParameters(const String8& keyValue
AudioParameter param = AudioParameter(keyValuePairs);
status_t status = NO_ERROR;
int value;
+ String8 source;
bool forceStandby = false;
LOGD("AudioStreamInALSA::setParameters() %s", keyValuePairs.string());
@@ -1367,14 +1372,14 @@ status_t AudioHardware::AudioStreamInALSA::setParameters(const String8& keyValue
{
AutoMutex lock(mLock);
- if (param.getInt(String8(VOICE_REC_MODE_KEY), value) == NO_ERROR) {
+ if (param.get(String8(INPUT_SOURCE_KEY), source) == NO_ERROR) {
AutoMutex hwLock(mHardware->lock());
mHardware->openMixer_l();
- mHardware->setVoiceRecognition_l((value != 0));
+ mHardware->setInputSource_l(source);
mHardware->closeMixer_l();
- param.remove(String8(VOICE_REC_MODE_KEY));
+ param.remove(String8(INPUT_SOURCE_KEY));
}
if (param.getInt(String8(AudioParameter::keyRouting), value) == NO_ERROR)
diff --git a/libaudio2/AudioHardware.h b/libaudio2/AudioHardware.h
index 69e4140..256624b 100644
--- a/libaudio2/AudioHardware.h
+++ b/libaudio2/AudioHardware.h
@@ -66,7 +66,7 @@ namespace android {
// Default audio input buffer size in bytes (8kHz mono)
#define AUDIO_HW_IN_PERIOD_BYTES ((AUDIO_HW_IN_PERIOD_SZ*sizeof(int16_t))/8)
-#define VOICE_REC_MODE_KEY "vr_mode"
+#define INPUT_SOURCE_KEY "Input Source"
class AudioHardware : public AudioHardwareBase
{
@@ -111,7 +111,7 @@ public:
status_t setIncallPath_l(uint32_t device);
- status_t setVoiceRecognition_l(bool enable);
+ status_t setInputSource_l(String8 source);
static uint32_t getInputSampleRate(uint32_t sampleRate);
sp <AudioStreamInALSA> getActiveInput_l();
@@ -140,7 +140,7 @@ private:
uint32_t mMixerOpenCnt;
bool mInCallAudioMode;
- bool mVrModeEnabled;
+ String8 mInputSource;
bool mBluetoothNrec;
void* mSecRilLibHandle;
HRilClient mRilClient;
diff --git a/libaudio2/AudioPolicyManager.cpp b/libaudio2/AudioPolicyManager.cpp
index 41c0fd0..93d70d8 100644
--- a/libaudio2/AudioPolicyManager.cpp
+++ b/libaudio2/AudioPolicyManager.cpp
@@ -42,4 +42,33 @@ extern "C" void destroyAudioPolicyManager(AudioPolicyInterface *interface)
delete interface;
}
+
+status_t AudioPolicyManager::startInput(audio_io_handle_t input)
+{
+ status_t status = AudioPolicyManagerBase::startInput(input);
+
+ if (status == NO_ERROR) {
+ AudioInputDescriptor *inputDesc = mInputs.valueFor(input);
+ String8 key = String8("Input Source");
+ String8 value;
+ switch(inputDesc->mInputSource) {
+ case AUDIO_SOURCE_VOICE_RECOGNITION:
+ value = String8("Voice Recognition");
+ break;
+ case AUDIO_SOURCE_CAMCORDER:
+ value = String8("Camcorder");
+ break;
+ case AUDIO_SOURCE_DEFAULT:
+ case AUDIO_SOURCE_MIC:
+ value = String8("Default");
+ default:
+ break;
+ }
+ AudioParameter param = AudioParameter();
+ param.add(key, value);
+ mpClientInterface->setParameters(input, param.toString());
+ }
+ return status;
+}
+
}; // namespace android
diff --git a/libaudio2/AudioPolicyManager.h b/libaudio2/AudioPolicyManager.h
index 03141e5..ae283db 100644
--- a/libaudio2/AudioPolicyManager.h
+++ b/libaudio2/AudioPolicyManager.h
@@ -34,6 +34,7 @@ public:
virtual ~AudioPolicyManager() {}
+ virtual status_t startInput(audio_io_handle_t input);
protected:
// true is current platform implements a back microphone
virtual bool hasBackMicrophone() const { return false; }
diff --git a/libcamera/SecCameraHWInterface.cpp b/libcamera/SecCameraHWInterface.cpp
index 9d5c775..9be2cb9 100644
--- a/libcamera/SecCameraHWInterface.cpp
+++ b/libcamera/SecCameraHWInterface.cpp
@@ -1748,6 +1748,10 @@ status_t CameraHardwareSec::setParameters(const CameraParameters& params)
}
}
+ // scene mode
+ const char *new_scene_mode_str = params.get(CameraParameters::KEY_SCENE_MODE);
+ const char *current_scene_mode_str = mParameters.get(CameraParameters::KEY_SCENE_MODE);
+
// fps range
int new_min_fps = 0;
int new_max_fps = 0;
@@ -1756,31 +1760,36 @@ status_t CameraHardwareSec::setParameters(const CameraParameters& params)
mParameters.getPreviewFpsRange(&current_min_fps, &current_max_fps);
/* our fps range is determined by the sensor, reject any request
* that isn't exactly what we're already at.
+ * but the check is performed when requesting only changing fps range
*/
- if ((new_min_fps != current_min_fps) || (new_max_fps != current_max_fps)) {
- LOGW("%s : requested new_min_fps = %d, new_max_fps = %d not allowed",
- __func__, new_min_fps, new_max_fps);
- LOGE("%s : current_min_fps = %d, current_max_fps = %d",
- __func__, current_min_fps, current_max_fps);
+ if (new_scene_mode_str && current_scene_mode_str) {
+ if (!strcmp(new_scene_mode_str, current_scene_mode_str)) {
+ if ((new_min_fps != current_min_fps) || (new_max_fps != current_max_fps)) {
+ LOGW("%s : requested new_min_fps = %d, new_max_fps = %d not allowed",
+ __func__, new_min_fps, new_max_fps);
+ LOGE("%s : current_min_fps = %d, current_max_fps = %d",
+ __func__, current_min_fps, current_max_fps);
+ ret = UNKNOWN_ERROR;
+ }
+ }
+ } else {
+ /* Check basic validation if scene mode is different */
+ if ((new_min_fps > new_max_fps) ||
+ (new_min_fps < 0) || (new_max_fps < 0))
ret = UNKNOWN_ERROR;
}
- // scene mode
- const char *new_scene_mode_str = params.get(CameraParameters::KEY_SCENE_MODE);
-
- LOGV("%s : new_scene_mode_str %s", __func__, new_scene_mode_str);
-
if (new_scene_mode_str != NULL) {
int new_scene_mode = -1;
const char *new_flash_mode_str = params.get(CameraParameters::KEY_FLASH_MODE);
const char *new_focus_mode_str;
- if (mSecCamera->getCameraId() == SecCamera::CAMERA_ID_BACK) {
- new_focus_mode_str = params.get(CameraParameters::KEY_FOCUS_MODE);
- } else {
- new_focus_mode_str = NULL;
- }
+ new_focus_mode_str = params.get(CameraParameters::KEY_FOCUS_MODE);
+ // fps range is (15000,30000) by default.
+ mParameters.set(CameraParameters::KEY_SUPPORTED_PREVIEW_FPS_RANGE, "(15000,30000)");
+ mParameters.set(CameraParameters::KEY_PREVIEW_FPS_RANGE,
+ "15000,30000");
if (!strcmp(new_scene_mode_str, CameraParameters::SCENE_MODE_AUTO)) {
new_scene_mode = SCENE_MODE_NONE;
@@ -1790,9 +1799,6 @@ status_t CameraHardwareSec::setParameters(const CameraParameters& params)
new_focus_mode_str = CameraParameters::FOCUS_MODE_AUTO;
}
new_flash_mode_str = CameraParameters::FLASH_MODE_OFF;
- mParameters.set(CameraParameters::KEY_SUPPORTED_PREVIEW_FPS_RANGE, "(15000,30000)");
- mParameters.set(CameraParameters::KEY_PREVIEW_FPS_RANGE,
- "15000,30000");
if (!strcmp(new_scene_mode_str,
CameraParameters::SCENE_MODE_PORTRAIT)) {
diff --git a/libsensors/AkmSensor.cpp b/libsensors/AkmSensor.cpp
index f2470c3..68d2fc2 100644
--- a/libsensors/AkmSensor.cpp
+++ b/libsensors/AkmSensor.cpp
@@ -245,7 +245,7 @@ int AkmSensor::readEvents(sensors_event_t* data, int count)
while (count && mInputReader.readEvent(&event)) {
int type = event->type;
- if (type == EV_ABS) {
+ if (type == EV_REL) {
processEvent(event->code, event->value);
mInputReader.next();
} else if (type == EV_SYN) {
@@ -320,4 +320,4 @@ void AkmSensor::processEvent(int code, int value)
uint8_t(value & SENSOR_STATE_MASK);
break;
}
-} \ No newline at end of file
+}
diff --git a/libsensors/GyroSensor.cpp b/libsensors/GyroSensor.cpp
index c478e40..7f6b864 100644
--- a/libsensors/GyroSensor.cpp
+++ b/libsensors/GyroSensor.cpp
@@ -143,7 +143,7 @@ again:
#endif
while (count && mInputReader.readEvent(&event)) {
int type = event->type;
- if (type == EV_ABS) {
+ if (type == EV_REL) {
float value = event->value;
if (event->code == EVENT_TYPE_GYRO_X) {
mPendingEvent.data[0] = value * CONVERT_GYRO_X;
diff --git a/libsensors/sensors.cpp b/libsensors/sensors.cpp
index 7f342d0..2f85225 100644
--- a/libsensors/sensors.cpp
+++ b/libsensors/sensors.cpp
@@ -70,15 +70,15 @@ static const struct sensor_t sSensorList[] = {
{ "KR3DM 3-axis Accelerometer",
"STMicroelectronics",
1, SENSORS_ACCELERATION_HANDLE,
- SENSOR_TYPE_ACCELEROMETER, 2*GRAVITY_EARTH, (2*GRAVITY_EARTH)/(256*8), 0.23f, 0, { } },
+ SENSOR_TYPE_ACCELEROMETER, RANGE_A, RESOLUTION_A, 0.23f, 20000, { } },
{ "AK8973 3-axis Magnetic field sensor",
"Asahi Kasei Microdevices",
1, SENSORS_MAGNETIC_FIELD_HANDLE,
- SENSOR_TYPE_MAGNETIC_FIELD, 2000.0f, 1.0f/256, 6.8f, 0, { } },
+ SENSOR_TYPE_MAGNETIC_FIELD, 2000.0f, CONVERT_M, 6.8f, 30000, { } },
{ "AK8973 Orientation sensor",
"Asahi Kasei Microdevices",
1, SENSORS_ORIENTATION_HANDLE,
- SENSOR_TYPE_ORIENTATION, 360.0f, 1.0f/64.0f, 7.8f, 0, { } },
+ SENSOR_TYPE_ORIENTATION, 360.0f, CONVERT_O, 7.8f, 30000, { } },
{ "GP2A Light sensor",
"Sharp",
1, SENSORS_LIGHT_HANDLE,
@@ -90,7 +90,7 @@ static const struct sensor_t sSensorList[] = {
{ "K3G Gyroscope sensor",
"STMicroelectronics",
1, SENSORS_GYROSCOPE_HANDLE,
- SENSOR_TYPE_GYROSCOPE, 2000*M_PI/180.0f, (70.0f/1000.0f)*((float)M_PI/180.0f), 6.1f, 0, { } },
+ SENSOR_TYPE_GYROSCOPE, RANGE_GYRO, CONVERT_GYRO, 6.1f, 1200, { } },
};
diff --git a/libsensors/sensors.h b/libsensors/sensors.h
index 008aad2..20884b6 100644
--- a/libsensors/sensors.h
+++ b/libsensors/sensors.h
@@ -54,29 +54,26 @@ __BEGIN_DECLS
#define AKM_DEVICE_NAME "/dev/akm8973_aot"
-#define EVENT_TYPE_ACCEL_X ABS_Y
-#define EVENT_TYPE_ACCEL_Y ABS_X
-#define EVENT_TYPE_ACCEL_Z ABS_Z
-#define EVENT_TYPE_ACCEL_STATUS ABS_WHEEL
+#define EVENT_TYPE_ACCEL_X REL_Y
+#define EVENT_TYPE_ACCEL_Y REL_X
+#define EVENT_TYPE_ACCEL_Z REL_Z
-#define EVENT_TYPE_YAW ABS_RX
-#define EVENT_TYPE_PITCH ABS_RY
-#define EVENT_TYPE_ROLL ABS_RZ
-#define EVENT_TYPE_ORIENT_STATUS ABS_RUDDER
+#define EVENT_TYPE_YAW REL_RX
+#define EVENT_TYPE_PITCH REL_RY
+#define EVENT_TYPE_ROLL REL_RZ
+#define EVENT_TYPE_ORIENT_STATUS REL_WHEEL
/* For AK8973iB */
-#define EVENT_TYPE_MAGV_X ABS_HAT0Y
-#define EVENT_TYPE_MAGV_Y ABS_HAT0X
-#define EVENT_TYPE_MAGV_Z ABS_BRAKE
-#define EVENT_TYPE_TEMPERATURE ABS_THROTTLE
-#define EVENT_TYPE_STEP_COUNT ABS_GAS
+#define EVENT_TYPE_MAGV_X REL_DIAL
+#define EVENT_TYPE_MAGV_Y REL_HWHEEL
+#define EVENT_TYPE_MAGV_Z REL_MISC
#define EVENT_TYPE_PROXIMITY ABS_DISTANCE
#define EVENT_TYPE_LIGHT ABS_MISC
-#define EVENT_TYPE_GYRO_X ABS_RX
-#define EVENT_TYPE_GYRO_Y ABS_RY
-#define EVENT_TYPE_GYRO_Z ABS_RZ
+#define EVENT_TYPE_GYRO_X REL_RY
+#define EVENT_TYPE_GYRO_Y REL_RX
+#define EVENT_TYPE_GYRO_Z REL_RZ
// 720 LSG = 1G
@@ -84,6 +81,8 @@ __BEGIN_DECLS
#define NUMOFACCDATA 8
// conversion of acceleration data to SI units (m/s^2)
+#define RANGE_A (2*GRAVITY_EARTH)
+#define RESOLUTION_A (RANGE_A/(256*NUMOFACCDATA))
#define CONVERT_A (GRAVITY_EARTH / LSG / NUMOFACCDATA)
#define CONVERT_A_X (CONVERT_A)
#define CONVERT_A_Y (-CONVERT_A)
@@ -102,9 +101,10 @@ __BEGIN_DECLS
#define CONVERT_O_R (-CONVERT_O)
// conversion of gyro data to SI units (radian/sec)
+#define RANGE_GYRO (2000.0f*(float)M_PI/180.0f)
#define CONVERT_GYRO ((70.0f / 1000.0f) * ((float)M_PI / 180.0f))
#define CONVERT_GYRO_X (CONVERT_GYRO)
-#define CONVERT_GYRO_Y (CONVERT_GYRO)
+#define CONVERT_GYRO_Y (-CONVERT_GYRO)
#define CONVERT_GYRO_Z (CONVERT_GYRO)
#define SENSOR_STATE_MASK (0x7FFF)