- switch (buf->output_channel) {
- case 0:
- TC_VI_REG_WT(cam, TEGRA_VI_CSI_0_SURFACE0_OFFSET_MSB,
- 0x0);
- TC_VI_REG_WT(cam, TEGRA_VI_CSI_0_SURFACE0_OFFSET_LSB,
- buf->buffer_addr);
- TC_VI_REG_WT(cam, TEGRA_VI_CSI_0_SURFACE0_STRIDE,
- bytes_per_line);
- break;
- case 1:
- TC_VI_REG_WT(cam, TEGRA_VI_CSI_0_SURFACE1_OFFSET_MSB,
- 0x0);
- TC_VI_REG_WT(cam, TEGRA_VI_CSI_0_SURFACE1_OFFSET_LSB,
- buf->buffer_addr);
- TC_VI_REG_WT(cam, TEGRA_VI_CSI_0_SURFACE1_STRIDE,
- bytes_per_line);
- break;
- case 2:
- TC_VI_REG_WT(cam, TEGRA_VI_CSI_0_SURFACE2_OFFSET_MSB,
- 0x0);
- TC_VI_REG_WT(cam, TEGRA_VI_CSI_0_SURFACE2_OFFSET_LSB,
- buf->buffer_addr);
- TC_VI_REG_WT(cam, TEGRA_VI_CSI_0_SURFACE2_STRIDE,
- bytes_per_line);
- break;
+ if (port == TEGRA_CAMERA_PORT_CSI_A) {
+ switch (buf->output_channel) {
+ case 0:
+ TC_VI_REG_WT(cam,
+ TEGRA_VI_CSI_0_SURFACE0_OFFSET_MSB,
+ 0x0);
+ TC_VI_REG_WT(cam,
+ TEGRA_VI_CSI_0_SURFACE0_OFFSET_LSB,
+ buf->buffer_addr);
+ TC_VI_REG_WT(cam,
+ TEGRA_VI_CSI_0_SURFACE0_STRIDE,
+ bytes_per_line);
+ break;
+ case 1:
+ TC_VI_REG_WT(cam,
+ TEGRA_VI_CSI_0_SURFACE1_OFFSET_MSB,
+ 0x0);
+ TC_VI_REG_WT(cam,
+ TEGRA_VI_CSI_0_SURFACE1_OFFSET_LSB,
+ buf->buffer_addr);
+ TC_VI_REG_WT(cam,
+ TEGRA_VI_CSI_0_SURFACE1_STRIDE,
+ bytes_per_line);
+ break;
+ case 2:
+ TC_VI_REG_WT(cam,
+ TEGRA_VI_CSI_0_SURFACE2_OFFSET_MSB,
+ 0x0);
+ TC_VI_REG_WT(cam,
+ TEGRA_VI_CSI_0_SURFACE2_OFFSET_LSB,
+ buf->buffer_addr);
+ TC_VI_REG_WT(cam,
+ TEGRA_VI_CSI_0_SURFACE2_STRIDE,
+ bytes_per_line);
+ break;
+ }
+ } else if (port == TEGRA_CAMERA_PORT_CSI_B ||
+ port == TEGRA_CAMERA_PORT_CSI_C) {
+ switch (buf->output_channel) {
+ case 0:
+ TC_VI_REG_WT(cam,
+ TEGRA_VI_CSI_1_SURFACE0_OFFSET_MSB,
+ 0x0);
+ TC_VI_REG_WT(cam,
+ TEGRA_VI_CSI_1_SURFACE0_OFFSET_LSB,
+ buf->buffer_addr);
+ TC_VI_REG_WT(cam,
+ TEGRA_VI_CSI_1_SURFACE0_STRIDE,
+ bytes_per_line);
+ break;
+ case 1:
+ TC_VI_REG_WT(cam,
+ TEGRA_VI_CSI_1_SURFACE1_OFFSET_MSB,
+ 0x0);
+ TC_VI_REG_WT(cam,
+ TEGRA_VI_CSI_1_SURFACE1_OFFSET_LSB,
+ buf->buffer_addr);
+ TC_VI_REG_WT(cam,
+ TEGRA_VI_CSI_1_SURFACE1_STRIDE,
+ bytes_per_line);
+ break;
+ case 2:
+ TC_VI_REG_WT(cam,
+ TEGRA_VI_CSI_1_SURFACE2_OFFSET_MSB,
+ 0x0);
+ TC_VI_REG_WT(cam,
+ TEGRA_VI_CSI_1_SURFACE2_OFFSET_LSB,
+ buf->buffer_addr);
+ TC_VI_REG_WT(cam,
+ TEGRA_VI_CSI_1_SURFACE2_STRIDE,
+ bytes_per_line);
+ break;
+ }