aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video
diff options
context:
space:
mode:
authorDaniel Hillenbrand <daniel.hillenbrand@codeworkx.de>2012-07-21 22:53:57 +0200
committerDaniel Hillenbrand <daniel.hillenbrand@codeworkx.de>2012-07-21 22:53:57 +0200
commit8305c2adc8cfd5fbe18819401ec7cb117eaee9f6 (patch)
tree7e541b5db61a34160d2d9675b96e81fa99af4e78 /drivers/media/video
parentcfeca268936a008ae5a22abdea42f90262f89646 (diff)
downloadkernel_samsung_smdk4412-8305c2adc8cfd5fbe18819401ec7cb117eaee9f6.zip
kernel_samsung_smdk4412-8305c2adc8cfd5fbe18819401ec7cb117eaee9f6.tar.gz
kernel_samsung_smdk4412-8305c2adc8cfd5fbe18819401ec7cb117eaee9f6.tar.bz2
samsung opensource update 2
Diffstat (limited to 'drivers/media/video')
-rw-r--r--drivers/media/video/mhl/sii9234.c22
-rw-r--r--drivers/media/video/s5c73m3.c26
2 files changed, 44 insertions, 4 deletions
diff --git a/drivers/media/video/mhl/sii9234.c b/drivers/media/video/mhl/sii9234.c
index c3fc95b..8ca25c6 100644
--- a/drivers/media/video/mhl/sii9234.c
+++ b/drivers/media/video/mhl/sii9234.c
@@ -1655,10 +1655,32 @@ void sii9234_process_msc_work(struct work_struct *work)
}
break;
case CBUS_WRITE_STAT:
+ pr_debug("sii9234: cbus_command_response"
+ "CBUS_WRITE_STAT\n");
+ cbus_read_reg(sii9234, CBUS_MSC_FIRST_DATA_IN_REG,
+ &p_msc_pkt->data_1);
break;
case CBUS_SET_INT:
+ if ((p_msc_pkt->offset == MHL_RCHANGE_INT) &&
+ (p_msc_pkt->data_1 == MHL_INT_DSCR_CHG)) {
+ /* Write burst final step...
+ Req->GRT->Write->DSCR */
+ pr_debug("sii9234: MHL_RCHANGE_INT &"
+ "MHL_INT_DSCR_CHG\n");
+ } else if (p_msc_pkt->offset == MHL_RCHANGE_INT &&
+ p_msc_pkt->data_1 == MHL_INT_DCAP_CHG) {
+ sii9234_enqueue_msc_work(sii9234,
+ CBUS_WRITE_STAT,
+ MHL_STATUS_REG_CONNECTED_RDY,
+ MHL_STATUS_DCAP_READY, 0x0);
+ }
break;
case CBUS_WRITE_BURST:
+ pr_debug("sii9234: cbus_command_response"
+ "MHL_WRITE_BURST\n");
+ p_msc_pkt->command = CBUS_IDLE;
+ sii9234_enqueue_msc_work(sii9234, CBUS_SET_INT,
+ MHL_RCHANGE_INT, MHL_INT_DSCR_CHG, 0x0);
break;
case CBUS_READ_DEVCAP:
ret = cbus_read_reg(sii9234,
diff --git a/drivers/media/video/s5c73m3.c b/drivers/media/video/s5c73m3.c
index 07fab10..ea07a34 100644
--- a/drivers/media/video/s5c73m3.c
+++ b/drivers/media/video/s5c73m3.c
@@ -802,6 +802,7 @@ static int s5c73m3_get_phone_fw_version(struct v4l2_subdev *sd)
int err = 0;
int retVal = 0;
int fw_requested = 1;
+ int copied_fw_binary = 0;
if (state->sensor_fw[0] == 'O') {
sprintf(fw_path, "SlimISP_G%c.bin",
@@ -895,19 +896,25 @@ request_fw:
CHECK_ERR(retVal);
retVal = s5c73m3_get_sensor_fw_binary(sd);
CHECK_ERR(retVal);
+ copied_fw_binary = 1;
goto request_fw;
}
+ }
+ if (copied_fw_binary) {
memcpy(state->phone_fw,
- camfw_info[state->fw_index].ver,
+ state->sensor_fw,
S5C73M3_FW_VER_LEN);
- }
+ state->phone_fw[S5C73M3_FW_VER_LEN+1] = ' ';
+ } else {
memcpy(state->phone_fw,
camfw_info[state->fw_index].ver,
S5C73M3_FW_VER_LEN);
state->phone_fw[S5C73M3_FW_VER_LEN+1] = ' ';
-
- memcpy(sysfs_phone_fw, state->phone_fw, sizeof(state->phone_fw));
+ }
+ memcpy(sysfs_phone_fw,
+ state->phone_fw,
+ sizeof(state->phone_fw));
cam_dbg("Phone_version = %s(index=%d)\n",
state->phone_fw, state->fw_index);
@@ -1083,6 +1090,17 @@ static int s5c73m3_check_fw(struct v4l2_subdev *sd, int download)
#else
err = s5c73m3_get_sensor_fw_binary(sd);
CHECK_ERR(err);
+
+ memcpy(state->phone_fw,
+ state->sensor_fw,
+ S5C73M3_FW_VER_LEN);
+ state->phone_fw[S5C73M3_FW_VER_LEN+1] = ' ';
+
+ memcpy(sysfs_phone_fw,
+ state->phone_fw,
+ sizeof(state->phone_fw));
+ cam_dbg("Changed to Phone_version = %s\n",
+ state->phone_fw);
#endif
}