.. | .. |
---|
94 | 94 | |
---|
95 | 95 | #define OV2775_NAME "ov2775" |
---|
96 | 96 | |
---|
97 | | -enum ov2775_max_pad { |
---|
98 | | - PAD0, /* link to isp */ |
---|
99 | | - PAD1, /* link to csi wr0 | hdr x2:L x3:M */ |
---|
100 | | - PAD2, /* link to csi wr1 | hdr x3:L */ |
---|
101 | | - PAD3, /* link to csi wr2 | hdr x2:M x3:S */ |
---|
102 | | - PAD_MAX, |
---|
103 | | -}; |
---|
104 | | - |
---|
105 | 97 | struct ov2775_gpio { |
---|
106 | 98 | int pltfrm_gpio; |
---|
107 | 99 | const char *label; |
---|
.. | .. |
---|
4111 | 4103 | struct ov2775 *ov2775 = to_ov2775(sd); |
---|
4112 | 4104 | const struct ov2775_mode *mode = ov2775->cur_mode; |
---|
4113 | 4105 | |
---|
4114 | | - mutex_lock(&ov2775->mutex); |
---|
4115 | 4106 | fi->interval = mode->max_fps; |
---|
4116 | | - mutex_unlock(&ov2775->mutex); |
---|
4117 | 4107 | |
---|
4118 | 4108 | return 0; |
---|
4119 | 4109 | } |
---|
.. | .. |
---|
4873 | 4863 | switch (ctrl->id) { |
---|
4874 | 4864 | case V4L2_CID_EXPOSURE: |
---|
4875 | 4865 | if (ov2775->cur_mode->hdr_mode != NO_HDR) |
---|
4876 | | - return 0; |
---|
| 4866 | + goto ctrl_end; |
---|
4877 | 4867 | ret = ov2775_write_reg(ov2775->client, |
---|
4878 | 4868 | OV2775_REG_EXPOSURE_H, |
---|
4879 | 4869 | OV2775_REG_VALUE_08BIT, |
---|
.. | .. |
---|
4888 | 4878 | break; |
---|
4889 | 4879 | case V4L2_CID_ANALOGUE_GAIN: |
---|
4890 | 4880 | if (ov2775->cur_mode->hdr_mode != NO_HDR) |
---|
4891 | | - return 0; |
---|
| 4881 | + goto ctrl_end; |
---|
4892 | 4882 | ov2775_get_linear_reg(ctrl->val, &gain_a, &gain_d); |
---|
4893 | 4883 | ret = ov2775_write_reg(ov2775->client, |
---|
4894 | 4884 | OV2775_REG_GAIN, |
---|
.. | .. |
---|
4945 | 4935 | break; |
---|
4946 | 4936 | } |
---|
4947 | 4937 | |
---|
| 4938 | +ctrl_end: |
---|
4948 | 4939 | pm_runtime_put(&client->dev); |
---|
4949 | 4940 | |
---|
4950 | 4941 | return ret; |
---|