int adv748x_csi2_set_pixelrate(struct v4l2_subdev *sd, s64 rate)
 {
-       struct v4l2_ctrl *ctrl;
+       struct adv748x_csi2 *tx = adv748x_sd_to_csi2(sd);
 
-       ctrl = v4l2_ctrl_find(sd->ctrl_handler, V4L2_CID_PIXEL_RATE);
-       if (!ctrl)
+       if (!tx->pixel_rate)
                return -EINVAL;
 
-       return v4l2_ctrl_s_ctrl_int64(ctrl, rate);
+       return v4l2_ctrl_s_ctrl_int64(tx->pixel_rate, rate);
 }
 
 static int adv748x_csi2_s_ctrl(struct v4l2_ctrl *ctrl)
 
        v4l2_ctrl_handler_init(&tx->ctrl_hdl, 1);
 
-       v4l2_ctrl_new_std(&tx->ctrl_hdl, &adv748x_csi2_ctrl_ops,
-                         V4L2_CID_PIXEL_RATE, 1, INT_MAX, 1, 1);
+       tx->pixel_rate = v4l2_ctrl_new_std(&tx->ctrl_hdl,
+                                          &adv748x_csi2_ctrl_ops,
+                                          V4L2_CID_PIXEL_RATE, 1, INT_MAX,
+                                          1, 1);
 
        tx->sd.ctrl_handler = &tx->ctrl_hdl;
        if (tx->ctrl_hdl.error) {