Merge "mmc: core: Fix power class config for HS400"
diff --git a/drivers/media/platform/msm/vidc/msm_vdec.c b/drivers/media/platform/msm/vidc/msm_vdec.c
index bff86a6..d315951 100644
--- a/drivers/media/platform/msm/vidc/msm_vdec.c
+++ b/drivers/media/platform/msm/vidc/msm_vdec.c
@@ -23,6 +23,7 @@
#define MIN_NUM_OUTPUT_BUFFERS 4
#define MAX_NUM_OUTPUT_BUFFERS VIDEO_MAX_FRAME
#define DEFAULT_VIDEO_CONCEAL_COLOR_BLACK 0x8010
+#define MB_SIZE_IN_PIXEL (16 * 16)
#define TZ_DYNAMIC_BUFFER_FEATURE_ID 12
#define TZ_FEATURE_VERSION(major, minor, patch) \
@@ -327,9 +328,9 @@
}
static u32 get_frame_size_compressed(int plane,
- u32 height, u32 width)
+ u32 max_mbs_per_frame, u32 size_per_mb)
{
- return (width * height * 3/2)/4;
+ return (max_mbs_per_frame * size_per_mb * 3/2)/2;
}
struct msm_vidc_format vdec_formats[] = {
@@ -742,10 +743,12 @@
if (plane_sizes[i] == 0) {
f->fmt.pix_mp.plane_fmt[i].sizeimage =
fmt->get_frame_size(i,
- inst->capability.height.max,
- inst->capability.width.max);
+ inst->capability.
+ mbs_per_frame.max,
+ MB_SIZE_IN_PIXEL);
plane_sizes[i] =
- f->fmt.pix_mp.plane_fmt[i].sizeimage;
+ f->fmt.pix_mp.plane_fmt[i].
+ sizeimage;
} else
f->fmt.pix_mp.plane_fmt[i].sizeimage =
plane_sizes[i];
@@ -1014,8 +1017,7 @@
msm_comm_try_set_prop(inst, HAL_PARAM_FRAME_SIZE, &frame_sz);
max_input_size = fmt->get_frame_size(0,
- inst->capability.height.max,
- inst->capability.width.max);
+ inst->capability.mbs_per_frame.max, MB_SIZE_IN_PIXEL);
if (f->fmt.pix_mp.plane_fmt[0].sizeimage > max_input_size ||
f->fmt.pix_mp.plane_fmt[0].sizeimage == 0) {
@@ -1116,8 +1118,8 @@
*num_buffers = MIN_NUM_OUTPUT_BUFFERS;
for (i = 0; i < *num_planes; i++) {
sizes[i] = inst->fmts[OUTPUT_PORT]->get_frame_size(
- i, inst->capability.height.max,
- inst->capability.width.max);
+ i, inst->capability.mbs_per_frame.max,
+ MB_SIZE_IN_PIXEL);
}
property_id = HAL_PARAM_BUFFER_COUNT_ACTUAL;
new_buf_count.buffer_type = HAL_BUFFER_INPUT;
diff --git a/drivers/media/platform/msm/vidc/msm_vidc_common.c b/drivers/media/platform/msm/vidc/msm_vidc_common.c
index 8176b06..5cf93ef 100755
--- a/drivers/media/platform/msm/vidc/msm_vidc_common.c
+++ b/drivers/media/platform/msm/vidc/msm_vidc_common.c
@@ -491,6 +491,8 @@
inst->capability.hier_p = session_init_done->hier_p;
inst->capability.pixelprocess_capabilities =
call_hfi_op(hdev, get_core_capabilities);
+ inst->capability.mbs_per_frame =
+ session_init_done->mbs_per_frame;
inst->capability.capability_set = true;
inst->capability.buffer_mode[CAPTURE_PORT] =
session_init_done->alloc_mode_out;
diff --git a/drivers/media/platform/msm/vidc/msm_vidc_internal.h b/drivers/media/platform/msm/vidc/msm_vidc_internal.h
index 1677e57..a85f930 100644
--- a/drivers/media/platform/msm/vidc/msm_vidc_internal.h
+++ b/drivers/media/platform/msm/vidc/msm_vidc_internal.h
@@ -193,6 +193,7 @@
struct hal_capability_supported scale_y;
struct hal_capability_supported ltr_count;
struct hal_capability_supported hier_p;
+ struct hal_capability_supported mbs_per_frame;
u32 capability_set;
enum buffer_mode_type buffer_mode[MAX_PORT_NUM];
};
diff --git a/sound/soc/codecs/wcd9xxx-mbhc.c b/sound/soc/codecs/wcd9xxx-mbhc.c
index a49866c..09721e1 100644
--- a/sound/soc/codecs/wcd9xxx-mbhc.c
+++ b/sound/soc/codecs/wcd9xxx-mbhc.c
@@ -2290,7 +2290,8 @@
* source to VDDIO
*/
if (mbhc->event_state &
- (1 << MBHC_EVENT_PA_HPHL | 1 << MBHC_EVENT_PA_HPHR))
+ (1 << MBHC_EVENT_PA_HPHL | 1 << MBHC_EVENT_PA_HPHR |
+ 1 << MBHC_EVENT_PRE_TX_1_3_ON))
__wcd9xxx_switch_micbias(mbhc, 1, false,
false);
wcd9xxx_start_hs_polling(mbhc);