| .. | .. |
|---|
| 106 | 106 | |
|---|
| 107 | 107 | #define OV4689_NUM_SUPPLIES ARRAY_SIZE(ov4689_supply_names) |
|---|
| 108 | 108 | |
|---|
| 109 | | -enum ov4689_max_pad { |
|---|
| 110 | | - PAD0, /* link to isp */ |
|---|
| 111 | | - PAD1, /* link to csi wr0 | hdr x2:L x3:M */ |
|---|
| 112 | | - PAD2, /* link to csi wr1 | hdr x3:L */ |
|---|
| 113 | | - PAD3, /* link to csi wr2 | hdr x2:M x3:S */ |
|---|
| 114 | | - PAD_MAX, |
|---|
| 115 | | -}; |
|---|
| 116 | | - |
|---|
| 117 | 109 | struct regval { |
|---|
| 118 | 110 | u16 addr; |
|---|
| 119 | 111 | u8 val; |
|---|
| .. | .. |
|---|
| 763 | 755 | struct ov4689 *ov4689 = to_ov4689(sd); |
|---|
| 764 | 756 | const struct ov4689_mode *mode = ov4689->cur_mode; |
|---|
| 765 | 757 | |
|---|
| 766 | | - mutex_lock(&ov4689->mutex); |
|---|
| 767 | 758 | fi->interval = mode->max_fps; |
|---|
| 768 | | - mutex_unlock(&ov4689->mutex); |
|---|
| 769 | 759 | |
|---|
| 770 | 760 | return 0; |
|---|
| 771 | 761 | } |
|---|
| 772 | 762 | |
|---|
| 773 | | -static int ov4689_g_mbus_config(struct v4l2_subdev *sd, |
|---|
| 763 | +static int ov4689_g_mbus_config(struct v4l2_subdev *sd, unsigned int pad_id, |
|---|
| 774 | 764 | struct v4l2_mbus_config *config) |
|---|
| 775 | 765 | { |
|---|
| 776 | 766 | struct ov4689 *ov4689 = to_ov4689(sd); |
|---|
| .. | .. |
|---|
| 784 | 774 | if (mode->hdr_mode == HDR_X3) |
|---|
| 785 | 775 | val |= V4L2_MBUS_CSI2_CHANNEL_2; |
|---|
| 786 | 776 | |
|---|
| 787 | | - config->type = V4L2_MBUS_CSI2; |
|---|
| 777 | + config->type = V4L2_MBUS_CSI2_DPHY; |
|---|
| 788 | 778 | config->flags = val; |
|---|
| 789 | 779 | |
|---|
| 790 | 780 | return 0; |
|---|
| .. | .. |
|---|
| 1292 | 1282 | static const struct v4l2_subdev_video_ops ov4689_video_ops = { |
|---|
| 1293 | 1283 | .s_stream = ov4689_s_stream, |
|---|
| 1294 | 1284 | .g_frame_interval = ov4689_g_frame_interval, |
|---|
| 1295 | | - .g_mbus_config = ov4689_g_mbus_config, |
|---|
| 1296 | 1285 | }; |
|---|
| 1297 | 1286 | |
|---|
| 1298 | 1287 | static const struct v4l2_subdev_pad_ops ov4689_pad_ops = { |
|---|
| .. | .. |
|---|
| 1301 | 1290 | .enum_frame_interval = ov4689_enum_frame_interval, |
|---|
| 1302 | 1291 | .get_fmt = ov4689_get_fmt, |
|---|
| 1303 | 1292 | .set_fmt = ov4689_set_fmt, |
|---|
| 1293 | + .get_mbus_config = ov4689_g_mbus_config, |
|---|
| 1304 | 1294 | }; |
|---|
| 1305 | 1295 | |
|---|
| 1306 | 1296 | static const struct v4l2_subdev_ops ov4689_subdev_ops = { |
|---|