Revert "msm: camera: YV12 video support"
This reverts commit 66882a5046143601429632a0b589d9ffeeb3c668.
This change will be submitted later.
Signed-off-by: Kiran Kumar H N <hurlisal@codeaurora.org>
diff --git a/arch/arm/mach-msm/include/mach/camera.h b/arch/arm/mach-msm/include/mach/camera.h
index 490a527..b49300d 100644
--- a/arch/arm/mach-msm/include/mach/camera.h
+++ b/arch/arm/mach-msm/include/mach/camera.h
@@ -149,12 +149,8 @@
};
struct msm_vpe_phy_info {
uint32_t sbuf_phy;
- uint32_t planar0_off;
- uint32_t planar1_off;
- uint32_t planar2_off;
- uint32_t p0_phy;
- uint32_t p1_phy;
- uint32_t p2_phy;
+ uint32_t y_phy;
+ uint32_t cbcr_phy;
uint8_t output_id; /* VFE31_OUTPUT_MODE_PT/S/V */
uint32_t frame_id;
};
@@ -201,12 +197,8 @@
struct msm_vfe_phy_info {
uint32_t sbuf_phy;
- uint32_t planar0_off;
- uint32_t planar1_off;
- uint32_t planar2_off;
- uint32_t p0_phy;
- uint32_t p1_phy;
- uint32_t p2_phy;
+ uint32_t y_phy;
+ uint32_t cbcr_phy;
uint8_t output_id; /* VFE31_OUTPUT_MODE_PT/S/V */
uint32_t frame_id;
};
@@ -236,8 +228,8 @@
};
struct msm_vpe_buf_info {
- uint32_t p0_phy;
- uint32_t p1_phy;
+ uint32_t y_phy;
+ uint32_t cbcr_phy;
struct timespec ts;
uint32_t frame_id;
struct video_crop_t vpe_crop;
@@ -296,7 +288,7 @@
struct msm_camvpe_fn {
int (*vpe_reg)(struct msm_vpe_callback *);
int (*vpe_cfg_update) (void *);
- void (*send_frame_to_vpe) (uint32_t planar0_off, uint32_t planar1_off,
+ void (*send_frame_to_vpe) (uint32_t y_phy, uint32_t cbcr_phy,
struct timespec *ts, int output_id);
int (*vpe_config)(struct msm_vpe_cfg_cmd *, void *);
void (*vpe_cfg_offset)(int frame_pack, uint32_t pyaddr,
diff --git a/drivers/media/video/msm/msm_camera.c b/drivers/media/video/msm/msm_camera.c
index 8aac18a..3fddb8e 100644
--- a/drivers/media/video/msm/msm_camera.c
+++ b/drivers/media/video/msm/msm_camera.c
@@ -276,18 +276,16 @@
{
if (info->offset < len &&
info->offset + info->len <= len &&
- info->planar0_off < len &&
- info->planar1_off < len &&
- info->planar2_off < len)
+ info->y_off < len &&
+ info->cbcr_off < len)
return 0;
- pr_err("%s: check failed: off %d len %d plane0 %d plane1 %d plane2 %d (total len %d)\n",
+ pr_err("%s: check failed: off %d len %d y %d cbcr %d (total len %d)\n",
__func__,
info->offset,
info->len,
- info->planar0_off,
- info->planar1_off,
- info->planar2_off,
+ info->y_off,
+ info->cbcr_off,
len);
return -EINVAL;
}
@@ -344,7 +342,7 @@
hlist_add_head(&(region->list), ptype);
spin_unlock_irqrestore(pmem_spinlock, flags);
- pr_info("%s: type %d, paddr 0x%lx, vaddr 0x%lx\n",
+ CDBG("%s: type %d, paddr 0x%lx, vaddr 0x%lx\n",
__func__, info->type, paddr, (unsigned long)info->vaddr);
return 0;
@@ -422,9 +420,8 @@
}
static int msm_pmem_frame_ptov_lookup(struct msm_sync *sync,
- unsigned long p0addr,
- unsigned long p1addr,
- unsigned long p2addr,
+ unsigned long pyaddr,
+ unsigned long pcbcraddr,
struct msm_pmem_info *pmem_info,
int clear_active)
{
@@ -434,9 +431,9 @@
spin_lock_irqsave(&sync->pmem_frame_spinlock, flags);
hlist_for_each_entry_safe(region, node, n, &sync->pmem_frames, list) {
- if (p0addr == (region->paddr + region->info.planar0_off) &&
- p1addr == (region->paddr + region->info.planar1_off) &&
- p2addr == (region->paddr + region->info.planar2_off) &&
+ if (pyaddr == (region->paddr + region->info.y_off) &&
+ pcbcraddr == (region->paddr +
+ region->info.cbcr_off) &&
region->info.active) {
/* offset since we could pass vaddr inside
* a registerd pmem buffer
@@ -450,13 +447,12 @@
}
}
/* After lookup failure, dump all the list entries... */
- pr_err("%s, failed for plane0 addr 0x%lx, plane1 addr 0x%lx plane2 addr 0x%lx\n",
- __func__, p0addr, p1addr, p2addr);
+ pr_err("%s, for pyaddr 0x%lx, pcbcraddr 0x%lx\n",
+ __func__, pyaddr, pcbcraddr);
hlist_for_each_entry_safe(region, node, n, &sync->pmem_frames, list) {
- pr_err("listed p0addr 0x%lx, p1addr 0x%lx, p2addr 0x%lx, active = %d",
- (region->paddr + region->info.planar0_off),
- (region->paddr + region->info.planar1_off),
- (region->paddr + region->info.planar2_off),
+ pr_err("listed pyaddr 0x%lx, pcbcraddr 0x%lx, active = %d",
+ (region->paddr + region->info.y_off),
+ (region->paddr + region->info.cbcr_off),
region->info.active);
}
@@ -465,7 +461,7 @@
}
static int msm_pmem_frame_ptov_lookup2(struct msm_sync *sync,
- unsigned long p0_phy,
+ unsigned long pyaddr,
struct msm_pmem_info *pmem_info,
int clear_active)
{
@@ -475,7 +471,7 @@
spin_lock_irqsave(&sync->pmem_frame_spinlock, flags);
hlist_for_each_entry_safe(region, node, n, &sync->pmem_frames, list) {
- if (p0_phy == (region->paddr + region->info.planar0_off) &&
+ if (pyaddr == (region->paddr + region->info.y_off) &&
region->info.active) {
/* offset since we could pass vaddr inside
* a registerd pmem buffer
@@ -526,8 +522,8 @@
}
static unsigned long msm_pmem_frame_vtop_lookup(struct msm_sync *sync,
- unsigned long buffer, uint32_t p0_off, uint32_t p1_off,
- uint32_t p2_off, int fd, int change_flag)
+ unsigned long buffer,
+ uint32_t yoff, uint32_t cbcroff, int fd, int change_flag)
{
struct msm_pmem_region *region;
struct hlist_node *node, *n;
@@ -537,9 +533,8 @@
hlist_for_each_entry_safe(region,
node, n, &sync->pmem_frames, list) {
if (((unsigned long)(region->info.vaddr) == buffer) &&
- (region->info.planar0_off == p0_off) &&
- (region->info.planar1_off == p1_off) &&
- (region->info.planar2_off == p2_off) &&
+ (region->info.y_off == yoff) &&
+ (region->info.cbcr_off == cbcroff) &&
(region->info.fd == fd) &&
(region->info.active == 0)) {
if (change_flag)
@@ -550,18 +545,17 @@
}
}
/* After lookup failure, dump all the list entries... */
- pr_err("%s, failed for vaddr 0x%lx, p0_off %d p1_off %d\n",
- __func__, buffer, p0_off, p1_off);
+ pr_err("%s, failed for vaddr 0x%lx, yoff %d cbcroff %d\n",
+ __func__, buffer, yoff, cbcroff);
hlist_for_each_entry_safe(region, node, n, &sync->pmem_frames, list) {
- pr_err("%s, failed for vaddr 0x%lx, r_p0 = 0x%x p0_off 0x%x"
- "r_p1 = 0x%x, p1_off 0x%x, r_p2 = 0x%x, p2_off = 0x%x"
- " active = %d\n", __func__, buffer, region->info.planar0_off,
- p0_off, region->info.planar1_off,
- p1_off, region->info.planar2_off, p2_off,
- region->info.active);
+ pr_err("listed vaddr 0x%p, cbcroff %d, active = %d",
+ (region->info.vaddr),
+ (region->info.cbcr_off),
+ region->info.active);
}
spin_unlock_irqrestore(&sync->pmem_frame_spinlock, flags);
+
return 0;
}
@@ -717,37 +711,32 @@
vdata = (struct msm_vfe_resp *)(qcmd->command);
pphy = &vdata->phy;
- CDBG("%s, pphy->p2_phy = 0x%x\n", __func__, pphy->p2_phy);
-
rc = msm_pmem_frame_ptov_lookup(sync,
- pphy->p0_phy,
- pphy->p1_phy,
- pphy->p2_phy,
+ pphy->y_phy,
+ pphy->cbcr_phy,
&pmem_info,
1); /* Clear the active flag */
if (rc < 0) {
- pr_err("%s: cannot get frame, invalid lookup address"
- "plane0 add %x plane1 add %x plane2 add%x\n",
+ pr_err("%s: cannot get frame, invalid lookup address "
+ "y %x cbcr %x\n",
__func__,
- pphy->p0_phy,
- pphy->p0_phy,
- pphy->p0_phy);
+ pphy->y_phy,
+ pphy->cbcr_phy);
goto err;
}
frame->ts = qcmd->ts;
frame->buffer = (unsigned long)pmem_info.vaddr;
- frame->planar0_off = pmem_info.planar0_off;
- frame->planar1_off = pmem_info.planar1_off;
- frame->planar2_off = pmem_info.planar2_off;
+ frame->y_off = pmem_info.y_off;
+ frame->cbcr_off = pmem_info.cbcr_off;
frame->fd = pmem_info.fd;
frame->path = vdata->phy.output_id;
frame->frame_id = vdata->phy.frame_id;
- CDBG("%s: plane0 %x, plane1 %x, plane2 %x,qcmd %x, virt_addr %x\n",
- __func__, pphy->p0_phy, pphy->p1_phy, pphy->p2_phy,
- (int) qcmd, (int) frame->buffer);
+ CDBG("%s: y %x, cbcr %x, qcmd %x, virt_addr %x\n",
+ __func__,
+ pphy->y_phy, pphy->cbcr_phy, (int) qcmd, (int) frame->buffer);
err:
free_qcmd(qcmd);
@@ -1058,8 +1047,8 @@
return -EINVAL;
}
- rc = msm_pmem_frame_ptov_lookup(sync, data->phy.p0_phy,
- data->phy.p1_phy, data->phy.p2_phy, &pinfo,
+ rc = msm_pmem_frame_ptov_lookup(sync, data->phy.y_phy,
+ data->phy.cbcr_phy, &pinfo,
0); /* do not clear the active flag */
if (rc < 0) {
@@ -1068,8 +1057,8 @@
}
buf.fmain.buffer = (unsigned long)pinfo.vaddr;
- buf.fmain.planar0_off = pinfo.planar0_off;
- buf.fmain.planar1_off = pinfo.planar1_off;
+ buf.fmain.y_off = pinfo.y_off;
+ buf.fmain.cbcr_off = pinfo.cbcr_off;
buf.fmain.fd = pinfo.fd;
CDBG("%s: buf 0x%x fd %d\n", __func__, (unsigned int)buf.fmain.buffer,
@@ -1099,15 +1088,13 @@
buf.type = OUTPUT_TYPE_ST_R;
} else {
if (se->resptype == MSM_CAM_RESP_STEREO_OP_1) {
- rc = msm_pmem_frame_ptov_lookup(sync, data->phy.p0_phy,
- data->phy.p1_phy, data->phy.p2_phy,
- &pinfo,
+ rc = msm_pmem_frame_ptov_lookup(sync, data->phy.y_phy,
+ data->phy.cbcr_phy, &pinfo,
1); /* do clear the active flag */
buf.buf_info.path = path;
} else if (se->resptype == MSM_CAM_RESP_STEREO_OP_2) {
- rc = msm_pmem_frame_ptov_lookup(sync, data->phy.p0_phy,
- data->phy.p1_phy, data->phy.p2_phy,
- &pinfo,
+ rc = msm_pmem_frame_ptov_lookup(sync, data->phy.y_phy,
+ data->phy.cbcr_phy, &pinfo,
0); /* do not clear the active flag */
buf.buf_info.path = path;
} else
@@ -1166,9 +1153,8 @@
buf.buf_info.buffer = (unsigned long)pinfo.vaddr;
buf.buf_info.phy_offset = pinfo.offset;
- buf.buf_info.planar0_off = pinfo.planar0_off;
- buf.buf_info.planar1_off = pinfo.planar1_off;
- buf.buf_info.planar2_off = pinfo.planar0_off;
+ buf.buf_info.y_off = pinfo.y_off;
+ buf.buf_info.cbcr_off = pinfo.cbcr_off;
buf.buf_info.fd = pinfo.fd;
CDBG("%s: buf 0x%x fd %d\n", __func__,
@@ -2024,7 +2010,7 @@
/* Change the active flag. */
pphy = msm_pmem_frame_vtop_lookup(sync,
pb->buffer,
- pb->planar0_off, pb->planar1_off, pb->planar2_off, pb->fd, 1);
+ pb->y_off, pb->cbcr_off, pb->fd, 1);
if (pphy != 0) {
CDBG("%s: rel: vaddr %lx, paddr %lx\n",
@@ -2052,7 +2038,7 @@
pphy = msm_pmem_frame_vtop_lookup(sync,
pb->buffer,
- pb->planar0_off, pb->planar1_off, pb->planar2_off, pb->fd, 1);
+ pb->y_off, pb->cbcr_off, pb->fd, 1);
if (pphy != 0) {
CDBG("%s: rel: vaddr %lx, paddr %lx\n",
@@ -2320,21 +2306,21 @@
pphy = &vdata->phy;
rc = msm_pmem_frame_ptov_lookup2(sync,
- pphy->p0_phy,
+ pphy->y_phy,
&pmem_info,
1); /* mark pic frame in use */
if (rc < 0) {
pr_err("%s: cannot get pic frame, invalid lookup"
- " address p0_phy add %x p1_phy add%x\n",
- __func__, pphy->p0_phy, pphy->p1_phy);
+ " address y %x cbcr %x\n",
+ __func__, pphy->y_phy, pphy->cbcr_phy);
goto err;
}
frame->ts = qcmd->ts;
frame->buffer = (unsigned long)pmem_info.vaddr;
- frame->planar0_off = pmem_info.planar0_off;
- frame->planar1_off = pmem_info.planar1_off;
+ frame->y_off = pmem_info.y_off;
+ frame->cbcr_off = pmem_info.cbcr_off;
frame->fd = pmem_info.fd;
if (sync->stereocam_enabled &&
sync->stereo_state != STEREO_RAW_SNAP_STARTED) {
@@ -2345,21 +2331,20 @@
} else
frame->path = vdata->phy.output_id;
- CDBG("%s: p0_phy add %x, p0_phy add %x, qcmd %x, "
- "virt_addr %x\n",
- __func__, pphy->p0_phy,
- pphy->p1_phy, (int) qcmd, (int) frame->buffer);
+ CDBG("%s: y %x, cbcr %x, qcmd %x, virt_addr %x\n",
+ __func__, pphy->y_phy,
+ pphy->cbcr_phy, (int) qcmd, (int) frame->buffer);
} else { /* PP */
pframe = (struct msm_frame *)(qcmd->command);
frame->ts = qcmd->ts;
frame->buffer = pframe->buffer;
- frame->planar0_off = pframe->planar0_off;
- frame->planar1_off = pframe->planar1_off;
+ frame->y_off = pframe->y_off;
+ frame->cbcr_off = pframe->cbcr_off;
frame->fd = pframe->fd;
frame->path = pframe->path;
CDBG("%s: PP y_off %x, cbcr_off %x, path %d vaddr 0x%x\n",
- __func__, frame->planar0_off, frame->planar1_off,
- frame->path, (int) frame->buffer);
+ __func__, frame->y_off, frame->cbcr_off, frame->path,
+ (int) frame->buffer);
}
err:
@@ -2588,13 +2573,13 @@
vfe_rp = (struct msm_vfe_resp *)qcmd->command;
CDBG("%s: Left Py = 0x%x y_off = %d cbcr_off = %d\n",
- __func__, vfe_rp->phy.p0_phy,
- stereo_frame_half.L.buf_p0_off,
- stereo_frame_half.L.buf_p1_off);
+ __func__, vfe_rp->phy.y_phy,
+ stereo_frame_half.L.buf_y_off,
+ stereo_frame_half.L.buf_cbcr_off);
sync->vpefn.vpe_cfg_offset(stereo_frame_half.packing,
- vfe_rp->phy.p0_phy + stereo_frame_half.L.buf_p0_off,
- vfe_rp->phy.p0_phy + stereo_frame_half.L.buf_p1_off,
+ vfe_rp->phy.y_phy + stereo_frame_half.L.buf_y_off,
+ vfe_rp->phy.y_phy + stereo_frame_half.L.buf_cbcr_off,
&(qcmd->ts), OUTPUT_TYPE_ST_L, stereo_frame_half.L,
stereo_frame_half.frame_id);
@@ -2610,15 +2595,14 @@
st_pphy = msm_pmem_frame_vtop_lookup(sync,
stereo_frame_half.buf_info.buffer,
- stereo_frame_half.buf_info.planar0_off,
- stereo_frame_half.buf_info.planar1_off,
- stereo_frame_half.buf_info.planar2_off,
+ stereo_frame_half.buf_info.y_off,
+ stereo_frame_half.buf_info.cbcr_off,
stereo_frame_half.buf_info.fd,
0); /* Do not change the active flag. */
sync->vpefn.vpe_cfg_offset(stereo_frame_half.packing,
- st_pphy + stereo_frame_half.R.buf_p0_off,
- st_pphy + stereo_frame_half.R.buf_p1_off,
+ st_pphy + stereo_frame_half.R.buf_y_off,
+ st_pphy + stereo_frame_half.R.buf_cbcr_off,
NULL, OUTPUT_TYPE_ST_R, stereo_frame_half.R,
stereo_frame_half.frame_id);
@@ -3308,10 +3292,10 @@
switch (vdata->type) {
case VFE_MSG_OUTPUT_P:
if (sync->pp_mask & PP_PREV) {
- CDBG("%s: PP_PREV in progress: p0_add %x p1_add %x\n",
+ CDBG("%s: PP_PREV in progress: phy_y %x phy_cbcr %x\n",
__func__,
- vdata->phy.p0_phy,
- vdata->phy.p1_phy);
+ vdata->phy.y_phy,
+ vdata->phy.cbcr_phy);
spin_lock_irqsave(&pp_prev_spinlock, flags);
if (sync->pp_prev)
CDBG("%s: overwriting pp_prev!\n",
@@ -3469,8 +3453,8 @@
vdata->vpe_bf.vpe_crop =
*(struct video_crop_t *)(sync->cropinfo);
- vdata->vpe_bf.p0_phy = vdata->phy.p0_phy;
- vdata->vpe_bf.p1_phy = vdata->phy.p1_phy;
+ vdata->vpe_bf.y_phy = vdata->phy.y_phy;
+ vdata->vpe_bf.cbcr_phy = vdata->phy.cbcr_phy;
vdata->vpe_bf.ts = (qcmd->ts);
vdata->vpe_bf.frame_id = vdata->phy.frame_id;
qcmd->command = vdata;
@@ -3482,8 +3466,8 @@
"= %ld\n", __func__, qcmd->ts.tv_nsec);
sync->vpefn.send_frame_to_vpe(
- vdata->phy.p0_phy,
- vdata->phy.p1_phy,
+ vdata->phy.y_phy,
+ vdata->phy.cbcr_phy,
&(qcmd->ts), OUTPUT_TYPE_V);
free_qcmd(qcmd);
diff --git a/drivers/media/video/msm/msm_isp.c b/drivers/media/video/msm/msm_isp.c
index 1acbb7c..480c626 100644
--- a/drivers/media/video/msm/msm_isp.c
+++ b/drivers/media/video/msm/msm_isp.c
@@ -119,7 +119,7 @@
data->type == VFE_MSG_OUTPUT_S ||
data->type == VFE_MSG_OUTPUT_T) {
msm_mctl_buf_done(pmctl, data->type,
- (u32)data->phy.planar0_off);
+ (u32)data->phy.y_phy);
}
break;
default:
@@ -584,7 +584,7 @@
D("%s region %d paddr = 0x%p\n", __func__, i,
(void *)region[i].paddr);
D("%s region y_off = %d cbcr_off = %d\n", __func__,
- region[i].info.planar0_off, region[i].info.planar1_off);
+ region[i].info.y_off, region[i].info.cbcr_off);
}
/* send the AXI configuration command to driver */
rc = msm_isp_subdev_ioctl(sd, cfgcmd, data);
diff --git a/drivers/media/video/msm/msm_mctl.c b/drivers/media/video/msm/msm_mctl.c
index f9166c8..35cb68a 100644
--- a/drivers/media/video/msm/msm_mctl.c
+++ b/drivers/media/video/msm/msm_mctl.c
@@ -297,8 +297,9 @@
D("%s buffer type is %d\n", __func__, mem->buffer_type);
frame.path = pcam_inst->path;
frame.buffer = 0;
- frame.planar0_off = mem->planar0_off;
- frame.planar1_off = mem->planar1_off;
+ frame.y_off = mem->y_off;
+ frame.cbcr_off = mem->cbcr_off;
+
/* now release frame to vfe */
cfgcmd.cmd_type = CMD_FRAME_BUF_RELEASE;
cfgcmd.value = (void *)&frame;
diff --git a/drivers/media/video/msm/msm_mem.c b/drivers/media/video/msm/msm_mem.c
index 144041c..5232f7c 100644
--- a/drivers/media/video/msm/msm_mem.c
+++ b/drivers/media/video/msm/msm_mem.c
@@ -84,16 +84,16 @@
{
if (info->offset < len &&
info->offset + info->len <= len &&
- info->planar0_off < len &&
- info->planar1_off < len)
+ info->y_off < len &&
+ info->cbcr_off < len)
return 0;
pr_err("%s: check failed: off %d len %d y %d cbcr %d (total len %d)\n",
__func__,
info->offset,
info->len,
- info->planar0_off,
- info->planar1_off,
+ info->y_off,
+ info->cbcr_off,
len);
return -EINVAL;
}
@@ -325,10 +325,10 @@
reg->info.type = mem_type;
reg->info.offset = 0;
- reg->info.planar0_off = mem->planar0_off;
- reg->info.planar1_off = PAD_TO_WORD(mem->planar1_off);
+ reg->info.y_off = mem->y_off;
+ reg->info.cbcr_off = PAD_TO_WORD(mem->cbcr_off);
D("%s y_off = %d, cbcr_off = %d\n", __func__,
- reg->info.planar0_off, reg->info.planar1_off);
+ reg->info.y_off, reg->info.cbcr_off);
rc += 1;
reg++;
}
diff --git a/drivers/media/video/msm/msm_vfe31.c b/drivers/media/video/msm/msm_vfe31.c
index 1cb8ab4..8827de9 100644
--- a/drivers/media/video/msm/msm_vfe31.c
+++ b/drivers/media/video/msm/msm_vfe31.c
@@ -337,13 +337,10 @@
break;
}
pinfo->output_id = outid;
- pinfo->p0_phy =
- ((struct vfe_message *)data)->_u.msgOut.p0_addr;
- pinfo->p1_phy =
- ((struct vfe_message *)data)->_u.msgOut.p1_addr;
- pinfo->p2_phy =
- ((struct vfe_message *)data)->_u.msgOut.p2_addr;
- CDBG("%s, p2_phy = 0x%x\n", __func__, pinfo->p2_phy);
+ pinfo->y_phy =
+ ((struct vfe_message *)data)->_u.msgOut.yBuffer;
+ pinfo->cbcr_phy =
+ ((struct vfe_message *)data)->_u.msgOut.cbcrBuffer;
pinfo->frame_id =
((struct vfe_message *)data)->_u.msgOut.frameCounter;
@@ -459,8 +456,8 @@
GFP_ATOMIC);
}
-static void vfe_send_outmsg(uint8_t msgid, uint32_t p0_addr,
- uint32_t p1_addr, uint32_t p2_addr)
+static void vfe_send_outmsg(uint8_t msgid, uint32_t pyaddr,
+ uint32_t pcbcraddr)
{
struct vfe_message msg;
uint8_t outid;
@@ -486,10 +483,8 @@
break;
}
msg._u.msgOut.output_id = msgid;
- msg._u.msgOut.p0_addr = p0_addr;
- msg._u.msgOut.p1_addr = p1_addr;
- msg._u.msgOut.p2_addr = p2_addr;
- CDBG("%s p2_addr = 0x%x\n", __func__, p2_addr);
+ msg._u.msgOut.yBuffer = pyaddr;
+ msg._u.msgOut.cbcrBuffer = pcbcraddr;
vfe31_proc_ops(msgid, &msg, sizeof(struct vfe_message));
return;
@@ -545,7 +540,7 @@
}
static int vfe31_add_free_buf2(struct vfe31_output_ch *outch,
- uint32_t paddr, uint32_t p0_off, uint32_t p1_off, uint32_t p2_off)
+ uint32_t paddr, uint32_t y_off, uint32_t cbcr_off)
{
struct vfe31_free_buf *free_buf = NULL;
unsigned long flags = 0;
@@ -555,24 +550,20 @@
spin_lock_irqsave(&outch->free_buf_lock, flags);
free_buf->paddr = paddr;
- free_buf->planar0_off = p0_off;
- free_buf->planar1_off = p1_off;
- free_buf->planar2_off = p2_off;
+ free_buf->y_off = y_off;
+ free_buf->cbcr_off = cbcr_off;
list_add_tail(&free_buf->node, &outch->free_buf_head);
- CDBG("%s: free_buf paddr = 0x%x, p0_off = %d, p1_off = %d,"
- "p2_off = %d\n", __func__, free_buf->paddr,
- free_buf->planar0_off, free_buf->planar1_off,
- free_buf->planar2_off);
+ CDBG("%s: free_buf paddr = 0x%x, y_off = %d, cbcr_off = %d\n",
+ __func__, free_buf->paddr, free_buf->y_off,
+ free_buf->cbcr_off);
spin_unlock_irqrestore(&outch->free_buf_lock, flags);
return 0;
}
#define vfe31_add_free_buf(outch, regptr) \
- vfe31_add_free_buf2(outch, regptr->paddr, \
- regptr->info.planar0_off, \
- regptr->info.planar1_off, \
- regptr->info.planar2_off)
+ vfe31_add_free_buf2(outch, regptr->paddr, regptr->info.y_off, \
+ regptr->info.cbcr_off)
#define vfe31_free_buf_available(outch) \
(!list_empty(&outch.free_buf_head))
@@ -669,10 +660,10 @@
for (i = 0; i < 2; i++) {
p1 = ao + 6 + i; /* wm0 for y */
- *p1 = (regp1->paddr + regp1->info.planar0_off);
+ *p1 = (regp1->paddr + regp1->info.y_off);
p1 = ao + 12 + i; /* wm1 for cbcr */
- *p1 = (regp1->paddr + regp1->info.planar1_off);
+ *p1 = (regp1->paddr + regp1->info.cbcr_off);
regp1++;
}
ret = vfe31_add_free_buf(outp1, regp1);
@@ -701,47 +692,47 @@
/* Parse the buffers!!! */
if (ad->bufnum2 == 1) { /* assuming bufnum1 = bufnum2 */
p1 = ao + 6; /* wm0 ping */
- *p1++ = (regp1->paddr + regp1->info.planar0_off);
+ *p1++ = (regp1->paddr + regp1->info.y_off);
/* this is to duplicate ping address to pong.*/
- *p1 = (regp1->paddr + regp1->info.planar0_off);
+ *p1 = (regp1->paddr + regp1->info.y_off);
p1 = ao + 30; /* wm4 ping */
- *p1++ = (regp1->paddr + regp1->info.planar1_off);
+ *p1++ = (regp1->paddr + regp1->info.cbcr_off);
CDBG("%s: regp1->info.cbcr_off = 0x%x\n", __func__,
- regp1->info.planar1_off);
+ regp1->info.cbcr_off);
/* this is to duplicate ping address to pong.*/
- *p1 = (regp1->paddr + regp1->info.planar1_off);
+ *p1 = (regp1->paddr + regp1->info.cbcr_off);
p1 = ao + 12; /* wm1 ping */
- *p1++ = (regp2->paddr + regp2->info.planar0_off);
+ *p1++ = (regp2->paddr + regp2->info.y_off);
/* pong = ping,*/
- *p1 = (regp2->paddr + regp2->info.planar0_off);
+ *p1 = (regp2->paddr + regp2->info.y_off);
p1 = ao + 36; /* wm5 */
- *p1++ = (regp2->paddr + regp2->info.planar1_off);
+ *p1++ = (regp2->paddr + regp2->info.cbcr_off);
CDBG("%s: regp2->info.cbcr_off = 0x%x\n", __func__,
- regp2->info.planar1_off);
+ regp2->info.cbcr_off);
/* pong = ping,*/
- *p1 = (regp2->paddr + regp2->info.planar1_off);
+ *p1 = (regp2->paddr + regp2->info.cbcr_off);
} else { /* more than one snapshot */
/* first fill ping & pong */
for (i = 0; i < 2; i++) {
p1 = ao + 6 + i; /* wm0 for y */
- *p1 = (regp1->paddr + regp1->info.planar0_off);
+ *p1 = (regp1->paddr + regp1->info.y_off);
p1 = ao + 30 + i; /* wm4 for cbcr */
- *p1 = (regp1->paddr + regp1->info.planar1_off);
+ *p1 = (regp1->paddr + regp1->info.cbcr_off);
regp1--;
}
for (i = 0; i < 2; i++) {
p2 = ao + 12 + i; /* wm1 for y */
- *p2 = (regp2->paddr + regp2->info.planar0_off);
+ *p2 = (regp2->paddr + regp2->info.y_off);
p2 = ao + 36 + i; /* wm5 for cbcr */
- *p2 = (regp2->paddr + regp2->info.planar1_off);
+ *p2 = (regp2->paddr + regp2->info.cbcr_off);
regp2--;
}
@@ -790,25 +781,25 @@
/* first fill ping & pong */
for (i = 0; i < 2; i++) {
p1 = ao + 6 + i; /* wm0 for y */
- *p1 = (regp1->paddr + regp1->info.planar0_off);
+ *p1 = (regp1->paddr + regp1->info.y_off);
p1 = ao + 30 + i; /* wm4 for cbcr */
- *p1 = (regp1->paddr + regp1->info.planar1_off);
+ *p1 = (regp1->paddr + regp1->info.cbcr_off);
regp1++;
}
for (i = 0; i < 2; i++) {
p2 = ao + 12 + i; /* wm1 for y */
- *p2 = (regp2->paddr + regp2->info.planar0_off);
+ *p2 = (regp2->paddr + regp2->info.y_off);
p2 = ao + 36 + i; /* wm5 for cbcr */
- *p2 = (regp2->paddr + regp2->info.planar1_off);
+ *p2 = (regp2->paddr + regp2->info.cbcr_off);
regp2++;
}
for (i = 0; i < 2; i++) {
p3 = ao + 18 + i; /* wm2 for y */
- *p3 = (regp3->paddr + regp3->info.planar0_off);
+ *p3 = (regp3->paddr + regp3->info.y_off);
p3 = ao + 42 + i; /* wm6 for cbcr */
- *p3 = (regp3->paddr + regp3->info.planar1_off);
+ *p3 = (regp3->paddr + regp3->info.cbcr_off);
regp3++;
}
@@ -856,25 +847,19 @@
for (i = 0; i < 2; i++) {
p1 = ao + 6 + i; /* wm0 for y */
- *p1 = (regp1->paddr + regp1->info.planar0_off);
+ *p1 = (regp1->paddr + regp1->info.y_off);
p1 = ao + 30 + i; /* wm4 for cbcr */
- *p1 = (regp1->paddr + regp1->info.planar1_off);
-
- if (vfe31_ctrl->outpath.out0.ch2 >= 0) {
- /* wm6 for cr & wm4 for cb: YV12 case*/
- p1 = ao + 42 + i;
- *p1 = (regp1->paddr + regp1->info.planar2_off);
- }
+ *p1 = (regp1->paddr + regp1->info.cbcr_off);
regp1++;
}
for (i = 0; i < 2; i++) {
p2 = ao + 12 + i; /* wm1 for y */
- *p2 = (regp2->paddr + regp2->info.planar0_off);
+ *p2 = (regp2->paddr + regp2->info.y_off);
p2 = ao + 36 + i; /* wm5 for cbcr */
- *p2 = (regp2->paddr + regp2->info.planar1_off);
+ *p2 = (regp2->paddr + regp2->info.cbcr_off);
regp2++;
}
for (i = 2; i < ad->bufnum1; i++) {
@@ -900,7 +885,7 @@
regp1 = &(ad->region[ad->bufnum1]);
vfe31_ctrl->outpath.output_mode |= VFE31_OUTPUT_MODE_S;
p1 = ao + 6; /* wm0 for y */
- *p1 = (regp1->paddr + regp1->info.planar0_off);
+ *p1 = (regp1->paddr + regp1->info.y_off);
if (p_sync->stereocam_enabled)
p_sync->stereo_state = STEREO_RAW_SNAP_IDLE;
}
@@ -1321,10 +1306,6 @@
if (vfe31_ctrl->outpath.output_mode & VFE31_OUTPUT_MODE_PT) {
irq_comp_mask |= (0x1 << vfe31_ctrl->outpath.out0.ch0 |
0x1 << vfe31_ctrl->outpath.out0.ch1);
- if (vfe31_ctrl->outpath.out0.ch2 >= 0)
- irq_comp_mask |= (0x1 << vfe31_ctrl->outpath.out0.ch0 |
- 0x1 << vfe31_ctrl->outpath.out0.ch1 |
- 0x1 << vfe31_ctrl->outpath.out0.ch2);
}
if (vfe31_ctrl->outpath.output_mode & VFE31_OUTPUT_MODE_V) {
@@ -1334,14 +1315,12 @@
msm_io_w(irq_comp_mask, vfe31_ctrl->vfebase + VFE_IRQ_COMP_MASK);
+
if (vfe31_ctrl->outpath.output_mode & VFE31_OUTPUT_MODE_PT) {
msm_io_w(1, vfe31_ctrl->vfebase +
vfe31_AXI_WM_CFG[vfe31_ctrl->outpath.out0.ch0]);
msm_io_w(1, vfe31_ctrl->vfebase +
vfe31_AXI_WM_CFG[vfe31_ctrl->outpath.out0.ch1]);
- if (vfe31_ctrl->outpath.out0.ch2 >= 0)
- msm_io_w(1, vfe31_ctrl->vfebase +
- vfe31_AXI_WM_CFG[vfe31_ctrl->outpath.out0.ch2]);
}
if (p_sync->stereocam_enabled)
msm_camio_set_perf_lvl(S_STEREO_VIDEO);
@@ -2259,8 +2238,7 @@
break;
}
- ret = vfe31_add_free_buf2(outch, p, b->planar0_off,
- b->planar1_off, b->planar2_off);
+ ret = vfe31_add_free_buf2(outch, p, b->y_off, b->cbcr_off);
if (ret < 0)
return ret;
break;
@@ -2287,8 +2265,7 @@
} else
return -EFAULT;
- ret = vfe31_add_free_buf2(outch, p, b->planar0_off,
- b->planar1_off, b->planar2_off);
+ ret = vfe31_add_free_buf2(outch, p, b->y_off, b->cbcr_off);
if (ret < 0)
return ret;
break;
@@ -2825,7 +2802,7 @@
static void vfe31_process_output_path_irq_0(uint32_t ping_pong)
{
- uint32_t p0_addr, p1_addr, p2_addr;
+ uint32_t pyaddr, pcbcraddr;
#ifdef CONFIG_MSM_CAMERA_V4L2
uint32_t pyaddr_ping, pcbcraddr_ping, pyaddr_pong, pcbcraddr_pong;
#endif
@@ -2837,36 +2814,26 @@
if (free_buf) {
/* Y channel */
- p0_addr = vfe31_get_ch_addr(ping_pong,
+ pyaddr = vfe31_get_ch_addr(ping_pong,
vfe31_ctrl->outpath.out0.ch0);
/* Chroma channel */
- p1_addr = vfe31_get_ch_addr(ping_pong,
+ pcbcraddr = vfe31_get_ch_addr(ping_pong,
vfe31_ctrl->outpath.out0.ch1);
- if (vfe31_ctrl->outpath.out0.ch2 >= 0)
- p2_addr = vfe31_get_ch_addr(ping_pong,
- vfe31_ctrl->outpath.out0.ch2);
- else
- p2_addr = p0_addr;
-
- CDBG("output path 0, p0_addr = 0x%x, p1_addr = 0x%x,"
- "p2_addr = 0x%x\n", p0_addr, p1_addr, p2_addr);
+ CDBG("output path 0, pyaddr = 0x%x, pcbcraddr = 0x%x\n",
+ pyaddr, pcbcraddr);
/* Y channel */
vfe31_put_ch_addr(ping_pong,
vfe31_ctrl->outpath.out0.ch0,
- free_buf->paddr + free_buf->planar0_off);
+ free_buf->paddr + free_buf->y_off);
/* Chroma channel */
vfe31_put_ch_addr(ping_pong,
vfe31_ctrl->outpath.out0.ch1,
- free_buf->paddr + free_buf->planar1_off);
- if (vfe31_ctrl->outpath.out0.ch2 >= 0)
- vfe31_put_ch_addr(ping_pong,
- vfe31_ctrl->outpath.out0.ch2,
- free_buf->paddr + free_buf->planar2_off);
+ free_buf->paddr + free_buf->cbcr_off);
kfree(free_buf);
/* if continuous mode, for display. (preview) */
- vfe_send_outmsg(MSG_ID_OUTPUT_P, p0_addr, p1_addr, p2_addr);
+ vfe_send_outmsg(MSG_ID_OUTPUT_P, pyaddr, pcbcraddr);
} else {
vfe31_ctrl->outpath.out0.frame_drop_cnt++;
pr_warning("path_irq_0 - no free buffer!\n");
@@ -2911,54 +2878,54 @@
static void vfe31_process_snapshot_frame(uint32_t ping_pong)
{
- uint32_t p0_addr, p1_addr;
+ uint32_t pyaddr, pcbcraddr;
struct vfe31_free_buf *free_buf = NULL;
/* Y channel- Main Image */
- p0_addr = vfe31_get_ch_addr(ping_pong,
+ pyaddr = vfe31_get_ch_addr(ping_pong,
vfe31_ctrl->outpath.out1.ch0);
/* Chroma channel - TN Image */
- p1_addr = vfe31_get_ch_addr(ping_pong,
+ pcbcraddr = vfe31_get_ch_addr(ping_pong,
vfe31_ctrl->outpath.out1.ch1);
free_buf = vfe31_get_free_buf(&vfe31_ctrl->outpath.out1);
- CDBG("%s: snapshot main, p0_addr = 0x%x, p1_addr = 0x%x\n",
- __func__, p0_addr, p1_addr);
+ CDBG("%s: snapshot main, pyaddr = 0x%x, pcbcraddr = 0x%x\n",
+ __func__, pyaddr, pcbcraddr);
if (free_buf) {
/* Y channel */
vfe31_put_ch_addr(ping_pong,
vfe31_ctrl->outpath.out1.ch0,
- free_buf->paddr + free_buf->planar0_off);
+ free_buf->paddr + free_buf->y_off);
/* Chroma channel */
vfe31_put_ch_addr(ping_pong,
vfe31_ctrl->outpath.out1.ch1,
- free_buf->paddr + free_buf->planar1_off);
+ free_buf->paddr + free_buf->cbcr_off);
kfree(free_buf);
}
- vfe_send_outmsg(MSG_ID_OUTPUT_S, p0_addr, p1_addr, p0_addr);
+ vfe_send_outmsg(MSG_ID_OUTPUT_S, pyaddr, pcbcraddr);
/* Y channel- TN Image */
- p0_addr = vfe31_get_ch_addr(ping_pong,
+ pyaddr = vfe31_get_ch_addr(ping_pong,
vfe31_ctrl->outpath.out0.ch0);
/* Chroma channel - TN Image */
- p1_addr = vfe31_get_ch_addr(ping_pong,
+ pcbcraddr = vfe31_get_ch_addr(ping_pong,
vfe31_ctrl->outpath.out0.ch1);
free_buf = vfe31_get_free_buf(&vfe31_ctrl->outpath.out0);
- CDBG("%s: snapshot TN, p0_addr = 0x%x, pcbcraddr = 0x%x\n",
- __func__, p0_addr, p1_addr);
+ CDBG("%s: snapshot TN, pyaddr = 0x%x, pcbcraddr = 0x%x\n",
+ __func__, pyaddr, pcbcraddr);
if (free_buf) {
/* Y channel */
vfe31_put_ch_addr(ping_pong,
vfe31_ctrl->outpath.out0.ch0,
- free_buf->paddr + free_buf->planar0_off);
+ free_buf->paddr + free_buf->y_off);
/* Chroma channel */
vfe31_put_ch_addr(ping_pong,
vfe31_ctrl->outpath.out0.ch1,
- free_buf->paddr + free_buf->planar1_off);
+ free_buf->paddr + free_buf->cbcr_off);
kfree(free_buf);
}
- vfe_send_outmsg(MSG_ID_OUTPUT_T, p0_addr, p1_addr, p0_addr);
+ vfe_send_outmsg(MSG_ID_OUTPUT_T, pyaddr, pcbcraddr);
/* in snapshot mode if done then send
snapshot done message */
@@ -2995,14 +2962,14 @@
/* Y channel */
vfe31_put_ch_addr(ping_pong,
vfe31_ctrl->outpath.out1.ch0,
- free_buf->paddr + free_buf->planar0_off);
+ free_buf->paddr + free_buf->y_off);
/* Chroma channel */
vfe31_put_ch_addr(ping_pong,
vfe31_ctrl->outpath.out1.ch1,
- free_buf->paddr + free_buf->planar1_off);
+ free_buf->paddr + free_buf->cbcr_off);
kfree(free_buf);
}
- vfe_send_outmsg(MSG_ID_OUTPUT_S, pyaddr, pcbcraddr, 0);
+ vfe_send_outmsg(MSG_ID_OUTPUT_S, pyaddr, pcbcraddr);
/* in snapshot mode if done then send
snapshot done message */
@@ -3017,54 +2984,54 @@
}
static void vfe31_process_zsl_frame(uint32_t ping_pong)
{
- uint32_t p0_addr, p1_addr;
+ uint32_t pyaddr, pcbcraddr;
struct vfe31_free_buf *free_buf = NULL;
/* Y channel- Main Image */
- p0_addr = vfe31_get_ch_addr(ping_pong,
+ pyaddr = vfe31_get_ch_addr(ping_pong,
vfe31_ctrl->outpath.out2.ch0);
/* Chroma channel - Main Image */
- p1_addr = vfe31_get_ch_addr(ping_pong,
+ pcbcraddr = vfe31_get_ch_addr(ping_pong,
vfe31_ctrl->outpath.out2.ch1);
free_buf = vfe31_get_free_buf(&vfe31_ctrl->outpath.out2);
CDBG("%s: snapshot main, pyaddr = 0x%x, pcbcraddr = 0x%x\n",
- __func__, p0_addr, p1_addr);
+ __func__, pyaddr, pcbcraddr);
if (free_buf) {
/* Y channel */
vfe31_put_ch_addr(ping_pong,
vfe31_ctrl->outpath.out2.ch0,
- free_buf->paddr + free_buf->planar0_off);
+ free_buf->paddr + free_buf->y_off);
/* Chroma channel */
vfe31_put_ch_addr(ping_pong,
vfe31_ctrl->outpath.out2.ch1,
- free_buf->paddr + free_buf->planar1_off);
+ free_buf->paddr + free_buf->cbcr_off);
kfree(free_buf);
}
- vfe_send_outmsg(MSG_ID_OUTPUT_S, p0_addr, p1_addr, 0);
+ vfe_send_outmsg(MSG_ID_OUTPUT_S, pyaddr, pcbcraddr);
/* Y channel- TN Image */
- p0_addr = vfe31_get_ch_addr(ping_pong,
+ pyaddr = vfe31_get_ch_addr(ping_pong,
vfe31_ctrl->outpath.out1.ch0);
/* Chroma channel - TN Image */
- p1_addr = vfe31_get_ch_addr(ping_pong,
+ pcbcraddr = vfe31_get_ch_addr(ping_pong,
vfe31_ctrl->outpath.out1.ch1);
free_buf = vfe31_get_free_buf(&vfe31_ctrl->outpath.out1);
CDBG("%s: snapshot TN, pyaddr = 0x%x, pcbcraddr = 0x%x\n",
- __func__, p0_addr, p1_addr);
+ __func__, pyaddr, pcbcraddr);
if (free_buf) {
/* Y channel */
vfe31_put_ch_addr(ping_pong,
vfe31_ctrl->outpath.out1.ch0,
- free_buf->paddr + free_buf->planar0_off);
+ free_buf->paddr + free_buf->y_off);
/* Chroma channel */
vfe31_put_ch_addr(ping_pong,
vfe31_ctrl->outpath.out1.ch1,
- free_buf->paddr + free_buf->planar1_off);
+ free_buf->paddr + free_buf->cbcr_off);
kfree(free_buf);
}
- vfe_send_outmsg(MSG_ID_OUTPUT_T, p0_addr, p1_addr, 0);
+ vfe_send_outmsg(MSG_ID_OUTPUT_T, pyaddr, pcbcraddr);
}
static void vfe31_process_output_path_irq_1(uint32_t ping_pong)
@@ -3136,7 +3103,7 @@
static void vfe31_process_output_path_irq_2(uint32_t ping_pong)
{
- uint32_t p0_addr, p1_addr, p2_addr;
+ uint32_t pyaddr, pcbcraddr;
struct vfe31_free_buf *free_buf = NULL;
#ifdef CONFIG_MSM_CAMERA_V4L2
@@ -3165,31 +3132,25 @@
if (free_buf) {
/* Y channel */
- p0_addr = vfe31_get_ch_addr(ping_pong,
+ pyaddr = vfe31_get_ch_addr(ping_pong,
vfe31_ctrl->outpath.out2.ch0);
/* Chroma channel */
- p1_addr = vfe31_get_ch_addr(ping_pong,
+ pcbcraddr = vfe31_get_ch_addr(ping_pong,
vfe31_ctrl->outpath.out2.ch1);
- if (vfe31_ctrl->outpath.out0.ch2 >= 0)
- p2_addr = vfe31_get_ch_addr(ping_pong,
- vfe31_ctrl->outpath.out0.ch2);
- else
- p2_addr = p0_addr;
-
- CDBG("video output, p0_addr = 0x%x, p1_addr = 0x%x\n",
- p0_addr, p1_addr);
+ CDBG("video output, pyaddr = 0x%x, pcbcraddr = 0x%x\n",
+ pyaddr, pcbcraddr);
/* Y channel */
vfe31_put_ch_addr(ping_pong,
vfe31_ctrl->outpath.out2.ch0,
- free_buf->paddr + free_buf->planar0_off);
+ free_buf->paddr + free_buf->y_off);
/* Chroma channel */
vfe31_put_ch_addr(ping_pong,
vfe31_ctrl->outpath.out2.ch1,
- free_buf->paddr + free_buf->planar1_off);
+ free_buf->paddr + free_buf->cbcr_off);
kfree(free_buf);
- vfe_send_outmsg(MSG_ID_OUTPUT_V, p0_addr, p1_addr, p2_addr);
+ vfe_send_outmsg(MSG_ID_OUTPUT_V, pyaddr, pcbcraddr);
} else {
vfe31_ctrl->outpath.out2.frame_drop_cnt++;
pr_warning("path_irq_2 - no free buffer!\n");
diff --git a/drivers/media/video/msm/msm_vfe31.h b/drivers/media/video/msm/msm_vfe31.h
index d2703b6..e3c06ee 100644
--- a/drivers/media/video/msm/msm_vfe31.h
+++ b/drivers/media/video/msm/msm_vfe31.h
@@ -841,9 +841,8 @@
struct vfe_msg_output {
uint8_t output_id;
- uint32_t p0_addr;
- uint32_t p1_addr;
- uint32_t p2_addr;
+ uint32_t yBuffer;
+ uint32_t cbcrBuffer;
struct vfe_frame_bpc_info bpcInfo;
struct vfe_frame_asf_info asfInfo;
uint32_t frameCounter;
@@ -878,9 +877,8 @@
struct vfe31_free_buf {
struct list_head node;
uint32_t paddr;
- uint32_t planar0_off;
- uint32_t planar1_off;
- uint32_t planar2_off;
+ uint32_t y_off;
+ uint32_t cbcr_off;
};
struct vfe31_output_ch {
diff --git a/drivers/media/video/msm/msm_vfe32.c b/drivers/media/video/msm/msm_vfe32.c
index 60d084d..946f823 100644
--- a/drivers/media/video/msm/msm_vfe32.c
+++ b/drivers/media/video/msm/msm_vfe32.c
@@ -335,9 +335,9 @@
break;
}
pinfo->output_id = outid;
- pinfo->planar0_off =
+ pinfo->y_phy =
((struct vfe_message *)data)->_u.msgOut.yBuffer;
- pinfo->planar1_off =
+ pinfo->cbcr_phy =
((struct vfe_message *)data)->_u.msgOut.cbcrBuffer;
pinfo->frame_id =
@@ -587,12 +587,12 @@
spin_lock_irqsave(&outch->free_buf_lock, flags);
free_buf->paddr = paddr;
- free_buf->planar0_off = y_off;
- free_buf->planar1_off = cbcr_off;
+ free_buf->y_off = y_off;
+ free_buf->cbcr_off = cbcr_off;
list_add_tail(&free_buf->node, &outch->free_buf_queue);
CDBG("%s: free_buf paddr = 0x%x, y_off = %d, cbcr_off = %d\n",
- __func__, free_buf->paddr, free_buf->planar0_off,
- free_buf->planar1_off);
+ __func__, free_buf->paddr, free_buf->y_off,
+ free_buf->cbcr_off);
spin_unlock_irqrestore(&outch->free_buf_lock, flags);
return 0;
}
@@ -688,17 +688,15 @@
for (i = 0; i < 2; i++) {
p1 = ao + 6 + i; /* wm0 for y */
- *p1 = (regp1->paddr + regp1->info.planar0_off);
+ *p1 = (regp1->paddr + regp1->info.y_off);
p1 = ao + 12 + i; /* wm1 for cbcr */
- *p1 = (regp1->paddr + regp1->info.planar1_off);
+ *p1 = (regp1->paddr + regp1->info.cbcr_off);
regp1++;
}
-
for (i = 2; i < ad->bufnum2; i++) {
ret = vfe32_enqueue_free_buf(outp1, regp1->paddr,
- regp1->info.planar0_off,
- regp1->info.planar1_off);
+ regp1->info.y_off, regp1->info.cbcr_off);
if (ret < 0)
return ret;
regp1++;
@@ -724,53 +722,53 @@
/* Parse the buffers!!! */
if (ad->bufnum2 == 1) { /* assuming bufnum1 = bufnum2 */
p1 = ao + 6; /* wm0 ping */
- *p1++ = (regp1->paddr + regp1->info.planar0_off);
+ *p1++ = (regp1->paddr + regp1->info.y_off);
/* this is to duplicate ping address to pong.*/
- *p1 = (regp1->paddr + regp1->info.planar0_off);
+ *p1 = (regp1->paddr + regp1->info.y_off);
p1 = ao + 30; /* wm4 ping */
- *p1++ = (regp1->paddr + regp1->info.planar1_off);
+ *p1++ = (regp1->paddr + regp1->info.cbcr_off);
/* this is to duplicate ping address to pong.*/
- *p1 = (regp1->paddr + regp1->info.planar1_off);
+ *p1 = (regp1->paddr + regp1->info.cbcr_off);
p1 = ao + 12; /* wm1 ping */
- *p1++ = (regp2->paddr + regp2->info.planar0_off);
+ *p1++ = (regp2->paddr + regp2->info.y_off);
/* pong = ping,*/
- *p1 = (regp2->paddr + regp2->info.planar0_off);
+ *p1 = (regp2->paddr + regp2->info.y_off);
p1 = ao + 36; /* wm5 */
- *p1++ = (regp2->paddr + regp2->info.planar1_off);
- *p1 = (regp2->paddr + regp2->info.planar1_off);
+ *p1++ = (regp2->paddr + regp2->info.cbcr_off);
+ *p1 = (regp2->paddr + regp2->info.cbcr_off);
} else { /* more than one snapshot */
/* first fill ping & pong */
for (i = 0; i < 2; i++) {
p1 = ao + 6 + i; /* wm0 for y */
- *p1 = (regp1->paddr + regp1->info.planar0_off);
+ *p1 = (regp1->paddr + regp1->info.y_off);
p1 = ao + 30 + i; /* wm4 for cbcr */
- *p1 = (regp1->paddr + regp1->info.planar1_off);
+ *p1 = (regp1->paddr + regp1->info.cbcr_off);
regp1++;
}
for (i = 0; i < 2; i++) {
p2 = ao + 12 + i; /* wm1 for y */
- *p2 = (regp2->paddr + regp2->info.planar0_off);
+ *p2 = (regp2->paddr + regp2->info.y_off);
p2 = ao + 36 + i; /* wm5 for cbcr */
- *p2 = (regp2->paddr + regp2->info.planar1_off);
+ *p2 = (regp2->paddr + regp2->info.cbcr_off);
regp2++;
}
for (i = 2; i < ad->bufnum1; i++) {
ret = vfe32_enqueue_free_buf(outp1,
- regp1->paddr,
- regp1->info.planar0_off,
- regp1->info.planar1_off);
+ regp1->paddr,
+ regp1->info.y_off,
+ regp1->info.cbcr_off);
if (ret < 0)
return ret;
regp1++;
}
for (i = 2; i < ad->bufnum2; i++) {
ret = vfe32_enqueue_free_buf(outp2,
- regp2->paddr,
- regp2->info.planar0_off,
- regp2->info.planar1_off);
+ regp2->paddr,
+ regp2->info.y_off,
+ regp2->info.cbcr_off);
if (ret < 0)
return ret;
regp2++;
@@ -796,37 +794,33 @@
for (i = 0; i < 2; i++) {
p1 = ao + 6 + i; /* wm0 for y */
- *p1 = (regp1->paddr +
- regp1->info.planar0_off);
+ *p1 = (regp1->paddr + regp1->info.y_off);
p1 = ao + 30 + i; /* wm1 for cbcr */
- *p1 = (regp1->paddr +
- regp1->info.planar1_off);
+ *p1 = (regp1->paddr + regp1->info.cbcr_off);
regp1++;
}
for (i = 0; i < 2; i++) {
p2 = ao + 12 + i; /* wm0 for y */
- *p2 = (regp2->paddr +
- regp2->info.planar0_off);
+ *p2 = (regp2->paddr + regp2->info.y_off);
p2 = ao + 36 + i; /* wm1 for cbcr */
- *p2 = (regp2->paddr +
- regp2->info.planar1_off);
+ *p2 = (regp2->paddr + regp2->info.cbcr_off);
regp2++;
}
for (i = 2; i < ad->bufnum1; i++) {
ret = vfe32_enqueue_free_buf(outp1, regp1->paddr,
- regp1->info.planar0_off,
- regp1->info.planar1_off);
+ regp1->info.y_off,
+ regp1->info.cbcr_off);
if (ret < 0)
return ret;
regp1++;
}
for (i = 2; i < ad->bufnum2; i++) {
ret = vfe32_enqueue_free_buf(outp2, regp2->paddr,
- regp2->info.planar0_off,
- regp2->info.planar1_off);
+ regp2->info.y_off,
+ regp2->info.cbcr_off);
if (ret < 0)
return ret;
regp2++;
@@ -840,7 +834,7 @@
regp1 = &(ad->region[ad->bufnum1]);
vfe32_ctrl->outpath.output_mode |= VFE32_OUTPUT_MODE_S;
p1 = ao + 6; /* wm0 for y */
- *p1 = (regp1->paddr + regp1->info.planar0_off);
+ *p1 = (regp1->paddr + regp1->info.y_off);
}
break;
default:
@@ -2344,11 +2338,11 @@
/* Y channel */
vfe32_put_ch_addr(ping_pong,
vfe32_ctrl->outpath.out0.ch0,
- free_buf->paddr + free_buf->planar0_off);
+ free_buf->paddr + free_buf->y_off);
/* Chroma channel */
vfe32_put_ch_addr(ping_pong,
vfe32_ctrl->outpath.out0.ch1,
- free_buf->paddr + free_buf->planar1_off);
+ free_buf->paddr + free_buf->cbcr_off);
kfree(free_buf);
}
if (vfe32_ctrl->operation_mode ==
@@ -2446,11 +2440,11 @@
/* Y channel */
vfe32_put_ch_addr(ping_pong,
vfe32_ctrl->outpath.out1.ch0,
- free_buf->paddr + free_buf->planar0_off);
+ free_buf->paddr + free_buf->y_off);
/* Chroma channel */
vfe32_put_ch_addr(ping_pong,
vfe32_ctrl->outpath.out1.ch1,
- free_buf->paddr + free_buf->planar1_off);
+ free_buf->paddr + free_buf->cbcr_off);
kfree(free_buf);
}
if (vfe32_ctrl->operation_mode ==
@@ -2546,11 +2540,11 @@
/* Y channel */
vfe32_put_ch_addr(ping_pong,
vfe32_ctrl->outpath.out2.ch0,
- free_buf->paddr + free_buf->planar0_off);
+ free_buf->paddr + free_buf->y_off);
/* Chroma channel */
vfe32_put_ch_addr(ping_pong,
vfe32_ctrl->outpath.out2.ch1,
- free_buf->paddr + free_buf->planar1_off);
+ free_buf->paddr + free_buf->cbcr_off);
kfree(free_buf);
}
vfe_send_outmsg(MSG_ID_OUTPUT_V, pyaddr, pcbcraddr);
@@ -3181,8 +3175,8 @@
rc = -EFAULT;
break;
}
- rc = vfe32_enqueue_free_buf(outch, p, b->planar0_off,
- b->planar1_off);
+
+ rc = vfe32_enqueue_free_buf(outch, p, b->y_off, b->cbcr_off);
}
break;
diff --git a/drivers/media/video/msm/msm_vfe32.h b/drivers/media/video/msm/msm_vfe32.h
index ed8bd3c..4d48c6b 100644
--- a/drivers/media/video/msm/msm_vfe32.h
+++ b/drivers/media/video/msm/msm_vfe32.h
@@ -882,8 +882,8 @@
struct vfe32_free_buf {
struct list_head node;
uint32_t paddr;
- uint32_t planar0_off;
- uint32_t planar1_off;
+ uint32_t y_off;
+ uint32_t cbcr_off;
};
struct vfe32_output_ch {
diff --git a/drivers/media/video/msm/msm_vfe7x.c b/drivers/media/video/msm/msm_vfe7x.c
index 836f7ae..316aacf 100644
--- a/drivers/media/video/msm/msm_vfe7x.c
+++ b/drivers/media/video/msm/msm_vfe7x.c
@@ -72,15 +72,14 @@
{
switch (type) {
case VFE_MSG_OUTPUT_P: {
- pinfo->planar0_off = ((struct vfe_endframe *)data)->y_address;
- pinfo->planar1_off =
+ pinfo->y_phy = ((struct vfe_endframe *)data)->y_address;
+ pinfo->cbcr_phy =
((struct vfe_endframe *)data)->cbcr_address;
- pinfo->planar2_off = pinfo->planar0_off;
pinfo->output_id = OUTPUT_TYPE_P;
CDBG("vfe_7x_convert, y_phy = 0x%x, cbcr_phy = 0x%x\n",
- pinfo->planar0_off, pinfo->planar1_off);
+ pinfo->y_phy, pinfo->cbcr_phy);
((struct vfe_frame_extra *)extdata)->bl_evencol =
((struct vfe_endframe *)data)->blacklevelevencolumn;
@@ -100,20 +99,20 @@
break;
case VFE_MSG_OUTPUT_S: {
- pinfo->planar0_off = paddr_s_y;
- pinfo->planar1_off = paddr_s_cbcr;
+ pinfo->y_phy = paddr_s_y;
+ pinfo->cbcr_phy = paddr_s_cbcr;
pinfo->output_id = OUTPUT_TYPE_S;
CDBG("vfe_7x_convert: y_phy = 0x%x cbcr_phy = 0x%x\n",
- pinfo->planar0_off, pinfo->planar1_off);
+ pinfo->y_phy, pinfo->cbcr_phy);
}
break;
case VFE_MSG_OUTPUT_T: {
- pinfo->planar0_off = paddr_t_y;
- pinfo->planar1_off = paddr_t_cbcr;
+ pinfo->y_phy = paddr_t_y;
+ pinfo->cbcr_phy = paddr_t_cbcr;
pinfo->output_id = OUTPUT_TYPE_T;
CDBG("vfe_7x_convert: y_phy = 0x%x cbcr_phy = 0x%x\n",
- pinfo->planar0_off, pinfo->planar1_off);
+ pinfo->y_phy, pinfo->cbcr_phy);
}
break;
@@ -373,20 +372,19 @@
CDBG("bufnum1 = %d\n", ad->bufnum1);
if (mode == OUTPUT_1_AND_2) {
- paddr_t_y = regptr->paddr + regptr->info.planar0_off;
- paddr_t_cbcr = regptr->paddr +
- regptr->info.planar1_off;
+ paddr_t_y = regptr->paddr + regptr->info.y_off;
+ paddr_t_cbcr = regptr->paddr + regptr->info.cbcr_off;
}
CDBG("config_axi1: O1, phy = 0x%lx, y_off = %d, cbcr_off =%d\n",
- regptr->paddr, regptr->info.planar0_off,
- regptr->info.planar1_off);
+ regptr->paddr, regptr->info.y_off,
+ regptr->info.cbcr_off);
bptr = &ao->output1buffer1_y_phy;
for (cnt = 0; cnt < ad->bufnum1; cnt++) {
- *bptr = regptr->paddr + regptr->info.planar0_off;
+ *bptr = regptr->paddr + regptr->info.y_off;
bptr++;
- *bptr = regptr->paddr + regptr->info.planar1_off;
+ *bptr = regptr->paddr + regptr->info.cbcr_off;
bptr++;
regptr++;
@@ -394,9 +392,9 @@
regptr--;
for (cnt = 0; cnt < (8 - ad->bufnum1); cnt++) {
- *bptr = regptr->paddr + regptr->info.planar0_off;
+ *bptr = regptr->paddr + regptr->info.y_off;
bptr++;
- *bptr = regptr->paddr + regptr->info.planar1_off;
+ *bptr = regptr->paddr + regptr->info.cbcr_off;
bptr++;
}
} /* if OUTPUT1 or Both */
@@ -405,17 +403,16 @@
regptr = &(ad->region[ad->bufnum1]);
CDBG("bufnum2 = %d\n", ad->bufnum2);
- paddr_s_y = regptr->paddr + regptr->info.planar0_off;
- paddr_s_cbcr = regptr->paddr + regptr->info.planar1_off;
+ paddr_s_y = regptr->paddr + regptr->info.y_off;
+ paddr_s_cbcr = regptr->paddr + regptr->info.cbcr_off;
CDBG("config_axi2: O2, phy = 0x%lx, y_off = %d, cbcr_off =%d\n",
- regptr->paddr, regptr->info.planar0_off,
- regptr->info.planar1_off);
+ regptr->paddr, regptr->info.y_off, regptr->info.cbcr_off);
bptr = &ao->output2buffer1_y_phy;
for (cnt = 0; cnt < ad->bufnum2; cnt++) {
- *bptr = regptr->paddr + regptr->info.planar0_off;
+ *bptr = regptr->paddr + regptr->info.y_off;
bptr++;
- *bptr = regptr->paddr + regptr->info.planar1_off;
+ *bptr = regptr->paddr + regptr->info.cbcr_off;
bptr++;
regptr++;
@@ -423,9 +420,9 @@
regptr--;
for (cnt = 0; cnt < (8 - ad->bufnum2); cnt++) {
- *bptr = regptr->paddr + regptr->info.planar0_off;
+ *bptr = regptr->paddr + regptr->info.y_off;
bptr++;
- *bptr = regptr->paddr + regptr->info.planar1_off;
+ *bptr = regptr->paddr + regptr->info.cbcr_off;
bptr++;
}
}
@@ -587,10 +584,10 @@
fack.header = VFE_FRAME_ACK;
fack.output2newybufferaddress =
- (void *)(p + b->planar0_off);
+ (void *)(p + b->y_off);
fack.output2newcbcrbufferaddress =
- (void *)(p + b->planar1_off);
+ (void *)(p + b->cbcr_off);
vfecmd->queue = QDSP_CMDQUEUE;
vfecmd->length = sizeof(struct vfe_outputack);
diff --git a/drivers/media/video/msm/msm_vfe7x27a.c b/drivers/media/video/msm/msm_vfe7x27a.c
index efea316..c8bfacc 100644
--- a/drivers/media/video/msm/msm_vfe7x27a.c
+++ b/drivers/media/video/msm/msm_vfe7x27a.c
@@ -72,15 +72,14 @@
{
switch (type) {
case VFE_MSG_OUTPUT_P: {
- pinfo->planar0_off = ((struct vfe_endframe *)data)->y_address;
- pinfo->planar1_off =
+ pinfo->y_phy = ((struct vfe_endframe *)data)->y_address;
+ pinfo->cbcr_phy =
((struct vfe_endframe *)data)->cbcr_address;
- pinfo->planar2_off = pinfo->planar0_off;
pinfo->output_id = OUTPUT_TYPE_P;
CDBG("vfe_7x_convert, y_phy = 0x%x, cbcr_phy = 0x%x\n",
- pinfo->planar0_off, pinfo->planar1_off);
+ pinfo->y_phy, pinfo->cbcr_phy);
memcpy(((struct vfe_frame_extra *)extdata),
&((struct vfe_endframe *)data)->extra,
@@ -93,19 +92,19 @@
}
break;
case VFE_MSG_OUTPUT_S: {
- pinfo->planar0_off = paddr_s_y;
- pinfo->planar1_off = paddr_s_cbcr;
+ pinfo->y_phy = paddr_s_y;
+ pinfo->cbcr_phy = paddr_s_cbcr;
pinfo->output_id = OUTPUT_TYPE_S;
CDBG("vfe_7x_convert: y_phy = 0x%x cbcr_phy = 0x%x\n",
- pinfo->planar0_off, pinfo->planar1_off);
+ pinfo->y_phy, pinfo->cbcr_phy);
}
break;
case VFE_MSG_OUTPUT_T: {
- pinfo->planar0_off = paddr_t_y;
- pinfo->planar1_off = paddr_t_cbcr;
+ pinfo->y_phy = paddr_t_y;
+ pinfo->cbcr_phy = paddr_t_cbcr;
pinfo->output_id = OUTPUT_TYPE_T;
CDBG("vfe_7x_convert: y_phy = 0x%x cbcr_phy = 0x%x\n",
- pinfo->planar0_off, pinfo->planar1_off);
+ pinfo->y_phy, pinfo->cbcr_phy);
}
break;
case VFE_MSG_STATS_AF:
@@ -356,20 +355,19 @@
CDBG("bufnum1 = %d\n", ad->bufnum1);
if (mode == OUTPUT_1_AND_2) {
- paddr_t_y = regptr->paddr + regptr->info.planar0_off;
- paddr_t_cbcr = regptr->paddr +
- regptr->info.planar1_off;
+ paddr_t_y = regptr->paddr + regptr->info.y_off;
+ paddr_t_cbcr = regptr->paddr + regptr->info.cbcr_off;
}
CDBG("config_axi1: O1, phy = 0x%lx, y_off = %d, cbcr_off =%d\n",
- regptr->paddr, regptr->info.planar0_off,
- regptr->info.planar1_off);
+ regptr->paddr, regptr->info.y_off,
+ regptr->info.cbcr_off);
bptr = &ao->output1buffer1_y_phy;
for (cnt = 0; cnt < ad->bufnum1; cnt++) {
- *bptr = regptr->paddr + regptr->info.planar0_off;
+ *bptr = regptr->paddr + regptr->info.y_off;
bptr++;
- *bptr = regptr->paddr + regptr->info.planar1_off;
+ *bptr = regptr->paddr + regptr->info.cbcr_off;
bptr++;
regptr++;
@@ -377,9 +375,9 @@
regptr--;
for (cnt = 0; cnt < (8 - ad->bufnum1); cnt++) {
- *bptr = regptr->paddr + regptr->info.planar0_off;
+ *bptr = regptr->paddr + regptr->info.y_off;
bptr++;
- *bptr = regptr->paddr + regptr->info.planar1_off;
+ *bptr = regptr->paddr + regptr->info.cbcr_off;
bptr++;
}
}
@@ -388,18 +386,17 @@
regptr = &(ad->region[ad->bufnum1]);
CDBG("bufnum2 = %d\n", ad->bufnum2);
- paddr_s_y = regptr->paddr + regptr->info.planar0_off;
- paddr_s_cbcr = regptr->paddr + regptr->info.planar1_off;
+ paddr_s_y = regptr->paddr + regptr->info.y_off;
+ paddr_s_cbcr = regptr->paddr + regptr->info.cbcr_off;
CDBG("config_axi2: O2, phy = 0x%lx, y_off = %d, cbcr_off =%d\n",
- regptr->paddr, regptr->info.planar0_off,
- regptr->info.planar1_off);
+ regptr->paddr, regptr->info.y_off, regptr->info.cbcr_off);
bptr = &ao->output2buffer1_y_phy;
for (cnt = 0; cnt < ad->bufnum2; cnt++) {
- *bptr = regptr->paddr + regptr->info.planar0_off;
+ *bptr = regptr->paddr + regptr->info.y_off;
bptr++;
- *bptr = regptr->paddr + regptr->info.planar1_off;
+ *bptr = regptr->paddr + regptr->info.cbcr_off;
bptr++;
regptr++;
@@ -407,9 +404,9 @@
regptr--;
for (cnt = 0; cnt < (8 - ad->bufnum2); cnt++) {
- *bptr = regptr->paddr + regptr->info.planar0_off;
+ *bptr = regptr->paddr + regptr->info.y_off;
bptr++;
- *bptr = regptr->paddr + regptr->info.planar1_off;
+ *bptr = regptr->paddr + regptr->info.cbcr_off;
bptr++;
}
}
@@ -567,10 +564,10 @@
fack.header = VFE_FRAME_ACK;
fack.output2newybufferaddress =
- (void *)(p + b->planar0_off);
+ (void *)(p + b->y_off);
fack.output2newcbcrbufferaddress =
- (void *)(p + b->planar1_off);
+ (void *)(p + b->cbcr_off);
vfecmd->queue = QDSP_CMDQUEUE;
vfecmd->length = sizeof(struct vfe_outputack);
diff --git a/drivers/media/video/msm/msm_vfe8x.c b/drivers/media/video/msm/msm_vfe8x.c
index b561fcb..0bf1785 100644
--- a/drivers/media/video/msm/msm_vfe8x.c
+++ b/drivers/media/video/msm/msm_vfe8x.c
@@ -122,10 +122,10 @@
for (j = 0; j < ao->output1.fragmentCount; j++) {
- *p1 = regptr->paddr + regptr->info.planar0_off;
+ *p1 = regptr->paddr + regptr->info.y_off;
p1++;
- *p2 = regptr->paddr + regptr->info.planar1_off;
+ *p2 = regptr->paddr + regptr->info.cbcr_off;
p2++;
}
regptr++;
@@ -144,16 +144,15 @@
CDBG("config_axi: O2, phy = 0x%lx, y_off = %d, "\
"cbcr_off = %d\n", regptr->paddr,
- regptr->info.planar0_off,
- regptr->info.planar1_off);
+ regptr->info.y_off, regptr->info.cbcr_off);
for (j = 0; j < ao->output2.fragmentCount; j++) {
- *p1 = regptr->paddr + regptr->info.planar0_off;
+ *p1 = regptr->paddr + regptr->info.y_off;
CDBG("vfe_config_axi: p1 = 0x%x\n", *p1);
p1++;
- *p2 = regptr->paddr + regptr->info.planar1_off;
+ *p2 = regptr->paddr + regptr->info.cbcr_off;
CDBG("vfe_config_axi: p2 = 0x%x\n", *p2);
p2++;
}
@@ -175,16 +174,15 @@
CDBG("config_axi: O1, phy = 0x%lx, y_off = %d, "\
"cbcr_off = %d\n", regptr->paddr,
- regptr->info.planar0_off,
- regptr->info.planar1_off);
+ regptr->info.y_off, regptr->info.cbcr_off);
for (j = 0; j < ao->output1.fragmentCount; j++) {
- *p1 = regptr->paddr + regptr->info.planar0_off;
+ *p1 = regptr->paddr + regptr->info.y_off;
CDBG("vfe_config_axi: p1 = 0x%x\n", *p1);
p1++;
- *p2 = regptr->paddr + regptr->info.planar1_off;
+ *p2 = regptr->paddr + regptr->info.cbcr_off;
CDBG("vfe_config_axi: p2 = 0x%x\n", *p2);
p2++;
}
@@ -196,17 +194,15 @@
CDBG("config_axi: O2, phy = 0x%lx, y_off = %d, "\
"cbcr_off = %d\n", regptr1->paddr,
- regptr1->info.planar0_off, regptr1->info.planar1_off);
+ regptr1->info.y_off, regptr1->info.cbcr_off);
for (j = 0; j < ao->output2.fragmentCount; j++) {
- *p1 = regptr1->paddr +
- regptr1->info.planar0_off;
+ *p1 = regptr1->paddr + regptr1->info.y_off;
CDBG("vfe_config_axi: p1 = 0x%x\n", *p1);
p1++;
- *p2 = regptr1->paddr +
- regptr1->info.planar1_off;
+ *p2 = regptr1->paddr + regptr1->info.cbcr_off;
CDBG("vfe_config_axi: p2 = 0x%x\n", *p2);
p2++;
}
@@ -693,9 +689,9 @@
b = (struct msm_frame *)(cmd->value);
p = *(unsigned long *)data;
- fack.ybufaddr[0] = (uint32_t) (p + b->planar0_off);
+ fack.ybufaddr[0] = (uint32_t) (p + b->y_off);
- fack.chromabufaddr[0] = (uint32_t) (p + b->planar1_off);
+ fack.chromabufaddr[0] = (uint32_t) (p + b->cbcr_off);
if (b->path == OUTPUT_TYPE_P)
vfe_output_p_ack(&fack);
diff --git a/drivers/media/video/msm/msm_vfe8x_proc.c b/drivers/media/video/msm/msm_vfe8x_proc.c
index 017e822..9764557 100644
--- a/drivers/media/video/msm/msm_vfe8x_proc.c
+++ b/drivers/media/video/msm/msm_vfe8x_proc.c
@@ -608,12 +608,11 @@
switch (type) {
case VFE_MSG_OUTPUT_P:
case VFE_MSG_OUTPUT_V:{
- pinfo->planar0_off =
+ pinfo->y_phy =
((struct vfe_message *)data)->_u.msgOutput2.yBuffer;
- pinfo->planar1_off =
+ pinfo->cbcr_phy =
((struct vfe_message *)data)->_u.msgOutput2.
cbcrBuffer;
- pinfo->planar2_off = pinfo->planar0_off;
ctrl->extdata.bpcInfo =
((struct vfe_message *)data)->_u.msgOutput2.bpcInfo;
ctrl->extdata.asfInfo =
diff --git a/drivers/media/video/msm/msm_vpe1.c b/drivers/media/video/msm/msm_vpe1.c
index bf84759..891816f 100644
--- a/drivers/media/video/msm/msm_vpe1.c
+++ b/drivers/media/video/msm/msm_vpe1.c
@@ -709,15 +709,15 @@
return 1;
}
-void msm_send_frame_to_vpe(uint32_t p0_phy_add, uint32_t p1_phy_add,
+void msm_send_frame_to_vpe(uint32_t pyaddr, uint32_t pcbcraddr,
struct timespec *ts, int output_type)
{
uint32_t temp_pyaddr = 0, temp_pcbcraddr = 0;
- CDBG("vpe input, p0_phy_add = 0x%x, p1_phy_add = 0x%x\n",
- p0_phy_add, p1_phy_add);
- msm_io_w(p0_phy_add, vpe_device->vpebase + VPE_SRCP0_ADDR_OFFSET);
- msm_io_w(p1_phy_add, vpe_device->vpebase + VPE_SRCP1_ADDR_OFFSET);
+ CDBG("vpe input, pyaddr = 0x%x, pcbcraddr = 0x%x\n",
+ pyaddr, pcbcraddr);
+ msm_io_w(pyaddr, vpe_device->vpebase + VPE_SRCP0_ADDR_OFFSET);
+ msm_io_w(pcbcraddr, vpe_device->vpebase + VPE_SRCP1_ADDR_OFFSET);
if (vpe_ctrl->state == VPE_STATE_ACTIVE)
CDBG(" =====VPE is busy!!! Wrong!========\n");
@@ -881,7 +881,7 @@
vpe_update_scaler_with_dis(&(vpe_buf->vpe_crop),
&(vpe_ctrl->dis_offset));
- msm_send_frame_to_vpe(vpe_buf->p0_phy, vpe_buf->p1_phy,
+ msm_send_frame_to_vpe(vpe_buf->y_phy, vpe_buf->cbcr_phy,
&(vpe_buf->ts), OUTPUT_TYPE_V);
if (!qcmd || !atomic_read(&qcmd->on_heap)) {
@@ -919,12 +919,10 @@
CDBG("In vpe_addr_convert output_id = %d\n", pinfo->output_id);
- pinfo->p0_phy =
- ((struct vpe_message *)data)->_u.msgOut.p0_Buffer;
- pinfo->p1_phy =
- ((struct vpe_message *)data)->_u.msgOut.p1_Buffer;
- pinfo->p2_phy = pinfo->p0_phy;
-
+ pinfo->y_phy =
+ ((struct vpe_message *)data)->_u.msgOut.yBuffer;
+ pinfo->cbcr_phy =
+ ((struct vpe_message *)data)->_u.msgOut.cbcrBuffer;
*ext = vpe_ctrl->extdata;
*elen = vpe_ctrl->extlen;
}
@@ -989,10 +987,10 @@
regp1 = &(ad->region[0]);
/* for video Y address */
- p1 = (regp1->paddr + regp1->info.planar0_off);
+ p1 = (regp1->paddr + regp1->info.y_off);
msm_io_w(p1, vpe_device->vpebase + VPE_OUTP0_ADDR_OFFSET);
/* for video CbCr address */
- p1 = (regp1->paddr + regp1->info.planar1_off);
+ p1 = (regp1->paddr + regp1->info.cbcr_off);
msm_io_w(p1, vpe_device->vpebase + VPE_OUTP1_ADDR_OFFSET);
return 0;
@@ -1050,8 +1048,8 @@
vpe_ctrl->frame_pack = frame_pack;
vpe_ctrl->output_type = output_id;
- input_stride = (st_half.buf_p1_stride * (1<<16)) +
- st_half.buf_p0_stride;
+ input_stride = (st_half.buf_cbcr_stride * (1<<16)) +
+ st_half.buf_y_stride;
msm_io_w(input_stride, vpe_device->vpebase + VPE_SRC_YSTRIDE1_OFFSET);
@@ -1061,16 +1059,15 @@
msm_send_frame_to_vpe(pyaddr, pcbcraddr, ts, output_id);
}
-static void vpe_send_outmsg(uint8_t msgid, uint32_t p0_addr,
- uint32_t p1_addr, uint32_t p2_addr)
+static void vpe_send_outmsg(uint8_t msgid, uint32_t pyaddr,
+ uint32_t pcbcraddr)
{
struct vpe_message msg;
uint8_t outid;
msg._d = outid = msgid;
msg._u.msgOut.output_id = msgid;
- msg._u.msgOut.p0_Buffer = p0_addr;
- msg._u.msgOut.p1_Buffer = p1_addr;
- msg._u.msgOut.p2_Buffer = p2_addr;
+ msg._u.msgOut.yBuffer = pyaddr;
+ msg._u.msgOut.cbcrBuffer = pcbcraddr;
vpe_proc_ops(outid, &msg, sizeof(struct vpe_message));
return;
}
@@ -1206,11 +1203,10 @@
if (vpe_ctrl->output_type == OUTPUT_TYPE_ST_R) {
CDBG("vpe send out R msg.\n");
vpe_send_outmsg(MSG_ID_VPE_OUTPUT_ST_R, pyaddr,
- pcbcraddr, pyaddr);
+ pcbcraddr);
} else if (vpe_ctrl->output_type == OUTPUT_TYPE_V) {
CDBG("vpe send out V msg.\n");
- vpe_send_outmsg(MSG_ID_VPE_OUTPUT_V, pyaddr, pcbcraddr,
- pyaddr);
+ vpe_send_outmsg(MSG_ID_VPE_OUTPUT_V, pyaddr, pcbcraddr);
}
vpe_ctrl->output_type = 0;
diff --git a/drivers/media/video/msm/msm_vpe1.h b/drivers/media/video/msm/msm_vpe1.h
index 0c713cc..ed7112e 100644
--- a/drivers/media/video/msm/msm_vpe1.h
+++ b/drivers/media/video/msm/msm_vpe1.h
@@ -212,9 +212,8 @@
struct vpe_msg_output {
uint8_t output_id;
- uint32_t p0_Buffer;
- uint32_t p1_Buffer;
- uint32_t p2_Buffer;
+ uint32_t yBuffer;
+ uint32_t cbcrBuffer;
uint32_t frameCounter;
};
diff --git a/drivers/media/video/videobuf-msm-mem.c b/drivers/media/video/videobuf-msm-mem.c
index 17dc584..13265bf 100644
--- a/drivers/media/video/videobuf-msm-mem.c
+++ b/drivers/media/video/videobuf-msm-mem.c
@@ -183,8 +183,8 @@
return rc;
}
mem->phyaddr += vb->boff;
- mem->planar0_off = 0;
- mem->planar1_off = (vb->size)*2/3;
+ mem->y_off = 0;
+ mem->cbcr_off = (vb->size)*2/3;
mem->is_userptr = 1;
return rc;
}
@@ -274,8 +274,8 @@
MAGIC_CHECK(mem->magic, MAGIC_PMEM);
mem->size = PAGE_ALIGN(buf->bsize);
- mem->planar0_off = 0;
- mem->planar1_off = (buf->bsize)*2/3;
+ mem->y_off = 0;
+ mem->cbcr_off = (buf->bsize)*2/3;
if (buf->i >= 0 && buf->i <= 3)
mem->buffer_type = OUTPUT_TYPE_P;
else
diff --git a/include/media/msm_camera.h b/include/media/msm_camera.h
index 9646a4f..4544a67 100644
--- a/include/media/msm_camera.h
+++ b/include/media/msm_camera.h
@@ -369,9 +369,8 @@
void *vaddr;
uint32_t offset;
uint32_t len;
- uint32_t planar0_off;
- uint32_t planar1_off;
- uint32_t planar2_off;
+ uint32_t y_off;
+ uint32_t cbcr_off;
uint8_t active;
};
@@ -417,9 +416,8 @@
int type;
unsigned long buffer;
uint32_t phy_offset;
- uint32_t planar0_off;
- uint32_t planar1_off;
- uint32_t planar2_off;
+ uint32_t y_off;
+ uint32_t cbcr_off;
int fd;
void *cropinfo;
@@ -446,10 +444,10 @@
};
struct msm_st_half {
- uint32_t buf_p0_off;
- uint32_t buf_p1_off;
- uint32_t buf_p0_stride;
- uint32_t buf_p1_stride;
+ uint32_t buf_y_off;
+ uint32_t buf_cbcr_off;
+ uint32_t buf_y_stride;
+ uint32_t buf_cbcr_stride;
uint32_t pix_x_off;
uint32_t pix_y_off;
struct msm_st_crop stCropInfo;
diff --git a/include/media/videobuf-msm-mem.h b/include/media/videobuf-msm-mem.h
index 6123051..19dd93e 100644
--- a/include/media/videobuf-msm-mem.h
+++ b/include/media/videobuf-msm-mem.h
@@ -23,9 +23,8 @@
int phyaddr;
unsigned long size;
int is_userptr;
- uint32_t planar0_off;
- uint32_t planar1_off;
- uint32_t planar2_off;
+ uint32_t y_off;
+ uint32_t cbcr_off;
int buffer_type;
struct file *file;
};