am 6a34b0d9: Camera3: Report frame errors during stalls
* commit '6a34b0d90938f808b052db880301156debda9c90':
Camera3: Report frame errors during stalls
diff --git a/BoardConfig.mk b/BoardConfig.mk
index fd48f5e..f4354f4 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -16,7 +16,6 @@
TARGET_CPU_ABI := armeabi-v7a
TARGET_CPU_ABI2 := armeabi
-TARGET_CPU_SMP := true
TARGET_ARCH := arm
TARGET_ARCH_VARIANT := armv7-a-neon
TARGET_CPU_VARIANT := krait
@@ -107,7 +106,6 @@
BOARD_SEPOLICY_DIRS += \
device/lge/hammerhead/sepolicy
-# The list below is order dependent
BOARD_SEPOLICY_UNION += \
app.te \
bluetooth_loader.te \
@@ -117,6 +115,7 @@
domain.te \
file.te \
hostapd.te \
+ init.te \
irsc_util.te \
mediaserver.te \
mpdecision.te \
@@ -150,6 +149,10 @@
USE_DEVICE_SPECIFIC_QCOM_PROPRIETARY:= true
USE_DEVICE_SPECIFIC_CAMERA:= true
+ifeq ($(USE_SVELTE_KERNEL),true)
+MALLOC_IMPL := dlmalloc
+endif
+
-include vendor/lge/hammerhead/BoardConfigVendor.mk
# Enable Minikin text layout engine (will be the default soon)
diff --git a/camera/QCamera2/HAL/QCamera2Factory.cpp b/camera/QCamera2/HAL/QCamera2Factory.cpp
index 4408cce..03d99eb 100644
--- a/camera/QCamera2/HAL/QCamera2Factory.cpp
+++ b/camera/QCamera2/HAL/QCamera2Factory.cpp
@@ -202,7 +202,7 @@
}
struct hw_module_methods_t QCamera2Factory::mModuleMethods = {
- open: QCamera2Factory::camera_device_open,
+ .open = QCamera2Factory::camera_device_open,
};
}; // namespace qcamera
diff --git a/camera/QCamera2/HAL/QCamera2HWI.cpp b/camera/QCamera2/HAL/QCamera2HWI.cpp
index 9579365..6bd51ea 100644
--- a/camera/QCamera2/HAL/QCamera2HWI.cpp
+++ b/camera/QCamera2/HAL/QCamera2HWI.cpp
@@ -49,35 +49,35 @@
static pthread_mutex_t g_camlock = PTHREAD_MUTEX_INITIALIZER;
camera_device_ops_t QCamera2HardwareInterface::mCameraOps = {
- set_preview_window: QCamera2HardwareInterface::set_preview_window,
- set_callbacks: QCamera2HardwareInterface::set_CallBacks,
- enable_msg_type: QCamera2HardwareInterface::enable_msg_type,
- disable_msg_type: QCamera2HardwareInterface::disable_msg_type,
- msg_type_enabled: QCamera2HardwareInterface::msg_type_enabled,
+ .set_preview_window = QCamera2HardwareInterface::set_preview_window,
+ .set_callbacks = QCamera2HardwareInterface::set_CallBacks,
+ .enable_msg_type = QCamera2HardwareInterface::enable_msg_type,
+ .disable_msg_type = QCamera2HardwareInterface::disable_msg_type,
+ .msg_type_enabled = QCamera2HardwareInterface::msg_type_enabled,
- start_preview: QCamera2HardwareInterface::start_preview,
- stop_preview: QCamera2HardwareInterface::stop_preview,
- preview_enabled: QCamera2HardwareInterface::preview_enabled,
- store_meta_data_in_buffers: QCamera2HardwareInterface::store_meta_data_in_buffers,
+ .start_preview = QCamera2HardwareInterface::start_preview,
+ .stop_preview = QCamera2HardwareInterface::stop_preview,
+ .preview_enabled = QCamera2HardwareInterface::preview_enabled,
+ .store_meta_data_in_buffers = QCamera2HardwareInterface::store_meta_data_in_buffers,
- start_recording: QCamera2HardwareInterface::start_recording,
- stop_recording: QCamera2HardwareInterface::stop_recording,
- recording_enabled: QCamera2HardwareInterface::recording_enabled,
- release_recording_frame: QCamera2HardwareInterface::release_recording_frame,
+ .start_recording = QCamera2HardwareInterface::start_recording,
+ .stop_recording = QCamera2HardwareInterface::stop_recording,
+ .recording_enabled = QCamera2HardwareInterface::recording_enabled,
+ .release_recording_frame = QCamera2HardwareInterface::release_recording_frame,
- auto_focus: QCamera2HardwareInterface::auto_focus,
- cancel_auto_focus: QCamera2HardwareInterface::cancel_auto_focus,
+ .auto_focus = QCamera2HardwareInterface::auto_focus,
+ .cancel_auto_focus = QCamera2HardwareInterface::cancel_auto_focus,
- take_picture: QCamera2HardwareInterface::take_picture,
- cancel_picture: QCamera2HardwareInterface::cancel_picture,
+ .take_picture = QCamera2HardwareInterface::take_picture,
+ .cancel_picture = QCamera2HardwareInterface::cancel_picture,
- set_parameters: QCamera2HardwareInterface::set_parameters,
- get_parameters: QCamera2HardwareInterface::get_parameters,
- put_parameters: QCamera2HardwareInterface::put_parameters,
- send_command: QCamera2HardwareInterface::send_command,
+ .set_parameters = QCamera2HardwareInterface::set_parameters,
+ .get_parameters = QCamera2HardwareInterface::get_parameters,
+ .put_parameters = QCamera2HardwareInterface::put_parameters,
+ .send_command = QCamera2HardwareInterface::send_command,
- release: QCamera2HardwareInterface::release,
- dump: QCamera2HardwareInterface::dump,
+ .release = QCamera2HardwareInterface::release,
+ .dump = QCamera2HardwareInterface::dump,
};
/*===========================================================================
diff --git a/camera/QCamera2/HAL/QCamera2Hal.cpp b/camera/QCamera2/HAL/QCamera2Hal.cpp
index cfae8e5..685fa96 100644
--- a/camera/QCamera2/HAL/QCamera2Hal.cpp
+++ b/camera/QCamera2/HAL/QCamera2Hal.cpp
@@ -30,23 +30,23 @@
#include "QCamera2Factory.h"
static hw_module_t camera_common = {
- tag: HARDWARE_MODULE_TAG,
- module_api_version: CAMERA_MODULE_API_VERSION_1_0,
- hal_api_version: HARDWARE_HAL_API_VERSION,
- id: CAMERA_HARDWARE_MODULE_ID,
- name: "QCamera Module",
- author: "Qualcomm Innovation Center Inc",
- methods: &qcamera::QCamera2Factory::mModuleMethods,
- dso: NULL,
- reserved: {0},
+ .tag = HARDWARE_MODULE_TAG,
+ .module_api_version = CAMERA_MODULE_API_VERSION_1_0,
+ .hal_api_version = HARDWARE_HAL_API_VERSION,
+ .id = CAMERA_HARDWARE_MODULE_ID,
+ .name = "QCamera Module",
+ .author = "Qualcomm Innovation Center Inc",
+ .methods = &qcamera::QCamera2Factory::mModuleMethods,
+ .dso = NULL,
+ .reserved = {0},
};
camera_module_t HAL_MODULE_INFO_SYM = {
- common: camera_common,
- get_number_of_cameras: qcamera::QCamera2Factory::get_number_of_cameras,
- get_camera_info: qcamera::QCamera2Factory::get_camera_info,
- set_callbacks: NULL,
- get_vendor_tag_ops: NULL,
- open_legacy: NULL,
- reserved: {0}
+ .common = camera_common,
+ .get_number_of_cameras = qcamera::QCamera2Factory::get_number_of_cameras,
+ .get_camera_info = qcamera::QCamera2Factory::get_camera_info,
+ .set_callbacks = NULL,
+ .get_vendor_tag_ops = NULL,
+ .open_legacy = NULL,
+ .reserved = {0}
};
diff --git a/camera/QCamera2/HAL3/Android.mk b/camera/QCamera2/HAL3/Android.mk
index d233fa0..1688267 100644
--- a/camera/QCamera2/HAL3/Android.mk
+++ b/camera/QCamera2/HAL3/Android.mk
@@ -2,6 +2,10 @@
include $(CLEAR_VARS)
+# QCamera3Factory.cpp has unused parameters.
+# QCamera3Channel.cpp compares array 'str' to a null pointer.
+LOCAL_CLANG_CFLAGS += -Wno-unused-parameter -Wno-tautological-pointer-compare
+
LOCAL_SRC_FILES := \
QCamera3Factory.cpp \
QCamera3Hal.cpp \
diff --git a/camera/QCamera2/HAL3/QCamera3Channel.cpp b/camera/QCamera2/HAL3/QCamera3Channel.cpp
index bbecbf4..4dc5a3b 100644
--- a/camera/QCamera2/HAL3/QCamera3Channel.cpp
+++ b/camera/QCamera2/HAL3/QCamera3Channel.cpp
@@ -49,8 +49,6 @@
namespace qcamera {
static const char ExifAsciiPrefix[] =
{ 0x41, 0x53, 0x43, 0x49, 0x49, 0x0, 0x0, 0x0 }; // "ASCII\0\0\0"
-static const char ExifUndefinedPrefix[] =
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; // "\0\0\0\0\0\0\0\0"
#define EXIF_ASCII_PREFIX_SIZE 8 //(sizeof(ExifAsciiPrefix))
#define FOCAL_LENGTH_DECIMAL_PRECISION 1000
diff --git a/camera/QCamera2/HAL3/QCamera3Factory.cpp b/camera/QCamera2/HAL3/QCamera3Factory.cpp
index 65fe67b..7823cfb 100644
--- a/camera/QCamera2/HAL3/QCamera3Factory.cpp
+++ b/camera/QCamera2/HAL3/QCamera3Factory.cpp
@@ -281,7 +281,7 @@
}
struct hw_module_methods_t QCamera3Factory::mModuleMethods = {
- open: QCamera3Factory::camera_device_open,
+ .open = QCamera3Factory::camera_device_open,
};
}; // namespace qcamera
diff --git a/camera/QCamera2/HAL3/QCamera3HWI.cpp b/camera/QCamera2/HAL3/QCamera3HWI.cpp
index c04a00e..7277dca 100644
--- a/camera/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/camera/QCamera2/HAL3/QCamera3HWI.cpp
@@ -197,15 +197,15 @@
/* Custom tag definitions */
camera3_device_ops_t QCamera3HardwareInterface::mCameraOps = {
- initialize: QCamera3HardwareInterface::initialize,
- configure_streams: QCamera3HardwareInterface::configure_streams,
- register_stream_buffers: NULL,
- construct_default_request_settings: QCamera3HardwareInterface::construct_default_request_settings,
- process_capture_request: QCamera3HardwareInterface::process_capture_request,
- get_metadata_vendor_tag_ops: NULL,
- dump: QCamera3HardwareInterface::dump,
- flush: QCamera3HardwareInterface::flush,
- reserved: {0},
+ .initialize = QCamera3HardwareInterface::initialize,
+ .configure_streams = QCamera3HardwareInterface::configure_streams,
+ .register_stream_buffers = NULL,
+ .construct_default_request_settings = QCamera3HardwareInterface::construct_default_request_settings,
+ .process_capture_request = QCamera3HardwareInterface::process_capture_request,
+ .get_metadata_vendor_tag_ops = NULL,
+ .dump = QCamera3HardwareInterface::dump,
+ .flush = QCamera3HardwareInterface::flush,
+ .reserved = {0},
};
int QCamera3HardwareInterface::kMaxInFlight = 5;
@@ -501,7 +501,6 @@
camera3_stream_configuration_t *streamList)
{
int rc = NO_ERROR;
- int32_t available_processed_sizes[MAX_SIZES_CNT * 2];
/*
* Loop through all streams requested in configuration
@@ -1133,7 +1132,7 @@
int64_t QCamera3HardwareInterface::getMinFrameDuration(const camera3_capture_request_t *request)
{
bool hasJpegStream = false;
- bool hasRawStream = false;
+ bool hasRawStream __unused = false;
for (uint32_t i = 0; i < request->num_output_buffers; i ++) {
const camera3_stream_t *stream = request->output_buffers[i].stream;
if (stream->format == HAL_PIXEL_FORMAT_BLOB)
@@ -5560,8 +5559,6 @@
char gps_methods[GPS_PROCESSING_METHOD_SIZE];
const char *gps_methods_src = (const char *)
frame_settings.find(ANDROID_JPEG_GPS_PROCESSING_METHOD).data.u8;
- uint32_t count = frame_settings.find(
- ANDROID_JPEG_GPS_PROCESSING_METHOD).count;
memset(gps_methods, 0, sizeof(gps_methods));
strncpy(gps_methods, gps_methods_src, sizeof(gps_methods));
rc = AddSetMetaEntryToBatch(hal_metadata, CAM_INTF_META_JPEG_GPS_PROC_METHODS, sizeof(gps_methods), gps_methods);
diff --git a/camera/QCamera2/HAL3/QCamera3Hal.cpp b/camera/QCamera2/HAL3/QCamera3Hal.cpp
index 673dc62..4158eca 100644
--- a/camera/QCamera2/HAL3/QCamera3Hal.cpp
+++ b/camera/QCamera2/HAL3/QCamera3Hal.cpp
@@ -31,23 +31,23 @@
#include "QCamera3VendorTags.h"
static hw_module_t camera_common = {
- tag: HARDWARE_MODULE_TAG,
- module_api_version: CAMERA_MODULE_API_VERSION_2_3,
- hal_api_version: HARDWARE_HAL_API_VERSION,
- id: CAMERA_HARDWARE_MODULE_ID,
- name: "QCamera Module",
- author: "Qualcomm Innovation Center Inc",
- methods: &qcamera::QCamera3Factory::mModuleMethods,
- dso: NULL,
- reserved: {0},
+ .tag = HARDWARE_MODULE_TAG,
+ .module_api_version = CAMERA_MODULE_API_VERSION_2_3,
+ .hal_api_version = HARDWARE_HAL_API_VERSION,
+ .id = CAMERA_HARDWARE_MODULE_ID,
+ .name = "QCamera Module",
+ .author = "Qualcomm Innovation Center Inc",
+ .methods = &qcamera::QCamera3Factory::mModuleMethods,
+ .dso = NULL,
+ .reserved = {0},
};
camera_module_t HAL_MODULE_INFO_SYM = {
- common: camera_common,
- get_number_of_cameras: qcamera::QCamera3Factory::get_number_of_cameras,
- get_camera_info: qcamera::QCamera3Factory::get_camera_info,
- set_callbacks: qcamera::QCamera3Factory::set_callbacks,
- get_vendor_tag_ops: qcamera::QCamera3VendorTags::get_vendor_tag_ops,
- open_legacy: qcamera::QCamera3Factory::open_legacy,
- reserved: {0}
+ .common = camera_common,
+ .get_number_of_cameras = qcamera::QCamera3Factory::get_number_of_cameras,
+ .get_camera_info = qcamera::QCamera3Factory::get_camera_info,
+ .set_callbacks = qcamera::QCamera3Factory::set_callbacks,
+ .get_vendor_tag_ops = qcamera::QCamera3VendorTags::get_vendor_tag_ops,
+ .open_legacy = qcamera::QCamera3Factory::open_legacy,
+ .reserved = {0}
};
diff --git a/camera/QCamera2/HAL3/QCamera3VendorTags.cpp b/camera/QCamera2/HAL3/QCamera3VendorTags.cpp
index 3ded922..b03c235 100644
--- a/camera/QCamera2/HAL3/QCamera3VendorTags.cpp
+++ b/camera/QCamera2/HAL3/QCamera3VendorTags.cpp
@@ -39,8 +39,6 @@
namespace qcamera {
-const int QCAMERA3_SECTION_COUNT = QCAMERA3_SECTIONS_END - VENDOR_SECTION;
-
enum qcamera3_ext_tags qcamera3_ext3_section_bounds[QCAMERA3_SECTIONS_END -
VENDOR_SECTION] = {
QCAMERA3_PRIVATEDATA_END,
diff --git a/camera/QCamera2/stack/common/cam_list.h b/camera/QCamera2/stack/common/cam_list.h
index 36379af..24375da 100755
--- a/camera/QCamera2/stack/common/cam_list.h
+++ b/camera/QCamera2/stack/common/cam_list.h
@@ -36,7 +36,7 @@
#include <stddef.h>
#define member_of(ptr, type, member) ({ \
- const typeof(((type *)0)->member) *__mptr = (ptr); \
+ const __typeof__(((type *)0)->member) *__mptr = (ptr); \
(type *)((char *)__mptr - offsetof(type,member));})
struct cam_list {
diff --git a/camera/QCamera2/stack/common/cam_queue.h b/camera/QCamera2/stack/common/cam_queue.h
index a23c622..b6a3c3f 100755
--- a/camera/QCamera2/stack/common/cam_queue.h
+++ b/camera/QCamera2/stack/common/cam_queue.h
@@ -29,6 +29,8 @@
#include "cam_list.h"
+#include <stdlib.h>
+
typedef struct {
struct cam_list list;
void *data;
diff --git a/camera/QCamera2/stack/common/cam_types.h b/camera/QCamera2/stack/common/cam_types.h
index 9c3194e..2bdb111 100644
--- a/camera/QCamera2/stack/common/cam_types.h
+++ b/camera/QCamera2/stack/common/cam_types.h
@@ -31,6 +31,7 @@
#define __QCAMERA_TYPES_H__
#include <stdint.h>
+#include <string.h>
#include <pthread.h>
#include <inttypes.h>
#include <media/msmb_camera.h>
diff --git a/camera/QCamera2/stack/mm-camera-interface/Android.mk b/camera/QCamera2/stack/mm-camera-interface/Android.mk
index f3a515b..f60cd10 100755
--- a/camera/QCamera2/stack/mm-camera-interface/Android.mk
+++ b/camera/QCamera2/stack/mm-camera-interface/Android.mk
@@ -35,7 +35,6 @@
LOCAL_SRC_FILES := $(MM_CAM_FILES)
LOCAL_MODULE := libmmcamera_interface
-LOCAL_PRELINK_MODULE := false
LOCAL_SHARED_LIBRARIES := libdl libcutils liblog
LOCAL_MODULE_TAGS := optional
diff --git a/camera/QCamera2/stack/mm-camera-interface/src/mm_camera_thread.c b/camera/QCamera2/stack/mm-camera-interface/src/mm_camera_thread.c
index 0e6c774..d68735a 100644
--- a/camera/QCamera2/stack/mm-camera-interface/src/mm_camera_thread.c
+++ b/camera/QCamera2/stack/mm-camera-interface/src/mm_camera_thread.c
@@ -213,6 +213,8 @@
read_len = read(poll_cb->pfds[0], &cmd_evt, sizeof(cmd_evt));
CDBG("%s: read_fd = %d, read_len = %d, expect_len = %d cmd = %d",
__func__, poll_cb->pfds[0], (int)read_len, (int)sizeof(cmd_evt), cmd_evt.cmd);
+ // read_len is unused if not debugging.
+ (void)read_len;
switch (cmd_evt.cmd) {
case MM_CAMERA_PIPE_CMD_POLL_ENTRIES_UPDATED:
case MM_CAMERA_PIPE_CMD_POLL_ENTRIES_UPDATED_ASYNC:
diff --git a/camera/QCamera2/stack/mm-camera-test/src/mm_qcamera_app.c b/camera/QCamera2/stack/mm-camera-test/src/mm_qcamera_app.c
index 80398e4..aa3571a 100644
--- a/camera/QCamera2/stack/mm-camera-test/src/mm_qcamera_app.c
+++ b/camera/QCamera2/stack/mm-camera-test/src/mm_qcamera_app.c
@@ -753,7 +753,9 @@
int c;
int rc;
int run_tc = 0;
+#if 0
int run_dual_tc = 0;
+#endif
mm_camera_app_t my_cam_app;
CDBG("\nCamera Test Application\n");
@@ -764,7 +766,9 @@
run_tc = 1;
break;
case 'd':
+#if 0
run_dual_tc = 1;
+#endif
break;
case 'h':
default:
diff --git a/camera/QCamera2/stack/mm-jpeg-interface/Android.mk b/camera/QCamera2/stack/mm-jpeg-interface/Android.mk
index ede4148..ae1ab73 100644
--- a/camera/QCamera2/stack/mm-jpeg-interface/Android.mk
+++ b/camera/QCamera2/stack/mm-jpeg-interface/Android.mk
@@ -23,7 +23,6 @@
src/mm_jpeg_interface.c
LOCAL_MODULE := libmmjpeg_interface
-LOCAL_PRELINK_MODULE := false
LOCAL_SHARED_LIBRARIES := libdl libcutils liblog libqomx_core
LOCAL_MODULE_TAGS := optional
diff --git a/camera/QCamera2/stack/mm-jpeg-interface/test/Android.mk b/camera/QCamera2/stack/mm-jpeg-interface/test/Android.mk
index 03dde01..6a5df29 100644
--- a/camera/QCamera2/stack/mm-jpeg-interface/test/Android.mk
+++ b/camera/QCamera2/stack/mm-jpeg-interface/test/Android.mk
@@ -29,7 +29,6 @@
LOCAL_SRC_FILES += mm_jpeg_test.c
LOCAL_MODULE := mm-jpeg-interface-test
-LOCAL_PRELINK_MODULE := false
LOCAL_SHARED_LIBRARIES := liblog libcutils libdl libmmjpeg_interface
include $(BUILD_EXECUTABLE)
diff --git a/camera/QCamera2/stack/mm-jpeg-interface/test/mm_jpeg_ionbuf.h b/camera/QCamera2/stack/mm-jpeg-interface/test/mm_jpeg_ionbuf.h
index d25156b..318d1f1 100644
--- a/camera/QCamera2/stack/mm-jpeg-interface/test/mm_jpeg_ionbuf.h
+++ b/camera/QCamera2/stack/mm-jpeg-interface/test/mm_jpeg_ionbuf.h
@@ -32,6 +32,7 @@
#include <stdio.h>
+#include <string.h>
#include <linux/msm_ion.h>
#include <sys/mman.h>
#include <unistd.h>
diff --git a/camera/QCamera2/stack/mm-jpeg-interface/test/mm_jpeg_test.c b/camera/QCamera2/stack/mm-jpeg-interface/test/mm_jpeg_test.c
index 8ffbb6b..d23f7ee 100644
--- a/camera/QCamera2/stack/mm-jpeg-interface/test/mm_jpeg_test.c
+++ b/camera/QCamera2/stack/mm-jpeg-interface/test/mm_jpeg_test.c
@@ -30,6 +30,7 @@
#include "mm_jpeg_interface.h"
#include "mm_jpeg_ionbuf.h"
#include <sys/time.h>
+#include <stdlib.h>
/** DUMP_TO_FILE:
* @filename: file name
@@ -39,10 +40,9 @@
* dump the image to the file
**/
#define DUMP_TO_FILE(filename, p_addr, len) ({ \
- int rc = 0; \
FILE *fp = fopen(filename, "w+"); \
if (fp) { \
- rc = fwrite(p_addr, 1, len, fp); \
+ fwrite(p_addr, 1, len, fp); \
fclose(fp); \
} else { \
CDBG_ERROR("%s:%d] cannot dump image", __func__, __LINE__); \
@@ -139,7 +139,6 @@
int mm_jpeg_test_read(mm_jpeg_intf_test_t *p_obj)
{
- int rc = 0;
FILE *fp = NULL;
int file_size = 0;
fp = fopen(p_obj->filename, "rb");
diff --git a/camera/QCamera2/util/QCameraCmdThread.cpp b/camera/QCamera2/util/QCameraCmdThread.cpp
index c5be4ad..4b24649 100644
--- a/camera/QCamera2/util/QCameraCmdThread.cpp
+++ b/camera/QCamera2/util/QCameraCmdThread.cpp
@@ -29,6 +29,7 @@
#include <utils/Errors.h>
#include <utils/Log.h>
+#include <malloc.h>
#include <sys/prctl.h>
#include "QCameraCmdThread.h"
diff --git a/camera/QCamera2/util/QCameraQueue.cpp b/camera/QCamera2/util/QCameraQueue.cpp
index 61340e5..d254169 100644
--- a/camera/QCamera2/util/QCameraQueue.cpp
+++ b/camera/QCamera2/util/QCameraQueue.cpp
@@ -29,6 +29,8 @@
#include <utils/Errors.h>
#include <utils/Log.h>
+#include <malloc.h>
+#include <string.h>
#include "QCameraQueue.h"
namespace qcamera {
diff --git a/camera/mm-image-codec/qomx_core/Android.mk b/camera/mm-image-codec/qomx_core/Android.mk
index ad414c9..28bea80 100644
--- a/camera/mm-image-codec/qomx_core/Android.mk
+++ b/camera/mm-image-codec/qomx_core/Android.mk
@@ -21,7 +21,6 @@
LOCAL_SRC_FILES := qomx_core.c
LOCAL_MODULE := libqomx_core
-LOCAL_PRELINK_MODULE := false
LOCAL_SHARED_LIBRARIES := libcutils libdl
include $(BUILD_SHARED_LIBRARY)
diff --git a/camera/mm-image-codec/qomx_core/qomx_core.c b/camera/mm-image-codec/qomx_core/qomx_core.c
index 3fbd3e9..19acef4 100644
--- a/camera/mm-image-codec/qomx_core/qomx_core.c
+++ b/camera/mm-image-codec/qomx_core/qomx_core.c
@@ -159,7 +159,6 @@
{
OMX_ERRORTYPE rc = OMX_ErrorNone;
int comp_idx = 0, inst_idx = 0;
- char libName[BUFF_SIZE] = {0};
void *p_obj = NULL;
OMX_COMPONENTTYPE *p_comp = NULL;
omx_core_component_t *p_core_comp = NULL;
diff --git a/camera/mm-image-codec/qomx_core/qomx_core.h b/camera/mm-image-codec/qomx_core/qomx_core.h
index f59f7cf..c5e792b 100644
--- a/camera/mm-image-codec/qomx_core/qomx_core.h
+++ b/camera/mm-image-codec/qomx_core/qomx_core.h
@@ -29,6 +29,7 @@
#define QOMX_CORE_H
#include <stdio.h>
+#include <string.h>
#include <unistd.h>
#include <malloc.h>
#include <pthread.h>
diff --git a/device.mk b/device.mk
index 41486f8..a7b6d3d 100644
--- a/device.mk
+++ b/device.mk
@@ -113,8 +113,6 @@
PRODUCT_COPY_FILES += \
device/lge/hammerhead/spn-conf.xml:system/etc/spn-conf.xml
-PRODUCT_TAGS += dalvik.gc.type-precise
-
PRODUCT_AAPT_CONFIG := normal
PRODUCT_AAPT_PREF_CONFIG := xxhdpi
diff --git a/init.hammerhead.rc b/init.hammerhead.rc
index 36e1ec3..6966517 100644
--- a/init.hammerhead.rc
+++ b/init.hammerhead.rc
@@ -122,12 +122,6 @@
#venus
write /sys/bus/msm_subsys/devices/subsys2/restart_level "related"
- # Subsytem Ramdump collection
- mkdir /data/tombstones 0777 system system
- mkdir /data/tombstones/ramdump 0777 system system
- restorecon_recursive /data/tombstones
- write /sys/module/subsystem_restart/parameters/enable_ramdumps 1
-
# leds
chown system system /sys/class/leds/red/on_off_ms
chown system system /sys/class/leds/green/on_off_ms
@@ -140,6 +134,10 @@
mkdir /data/media 0770 media_rw media_rw
+ # Subsytem Ramdump collection
+ mkdir /data/tombstones/ramdump 0777 system system
+ write /sys/module/subsystem_restart/parameters/enable_ramdumps 1
+
# NFC: create data/nfc for nv storage
mkdir /data/nfc 0770 nfc nfc
mkdir /data/nfc/param 0770 nfc nfc
@@ -199,6 +197,7 @@
write /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq 960000
write /sys/devices/system/cpu/cpufreq/ondemand/sync_freq 960000
write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load 80
+ restorecon_recursive /sys/devices/system/cpu/cpufreq/ondemand
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 300000
write /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 300000
write /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq 300000
diff --git a/libsensors/Android.mk b/libsensors/Android.mk
index efb2ba3..5397d3b 100644
--- a/libsensors/Android.mk
+++ b/libsensors/Android.mk
@@ -24,7 +24,6 @@
LOCAL_MODULE := sensors.hammerhead
-LOCAL_PRELINK_MODULE := false
LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
LOCAL_MODULE_TAGS := optional
diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts
index 6753766..be1b318 100644
--- a/sepolicy/file_contexts
+++ b/sepolicy/file_contexts
@@ -31,6 +31,11 @@
# Block labeling
/dev/block/mmcblk0 u:object_r:root_block_device:s0
/dev/block/mmcblk0rpmb u:object_r:drm_block_device:s0
+/dev/block/platform/msm_sdcc\.1/by-name/system u:object_r:system_block_device:s0
+/dev/block/platform/msm_sdcc\.1/by-name/recovery u:object_r:recovery_block_device:s0
+/dev/block/platform/msm_sdcc\.1/by-name/userdata u:object_r:userdata_block_device:s0
+/dev/block/platform/msm_sdcc\.1/by-name/metadata u:object_r:metadata_block_device:s0
+/dev/block/platform/msm_sdcc\.1/by-name/cache u:object_r:cache_block_device:s0
/dev/block/platform/msm_sdcc\.1/by-name/modemst1 u:object_r:modem_block_device:s0
/dev/block/platform/msm_sdcc\.1/by-name/modemst2 u:object_r:modem_block_device:s0
/dev/block/platform/msm_sdcc\.1/by-name/fsc u:object_r:modem_block_device:s0
diff --git a/sepolicy/init.te b/sepolicy/init.te
new file mode 100644
index 0000000..14f1b92
--- /dev/null
+++ b/sepolicy/init.te
@@ -0,0 +1 @@
+allow init diag_device:chr_file unlink;
diff --git a/sepolicy/netmgrd.te b/sepolicy/netmgrd.te
index 39864f6..550e949 100644
--- a/sepolicy/netmgrd.te
+++ b/sepolicy/netmgrd.te
@@ -35,4 +35,5 @@
allow netmgrd net_radio_prop:property_service set;
# Access to /proc/sys/net/*
-allow netmgrd proc_net:file write;
+allow netmgrd proc_net:file rw_file_perms;
+allow netmgrd proc_net:dir r_dir_perms;
diff --git a/sepolicy/time.te b/sepolicy/time.te
index a3a962b..e7de3cf 100644
--- a/sepolicy/time.te
+++ b/sepolicy/time.te
@@ -1,4 +1,4 @@
-type time, domain;
+type time, domain, mlstrustedsubject;
type time_exec, exec_type, file_type;
# Started by init