| .. | .. |
|---|
| 103 | 103 | |
|---|
| 104 | 104 | #define OV4688_NUM_SUPPLIES ARRAY_SIZE(ov4688_supply_names) |
|---|
| 105 | 105 | |
|---|
| 106 | | -enum ov4688_max_pad { |
|---|
| 107 | | - PAD0, /* link to isp */ |
|---|
| 108 | | - PAD1, /* link to csi wr0 | hdr x2:L x3:M */ |
|---|
| 109 | | - PAD2, /* link to csi wr1 | hdr x3:L */ |
|---|
| 110 | | - PAD3, /* link to csi wr2 | hdr x2:M x3:S */ |
|---|
| 111 | | - PAD_MAX, |
|---|
| 112 | | -}; |
|---|
| 113 | | - |
|---|
| 114 | 106 | struct regval { |
|---|
| 115 | 107 | u16 addr; |
|---|
| 116 | 108 | u8 val; |
|---|
| .. | .. |
|---|
| 984 | 976 | struct ov4688 *ov4688 = to_ov4688(sd); |
|---|
| 985 | 977 | const struct ov4688_mode *mode = ov4688->cur_mode; |
|---|
| 986 | 978 | |
|---|
| 987 | | - mutex_lock(&ov4688->mutex); |
|---|
| 988 | 979 | fi->interval = mode->max_fps; |
|---|
| 989 | | - mutex_unlock(&ov4688->mutex); |
|---|
| 990 | 980 | |
|---|
| 991 | 981 | return 0; |
|---|
| 992 | 982 | } |
|---|
| 993 | 983 | |
|---|
| 994 | | -static int ov4688_g_mbus_config(struct v4l2_subdev *sd, |
|---|
| 984 | +static int ov4688_g_mbus_config(struct v4l2_subdev *sd, unsigned int pad_id, |
|---|
| 995 | 985 | struct v4l2_mbus_config *config) |
|---|
| 996 | 986 | { |
|---|
| 997 | 987 | struct ov4688 *ov4688 = to_ov4688(sd); |
|---|
| .. | .. |
|---|
| 1005 | 995 | if (mode->hdr_mode == HDR_X3) |
|---|
| 1006 | 996 | val |= V4L2_MBUS_CSI2_CHANNEL_2; |
|---|
| 1007 | 997 | |
|---|
| 1008 | | - config->type = V4L2_MBUS_CSI2; |
|---|
| 998 | + config->type = V4L2_MBUS_CSI2_DPHY; |
|---|
| 1009 | 999 | config->flags = val; |
|---|
| 1010 | 1000 | |
|---|
| 1011 | 1001 | return 0; |
|---|
| .. | .. |
|---|
| 1480 | 1470 | static const struct v4l2_subdev_video_ops ov4688_video_ops = { |
|---|
| 1481 | 1471 | .s_stream = ov4688_s_stream, |
|---|
| 1482 | 1472 | .g_frame_interval = ov4688_g_frame_interval, |
|---|
| 1483 | | - .g_mbus_config = ov4688_g_mbus_config, |
|---|
| 1484 | 1473 | }; |
|---|
| 1485 | 1474 | |
|---|
| 1486 | 1475 | static const struct v4l2_subdev_pad_ops ov4688_pad_ops = { |
|---|
| .. | .. |
|---|
| 1490 | 1479 | .get_fmt = ov4688_get_fmt, |
|---|
| 1491 | 1480 | .set_fmt = ov4688_set_fmt, |
|---|
| 1492 | 1481 | .get_selection = ov4688_get_selection, |
|---|
| 1482 | + .get_mbus_config = ov4688_g_mbus_config, |
|---|
| 1493 | 1483 | }; |
|---|
| 1494 | 1484 | |
|---|
| 1495 | 1485 | static const struct v4l2_subdev_ops ov4688_subdev_ops = { |
|---|