struct adv7180_state *state = to_state(sd);
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               format->format = *v4l2_subdev_get_try_format(sd, sd_state, 0);
+               format->format = *v4l2_subdev_state_get_format(sd_state, 0);
        } else {
                adv7180_mbus_fmt(sd, &format->format);
                format->format.field = state->field;
                        adv7180_set_power(state, true);
                }
        } else {
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, 0);
+               framefmt = v4l2_subdev_state_get_format(sd_state, 0);
                *framefmt = format->format;
        }
 
 
        if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE)
                decoder->fmt = *fmt;
        else
-               *v4l2_subdev_get_pad_format(sd, sd_state, 0) = *fmt;
+               *v4l2_subdev_state_get_format(sd_state, 0) = *fmt;
        return 0;
 }
 
 
                return -EINVAL;
 
        if (sdformat->which == V4L2_SUBDEV_FORMAT_TRY) {
-               mbusformat = v4l2_subdev_get_try_format(sd, sd_state,
-                                                       sdformat->pad);
+               mbusformat = v4l2_subdev_state_get_format(sd_state,
+                                                         sdformat->pad);
                sdformat->format = *mbusformat;
        } else {
                adv748x_afe_fill_format(afe, &sdformat->format);
        if (sdformat->which == V4L2_SUBDEV_FORMAT_ACTIVE)
                return adv748x_afe_get_format(sd, sd_state, sdformat);
 
-       mbusformat = v4l2_subdev_get_try_format(sd, sd_state, sdformat->pad);
+       mbusformat = v4l2_subdev_state_get_format(sd_state, sdformat->pad);
        *mbusformat = sdformat->format;
 
        return 0;
 
        struct adv748x_csi2 *tx = adv748x_sd_to_csi2(sd);
 
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(sd, sd_state, pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
 
        return &tx->format;
 }
 
                return -EINVAL;
 
        if (sdformat->which == V4L2_SUBDEV_FORMAT_TRY) {
-               mbusformat = v4l2_subdev_get_try_format(sd, sd_state,
-                                                       sdformat->pad);
+               mbusformat = v4l2_subdev_state_get_format(sd_state,
+                                                         sdformat->pad);
                sdformat->format = *mbusformat;
        } else {
                adv748x_hdmi_fill_format(hdmi, &sdformat->format);
        if (sdformat->which == V4L2_SUBDEV_FORMAT_ACTIVE)
                return adv748x_hdmi_get_format(sd, sd_state, sdformat);
 
-       mbusformat = v4l2_subdev_get_try_format(sd, sd_state, sdformat->pad);
+       mbusformat = v4l2_subdev_state_get_format(sd_state, sdformat->pad);
        *mbusformat = sdformat->format;
 
        return 0;
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
                struct v4l2_mbus_framefmt *fmt;
 
-               fmt = v4l2_subdev_get_try_format(sd, sd_state, format->pad);
+               fmt = v4l2_subdev_state_get_format(sd_state, format->pad);
                format->format.code = fmt->code;
                format->format.colorspace = fmt->colorspace;
                format->format.ycbcr_enc = fmt->ycbcr_enc;
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
                struct v4l2_mbus_framefmt *fmt;
 
-               fmt = v4l2_subdev_get_try_format(sd, sd_state, format->pad);
+               fmt = v4l2_subdev_state_get_format(sd_state, format->pad);
                fmt->code = format->format.code;
                fmt->colorspace = format->format.colorspace;
                fmt->ycbcr_enc = format->format.ycbcr_enc;
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
                struct v4l2_mbus_framefmt *fmt;
 
-               fmt = v4l2_subdev_get_try_format(sd, sd_state, format->pad);
+               fmt = v4l2_subdev_state_get_format(sd_state, format->pad);
                format->format.code = fmt->code;
        } else {
                format->format.code = state->format->code;
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
                struct v4l2_mbus_framefmt *fmt;
 
-               fmt = v4l2_subdev_get_try_format(sd, sd_state, format->pad);
+               fmt = v4l2_subdev_state_get_format(sd_state, format->pad);
                fmt->code = format->format.code;
        } else {
                state->format = info;
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
                struct v4l2_mbus_framefmt *fmt;
 
-               fmt = v4l2_subdev_get_try_format(sd, sd_state, format->pad);
+               fmt = v4l2_subdev_state_get_format(sd_state, format->pad);
                format->format.code = fmt->code;
        } else {
                format->format.code = state->format->code;
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
                struct v4l2_mbus_framefmt *fmt;
 
-               fmt = v4l2_subdev_get_try_format(sd, sd_state, format->pad);
+               fmt = v4l2_subdev_state_get_format(sd_state, format->pad);
                fmt->code = format->format.code;
        } else {
                state->format = info;
 
        mutex_lock(&sensor->lock);
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY)
-               fmt = v4l2_subdev_get_try_format(&sensor->sd, sd_state, 0
-                                                /* pad */);
+               fmt = v4l2_subdev_state_get_format(sd_state, 0);
        else
                fmt = &sensor->fmt;
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
                struct v4l2_mbus_framefmt *fmt;
 
-               fmt = v4l2_subdev_get_try_format(sd, sd_state, 0 /* pad */);
+               fmt = v4l2_subdev_state_get_format(sd_state, 0);
                *fmt = format->format;
 
                mutex_unlock(&sensor->lock);
 
                            struct v4l2_subdev_state *sd_state,
                            struct v4l2_subdev_format *fmt)
 {
-       fmt->format = *v4l2_subdev_get_pad_format(subdev, sd_state, fmt->pad);
+       fmt->format = *v4l2_subdev_state_get_format(sd_state, fmt->pad);
        fmt->format.code = __ccs_get_mbus_code(subdev, fmt->pad);
 
        return 0;
        if (crops)
                for (i = 0; i < subdev->entity.num_pads; i++)
                        crops[i] =
-                               v4l2_subdev_get_pad_crop(subdev, sd_state, i);
+                               v4l2_subdev_state_get_crop(sd_state, i);
        if (comps)
-               *comps = v4l2_subdev_get_pad_compose(subdev, sd_state,
-                                                    ssd->sink_pad);
+               *comps = v4l2_subdev_state_get_compose(sd_state,
+                                                      ssd->sink_pad);
 }
 
 /* Changes require propagation only on sink pad. */
                fallthrough;
        case V4L2_SEL_TGT_COMPOSE:
                *crops[CCS_PAD_SRC] = *comp;
-               fmt = v4l2_subdev_get_pad_format(subdev, sd_state, CCS_PAD_SRC);
+               fmt = v4l2_subdev_state_get_format(sd_state, CCS_PAD_SRC);
                fmt->width = comp->width;
                fmt->height = comp->height;
                if (which == V4L2_SUBDEV_FORMAT_ACTIVE && ssd == sensor->src)
 
        if (sel->pad == ssd->sink_pad) {
                struct v4l2_mbus_framefmt *mfmt =
-                       v4l2_subdev_get_pad_format(subdev, sd_state, sel->pad);
+                       v4l2_subdev_state_get_format(sd_state, sel->pad);
 
                src_size.width = mfmt->width;
                src_size.height = mfmt->height;
                        ccs_get_native_size(ssd, &sel->r);
                } else if (sel->pad == ssd->sink_pad) {
                        struct v4l2_mbus_framefmt *sink_fmt =
-                               v4l2_subdev_get_pad_format(subdev, sd_state,
-                                                          ssd->sink_pad);
+                               v4l2_subdev_state_get_format(sd_state,
+                                                            ssd->sink_pad);
                        sel->r.top = sel->r.left = 0;
                        sel->r.width = sink_fmt->width;
                        sel->r.height = sink_fmt->height;
        unsigned int pad = ssd == sensor->pixel_array ?
                CCS_PA_PAD_SRC : CCS_PAD_SINK;
        struct v4l2_mbus_framefmt *fmt =
-               v4l2_subdev_get_pad_format(sd, sd_state, pad);
+               v4l2_subdev_state_get_format(sd_state, pad);
        struct v4l2_rect *crop =
-               v4l2_subdev_get_pad_crop(sd, sd_state, pad);
+               v4l2_subdev_state_get_crop(sd_state, pad);
        bool is_active = !sd->active_state || sd->active_state == sd_state;
 
        mutex_lock(&sensor->mutex);
                return 0;
        }
 
-       fmt = v4l2_subdev_get_pad_format(sd, sd_state, CCS_PAD_SRC);
+       fmt = v4l2_subdev_state_get_format(sd_state, CCS_PAD_SRC);
        fmt->code = ssd == sensor->src ?
                sensor->csi_format->code : sensor->internal_csi_format->code;
        fmt->field = V4L2_FIELD_NONE;
 
 {
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_format(&sensor->subdev, sd_state,
-                                                 pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return &sensor->format;
        default:
 
 {
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_crop(&hi556->sd, sd_state, pad);
+               return v4l2_subdev_state_get_crop(sd_state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return &hi556->cur_mode->crop;
        }
        mutex_lock(&hi556->mutex);
        hi556_assign_pad_format(mode, &fmt->format);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_try_format(sd, sd_state, fmt->pad) = fmt->format;
+               *v4l2_subdev_state_get_format(sd_state, fmt->pad) = fmt->format;
        } else {
                hi556->cur_mode = mode;
                __v4l2_ctrl_s_ctrl(hi556->link_freq, mode->link_freq_index);
 
        mutex_lock(&hi556->mutex);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
-               fmt->format = *v4l2_subdev_get_try_format(&hi556->sd,
-                                                         sd_state,
-                                                         fmt->pad);
+               fmt->format = *v4l2_subdev_state_get_format(sd_state,
+                                                           fmt->pad);
        else
                hi556_assign_pad_format(hi556->cur_mode, &fmt->format);
 
 
        mutex_lock(&hi556->mutex);
        hi556_assign_pad_format(&supported_modes[0],
-                               v4l2_subdev_get_try_format(sd, fh->state, 0));
+                               v4l2_subdev_state_get_format(fh->state, 0));
 
        /* Initialize try_crop rectangle. */
-       try_crop = v4l2_subdev_get_try_crop(sd, fh->state, 0);
+       try_crop = v4l2_subdev_state_get_crop(fh->state, 0);
        try_crop->top = HI556_PIXEL_ARRAY_TOP;
        try_crop->left = HI556_PIXEL_ARRAY_LEFT;
        try_crop->width = HI556_PIXEL_ARRAY_WIDTH;
 
        }
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_try_format(sd, sd_state, format->pad) = *mf;
+               *v4l2_subdev_state_get_format(sd_state, format->pad) = *mf;
                return 0;
        }
 
        struct i2c_client *client = v4l2_get_subdevdata(sd);
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               format->format = *v4l2_subdev_get_try_format(&hi846->sd,
-                                                       sd_state,
-                                                       format->pad);
+               format->format = *v4l2_subdev_state_get_format(sd_state,
+                                                              format->pad);
                return 0;
        }
 
                mutex_lock(&hi846->mutex);
                switch (sel->which) {
                case V4L2_SUBDEV_FORMAT_TRY:
-                       v4l2_subdev_get_try_crop(sd, sd_state, sel->pad);
+                       v4l2_subdev_state_get_crop(sd_state, sel->pad);
                        break;
                case V4L2_SUBDEV_FORMAT_ACTIVE:
                        sel->r = hi846->cur_mode->crop;
        struct hi846 *hi846 = to_hi846(sd);
        struct v4l2_mbus_framefmt *mf;
 
-       mf = v4l2_subdev_get_try_format(sd, sd_state, 0);
+       mf = v4l2_subdev_state_get_format(sd_state, 0);
 
        mutex_lock(&hi846->mutex);
        mf->code        = HI846_MEDIA_BUS_FORMAT;
 
        mutex_lock(&hi847->mutex);
        hi847_assign_pad_format(mode, &fmt->format);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_try_format(sd, sd_state, fmt->pad) =
+               *v4l2_subdev_state_get_format(sd_state, fmt->pad) =
                        fmt->format;
        } else {
                hi847->cur_mode = mode;
 
        mutex_lock(&hi847->mutex);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
-               fmt->format = *v4l2_subdev_get_try_format(&hi847->sd,
-                                                         sd_state,
-                                                         fmt->pad);
+               fmt->format = *v4l2_subdev_state_get_format(sd_state,
+                                                           fmt->pad);
        else
                hi847_assign_pad_format(hi847->cur_mode, &fmt->format);
 
 
        mutex_lock(&hi847->mutex);
        hi847_assign_pad_format(&supported_modes[0],
-                               v4l2_subdev_get_try_format(sd, fh->state, 0));
+                               v4l2_subdev_state_get_format(fh->state, 0));
        mutex_unlock(&hi847->mutex);
 
        return 0;
 
 static int imx208_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
 {
        struct v4l2_mbus_framefmt *try_fmt =
-               v4l2_subdev_get_try_format(sd, fh->state, 0);
+               v4l2_subdev_state_get_format(fh->state, 0);
 
        /* Initialize try_fmt */
        try_fmt->width = supported_modes[0].width;
                                   struct v4l2_subdev_format *fmt)
 {
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
-               fmt->format = *v4l2_subdev_get_try_format(&imx208->sd,
-                                                         sd_state,
-                                                         fmt->pad);
+               fmt->format = *v4l2_subdev_state_get_format(sd_state,
+                                                           fmt->pad);
        else
                imx208_mode_to_pad_format(imx208, imx208->cur_mode, fmt);
 
                                      fmt->format.width, fmt->format.height);
        imx208_mode_to_pad_format(imx208, mode, fmt);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_try_format(sd, sd_state, fmt->pad) = fmt->format;
+               *v4l2_subdev_state_get_format(sd_state, fmt->pad) = fmt->format;
        } else {
                imx208->cur_mode = mode;
                __v4l2_ctrl_s_ctrl(imx208->link_freq, mode->link_freq_index);
 
 {
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_format(&imx214->sd, sd_state, pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return &imx214->fmt;
        default:
 {
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_crop(&imx214->sd, sd_state, pad);
+               return v4l2_subdev_state_get_crop(sd_state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return &imx214->crop;
        default:
 
        int ret = 0;
 
        state = v4l2_subdev_get_locked_active_state(&imx219->sd);
-       format = v4l2_subdev_get_pad_format(&imx219->sd, state, 0);
+       format = v4l2_subdev_state_get_format(state, 0);
 
        if (ctrl->id == V4L2_CID_VBLANK) {
                int exposure_max, exposure_def;
        u64 bin_h, bin_v;
        int ret = 0;
 
-       format = v4l2_subdev_get_pad_format(&imx219->sd, state, 0);
-       crop = v4l2_subdev_get_pad_crop(&imx219->sd, state, 0);
+       format = v4l2_subdev_state_get_format(state, 0);
+       crop = v4l2_subdev_state_get_crop(state, 0);
 
        switch (format->code) {
        case MEDIA_BUS_FMT_SRGGB8_1X8:
 
        imx219_update_pad_format(imx219, mode, &fmt->format, fmt->format.code);
 
-       format = v4l2_subdev_get_pad_format(sd, state, 0);
+       format = v4l2_subdev_state_get_format(state, 0);
        *format = fmt->format;
 
        /*
        bin_h = min(IMX219_PIXEL_ARRAY_WIDTH / format->width, 2U);
        bin_v = min(IMX219_PIXEL_ARRAY_HEIGHT / format->height, 2U);
 
-       crop = v4l2_subdev_get_pad_crop(sd, state, 0);
+       crop = v4l2_subdev_state_get_crop(state, 0);
        crop->width = format->width * bin_h;
        crop->height = format->height * bin_v;
        crop->left = (IMX219_NATIVE_WIDTH - crop->width) / 2;
 {
        switch (sel->target) {
        case V4L2_SEL_TGT_CROP: {
-               sel->r = *v4l2_subdev_get_pad_crop(sd, state, 0);
+               sel->r = *v4l2_subdev_state_get_crop(state, 0);
                return 0;
        }
 
 
 static int imx258_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
 {
        struct v4l2_mbus_framefmt *try_fmt =
-               v4l2_subdev_get_try_format(sd, fh->state, 0);
+               v4l2_subdev_state_get_format(fh->state, 0);
 
        /* Initialize try_fmt */
        try_fmt->width = supported_modes[0].width;
                                   struct v4l2_subdev_format *fmt)
 {
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
-               fmt->format = *v4l2_subdev_get_try_format(&imx258->sd,
-                                                         sd_state,
-                                                         fmt->pad);
+               fmt->format = *v4l2_subdev_state_get_format(sd_state,
+                                                           fmt->pad);
        else
                imx258_update_pad_format(imx258->cur_mode, fmt);
 
                fmt->format.width, fmt->format.height);
        imx258_update_pad_format(mode, fmt);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                *framefmt = fmt->format;
        } else {
                imx258->cur_mode = mode;
 
        int best_goodness = INT_MIN;
 
        if (which == V4L2_SUBDEV_FORMAT_TRY) {
-               cur_crop = v4l2_subdev_get_pad_crop(&imx274->sd, sd_state, 0);
-               tgt_fmt = v4l2_subdev_get_pad_format(&imx274->sd, sd_state, 0);
+               cur_crop = v4l2_subdev_state_get_crop(sd_state, 0);
+               tgt_fmt = v4l2_subdev_state_get_format(sd_state, 0);
        } else {
                cur_crop = &imx274->crop;
                tgt_fmt = &imx274->format;
         */
        fmt->field = V4L2_FIELD_NONE;
        if (format->which == V4L2_SUBDEV_FORMAT_TRY)
-               *v4l2_subdev_get_pad_format(sd, sd_state, 0) = *fmt;
+               *v4l2_subdev_state_get_format(sd_state, 0) = *fmt;
        else
                imx274->format = *fmt;
 
        }
 
        if (sel->which == V4L2_SUBDEV_FORMAT_TRY) {
-               src_crop = v4l2_subdev_get_pad_crop(sd, sd_state, 0);
-               src_fmt = v4l2_subdev_get_pad_format(sd, sd_state, 0);
+               src_crop = v4l2_subdev_state_get_crop(sd_state, 0);
+               src_fmt = v4l2_subdev_state_get_format(sd_state, 0);
        } else {
                src_crop = &imx274->crop;
                src_fmt = &imx274->format;
        sel->r = new_crop;
 
        if (sel->which == V4L2_SUBDEV_FORMAT_TRY)
-               tgt_crop = v4l2_subdev_get_pad_crop(&imx274->sd, sd_state, 0);
+               tgt_crop = v4l2_subdev_state_get_crop(sd_state, 0);
        else
                tgt_crop = &imx274->crop;
 
 
                return 0;
 
        state = v4l2_subdev_get_locked_active_state(&imx290->sd);
-       format = v4l2_subdev_get_pad_format(&imx290->sd, state, 0);
+       format = v4l2_subdev_state_get_format(state, 0);
 
        switch (ctrl->id) {
        case V4L2_CID_ANALOGUE_GAIN:
        }
 
        /* Apply the register values related to current frame format */
-       format = v4l2_subdev_get_pad_format(&imx290->sd, state, 0);
+       format = v4l2_subdev_state_get_format(state, 0);
        ret = imx290_setup_format(imx290, format);
        if (ret < 0) {
                dev_err(imx290->dev, "Could not set frame format - %d\n", ret);
        fmt->format.quantization = V4L2_QUANTIZATION_FULL_RANGE;
        fmt->format.xfer_func = V4L2_XFER_FUNC_NONE;
 
-       format = v4l2_subdev_get_pad_format(sd, sd_state, 0);
+       format = v4l2_subdev_state_get_format(sd_state, 0);
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_ACTIVE) {
                imx290->current_mode = mode;
 
        switch (sel->target) {
        case V4L2_SEL_TGT_CROP: {
-               format = v4l2_subdev_get_pad_format(sd, sd_state, 0);
+               format = v4l2_subdev_state_get_format(sd_state, 0);
 
                /*
                 * The sensor moves the readout by 1 pixel based on flips to
 
                return 0;
 
        state = v4l2_subdev_get_locked_active_state(&sensor->subdev);
-       format = v4l2_subdev_get_pad_format(&sensor->subdev, state, 0);
+       format = v4l2_subdev_state_get_format(state, 0);
 
        switch (ctrl->id) {
        case V4L2_CID_EXPOSURE:
        unsigned int i;
        int ret = 0;
 
-       format = v4l2_subdev_get_pad_format(&sensor->subdev, state, 0);
-       crop = v4l2_subdev_get_pad_crop(&sensor->subdev, state, 0);
+       format = v4l2_subdev_state_get_format(state, 0);
+       crop = v4l2_subdev_state_get_crop(state, 0);
 
        for (i = 0; i < ARRAY_SIZE(imx296_init_table); ++i)
                imx296_write(sensor, imx296_init_table[i].reg,
 {
        const struct v4l2_mbus_framefmt *format;
 
-       format = v4l2_subdev_get_pad_format(sd, state, fse->pad);
+       format = v4l2_subdev_state_get_format(state, fse->pad);
 
        if (fse->index >= 2 || fse->code != format->code)
                return -EINVAL;
        struct v4l2_mbus_framefmt *format;
        struct v4l2_rect *crop;
 
-       crop = v4l2_subdev_get_pad_crop(sd, state, fmt->pad);
-       format = v4l2_subdev_get_pad_format(sd, state, fmt->pad);
+       crop = v4l2_subdev_state_get_crop(state, fmt->pad);
+       format = v4l2_subdev_state_get_format(state, fmt->pad);
 
        /*
         * Binning is only allowed when cropping is disabled according to the
 {
        switch (sel->target) {
        case V4L2_SEL_TGT_CROP:
-               sel->r = *v4l2_subdev_get_pad_crop(sd, state, sel->pad);
+               sel->r = *v4l2_subdev_state_get_crop(state, sel->pad);
                break;
 
        case V4L2_SEL_TGT_CROP_DEFAULT:
        rect.height = min_t(unsigned int, rect.height,
                            IMX296_PIXEL_ARRAY_HEIGHT - rect.top);
 
-       crop = v4l2_subdev_get_pad_crop(sd, state, sel->pad);
+       crop = v4l2_subdev_state_get_crop(state, sel->pad);
 
        if (rect.width != crop->width || rect.height != crop->height) {
                /*
                 * Reset the output image size if the crop rectangle size has
                 * been modified.
                 */
-               format = v4l2_subdev_get_pad_format(sd, state, sel->pad);
+               format = v4l2_subdev_state_get_format(state, sel->pad);
                format->width = rect.width;
                format->height = rect.height;
        }
 
 {
        struct imx319 *imx319 = to_imx319(sd);
        struct v4l2_mbus_framefmt *try_fmt =
-               v4l2_subdev_get_try_format(sd, fh->state, 0);
+               v4l2_subdev_state_get_format(fh->state, 0);
 
        mutex_lock(&imx319->mutex);
 
                                    struct v4l2_subdev_format *fmt)
 {
        struct v4l2_mbus_framefmt *framefmt;
-       struct v4l2_subdev *sd = &imx319->sd;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                fmt->format = *framefmt;
        } else {
                imx319_update_pad_format(imx319, imx319->cur_mode, fmt);
                                      fmt->format.width, fmt->format.height);
        imx319_update_pad_format(imx319, mode, fmt);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                *framefmt = fmt->format;
        } else {
                imx319->cur_mode = mode;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
                struct v4l2_mbus_framefmt *framefmt;
 
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                fmt->format = *framefmt;
        } else {
                fmt->format.code = imx334->cur_code;
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
                struct v4l2_mbus_framefmt *framefmt;
 
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                *framefmt = fmt->format;
        } else if (imx334->cur_mode != mode || imx334->cur_code != fmt->format.code) {
                imx334->cur_code = fmt->format.code;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
                struct v4l2_mbus_framefmt *framefmt;
 
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                fmt->format = *framefmt;
        } else {
                imx335_fill_pad_format(imx335, imx335->cur_mode, fmt);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
                struct v4l2_mbus_framefmt *framefmt;
 
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                *framefmt = fmt->format;
        } else {
                ret = imx335_update_controls(imx335, mode);
 
 {
        struct imx355 *imx355 = to_imx355(sd);
        struct v4l2_mbus_framefmt *try_fmt =
-               v4l2_subdev_get_try_format(sd, fh->state, 0);
+               v4l2_subdev_state_get_format(fh->state, 0);
 
        mutex_lock(&imx355->mutex);
 
                                    struct v4l2_subdev_format *fmt)
 {
        struct v4l2_mbus_framefmt *framefmt;
-       struct v4l2_subdev *sd = &imx355->sd;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                fmt->format = *framefmt;
        } else {
                imx355_update_pad_format(imx355, imx355->cur_mode, fmt);
                                      fmt->format.width, fmt->format.height);
        imx355_update_pad_format(imx355, mode, fmt);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                *framefmt = fmt->format;
        } else {
                imx355->cur_mode = mode;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
                struct v4l2_mbus_framefmt *framefmt;
 
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                fmt->format = *framefmt;
        } else {
                imx412_fill_pad_format(imx412, imx412->cur_mode, fmt);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
                struct v4l2_mbus_framefmt *framefmt;
 
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                *framefmt = fmt->format;
        } else {
                ret = imx412_update_controls(imx412, mode);
 
                return 0;
 
        state = v4l2_subdev_get_locked_active_state(&sensor->subdev);
-       format = v4l2_subdev_get_pad_format(&sensor->subdev, state, 0);
+       format = v4l2_subdev_state_get_format(state, 0);
 
        switch (ctrl->id) {
        case V4L2_CID_EXPOSURE:
 {
        const struct v4l2_mbus_framefmt *format;
 
-       format = v4l2_subdev_get_pad_format(sd, state, fse->pad);
+       format = v4l2_subdev_state_get_format(state, fse->pad);
 
        if (fse->index > 0 || fse->code != format->code)
                return -EINVAL;
 {
        struct v4l2_mbus_framefmt *format;
 
-       format = v4l2_subdev_get_pad_format(sd, state, fmt->pad);
+       format = v4l2_subdev_state_get_format(state, fmt->pad);
 
        format->width = fmt->format.width;
        format->height = fmt->format.height;
 
        mutex_lock(&isl7998x->lock);
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               format->format = *v4l2_subdev_get_try_format(sd, sd_state,
-                                                            format->pad);
+               format->format = *v4l2_subdev_state_get_format(sd_state,
+                                                              format->pad);
                goto out;
        }
 
        mf->field = mode->field;
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY)
-               *v4l2_subdev_get_try_format(sd, sd_state, format->pad) = format->format;
+               *v4l2_subdev_state_get_format(sd_state, format->pad) = format->format;
 
        mutex_unlock(&isl7998x->lock);
 
 
 {
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_format(&priv->sd, sd_state, pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return &priv->fmt[pad];
        default:
        unsigned int i;
 
        for (i = 0; i < MAX9286_N_SINKS; i++) {
-               format = v4l2_subdev_get_try_format(subdev, fh->state, i);
+               format = v4l2_subdev_state_get_format(fh->state, i);
                max9286_init_format(format);
        }
 
 
                return -EINVAL;
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               mf = v4l2_subdev_get_try_format(sd, sd_state, 0);
+               mf = v4l2_subdev_state_get_format(sd_state, 0);
                format->format = *mf;
                return 0;
        }
 
        if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE)
                return mt9m001_s_fmt(sd, fmt, mf);
-       *v4l2_subdev_get_pad_format(sd, sd_state, 0) = *mf;
+       *v4l2_subdev_state_get_format(sd_state, 0) = *mf;
        return 0;
 }
 
        struct i2c_client *client = v4l2_get_subdevdata(sd);
        struct mt9m001 *mt9m001 = to_mt9m001(client);
        struct v4l2_mbus_framefmt *try_fmt =
-               v4l2_subdev_get_try_format(sd, sd_state, 0);
+               v4l2_subdev_state_get_format(sd_state, 0);
 
        try_fmt->width          = MT9M001_MAX_WIDTH;
        try_fmt->height         = MT9M001_MAX_HEIGHT;
 
                return -EINVAL;
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               mf = v4l2_subdev_get_try_format(sd, sd_state, format->pad);
+               mf = v4l2_subdev_state_get_format(sd_state, format->pad);
                format->format = *mf;
                return 0;
        }
        mf->xfer_func   = V4L2_XFER_FUNC_DEFAULT;
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_pad_format(sd, sd_state, 0) = *mf;
+               *v4l2_subdev_state_get_format(sd_state, 0) = *mf;
                return 0;
        }
 
                            struct v4l2_subdev_state *sd_state)
 {
        struct v4l2_mbus_framefmt *format =
-               v4l2_subdev_get_try_format(sd, sd_state, 0);
+               v4l2_subdev_state_get_format(sd_state, 0);
 
        format->width   = MT9M111_MAX_WIDTH;
        format->height  = MT9M111_MAX_HEIGHT;
 
        u64 read_mode;
        int ret = 0;
 
-       pa_format = v4l2_subdev_get_pad_format(&sensor->pa.sd, pa_state, 0);
-       pa_crop = v4l2_subdev_get_pad_crop(&sensor->pa.sd, pa_state, 0);
+       pa_format = v4l2_subdev_state_get_format(pa_state, 0);
+       pa_crop = v4l2_subdev_state_get_crop(pa_state, 0);
 
-       ifp_format = v4l2_subdev_get_pad_format(&sensor->ifp.sd, ifp_state, 1);
+       ifp_format = v4l2_subdev_state_get_format(ifp_state, 1);
        ifp_info = mt9m114_format_info(sensor, 1, ifp_format->code);
-       ifp_crop = v4l2_subdev_get_pad_crop(&sensor->ifp.sd, ifp_state, 0);
-       ifp_compose = v4l2_subdev_get_pad_compose(&sensor->ifp.sd, ifp_state, 0);
+       ifp_crop = v4l2_subdev_state_get_crop(ifp_state, 0);
+       ifp_compose = v4l2_subdev_state_get_compose(ifp_state, 0);
 
        ret = cci_read(sensor->regmap, MT9M114_CAM_SENSOR_CONTROL_READ_MODE,
                       &read_mode, NULL);
                return 0;
 
        state = v4l2_subdev_get_locked_active_state(&sensor->pa.sd);
-       format = v4l2_subdev_get_pad_format(&sensor->pa.sd, state, 0);
+       format = v4l2_subdev_state_get_format(state, 0);
 
        switch (ctrl->id) {
        case V4L2_CID_HBLANK:
        struct v4l2_mbus_framefmt *format;
        struct v4l2_rect *crop;
 
-       crop = v4l2_subdev_get_pad_crop(sd, state, 0);
+       crop = v4l2_subdev_state_get_crop(state, 0);
 
        crop->left = 0;
        crop->top = 0;
        crop->width = MT9M114_PIXEL_ARRAY_WIDTH;
        crop->height = MT9M114_PIXEL_ARRAY_HEIGHT;
 
-       format = v4l2_subdev_get_pad_format(sd, state, 0);
+       format = v4l2_subdev_state_get_format(state, 0);
 
        format->width = MT9M114_PIXEL_ARRAY_WIDTH;
        format->height = MT9M114_PIXEL_ARRAY_HEIGHT;
        unsigned int hscale;
        unsigned int vscale;
 
-       crop = v4l2_subdev_get_pad_crop(sd, state, fmt->pad);
-       format = v4l2_subdev_get_pad_format(sd, state, fmt->pad);
+       crop = v4l2_subdev_state_get_crop(state, fmt->pad);
+       format = v4l2_subdev_state_get_format(state, fmt->pad);
 
        /* The sensor can bin horizontally and vertically. */
        hscale = DIV_ROUND_CLOSEST(crop->width, fmt->format.width ? : 1);
 {
        switch (sel->target) {
        case V4L2_SEL_TGT_CROP:
-               sel->r = *v4l2_subdev_get_pad_crop(sd, state, sel->pad);
+               sel->r = *v4l2_subdev_state_get_crop(state, sel->pad);
                return 0;
 
        case V4L2_SEL_TGT_CROP_DEFAULT:
        if (sel->target != V4L2_SEL_TGT_CROP)
                return -EINVAL;
 
-       crop = v4l2_subdev_get_pad_crop(sd, state, sel->pad);
-       format = v4l2_subdev_get_pad_format(sd, state, sel->pad);
+       crop = v4l2_subdev_state_get_crop(state, sel->pad);
+       format = v4l2_subdev_state_get_format(state, sel->pad);
 
        /*
         * Clamp the crop rectangle. The vertical coordinates must be even, and
 
        /* Update the range of the blanking controls based on the format. */
        state = v4l2_subdev_lock_and_get_active_state(sd);
-       format = v4l2_subdev_get_pad_format(sd, state, 0);
+       format = v4l2_subdev_state_get_format(state, 0);
        mt9m114_pa_ctrl_update_blanking(sensor, format);
        v4l2_subdev_unlock_state(state);
 
        struct v4l2_rect *crop;
        struct v4l2_rect *compose;
 
-       format = v4l2_subdev_get_pad_format(sd, state, 0);
+       format = v4l2_subdev_state_get_format(state, 0);
 
        format->width = MT9M114_PIXEL_ARRAY_WIDTH;
        format->height = MT9M114_PIXEL_ARRAY_HEIGHT;
        format->quantization = V4L2_QUANTIZATION_FULL_RANGE;
        format->xfer_func = V4L2_XFER_FUNC_NONE;
 
-       crop = v4l2_subdev_get_pad_crop(sd, state, 0);
+       crop = v4l2_subdev_state_get_crop(state, 0);
 
        crop->left = 4;
        crop->top = 4;
        crop->width = format->width - 8;
        crop->height = format->height - 8;
 
-       compose = v4l2_subdev_get_pad_compose(sd, state, 0);
+       compose = v4l2_subdev_state_get_compose(state, 0);
 
        compose->left = 0;
        compose->top = 0;
        compose->width = crop->width;
        compose->height = crop->height;
 
-       format = v4l2_subdev_get_pad_format(sd, state, 1);
+       format = v4l2_subdev_state_get_format(state, 1);
 
        format->width = compose->width;
        format->height = compose->height;
        } else {
                const struct v4l2_rect *crop;
 
-               crop = v4l2_subdev_get_pad_crop(sd, state, 0);
+               crop = v4l2_subdev_state_get_crop(state, 0);
 
                fse->max_width = crop->width;
                fse->max_height = crop->height;
        struct mt9m114 *sensor = ifp_to_mt9m114(sd);
        struct v4l2_mbus_framefmt *format;
 
-       format = v4l2_subdev_get_pad_format(sd, state, fmt->pad);
+       format = v4l2_subdev_state_get_format(state, fmt->pad);
 
        if (fmt->pad == 0) {
                /* Only the size can be changed on the sink pad. */
 
                /* If the output format is RAW10, bypass the scaler. */
                if (format->code == MEDIA_BUS_FMT_SGRBG10_1X10)
-                       *format = *v4l2_subdev_get_pad_format(sd, state, 0);
+                       *format = *v4l2_subdev_state_get_format(state, 0);
        }
 
        fmt->format = *format;
 
        switch (sel->target) {
        case V4L2_SEL_TGT_CROP:
-               sel->r = *v4l2_subdev_get_pad_crop(sd, state, 0);
+               sel->r = *v4l2_subdev_state_get_crop(state, 0);
                break;
 
        case V4L2_SEL_TGT_CROP_DEFAULT:
                 * The crop default and bounds are equal to the sink
                 * format size minus 4 pixels on each side for demosaicing.
                 */
-               format = v4l2_subdev_get_pad_format(sd, state, 0);
+               format = v4l2_subdev_state_get_format(state, 0);
 
                sel->r.left = 4;
                sel->r.top = 4;
                break;
 
        case V4L2_SEL_TGT_COMPOSE:
-               sel->r = *v4l2_subdev_get_pad_compose(sd, state, 0);
+               sel->r = *v4l2_subdev_state_get_compose(state, 0);
                break;
 
        case V4L2_SEL_TGT_COMPOSE_DEFAULT:
                 * The compose default and bounds sizes are equal to the sink
                 * crop rectangle size.
                 */
-               crop = v4l2_subdev_get_pad_crop(sd, state, 0);
+               crop = v4l2_subdev_state_get_crop(state, 0);
                sel->r.left = 0;
                sel->r.top = 0;
                sel->r.width = crop->width;
        if (sel->pad != 0)
                return -EINVAL;
 
-       format = v4l2_subdev_get_pad_format(sd, state, 0);
-       crop = v4l2_subdev_get_pad_crop(sd, state, 0);
-       compose = v4l2_subdev_get_pad_compose(sd, state, 0);
+       format = v4l2_subdev_state_get_format(state, 0);
+       crop = v4l2_subdev_state_get_crop(state, 0);
+       compose = v4l2_subdev_state_get_compose(state, 0);
 
        if (sel->target == V4L2_SEL_TGT_CROP) {
                /*
        }
 
        /* Propagate the compose rectangle to the source format. */
-       format = v4l2_subdev_get_pad_format(sd, state, 1);
+       format = v4l2_subdev_state_get_format(state, 1);
        format->width = compose->width;
        format->height = compose->height;
 
 
 {
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_format(&mt9p031->subdev, sd_state,
-                                                 pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return &mt9p031->format;
        default:
 {
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_crop(&mt9p031->subdev, sd_state,
-                                               pad);
+               return v4l2_subdev_state_get_crop(sd_state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return &mt9p031->crop;
        default:
 
 
        if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE)
                return mt9t112_s_fmt(sd, mf);
-       *v4l2_subdev_get_pad_format(sd, sd_state, 0) = *mf;
+       *v4l2_subdev_state_get_format(sd_state, 0) = *mf;
 
        return 0;
 }
 
 
                set_res(sd);
        } else {
-               *v4l2_subdev_get_pad_format(sd, sd_state, 0) = *fmt;
+               *v4l2_subdev_state_get_format(sd_state, 0) = *fmt;
        }
 
        return 0;
 
 {
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_format(&mt9v032->subdev, sd_state,
-                                                 pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return &mt9v032->format;
        default:
 {
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_crop(&mt9v032->subdev, sd_state,
-                                               pad);
+               return v4l2_subdev_state_get_crop(sd_state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return &mt9v032->crop;
        default:
        struct v4l2_mbus_framefmt *format;
        struct v4l2_rect *crop;
 
-       crop = v4l2_subdev_get_try_crop(subdev, fh->state, 0);
+       crop = v4l2_subdev_state_get_crop(fh->state, 0);
        crop->left = MT9V032_COLUMN_START_DEF;
        crop->top = MT9V032_ROW_START_DEF;
        crop->width = MT9V032_WINDOW_WIDTH_DEF;
        crop->height = MT9V032_WINDOW_HEIGHT_DEF;
 
-       format = v4l2_subdev_get_try_format(subdev, fh->state, 0);
+       format = v4l2_subdev_state_get_format(fh->state, 0);
 
        if (mt9v032->model->color)
                format->code = MEDIA_BUS_FMT_SGRBG10_1X10;
 
 {
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_format(&mt9v111->sd, sd_state, pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return &mt9v111->fmt;
        default:
 static int mt9v111_init_cfg(struct v4l2_subdev *subdev,
                            struct v4l2_subdev_state *sd_state)
 {
-       *v4l2_subdev_get_pad_format(subdev, sd_state, 0) = mt9v111_def_fmt;
+       *v4l2_subdev_state_get_format(sd_state, 0) = mt9v111_def_fmt;
 
        return 0;
 }
 
        mutex_lock(&og01a1b->mutex);
        og01a1b_update_pad_format(mode, &fmt->format);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_try_format(sd, sd_state,
-                                           fmt->pad) = fmt->format;
+               *v4l2_subdev_state_get_format(sd_state, fmt->pad) = fmt->format;
        } else {
                og01a1b->cur_mode = mode;
                __v4l2_ctrl_s_ctrl(og01a1b->link_freq, mode->link_freq_index);
 
        mutex_lock(&og01a1b->mutex);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
-               fmt->format = *v4l2_subdev_get_try_format(&og01a1b->sd,
-                                                         sd_state,
-                                                         fmt->pad);
+               fmt->format = *v4l2_subdev_state_get_format(sd_state,
+                                                           fmt->pad);
        else
                og01a1b_update_pad_format(og01a1b->cur_mode, &fmt->format);
 
 
        mutex_lock(&og01a1b->mutex);
        og01a1b_update_pad_format(&supported_modes[0],
-                                 v4l2_subdev_get_try_format(sd, fh->state, 0));
+                                 v4l2_subdev_state_get_format(fh->state, 0));
        mutex_unlock(&og01a1b->mutex);
 
        return 0;
 
                                         h_blank);
        }
 
-       format = v4l2_subdev_get_pad_format(sd, sd_state, fmt->stream);
+       format = v4l2_subdev_state_get_format(sd_state, fmt->stream);
        *format = fmt->format;
 
        return 0;
 
        ov02a10_fill_fmt(ov02a10->cur_mode, mbus_fmt);
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
-               frame_fmt = v4l2_subdev_get_try_format(sd, sd_state, 0);
+               frame_fmt = v4l2_subdev_state_get_format(sd_state, 0);
        else
                frame_fmt = &ov02a10->fmt;
 
        mutex_lock(&ov02a10->mutex);
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               fmt->format = *v4l2_subdev_get_try_format(sd, sd_state,
-                                                         fmt->pad);
+               fmt->format = *v4l2_subdev_state_get_format(sd_state,
+                                                           fmt->pad);
        } else {
                fmt->format = ov02a10->fmt;
                mbus_fmt->code = ov02a10->fmt.code;
 
        mutex_lock(&ov08d10->mutex);
        ov08d10_update_pad_format(ov08d10, mode, &fmt->format);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_try_format(sd, sd_state, fmt->pad) =
+               *v4l2_subdev_state_get_format(sd_state, fmt->pad) =
                                                                fmt->format;
        } else {
                ov08d10->cur_mode = mode;
 
        mutex_lock(&ov08d10->mutex);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
-               fmt->format = *v4l2_subdev_get_try_format(&ov08d10->sd,
-                                                         sd_state,
-                                                         fmt->pad);
+               fmt->format = *v4l2_subdev_state_get_format(sd_state,
+                                                           fmt->pad);
        else
                ov08d10_update_pad_format(ov08d10, ov08d10->cur_mode,
                                          &fmt->format);
 
        mutex_lock(&ov08d10->mutex);
        ov08d10_update_pad_format(ov08d10, &ov08d10->priv_lane->sp_modes[0],
-                                 v4l2_subdev_get_try_format(sd, fh->state, 0));
+                                 v4l2_subdev_state_get_format(fh->state, 0));
        mutex_unlock(&ov08d10->mutex);
 
        return 0;
 
        const struct ov08x40_mode *default_mode = &supported_modes[0];
        struct ov08x40 *ov08x = to_ov08x40(sd);
        struct v4l2_mbus_framefmt *try_fmt =
-               v4l2_subdev_get_try_format(sd, fh->state, 0);
+               v4l2_subdev_state_get_format(fh->state, 0);
 
        mutex_lock(&ov08x->mutex);
 
                                     struct v4l2_subdev_format *fmt)
 {
        struct v4l2_mbus_framefmt *framefmt;
-       struct v4l2_subdev *sd = &ov08x->sd;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                fmt->format = *framefmt;
        } else {
                ov08x40_update_pad_format(ov08x->cur_mode, fmt);
                                      fmt->format.width, fmt->format.height);
        ov08x40_update_pad_format(mode, fmt);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                *framefmt = fmt->format;
        } else {
                ov08x->cur_mode = mode;
 
 static int ov13858_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
 {
        struct ov13858 *ov13858 = to_ov13858(sd);
-       struct v4l2_mbus_framefmt *try_fmt = v4l2_subdev_get_try_format(sd,
-                                                                       fh->state,
-                                                                       0);
+       struct v4l2_mbus_framefmt *try_fmt = v4l2_subdev_state_get_format(fh->state,
+                                                                         0);
 
        mutex_lock(&ov13858->mutex);
 
                                     struct v4l2_subdev_format *fmt)
 {
        struct v4l2_mbus_framefmt *framefmt;
-       struct v4l2_subdev *sd = &ov13858->sd;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                fmt->format = *framefmt;
        } else {
                ov13858_update_pad_format(ov13858->cur_mode, fmt);
                                      fmt->format.width, fmt->format.height);
        ov13858_update_pad_format(mode, fmt);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                *framefmt = fmt->format;
        } else {
                ov13858->cur_mode = mode;
 
 {
        const struct ov13b10_mode *default_mode = &supported_modes[0];
        struct ov13b10 *ov13b = to_ov13b10(sd);
-       struct v4l2_mbus_framefmt *try_fmt = v4l2_subdev_get_try_format(sd,
-                                                                       fh->state,
-                                                                       0);
+       struct v4l2_mbus_framefmt *try_fmt = v4l2_subdev_state_get_format(fh->state,
+                                                                         0);
 
        mutex_lock(&ov13b->mutex);
 
                                     struct v4l2_subdev_format *fmt)
 {
        struct v4l2_mbus_framefmt *framefmt;
-       struct v4l2_subdev *sd = &ov13b->sd;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                fmt->format = *framefmt;
        } else {
                ov13b10_update_pad_format(ov13b->cur_mode, fmt);
                                      fmt->format.width, fmt->format.height);
        ov13b10_update_pad_format(mode, fmt);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                *framefmt = fmt->format;
        } else {
                ov13b->cur_mode = mode;
 
                return -EINVAL;
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               mf = v4l2_subdev_get_try_format(sd, sd_state, 0);
+               mf = v4l2_subdev_state_get_format(sd_state, 0);
                format->format = *mf;
                return 0;
        }
                /* select format */
                priv->cfmt_code = mf->code;
        } else {
-               *v4l2_subdev_get_pad_format(sd, sd_state, 0) = *mf;
+               *v4l2_subdev_state_get_format(sd_state, 0) = *mf;
        }
 out:
        mutex_unlock(&priv->lock);
                           struct v4l2_subdev_state *sd_state)
 {
        struct v4l2_mbus_framefmt *try_fmt =
-               v4l2_subdev_get_try_format(sd, sd_state, 0);
+               v4l2_subdev_state_get_format(sd_state, 0);
        const struct ov2640_win_size *win =
                ov2640_select_win(SVGA_WIDTH, SVGA_HEIGHT);
 
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
                struct v4l2_mbus_framefmt *mf;
 
-               mf = v4l2_subdev_get_try_format(sd, sd_state, 0);
+               mf = v4l2_subdev_state_get_format(sd_state, 0);
                mutex_lock(&ov2659->lock);
                fmt->format = *mf;
                mutex_unlock(&ov2659->lock);
        mutex_lock(&ov2659->lock);
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               mf = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               mf = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                *mf = fmt->format;
        } else {
                s64 val;
 {
        struct i2c_client *client = v4l2_get_subdevdata(sd);
        struct v4l2_mbus_framefmt *format =
-                               v4l2_subdev_get_try_format(sd, fh->state, 0);
+                               v4l2_subdev_state_get_format(fh->state, 0);
 
        dev_dbg(&client->dev, "%s:\n", __func__);
 
 
                        enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&sensor->sd, state, pad);
+               return v4l2_subdev_state_get_format(state, pad);
 
        return &sensor->mode.fmt;
 }
                      enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_crop(&sensor->sd, state, pad);
+               return v4l2_subdev_state_get_crop(state, pad);
 
        return &sensor->mode.crop;
 }
        ov2680_fill_format(sensor, &format->format, width, height);
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               try_fmt = v4l2_subdev_get_try_format(sd, sd_state, 0);
+               try_fmt = v4l2_subdev_state_get_format(sd_state, 0);
                *try_fmt = format->format;
                return 0;
        }
 {
        struct ov2680_dev *sensor = to_ov2680_dev(sd);
 
-       *v4l2_subdev_get_pad_crop(sd, sd_state, 0) = ov2680_default_crop;
+       *v4l2_subdev_state_get_crop(sd_state, 0) = ov2680_default_crop;
 
-       ov2680_fill_format(sensor, v4l2_subdev_get_pad_format(sd, sd_state, 0),
+       ov2680_fill_format(sensor, v4l2_subdev_state_get_format(sd_state, 0),
                           OV2680_DEFAULT_WIDTH, OV2680_DEFAULT_HEIGHT);
        return 0;
 }
 
 
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_crop(&ov2685->subdev, state, pad);
+               return v4l2_subdev_state_get_crop(state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return mode->analog_crop;
        }
 
        mutex_lock(&ov2685->mutex);
 
-       try_fmt = v4l2_subdev_get_try_format(sd, fh->state, 0);
+       try_fmt = v4l2_subdev_state_get_format(fh->state, 0);
        /* Initialize try_fmt */
        ov2685_fill_fmt(&supported_modes[0], try_fmt);
 
 
                                      fmt->format.height);
 
        ov2740_update_pad_format(mode, &fmt->format);
-       *v4l2_subdev_get_pad_format(sd, sd_state, fmt->pad) = fmt->format;
+       *v4l2_subdev_state_get_format(sd_state, fmt->pad) = fmt->format;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
                return 0;
                           struct v4l2_subdev_state *sd_state)
 {
        ov2740_update_pad_format(&supported_modes[0],
-                                v4l2_subdev_get_pad_format(sd, sd_state, 0));
+                                v4l2_subdev_state_get_format(sd_state, 0));
 
        return 0;
 }
 
 
        mutex_lock(&ov4689->mutex);
 
-       try_fmt = v4l2_subdev_get_try_format(sd, fh->state, 0);
+       try_fmt = v4l2_subdev_state_get_format(fh->state, 0);
        /* Initialize try_fmt */
        ov4689_fill_fmt(&supported_modes[OV4689_MODE_2688_1520], try_fmt);
 
 
        mutex_lock(&sensor->lock);
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY)
-               fmt = v4l2_subdev_get_try_format(&sensor->sd, sd_state,
-                                                format->pad);
+               fmt = v4l2_subdev_state_get_format(sd_state, format->pad);
        else
                fmt = &sensor->fmt;
 
                goto out;
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_try_format(sd, sd_state, 0) = *mbus_fmt;
+               *v4l2_subdev_state_get_format(sd_state, 0) = *mbus_fmt;
                goto out;
        }
 
 {
        struct ov5640_dev *sensor = to_ov5640_dev(sd);
        struct v4l2_mbus_framefmt *fmt =
-                               v4l2_subdev_get_try_format(sd, state, 0);
-       struct v4l2_rect *crop = v4l2_subdev_get_try_crop(sd, state, 0);
+                               v4l2_subdev_state_get_format(state, 0);
+       struct v4l2_rect *crop = v4l2_subdev_state_get_crop(state, 0);
 
        *fmt = ov5640_is_csi2(sensor) ? ov5640_csi2_default_fmt :
                                        ov5640_dvp_default_fmt;
 
 {
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_format(&ov5645->sd, sd_state, pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return &ov5645->fmt;
        default:
 {
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_crop(&ov5645->sd, sd_state, pad);
+               return v4l2_subdev_state_get_crop(sd_state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return &ov5645->crop;
        default:
 
 {
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_crop(&ov5647->sd, sd_state, pad);
+               return v4l2_subdev_state_get_crop(sd_state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return &ov5647->mode->crop;
        }
        mutex_lock(&sensor->lock);
        switch (format->which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               sensor_format = v4l2_subdev_get_try_format(sd, sd_state,
-                                                          format->pad);
+               sensor_format = v4l2_subdev_state_get_format(sd_state,
+                                                            format->pad);
                break;
        default:
                sensor_format = &sensor->mode->format;
        /* Update the sensor mode and apply at it at streamon time. */
        mutex_lock(&sensor->lock);
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_try_format(sd, sd_state, format->pad) = mode->format;
+               *v4l2_subdev_state_get_format(sd_state, format->pad) = mode->format;
        } else {
                int exposure_max, exposure_def;
                int hblank, vblank;
 static int ov5647_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
 {
        struct v4l2_mbus_framefmt *format =
-                               v4l2_subdev_get_try_format(sd, fh->state, 0);
-       struct v4l2_rect *crop = v4l2_subdev_get_try_crop(sd, fh->state, 0);
+                               v4l2_subdev_state_get_format(fh->state, 0);
+       struct v4l2_rect *crop = v4l2_subdev_state_get_crop(fh->state, 0);
 
        crop->left = OV5647_PIXEL_ARRAY_LEFT;
        crop->top = OV5647_PIXEL_ARRAY_TOP;
 
        mutex_lock(&sensor->mutex);
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY)
-               *mbus_format = *v4l2_subdev_get_try_format(subdev, sd_state,
-                                                          format->pad);
+               *mbus_format = *v4l2_subdev_state_get_format(sd_state,
+                                                            format->pad);
        else
                ov5648_mbus_format_fill(mbus_format, sensor->state.mbus_code,
                                        sensor->state.mode);
        ov5648_mbus_format_fill(mbus_format, mbus_code, mode);
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY)
-               *v4l2_subdev_get_try_format(subdev, sd_state, format->pad) =
+               *v4l2_subdev_state_get_format(sd_state, format->pad) =
                        *mbus_format;
        else if (sensor->state.mode != mode ||
                 sensor->state.mbus_code != mbus_code)
 
                           struct v4l2_subdev_state *state)
 {
        struct v4l2_mbus_framefmt *fmt =
-                               v4l2_subdev_get_try_format(sd, state, 0);
+                               v4l2_subdev_state_get_format(state, 0);
        const struct ov5670_mode *default_mode = &supported_modes[0];
-       struct v4l2_rect *crop = v4l2_subdev_get_try_crop(sd, state, 0);
+       struct v4l2_rect *crop = v4l2_subdev_state_get_crop(state, 0);
 
        fmt->width = default_mode->width;
        fmt->height = default_mode->height;
                                    struct v4l2_subdev_format *fmt)
 {
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
-               fmt->format = *v4l2_subdev_get_try_format(&ov5670->sd,
-                                                         sd_state,
-                                                         fmt->pad);
+               fmt->format = *v4l2_subdev_state_get_format(sd_state,
+                                                           fmt->pad);
        else
                ov5670_update_pad_format(ov5670->cur_mode, fmt);
 
                                      fmt->format.width, fmt->format.height);
        ov5670_update_pad_format(mode, fmt);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_try_format(sd, sd_state, fmt->pad) = fmt->format;
+               *v4l2_subdev_state_get_format(sd_state, fmt->pad) = fmt->format;
        } else {
                ov5670->cur_mode = mode;
                __v4l2_ctrl_s_ctrl(ov5670->link_freq, mode->link_freq_index);
 
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_crop(&sensor->sd, state, pad);
+               return v4l2_subdev_state_get_crop(state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return mode->analog_crop;
        }
 
        mutex_lock(&ov5675->mutex);
        ov5675_update_pad_format(mode, &fmt->format);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_try_format(sd, sd_state, fmt->pad) = fmt->format;
+               *v4l2_subdev_state_get_format(sd_state, fmt->pad) = fmt->format;
        } else {
                ov5675->cur_mode = mode;
                __v4l2_ctrl_s_ctrl(ov5675->link_freq, mode->link_freq_index);
 
        mutex_lock(&ov5675->mutex);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
-               fmt->format = *v4l2_subdev_get_try_format(&ov5675->sd,
-                                                         sd_state,
-                                                         fmt->pad);
+               fmt->format = *v4l2_subdev_state_get_format(sd_state,
+                                                           fmt->pad);
        else
                ov5675_update_pad_format(ov5675->cur_mode, &fmt->format);
 
 
        mutex_lock(&ov5675->mutex);
        ov5675_update_pad_format(&supported_modes[0],
-                                v4l2_subdev_get_try_format(sd, fh->state, 0));
+                                v4l2_subdev_state_get_format(fh->state, 0));
        mutex_unlock(&ov5675->mutex);
 
        return 0;
 
 {
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_format(&ov5693->sd, state, pad);
+               return v4l2_subdev_state_get_format(state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return &ov5693->mode.format;
        default:
 {
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_crop(&ov5693->sd, state, pad);
+               return v4l2_subdev_state_get_crop(state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return &ov5693->mode.crop;
        }
 
        fmt->format.height = mode->height;
        fmt->format.field = V4L2_FIELD_NONE;
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_try_format(sd, sd_state, fmt->pad) = fmt->format;
+               *v4l2_subdev_state_get_format(sd_state, fmt->pad) = fmt->format;
        } else {
                ov5695->cur_mode = mode;
                h_blank = mode->hts_def - mode->width;
 
        mutex_lock(&ov5695->mutex);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               fmt->format = *v4l2_subdev_get_try_format(sd, sd_state,
-                                                         fmt->pad);
+               fmt->format = *v4l2_subdev_state_get_format(sd_state,
+                                                           fmt->pad);
        } else {
                fmt->format.width = mode->width;
                fmt->format.height = mode->height;
 {
        struct ov5695 *ov5695 = to_ov5695(sd);
        struct v4l2_mbus_framefmt *try_fmt =
-                               v4l2_subdev_get_try_format(sd, fh->state, 0);
+                               v4l2_subdev_state_get_format(fh->state, 0);
        const struct ov5695_mode *def_mode = &supported_modes[0];
 
        mutex_lock(&ov5695->mutex);
 
 
        if (sel->which == V4L2_SUBDEV_FORMAT_TRY) {
                /* pre-select try crop rectangle */
-               rect = v4l2_subdev_get_pad_crop(sd, sd_state, 0);
+               rect = v4l2_subdev_state_get_crop(sd_state, 0);
 
        } else {
                /* pre-select active crop rectangle */
 
        if (sel->which == V4L2_SUBDEV_FORMAT_TRY) {
                struct v4l2_rect *crop =
-                       v4l2_subdev_get_pad_crop(sd, sd_state, 0);
+                       v4l2_subdev_state_get_crop(sd_state, 0);
                struct v4l2_mbus_framefmt *mf =
-                       v4l2_subdev_get_pad_format(sd, sd_state, 0);
+                       v4l2_subdev_state_get_format(sd_state, 0);
                /* detect current pad config scaling factor */
                bool half_scale = !is_unscaled_ok(mf->width, mf->height, crop);
 
        /* update media bus format code and frame size */
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
                struct v4l2_mbus_framefmt *try_fmt =
-                       v4l2_subdev_get_pad_format(sd, sd_state, 0);
+                       v4l2_subdev_state_get_format(sd_state, 0);
 
                mf->width = try_fmt->width;
                mf->height = try_fmt->height;
        }
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY)
-               crop = v4l2_subdev_get_pad_crop(sd, sd_state, 0);
+               crop = v4l2_subdev_state_get_crop(sd_state, 0);
        else
                crop = &priv->rect;
 
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
                struct v4l2_mbus_framefmt *try_fmt =
-                       v4l2_subdev_get_pad_format(sd, sd_state, 0);
+                       v4l2_subdev_state_get_format(sd_state, 0);
 
                /* store new mbus frame format code and size in pad config */
                try_fmt->width = crop->width >> half_scale;
 
 {
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_format(&ov7251->sd, sd_state, pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return &ov7251->fmt;
        default:
 {
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_crop(&ov7251->sd, sd_state, pad);
+               return v4l2_subdev_state_get_crop(sd_state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return &ov7251->crop;
        default:
 
                ret = ov7670_try_fmt_internal(sd, &format->format, NULL, NULL);
                if (ret)
                        return ret;
-               mbus_fmt = v4l2_subdev_get_try_format(sd, sd_state,
-                                                     format->pad);
+               mbus_fmt = v4l2_subdev_state_get_format(sd_state, format->pad);
                *mbus_fmt = format->format;
                return 0;
        }
        struct v4l2_mbus_framefmt *mbus_fmt;
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               mbus_fmt = v4l2_subdev_get_try_format(sd, sd_state, 0);
+               mbus_fmt = v4l2_subdev_state_get_format(sd_state, 0);
                format->format = *mbus_fmt;
                return 0;
        } else {
 static int ov7670_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
 {
        struct v4l2_mbus_framefmt *format =
-                               v4l2_subdev_get_try_format(sd, fh->state, 0);
+                               v4l2_subdev_state_get_format(fh->state, 0);
 
        ov7670_get_default_format(sd, format);
 
 
        mf->xfer_func = V4L2_XFER_FUNC_DEFAULT;
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_pad_format(sd, sd_state, 0) = *mf;
+               *v4l2_subdev_state_get_format(sd_state, 0) = *mf;
                return 0;
        }
 
 
                if (ret)
                        goto error;
 
-               mbus_fmt = v4l2_subdev_get_try_format(sd, sd_state,
-                                                     format->pad);
+               mbus_fmt = v4l2_subdev_state_get_format(sd_state, format->pad);
                *mbus_fmt = format->format;
                mutex_unlock(&ov7740->mutex);
                return 0;
 
        mutex_lock(&ov7740->mutex);
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               mbus_fmt = v4l2_subdev_get_try_format(sd, sd_state, 0);
+               mbus_fmt = v4l2_subdev_state_get_format(sd_state, 0);
                format->format = *mbus_fmt;
        } else {
                format->format = ov7740->format;
 {
        struct ov7740 *ov7740 = container_of(sd, struct ov7740, subdev);
        struct v4l2_mbus_framefmt *format =
-                               v4l2_subdev_get_try_format(sd, fh->state, 0);
+                               v4l2_subdev_state_get_format(fh->state, 0);
 
        mutex_lock(&ov7740->mutex);
        ov7740_get_default_format(sd, format);
 
        mutex_lock(&ov8856->mutex);
        ov8856_update_pad_format(ov8856, mode, &fmt->format);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_try_format(sd, sd_state, fmt->pad) = fmt->format;
+               *v4l2_subdev_state_get_format(sd_state, fmt->pad) = fmt->format;
        } else {
                ov8856->cur_mode = mode;
                __v4l2_ctrl_s_ctrl(ov8856->link_freq, mode->link_freq_index);
 
        mutex_lock(&ov8856->mutex);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
-               fmt->format = *v4l2_subdev_get_try_format(&ov8856->sd,
-                                                         sd_state,
-                                                         fmt->pad);
+               fmt->format = *v4l2_subdev_state_get_format(sd_state,
+                                                           fmt->pad);
        else
                ov8856_update_pad_format(ov8856, ov8856->cur_mode, &fmt->format);
 
 
        mutex_lock(&ov8856->mutex);
        ov8856_update_pad_format(ov8856, &ov8856->priv_lane->supported_modes[0],
-                                v4l2_subdev_get_try_format(sd, fh->state, 0));
+                                v4l2_subdev_state_get_format(fh->state, 0));
        mutex_unlock(&ov8856->mutex);
 
        return 0;
 
        if (ret)
                return ret;
 
-       format = v4l2_subdev_get_pad_format(&ov8858->subdev, state, 0);
+       format = v4l2_subdev_state_get_format(state, 0);
        mode = v4l2_find_nearest_size(ov8858_modes, ARRAY_SIZE(ov8858_modes),
                                      width, height, format->width,
                                      format->height);
        fmt->format.field = V4L2_FIELD_NONE;
 
        /* Store the format in the current subdev state. */
-       *v4l2_subdev_get_pad_format(sd, state, 0) =  fmt->format;
+       *v4l2_subdev_state_get_format(state, 0) =  fmt->format;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
                return 0;
         * - by the driver when s_ctrl is called in the s_stream(1) call path
         */
        state = v4l2_subdev_get_locked_active_state(&ov8858->subdev);
-       format = v4l2_subdev_get_pad_format(&ov8858->subdev, state, 0);
+       format = v4l2_subdev_state_get_format(state, 0);
 
        /* Propagate change of current control to all related controls */
        switch (ctrl->id) {
 
        mutex_lock(&sensor->mutex);
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY)
-               *mbus_format = *v4l2_subdev_get_try_format(subdev, sd_state,
-                                                          format->pad);
+               *mbus_format = *v4l2_subdev_state_get_format(sd_state,
+                                                            format->pad);
        else
                ov8865_mbus_format_fill(mbus_format, sensor->state.mbus_code,
                                        sensor->state.mode);
        ov8865_mbus_format_fill(mbus_format, mbus_code, mode);
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY)
-               *v4l2_subdev_get_try_format(subdev, sd_state, format->pad) =
+               *v4l2_subdev_state_get_format(sd_state, format->pad) =
                        *mbus_format;
        else if (sensor->state.mode != mode ||
                 sensor->state.mbus_code != mbus_code)
 
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               *r = *v4l2_subdev_get_try_crop(&sensor->subdev, state, pad);
+               *r = *v4l2_subdev_state_get_crop(state, pad);
                break;
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                r->height = mode->output_size_y;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
                struct v4l2_mbus_framefmt *framefmt;
 
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                fmt->format = *framefmt;
        } else {
                ov9282_fill_pad_format(ov9282, ov9282->cur_mode, ov9282->code,
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
                struct v4l2_mbus_framefmt *framefmt;
 
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                *framefmt = fmt->format;
        } else {
                ret = ov9282_update_controls(ov9282, mode, fmt);
 {
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_crop(&ov9282->sd, sd_state, pad);
+               return v4l2_subdev_state_get_crop(sd_state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return &ov9282->cur_mode->crop;
        }
 
        if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE)
                return ov9640_s_fmt(sd, mf);
 
-       *v4l2_subdev_get_pad_format(sd, sd_state, 0) = *mf;
+       *v4l2_subdev_state_get_format(sd_state, 0) = *mf;
 
        return 0;
 }
 
        struct v4l2_mbus_framefmt *mf;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               mf = v4l2_subdev_get_try_format(sd, sd_state, 0);
+               mf = v4l2_subdev_state_get_format(sd_state, 0);
                fmt->format = *mf;
                return 0;
        }
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
                if (sd_state) {
-                       mf = v4l2_subdev_get_try_format(sd, sd_state,
-                                                       fmt->pad);
+                       mf = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                        *mf = fmt->format;
                }
        } else {
 static int ov965x_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
 {
        struct v4l2_mbus_framefmt *mf =
-               v4l2_subdev_get_try_format(sd, fh->state, 0);
+               v4l2_subdev_state_get_format(fh->state, 0);
 
        ov965x_get_default_format(mf);
        return 0;
 
        mutex_lock(&ov9734->mutex);
        ov9734_update_pad_format(mode, &fmt->format);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_try_format(sd, sd_state, fmt->pad) = fmt->format;
+               *v4l2_subdev_state_get_format(sd_state, fmt->pad) = fmt->format;
        } else {
                ov9734->cur_mode = mode;
                __v4l2_ctrl_s_ctrl(ov9734->link_freq, mode->link_freq_index);
 
        mutex_lock(&ov9734->mutex);
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
-               fmt->format = *v4l2_subdev_get_try_format(&ov9734->sd,
-                                                         sd_state,
-                                                         fmt->pad);
+               fmt->format = *v4l2_subdev_state_get_format(sd_state,
+                                                           fmt->pad);
        else
                ov9734_update_pad_format(ov9734->cur_mode, &fmt->format);
 
 
        mutex_lock(&ov9734->mutex);
        ov9734_update_pad_format(&supported_modes[0],
-                                v4l2_subdev_get_try_format(sd, fh->state, 0));
+                                v4l2_subdev_state_get_format(fh->state, 0));
        mutex_unlock(&ov9734->mutex);
 
        return 0;
 
                              &mf->height, 84, RJ54N1_MAX_HEIGHT, align, 0);
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_pad_format(sd, sd_state, 0) = *mf;
+               *v4l2_subdev_state_get_format(sd_state, 0) = *mf;
                return 0;
        }
 
 
                                   struct v4l2_subdev_format *fmt,
                                   const struct s5c73m3_frame_size **fs)
 {
-       struct v4l2_subdev *sd = &state->sensor_sd;
        u32 code;
 
        switch (fmt->pad) {
                if (fmt->which == V4L2_SUBDEV_FORMAT_ACTIVE)
                        *fs = state->oif_pix_size[RES_ISP];
                else
-                       *fs = s5c73m3_find_frame_size(
-                                               v4l2_subdev_get_try_format(sd, sd_state,
-                                                                          OIF_ISP_PAD),
-                                               RES_ISP);
+                       *fs = s5c73m3_find_frame_size(v4l2_subdev_state_get_format(sd_state, OIF_ISP_PAD),
+                                                     RES_ISP);
                break;
        }
 
        u32 code;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               fmt->format = *v4l2_subdev_get_try_format(sd, sd_state,
-                                                         fmt->pad);
+               fmt->format = *v4l2_subdev_state_get_format(sd_state,
+                                                           fmt->pad);
                return 0;
        }
 
        u32 code;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               fmt->format = *v4l2_subdev_get_try_format(sd, sd_state,
-                                                         fmt->pad);
+               fmt->format = *v4l2_subdev_state_get_format(sd_state,
+                                                           fmt->pad);
                return 0;
        }
 
        s5c73m3_try_format(state, sd_state, fmt, &frame_size);
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               mf = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               mf = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                *mf = fmt->format;
        } else {
                switch (fmt->pad) {
        s5c73m3_oif_try_format(state, sd_state, fmt, &frame_size);
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               mf = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               mf = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                *mf = fmt->format;
                if (fmt->pad == OIF_ISP_PAD) {
-                       mf = v4l2_subdev_get_try_format(sd, sd_state,
-                                                       OIF_SOURCE_PAD);
+                       mf = v4l2_subdev_state_get_format(sd_state,
+                                                         OIF_SOURCE_PAD);
                        mf->width = fmt->format.width;
                        mf->height = fmt->format.height;
                }
                        if (fse->which == V4L2_SUBDEV_FORMAT_TRY) {
                                struct v4l2_mbus_framefmt *mf;
 
-                               mf = v4l2_subdev_get_try_format(sd, sd_state,
-                                                               OIF_ISP_PAD);
+                               mf = v4l2_subdev_state_get_format(sd_state,
+                                                                 OIF_ISP_PAD);
 
                                w = mf->width;
                                h = mf->height;
 {
        struct v4l2_mbus_framefmt *mf;
 
-       mf = v4l2_subdev_get_try_format(sd, fh->state, S5C73M3_ISP_PAD);
+       mf = v4l2_subdev_state_get_format(fh->state, S5C73M3_ISP_PAD);
        s5c73m3_fill_mbus_fmt(mf, &s5c73m3_isp_resolutions[1],
                                                S5C73M3_ISP_FMT);
 
-       mf = v4l2_subdev_get_try_format(sd, fh->state, S5C73M3_JPEG_PAD);
+       mf = v4l2_subdev_state_get_format(fh->state, S5C73M3_JPEG_PAD);
        s5c73m3_fill_mbus_fmt(mf, &s5c73m3_jpeg_resolutions[1],
                                        S5C73M3_JPEG_FMT);
 
 {
        struct v4l2_mbus_framefmt *mf;
 
-       mf = v4l2_subdev_get_try_format(sd, fh->state, OIF_ISP_PAD);
+       mf = v4l2_subdev_state_get_format(fh->state, OIF_ISP_PAD);
        s5c73m3_fill_mbus_fmt(mf, &s5c73m3_isp_resolutions[1],
                                                S5C73M3_ISP_FMT);
 
-       mf = v4l2_subdev_get_try_format(sd, fh->state, OIF_JPEG_PAD);
+       mf = v4l2_subdev_state_get_format(fh->state, OIF_JPEG_PAD);
        s5c73m3_fill_mbus_fmt(mf, &s5c73m3_jpeg_resolutions[1],
                                        S5C73M3_JPEG_FMT);
 
-       mf = v4l2_subdev_get_try_format(sd, fh->state, OIF_SOURCE_PAD);
+       mf = v4l2_subdev_state_get_format(fh->state, OIF_SOURCE_PAD);
        s5c73m3_fill_mbus_fmt(mf, &s5c73m3_isp_resolutions[1],
                                                S5C73M3_ISP_FMT);
        return 0;
 
        struct v4l2_mbus_framefmt *mf;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               mf = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               mf = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                fmt->format = *mf;
                return 0;
        }
        mf->field = V4L2_FIELD_NONE;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_try_format(sd, sd_state, fmt->pad) = *mf;
+               *v4l2_subdev_state_get_format(sd_state, fmt->pad) = *mf;
                return 0;
        }
 
 
        if (sel->which == V4L2_SUBDEV_FORMAT_TRY) {
                if (rtype == R_COMPOSE)
-                       sel->r = *v4l2_subdev_get_try_compose(sd, sd_state,
-                                                             sel->pad);
+                       sel->r = *v4l2_subdev_state_get_compose(sd_state,
+                                                               sel->pad);
                else
-                       sel->r = *v4l2_subdev_get_try_crop(sd, sd_state,
-                                                          sel->pad);
+                       sel->r = *v4l2_subdev_state_get_crop(sd_state,
+                                                            sel->pad);
                return 0;
        }
 
 
        if (sel->which == V4L2_SUBDEV_FORMAT_TRY) {
                rects = (struct v4l2_rect * []) {
-                               &s5k5baf_cis_rect,
-                               v4l2_subdev_get_try_crop(sd, sd_state,
-                                                        PAD_CIS),
-                               v4l2_subdev_get_try_compose(sd, sd_state,
-                                                           PAD_CIS),
-                               v4l2_subdev_get_try_crop(sd, sd_state,
-                                                        PAD_OUT)
-                       };
+                       &s5k5baf_cis_rect,
+                       v4l2_subdev_state_get_crop(sd_state, PAD_CIS),
+                       v4l2_subdev_state_get_compose(sd_state, PAD_CIS),
+                       v4l2_subdev_state_get_crop(sd_state, PAD_OUT)
+               };
                s5k5baf_set_rect_and_adjust(rects, rtype, &sel->r);
                return 0;
        }
 {
        struct v4l2_mbus_framefmt *mf;
 
-       mf = v4l2_subdev_get_try_format(sd, fh->state, PAD_CIS);
+       mf = v4l2_subdev_state_get_format(fh->state, PAD_CIS);
        s5k5baf_try_cis_format(mf);
 
        if (s5k5baf_is_cis_subdev(sd))
                return 0;
 
-       mf = v4l2_subdev_get_try_format(sd, fh->state, PAD_OUT);
+       mf = v4l2_subdev_state_get_format(fh->state, PAD_OUT);
        mf->colorspace = s5k5baf_formats[0].colorspace;
        mf->code = s5k5baf_formats[0].code;
        mf->width = s5k5baf_cis_rect.width;
        mf->height = s5k5baf_cis_rect.height;
        mf->field = V4L2_FIELD_NONE;
 
-       *v4l2_subdev_get_try_crop(sd, fh->state, PAD_CIS) = s5k5baf_cis_rect;
-       *v4l2_subdev_get_try_compose(sd, fh->state, PAD_CIS) = s5k5baf_cis_rect;
-       *v4l2_subdev_get_try_crop(sd, fh->state, PAD_OUT) = s5k5baf_cis_rect;
+       *v4l2_subdev_state_get_crop(fh->state, PAD_CIS) = s5k5baf_cis_rect;
+       *v4l2_subdev_state_get_compose(fh->state, PAD_CIS) = s5k5baf_cis_rect;
+       *v4l2_subdev_state_get_crop(fh->state, PAD_OUT) = s5k5baf_cis_rect;
 
        return 0;
 }
 
                u32 pad, enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return sd_state ? v4l2_subdev_get_try_format(&sensor->subdev,
-                                                            sd_state, pad) : NULL;
+               return sd_state ? v4l2_subdev_state_get_format(sd_state, pad) : NULL;
 
        return &sensor->format;
 }
 
 static int s5k6a3_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
 {
-       struct v4l2_mbus_framefmt *format = v4l2_subdev_get_try_format(sd,
-                                                                      fh->state,
-                                                                      0);
+       struct v4l2_mbus_framefmt *format = v4l2_subdev_state_get_format(fh->state,
+                                                                        0);
 
        *format         = s5k6a3_formats[0];
        format->width   = S5K6A3_DEFAULT_WIDTH;
 
        f->colorspace = V4L2_COLORSPACE_SMPTE170M;
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_pad_format(sd, sd_state, 0) = *f;
+               *v4l2_subdev_state_get_format(sd_state, 0) = *f;
                return 0;
        }
 
 
                return -EINVAL;
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY)
-               fmt = v4l2_subdev_get_try_format(&bridge->sd, sd_state,
-                                                format->pad);
+               fmt = v4l2_subdev_state_get_format(sd_state, format->pad);
        else
                fmt = &bridge->fmt;
 
        if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE)
                format->format = bridge->fmt;
        else
-               format->format = *v4l2_subdev_get_try_format(sd, sd_state,
-                                                            MIPID02_SINK_0);
+               format->format = *v4l2_subdev_state_get_format(sd_state,
+                                                              MIPID02_SINK_0);
 
        /* but code may need to be converted */
        format->format.code = serial_to_parallel_code(format->format.code);
        if (format->which != V4L2_SUBDEV_FORMAT_TRY)
                return;
 
-       *v4l2_subdev_get_try_format(sd, sd_state, MIPID02_SOURCE) =
+       *v4l2_subdev_state_get_format(sd_state, MIPID02_SOURCE) =
                format->format;
 }
 
        format->format.code = get_fmt_code(format->format.code);
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY)
-               fmt = v4l2_subdev_get_try_format(sd, sd_state, format->pad);
+               fmt = v4l2_subdev_state_get_format(sd_state, format->pad);
        else
                fmt = &bridge->fmt;
 
 
        mutex_lock(&sensor->lock);
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY)
-               fmt = v4l2_subdev_get_try_format(&sensor->sd, sd_state,
-                                                format->pad);
+               fmt = v4l2_subdev_state_get_format(sd_state, format->pad);
        else
                fmt = &sensor->fmt;
 
                goto out;
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               fmt = v4l2_subdev_get_try_format(sd, sd_state, 0);
+               fmt = v4l2_subdev_state_get_format(sd_state, 0);
                *fmt = format->format;
        } else if (sensor->current_mode != new_mode ||
                   sensor->fmt.code != format->format.code) {
 
 
        sink_state = v4l2_subdev_lock_and_get_active_state(sd);
 
-       mbusfmt = v4l2_subdev_get_pad_format(sd, sink_state, TC358746_SINK);
+       mbusfmt = v4l2_subdev_state_get_format(sink_state, TC358746_SINK);
        fmt = tc358746_get_format_by_code(TC358746_SINK, mbusfmt->code);
 
        /* Self defined CSI user data type id's are not supported yet */
 {
        struct v4l2_mbus_framefmt *fmt;
 
-       fmt = v4l2_subdev_get_pad_format(sd, state, TC358746_SINK);
+       fmt = v4l2_subdev_state_get_format(state, TC358746_SINK);
        *fmt = tc358746_def_fmt;
 
-       fmt = v4l2_subdev_get_pad_format(sd, state, TC358746_SOURCE);
+       fmt = v4l2_subdev_state_get_format(state, TC358746_SOURCE);
        *fmt = tc358746_def_fmt;
        fmt->code = tc358746_src_mbus_code(tc358746_def_fmt.code);
 
        if (format->pad == TC358746_SOURCE)
                return v4l2_subdev_get_fmt(sd, sd_state, format);
 
-       sink_fmt = v4l2_subdev_get_pad_format(sd, sd_state, TC358746_SINK);
+       sink_fmt = v4l2_subdev_state_get_format(sd_state, TC358746_SINK);
 
        fmt = tc358746_get_format_by_code(format->pad, format->format.code);
        if (IS_ERR(fmt)) {
 
        *sink_fmt = format->format;
 
-       src_fmt = v4l2_subdev_get_pad_format(sd, sd_state, TC358746_SOURCE);
+       src_fmt = v4l2_subdev_state_get_format(sd_state, TC358746_SOURCE);
        *src_fmt = *sink_fmt;
        src_fmt->code = tc358746_src_mbus_code(sink_fmt->code);
 
                return err;
 
        sink_state = v4l2_subdev_lock_and_get_active_state(sd);
-       mbusfmt = v4l2_subdev_get_pad_format(sd, sink_state, TC358746_SINK);
+       mbusfmt = v4l2_subdev_state_get_format(sink_state, TC358746_SINK);
 
        /* Check the FIFO settings */
        fmt = tc358746_get_format_by_code(TC358746_SINK, mbusfmt->code);
 
        struct tda1997x_state *state = to_state(sd);
        struct v4l2_mbus_framefmt *mf;
 
-       mf = v4l2_subdev_get_try_format(sd, sd_state, 0);
+       mf = v4l2_subdev_state_get_format(sd_state, 0);
        mf->code = state->mbus_codes[0];
 
        return 0;
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
                struct v4l2_mbus_framefmt *fmt;
 
-               fmt = v4l2_subdev_get_try_format(sd, sd_state, format->pad);
+               fmt = v4l2_subdev_state_get_format(sd_state, format->pad);
                format->format.code = fmt->code;
        } else
                format->format.code = state->mbus_code;
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
                struct v4l2_mbus_framefmt *fmt;
 
-               fmt = v4l2_subdev_get_try_format(sd, sd_state, format->pad);
+               fmt = v4l2_subdev_state_get_format(sd_state, format->pad);
                *fmt = format->format;
        } else {
                int ret = tda1997x_setup_format(state, format->format.code);
 
                return &decoder->rect;
        case V4L2_SUBDEV_FORMAT_TRY:
 #if defined(CONFIG_VIDEO_V4L2_SUBDEV_API)
-               return v4l2_subdev_get_try_crop(&decoder->sd, sd_state, pad);
+               return v4l2_subdev_state_get_crop(sd_state, pad);
 #else
                return ERR_PTR(-EINVAL);
 #endif
 
        if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE)
                return tw9910_s_fmt(sd, mf);
 
-       *v4l2_subdev_get_pad_format(sd, sd_state, 0) = *mf;
+       *v4l2_subdev_state_get_format(sd_state, 0) = *mf;
 
        return 0;
 }
 
        };
 
        /* Initialize try_fmt */
-       format = v4l2_subdev_get_try_format(sd, fh->state, CIO2_PAD_SINK);
+       format = v4l2_subdev_state_get_format(fh->state, CIO2_PAD_SINK);
        *format = fmt_default;
 
        /* same as sink */
-       format = v4l2_subdev_get_try_format(sd, fh->state, CIO2_PAD_SOURCE);
+       format = v4l2_subdev_state_get_format(fh->state, CIO2_PAD_SOURCE);
        *format = fmt_default;
 
        return 0;
        mutex_lock(&q->subdev_lock);
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
-               fmt->format = *v4l2_subdev_get_try_format(sd, sd_state,
-                                                         fmt->pad);
+               fmt->format = *v4l2_subdev_state_get_format(sd_state,
+                                                           fmt->pad);
        else
                fmt->format = q->subdev_fmt;
 
                return cio2_subdev_get_fmt(sd, sd_state, fmt);
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
-               mbus = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               mbus = v4l2_subdev_state_get_format(sd_state, fmt->pad);
        else
                mbus = &q->subdev_fmt;
 
 
 
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_format(sd, sd_state, pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return &csi->format_mbus[pad];
        default:
        mutex_lock(&csi->lock);
 
        for (i = 0; i < sd->entity.num_pads; i++) {
-               mbusformat = v4l2_subdev_get_try_format(sd, sd_state, i);
+               mbusformat = v4l2_subdev_state_get_format(sd_state, i);
                *mbusformat = mei_csi_format_mbus_default;
        }
 
 
                        struct v4l2_subdev_state *sd_state)
 {
        struct v4l2_rect *try_crop =
-               v4l2_subdev_get_pad_crop(isi->entity.subdev, sd_state, 0);
+               v4l2_subdev_state_get_crop(sd_state, 0);
        struct v4l2_subdev_frame_size_enum fse = {
                .code = isi_fmt->mbus_code,
                .which = V4L2_SUBDEV_FORMAT_TRY,
 
        format->format.field = V4L2_FIELD_NONE;
 
        /* Set sink format */
-       fmt = v4l2_subdev_get_pad_format(subdev, state, format->pad);
+       fmt = v4l2_subdev_state_get_format(state, format->pad);
        *fmt = format->format;
 
        /* Propagate to source formats */
        for (i = CSI2RX_PAD_SOURCE_STREAM0; i < CSI2RX_PAD_MAX; i++) {
-               fmt = v4l2_subdev_get_pad_format(subdev, state, i);
+               fmt = v4l2_subdev_state_get_format(state, i);
                *fmt = format->format;
        }
 
 
        struct csi2tx_priv *csi2tx = v4l2_subdev_to_csi2tx(subdev);
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(subdev, sd_state,
-                                                 fmt->pad);
+               return v4l2_subdev_state_get_format(sd_state, fmt->pad);
 
        return &csi2tx->pad_fmts[fmt->pad];
 }
 
        struct v4l2_mbus_framefmt *v4l2_try_fmt;
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               v4l2_try_fmt = v4l2_subdev_get_try_format(csi2dc_sd, sd_state,
-                                                         format->pad);
+               v4l2_try_fmt = v4l2_subdev_state_get_format(sd_state,
+                                                           format->pad);
                format->format = *v4l2_try_fmt;
 
                return 0;
        req_fmt->format.field = V4L2_FIELD_NONE;
 
        if (req_fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               v4l2_try_fmt = v4l2_subdev_get_try_format(csi2dc_sd, sd_state,
-                                                         req_fmt->pad);
+               v4l2_try_fmt = v4l2_subdev_state_get_format(sd_state,
+                                                           req_fmt->pad);
                *v4l2_try_fmt = req_fmt->format;
                /* Trying on the sink pad makes the source pad change too */
-               v4l2_try_fmt = v4l2_subdev_get_try_format(csi2dc_sd,
-                                                         sd_state,
-                                                         CSI2DC_PAD_SOURCE);
+               v4l2_try_fmt = v4l2_subdev_state_get_format(sd_state,
+                                                           CSI2DC_PAD_SOURCE);
                *v4l2_try_fmt = req_fmt->format;
 
                /* if we are just trying, we are done */
                           struct v4l2_subdev_state *sd_state)
 {
        struct v4l2_mbus_framefmt *v4l2_try_fmt =
-               v4l2_subdev_get_try_format(csi2dc_sd, sd_state, 0);
+               v4l2_subdev_state_get_format(sd_state, 0);
 
        v4l2_try_fmt->height = 480;
        v4l2_try_fmt->width = 640;
 
                        struct v4l2_subdev_state *sd_state)
 {
        struct v4l2_rect *try_crop =
-               v4l2_subdev_get_pad_crop(isc->current_subdev->sd, sd_state, 0);
+               v4l2_subdev_state_get_crop(sd_state, 0);
        struct v4l2_subdev_frame_size_enum fse = {
                .which = V4L2_SUBDEV_FORMAT_TRY,
        };
 
        struct v4l2_mbus_framefmt *v4l2_try_fmt;
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               v4l2_try_fmt = v4l2_subdev_get_try_format(sd, sd_state,
-                                                         format->pad);
+               v4l2_try_fmt = v4l2_subdev_state_get_format(sd_state,
+                                                           format->pad);
                format->format = *v4l2_try_fmt;
 
                return 0;
        req_fmt->format.code = fmt->mbus_code;
 
        if (req_fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               v4l2_try_fmt = v4l2_subdev_get_try_format(sd, sd_state,
-                                                         req_fmt->pad);
+               v4l2_try_fmt = v4l2_subdev_state_get_format(sd_state,
+                                                           req_fmt->pad);
                *v4l2_try_fmt = req_fmt->format;
                /* Trying on the sink pad makes the source pad change too */
-               v4l2_try_fmt = v4l2_subdev_get_try_format(sd, sd_state,
-                                                         ISC_SCALER_PAD_SOURCE);
+               v4l2_try_fmt = v4l2_subdev_state_get_format(sd_state,
+                                                           ISC_SCALER_PAD_SOURCE);
                *v4l2_try_fmt = req_fmt->format;
 
                v4l_bound_align_image(&v4l2_try_fmt->width,
                               struct v4l2_subdev_state *sd_state)
 {
        struct v4l2_mbus_framefmt *v4l2_try_fmt =
-               v4l2_subdev_get_try_format(sd, sd_state, 0);
+               v4l2_subdev_state_get_format(sd_state, 0);
        struct v4l2_rect *try_crop;
        struct isc_device *isc = container_of(sd, struct isc_device, scaler_sd);
 
        *v4l2_try_fmt = isc->scaler_format[ISC_SCALER_PAD_SOURCE];
 
-       try_crop = v4l2_subdev_get_try_crop(sd, sd_state, 0);
+       try_crop = v4l2_subdev_state_get_crop(sd_state, 0);
 
        try_crop->top = 0;
        try_crop->left = 0;
 
 
        state = v4l2_subdev_lock_and_get_active_state(sd);
 
-       format = v4l2_subdev_get_pad_format(sd, state, CSIS_PAD_SINK);
+       format = v4l2_subdev_state_get_format(state, CSIS_PAD_SINK);
        csis_fmt = find_csis_format(format->code);
 
        ret = mipi_csis_calculate_params(csis, csis_fmt);
                if (code->index > 0)
                        return -EINVAL;
 
-               fmt = v4l2_subdev_get_pad_format(sd, sd_state, code->pad);
+               fmt = v4l2_subdev_state_get_format(sd_state, code->pad);
                code->code = fmt->code;
                return 0;
        }
                              &sdformat->format.height, 1,
                              CSIS_MAX_PIX_HEIGHT, 0, 0);
 
-       fmt = v4l2_subdev_get_pad_format(sd, sd_state, sdformat->pad);
+       fmt = v4l2_subdev_state_get_format(sd_state, sdformat->pad);
 
        fmt->code = csis_fmt->code;
        fmt->width = sdformat->format.width;
        sdformat->format = *fmt;
 
        /* Propagate the format from sink to source. */
-       fmt = v4l2_subdev_get_pad_format(sd, sd_state, CSIS_PAD_SOURCE);
+       fmt = v4l2_subdev_state_get_format(sd_state, CSIS_PAD_SOURCE);
        *fmt = sdformat->format;
 
        /* The format on the source pad might change due to unpacking. */
                return -EINVAL;
 
        state = v4l2_subdev_lock_and_get_active_state(sd);
-       fmt = v4l2_subdev_get_pad_format(sd, state, CSIS_PAD_SOURCE);
+       fmt = v4l2_subdev_state_get_format(state, CSIS_PAD_SOURCE);
        csis_fmt = find_csis_format(fmt->code);
        v4l2_subdev_unlock_state(state);
 
 
        } else {
                const struct v4l2_mbus_framefmt *sink_fmt;
 
-               sink_fmt = v4l2_subdev_get_pad_format(&csi->sd, sd_state,
-                                                     IMX7_CSI_PAD_SINK);
+               sink_fmt = v4l2_subdev_state_get_format(sd_state,
+                                                       IMX7_CSI_PAD_SINK);
 
                cr1 = BIT_SOF_POL | BIT_REDGE | BIT_HSYNC_POL | BIT_FCC
                    | BIT_MCLKDIV(1) | BIT_MCLKEN;
 
        for (i = 0; i < IMX7_CSI_PADS_NUM; i++) {
                struct v4l2_mbus_framefmt *mf =
-                       v4l2_subdev_get_pad_format(sd, sd_state, i);
+                       v4l2_subdev_state_get_format(sd_state, i);
 
                mf->code = IMX7_CSI_DEF_MBUS_CODE;
                mf->width = IMX7_CSI_DEF_PIX_WIDTH;
        struct v4l2_mbus_framefmt *in_fmt;
        int ret = 0;
 
-       in_fmt = v4l2_subdev_get_pad_format(sd, sd_state, IMX7_CSI_PAD_SINK);
+       in_fmt = v4l2_subdev_state_get_format(sd_state, IMX7_CSI_PAD_SINK);
 
        switch (code->pad) {
        case IMX7_CSI_PAD_SINK:
        struct v4l2_mbus_framefmt *in_fmt;
        u32 code;
 
-       in_fmt = v4l2_subdev_get_pad_format(sd, sd_state, IMX7_CSI_PAD_SINK);
+       in_fmt = v4l2_subdev_state_get_format(sd_state, IMX7_CSI_PAD_SINK);
 
        switch (sdformat->pad) {
        case IMX7_CSI_PAD_SRC:
 
        imx7_csi_try_fmt(sd, sd_state, sdformat, &cc);
 
-       fmt = v4l2_subdev_get_pad_format(sd, sd_state, sdformat->pad);
+       fmt = v4l2_subdev_state_get_format(sd_state, sdformat->pad);
 
        *fmt = sdformat->format;
 
                format.format = sdformat->format;
                imx7_csi_try_fmt(sd, sd_state, &format, &outcc);
 
-               outfmt = v4l2_subdev_get_pad_format(sd, sd_state,
-                                                   IMX7_CSI_PAD_SRC);
+               outfmt = v4l2_subdev_state_get_format(sd_state,
+                                                     IMX7_CSI_PAD_SRC);
                *outfmt = format.format;
        }
 
 
        /* Configure the pipeline. */
        state = v4l2_subdev_lock_and_get_active_state(sd);
 
-       sink_fmt = v4l2_subdev_get_try_format(sd, state, MXC_ISI_PIPE_PAD_SINK);
-       src_fmt = v4l2_subdev_get_try_format(sd, state, MXC_ISI_PIPE_PAD_SOURCE);
-       compose = v4l2_subdev_get_try_compose(sd, state, MXC_ISI_PIPE_PAD_SINK);
-       crop = *v4l2_subdev_get_try_crop(sd, state, MXC_ISI_PIPE_PAD_SOURCE);
+       sink_fmt = v4l2_subdev_state_get_format(state, MXC_ISI_PIPE_PAD_SINK);
+       src_fmt = v4l2_subdev_state_get_format(state, MXC_ISI_PIPE_PAD_SOURCE);
+       compose = v4l2_subdev_state_get_compose(state, MXC_ISI_PIPE_PAD_SINK);
+       crop = *v4l2_subdev_state_get_crop(state, MXC_ISI_PIPE_PAD_SOURCE);
 
        sink_info = mxc_isi_bus_format_by_code(sink_fmt->code,
                                               MXC_ISI_PIPE_PAD_SINK);
                            struct v4l2_subdev_state *state,
                            unsigned int pad)
 {
-       return v4l2_subdev_get_try_format(&pipe->sd, state, pad);
+       return v4l2_subdev_state_get_format(state, pad);
 }
 
 static struct v4l2_rect *
                          struct v4l2_subdev_state *state,
                          unsigned int pad)
 {
-       return v4l2_subdev_get_try_crop(&pipe->sd, state, pad);
+       return v4l2_subdev_state_get_crop(state, pad);
 }
 
 static struct v4l2_rect *
                             struct v4l2_subdev_state *state,
                             unsigned int pad)
 {
-       return v4l2_subdev_get_try_compose(&pipe->sd, state, pad);
+       return v4l2_subdev_state_get_compose(state, pad);
 }
 
 static int mxc_isi_pipe_init_cfg(struct v4l2_subdev *sd,
        int ret;
 
        state = v4l2_subdev_lock_and_get_active_state(sd);
-       sink_fmt = v4l2_subdev_get_try_format(sd, state, MXC_ISI_PIPE_PAD_SINK);
-       src_fmt = v4l2_subdev_get_try_format(sd, state, MXC_ISI_PIPE_PAD_SOURCE);
+       sink_fmt = v4l2_subdev_state_get_format(state, MXC_ISI_PIPE_PAD_SINK);
+       src_fmt = v4l2_subdev_state_get_format(state, MXC_ISI_PIPE_PAD_SOURCE);
        v4l2_subdev_unlock_state(state);
 
        sink_info = mxc_isi_bus_format_by_code(sink_fmt->code,
 
 
        info = mxc_isi_format_by_fourcc(video->pix.pixelformat,
                                        MXC_ISI_VIDEO_CAP);
-       format = v4l2_subdev_get_try_format(sd, state, MXC_ISI_PIPE_PAD_SOURCE);
+       format = v4l2_subdev_state_get_format(state, MXC_ISI_PIPE_PAD_SOURCE);
 
        if (format->code != info->mbus_code ||
            format->width != video->pix.width ||
 
 
        /* Calculate the line rate from the pixel rate. */
 
-       fmt = v4l2_subdev_get_pad_format(&state->sd, sd_state, MIPI_CSI2_PAD_SINK);
+       fmt = v4l2_subdev_state_get_format(sd_state, MIPI_CSI2_PAD_SINK);
        csi2_fmt = find_csi2_format(fmt->code);
 
        link_freq = v4l2_get_link_freq(state->src_sd->ctrl_handler,
        struct v4l2_mbus_framefmt *fmt_sink;
        struct v4l2_mbus_framefmt *fmt_source;
 
-       fmt_sink = v4l2_subdev_get_pad_format(sd, sd_state, MIPI_CSI2_PAD_SINK);
-       fmt_source = v4l2_subdev_get_pad_format(sd, sd_state, MIPI_CSI2_PAD_SOURCE);
+       fmt_sink = v4l2_subdev_state_get_format(sd_state, MIPI_CSI2_PAD_SINK);
+       fmt_source = v4l2_subdev_state_get_format(sd_state,
+                                                 MIPI_CSI2_PAD_SOURCE);
 
        fmt_sink->code = MEDIA_BUS_FMT_SGBRG10_1X10;
        fmt_sink->width = MIPI_CSI2_DEF_PIX_WIDTH;
                if (code->index > 0)
                        return -EINVAL;
 
-               fmt = v4l2_subdev_get_pad_format(sd, sd_state, code->pad);
+               fmt = v4l2_subdev_state_get_format(sd_state, code->pad);
                code->code = fmt->code;
                return 0;
        }
        if (!csi2_fmt)
                csi2_fmt = &imx8mq_mipi_csi_formats[0];
 
-       fmt = v4l2_subdev_get_pad_format(sd, sd_state, sdformat->pad);
+       fmt = v4l2_subdev_state_get_format(sd_state, sdformat->pad);
 
        fmt->code = csi2_fmt->code;
        fmt->width = sdformat->format.width;
        sdformat->format = *fmt;
 
        /* Propagate the format from sink to source. */
-       fmt = v4l2_subdev_get_pad_format(sd, sd_state, MIPI_CSI2_PAD_SOURCE);
+       fmt = v4l2_subdev_state_get_format(sd_state, MIPI_CSI2_PAD_SOURCE);
        *fmt = sdformat->format;
 
        return 0;
 
                  enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&csid->subdev, sd_state,
-                                                 pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
 
        return &csid->fmt[pad];
 }
 
                    enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&csiphy->subdev, sd_state,
-                                                 pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
 
        return &csiphy->fmt[pad];
 }
 
                   enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&line->subdev, sd_state,
-                                                 pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
 
        return &line->fmt[pad];
 }
 
                 enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&line->subdev, sd_state,
-                                                 pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
 
        return &line->fmt[pad];
 }
                  enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_compose(&line->subdev, sd_state,
-                                                  MSM_VFE_PAD_SINK);
+               return v4l2_subdev_state_get_compose(sd_state,
+                                                    MSM_VFE_PAD_SINK);
 
        return &line->compose;
 }
               enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_crop(&line->subdev, sd_state,
-                                               MSM_VFE_PAD_SRC);
+               return v4l2_subdev_state_get_crop(sd_state, MSM_VFE_PAD_SRC);
 
        return &line->crop;
 }
 
        if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE) {
                isp->mf = format->format;
        } else {
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, 0);
+               framefmt = v4l2_subdev_state_get_format(sd_state, 0);
                *framefmt = format->format;
        }
 
        if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE)
                format->format = isp->mf;
        else
-               format->format = *v4l2_subdev_get_try_format(sd, sd_state, 0);
+               format->format = *v4l2_subdev_state_get_format(sd_state, 0);
 
        mutex_unlock(&isp->lock);
 
 
        if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE) {
                priv->mf = format->format;
        } else {
-               framefmt = v4l2_subdev_get_try_format(sd, sd_state, 0);
+               framefmt = v4l2_subdev_state_get_format(sd_state, 0);
                *framefmt = format->format;
        }
 
        if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE)
                format->format = priv->mf;
        else
-               format->format = *v4l2_subdev_get_try_format(sd, sd_state, 0);
+               format->format = *v4l2_subdev_state_get_format(sd_state, 0);
 
        mutex_unlock(&priv->lock);
 
 
        }
 
        state = v4l2_subdev_lock_and_get_active_state(&csi2->subdev);
-       fmt = v4l2_subdev_get_pad_format(&csi2->subdev, state, RZG2L_CSI2_SINK);
+       fmt = v4l2_subdev_state_get_format(state, RZG2L_CSI2_SINK);
        format = rzg2l_csi2_code_to_fmt(fmt->code);
        v4l2_subdev_unlock_state(state);
 
        struct v4l2_mbus_framefmt *src_format;
        struct v4l2_mbus_framefmt *sink_format;
 
-       src_format = v4l2_subdev_get_pad_format(sd, state, RZG2L_CSI2_SOURCE);
+       src_format = v4l2_subdev_state_get_format(state, RZG2L_CSI2_SOURCE);
        if (fmt->pad == RZG2L_CSI2_SOURCE) {
                fmt->format = *src_format;
                return 0;
        }
 
-       sink_format = v4l2_subdev_get_pad_format(sd, state, RZG2L_CSI2_SINK);
+       sink_format = v4l2_subdev_state_get_format(state, RZG2L_CSI2_SINK);
 
        if (!rzg2l_csi2_code_to_fmt(fmt->format.code))
                sink_format->code = rzg2l_csi2_formats[0].code;
 
        struct v4l2_mbus_framefmt *fmt;
 
        state = v4l2_subdev_lock_and_get_active_state(&cru->ip.subdev);
-       fmt = v4l2_subdev_get_pad_format(&cru->ip.subdev, state, 1);
+       fmt = v4l2_subdev_state_get_format(state, 1);
        v4l2_subdev_unlock_state(state);
 
        return fmt;
        struct v4l2_mbus_framefmt *src_format;
        struct v4l2_mbus_framefmt *sink_format;
 
-       src_format = v4l2_subdev_get_pad_format(sd, state, RZG2L_CRU_IP_SOURCE);
+       src_format = v4l2_subdev_state_get_format(state, RZG2L_CRU_IP_SOURCE);
        if (fmt->pad == RZG2L_CRU_IP_SOURCE) {
                fmt->format = *src_format;
                return 0;
        }
 
-       sink_format = v4l2_subdev_get_pad_format(sd, state, fmt->pad);
+       sink_format = v4l2_subdev_state_get_format(state, fmt->pad);
 
        if (!rzg2l_cru_ip_code_to_fmt(fmt->format.code))
                sink_format->code = rzg2l_cru_ip_formats[0].code;
 
                                         struct v4l2_subdev_state *sd_state,
                                         unsigned int pad)
 {
-       return v4l2_subdev_get_try_compose(&brx->entity.subdev, sd_state, pad);
+       return v4l2_subdev_state_get_compose(sd_state, pad);
 }
 
 static void brx_try_format(struct vsp1_brx *brx,
 
                           struct v4l2_subdev_state *sd_state,
                           unsigned int pad)
 {
-       return v4l2_subdev_get_try_format(&entity->subdev, sd_state, pad);
+       return v4l2_subdev_state_get_format(sd_state, pad);
 }
 
 /**
 {
        switch (target) {
        case V4L2_SEL_TGT_COMPOSE:
-               return v4l2_subdev_get_try_compose(&entity->subdev, sd_state,
-                                                  pad);
+               return v4l2_subdev_state_get_compose(sd_state, pad);
        case V4L2_SEL_TGT_CROP:
-               return v4l2_subdev_get_try_crop(&entity->subdev, sd_state,
-                                               pad);
+               return v4l2_subdev_state_get_crop(sd_state, pad);
        default:
                return NULL;
        }
 
 struct v4l2_rect *vsp1_rwpf_get_crop(struct vsp1_rwpf *rwpf,
                                     struct v4l2_subdev_state *sd_state)
 {
-       return v4l2_subdev_get_try_crop(&rwpf->entity.subdev, sd_state,
-                                       RWPF_PAD_SINK);
+       return v4l2_subdev_state_get_crop(sd_state, RWPF_PAD_SINK);
 }
 
 /* -----------------------------------------------------------------------------
 
                if (code->index)
                        return -EINVAL;
 
-               sink_fmt = v4l2_subdev_get_pad_format(sd, sd_state,
-                                                     RKISP1_CSI_PAD_SINK);
+               sink_fmt = v4l2_subdev_state_get_format(sd_state,
+                                                       RKISP1_CSI_PAD_SINK);
                code->code = sink_fmt->code;
 
                return 0;
 {
        struct v4l2_mbus_framefmt *sink_fmt, *src_fmt;
 
-       sink_fmt = v4l2_subdev_get_pad_format(sd, sd_state,
-                                             RKISP1_CSI_PAD_SINK);
-       src_fmt = v4l2_subdev_get_pad_format(sd, sd_state,
-                                            RKISP1_CSI_PAD_SRC);
+       sink_fmt = v4l2_subdev_state_get_format(sd_state, RKISP1_CSI_PAD_SINK);
+       src_fmt = v4l2_subdev_state_get_format(sd_state, RKISP1_CSI_PAD_SRC);
 
        sink_fmt->width = RKISP1_DEFAULT_WIDTH;
        sink_fmt->height = RKISP1_DEFAULT_HEIGHT;
        if (fmt->pad == RKISP1_CSI_PAD_SRC)
                return v4l2_subdev_get_fmt(sd, sd_state, fmt);
 
-       sink_fmt = v4l2_subdev_get_pad_format(sd, sd_state, RKISP1_CSI_PAD_SINK);
+       sink_fmt = v4l2_subdev_state_get_format(sd_state, RKISP1_CSI_PAD_SINK);
 
        sink_fmt->code = fmt->format.code;
 
        fmt->format = *sink_fmt;
 
        /* Propagate the format to the source pad. */
-       src_fmt = v4l2_subdev_get_pad_format(sd, sd_state, RKISP1_CSI_PAD_SRC);
+       src_fmt = v4l2_subdev_state_get_format(sd_state, RKISP1_CSI_PAD_SRC);
        *src_fmt = *sink_fmt;
 
        return 0;
                return -EINVAL;
 
        sd_state = v4l2_subdev_lock_and_get_active_state(sd);
-       sink_fmt = v4l2_subdev_get_pad_format(sd, sd_state, RKISP1_CSI_PAD_SINK);
+       sink_fmt = v4l2_subdev_state_get_format(sd_state, RKISP1_CSI_PAD_SINK);
        format = rkisp1_mbus_info_get_by_code(sink_fmt->code);
        v4l2_subdev_unlock_state(sd_state);
 
 
                              struct v4l2_subdev_state *sd_state)
 {
        const struct v4l2_rect *src_crop =
-               v4l2_subdev_get_pad_crop(&isp->sd, sd_state,
-                                        RKISP1_ISP_PAD_SOURCE_VIDEO);
+               v4l2_subdev_state_get_crop(sd_state,
+                                          RKISP1_ISP_PAD_SOURCE_VIDEO);
        struct rkisp1_device *rkisp1 = isp->rkisp1;
        u32 val;
 
        const struct v4l2_mbus_framefmt *sink_frm;
        const struct v4l2_rect *sink_crop;
 
-       sink_frm = v4l2_subdev_get_pad_format(&isp->sd, sd_state,
-                                             RKISP1_ISP_PAD_SINK_VIDEO);
-       sink_crop = v4l2_subdev_get_pad_crop(&isp->sd, sd_state,
-                                            RKISP1_ISP_PAD_SINK_VIDEO);
-       src_frm = v4l2_subdev_get_pad_format(&isp->sd, sd_state,
-                                            RKISP1_ISP_PAD_SOURCE_VIDEO);
+       sink_frm = v4l2_subdev_state_get_format(sd_state,
+                                               RKISP1_ISP_PAD_SINK_VIDEO);
+       sink_crop = v4l2_subdev_state_get_crop(sd_state,
+                                              RKISP1_ISP_PAD_SINK_VIDEO);
+       src_frm = v4l2_subdev_state_get_format(sd_state,
+                                              RKISP1_ISP_PAD_SOURCE_VIDEO);
 
        sink_fmt = rkisp1_mbus_info_get_by_code(sink_frm->code);
        src_fmt = rkisp1_mbus_info_get_by_code(src_frm->code);
        } else {
                struct v4l2_mbus_framefmt *src_frm;
 
-               src_frm = v4l2_subdev_get_pad_format(&isp->sd, sd_state,
-                                                    RKISP1_ISP_PAD_SOURCE_VIDEO);
+               src_frm = v4l2_subdev_state_get_format(sd_state,
+                                                      RKISP1_ISP_PAD_SOURCE_VIDEO);
                rkisp1_params_pre_configure(&rkisp1->params, sink_fmt->bayer_pat,
                                            src_frm->quantization,
                                            src_frm->ycbcr_enc);
               RKISP1_CIF_ISP_CTRL_ISP_INFORM_ENABLE;
        rkisp1_write(rkisp1, RKISP1_CIF_ISP_CTRL, val);
 
-       src_fmt = v4l2_subdev_get_pad_format(&isp->sd, sd_state,
-                                            RKISP1_ISP_PAD_SOURCE_VIDEO);
+       src_fmt = v4l2_subdev_state_get_format(sd_state,
+                                              RKISP1_ISP_PAD_SOURCE_VIDEO);
        src_info = rkisp1_mbus_info_get_by_code(src_fmt->code);
 
        if (src_info->pixel_enc != V4L2_PIXEL_ENC_BAYER)
        struct v4l2_rect *sink_crop, *src_crop;
 
        /* Video. */
-       sink_fmt = v4l2_subdev_get_pad_format(sd, sd_state,
-                                             RKISP1_ISP_PAD_SINK_VIDEO);
+       sink_fmt = v4l2_subdev_state_get_format(sd_state,
+                                               RKISP1_ISP_PAD_SINK_VIDEO);
        sink_fmt->width = RKISP1_DEFAULT_WIDTH;
        sink_fmt->height = RKISP1_DEFAULT_HEIGHT;
        sink_fmt->field = V4L2_FIELD_NONE;
        sink_fmt->ycbcr_enc = V4L2_YCBCR_ENC_601;
        sink_fmt->quantization = V4L2_QUANTIZATION_FULL_RANGE;
 
-       sink_crop = v4l2_subdev_get_pad_crop(sd, sd_state,
-                                            RKISP1_ISP_PAD_SINK_VIDEO);
+       sink_crop = v4l2_subdev_state_get_crop(sd_state,
+                                              RKISP1_ISP_PAD_SINK_VIDEO);
        sink_crop->width = RKISP1_DEFAULT_WIDTH;
        sink_crop->height = RKISP1_DEFAULT_HEIGHT;
        sink_crop->left = 0;
        sink_crop->top = 0;
 
-       src_fmt = v4l2_subdev_get_pad_format(sd, sd_state,
-                                            RKISP1_ISP_PAD_SOURCE_VIDEO);
+       src_fmt = v4l2_subdev_state_get_format(sd_state,
+                                              RKISP1_ISP_PAD_SOURCE_VIDEO);
        *src_fmt = *sink_fmt;
        src_fmt->code = RKISP1_DEF_SRC_PAD_FMT;
        src_fmt->colorspace = V4L2_COLORSPACE_SRGB;
        src_fmt->ycbcr_enc = V4L2_YCBCR_ENC_601;
        src_fmt->quantization = V4L2_QUANTIZATION_LIM_RANGE;
 
-       src_crop = v4l2_subdev_get_pad_crop(sd, sd_state,
-                                           RKISP1_ISP_PAD_SOURCE_VIDEO);
+       src_crop = v4l2_subdev_state_get_crop(sd_state,
+                                             RKISP1_ISP_PAD_SOURCE_VIDEO);
        *src_crop = *sink_crop;
 
        /* Parameters and statistics. */
-       sink_fmt = v4l2_subdev_get_pad_format(sd, sd_state,
-                                             RKISP1_ISP_PAD_SINK_PARAMS);
-       src_fmt = v4l2_subdev_get_pad_format(sd, sd_state,
-                                            RKISP1_ISP_PAD_SOURCE_STATS);
+       sink_fmt = v4l2_subdev_state_get_format(sd_state,
+                                               RKISP1_ISP_PAD_SINK_PARAMS);
+       src_fmt = v4l2_subdev_state_get_format(sd_state,
+                                              RKISP1_ISP_PAD_SOURCE_STATS);
        sink_fmt->width = 0;
        sink_fmt->height = 0;
        sink_fmt->field = V4L2_FIELD_NONE;
        const struct v4l2_rect *src_crop;
        bool set_csc;
 
-       sink_fmt = v4l2_subdev_get_pad_format(&isp->sd, sd_state,
-                                             RKISP1_ISP_PAD_SINK_VIDEO);
-       src_fmt = v4l2_subdev_get_pad_format(&isp->sd, sd_state,
-                                            RKISP1_ISP_PAD_SOURCE_VIDEO);
-       src_crop = v4l2_subdev_get_pad_crop(&isp->sd, sd_state,
-                                           RKISP1_ISP_PAD_SOURCE_VIDEO);
+       sink_fmt = v4l2_subdev_state_get_format(sd_state,
+                                               RKISP1_ISP_PAD_SINK_VIDEO);
+       src_fmt = v4l2_subdev_state_get_format(sd_state,
+                                              RKISP1_ISP_PAD_SOURCE_VIDEO);
+       src_crop = v4l2_subdev_state_get_crop(sd_state,
+                                             RKISP1_ISP_PAD_SOURCE_VIDEO);
 
        /*
         * Media bus code. The ISP can operate in pass-through mode (Bayer in,
        const struct v4l2_rect *sink_crop;
        struct v4l2_rect *src_crop;
 
-       src_crop = v4l2_subdev_get_pad_crop(&isp->sd, sd_state,
-                                           RKISP1_ISP_PAD_SOURCE_VIDEO);
-       sink_crop = v4l2_subdev_get_pad_crop(&isp->sd, sd_state,
-                                            RKISP1_ISP_PAD_SINK_VIDEO);
+       src_crop = v4l2_subdev_state_get_crop(sd_state,
+                                             RKISP1_ISP_PAD_SOURCE_VIDEO);
+       sink_crop = v4l2_subdev_state_get_crop(sd_state,
+                                              RKISP1_ISP_PAD_SINK_VIDEO);
 
        src_crop->left = ALIGN(r->left, 2);
        src_crop->width = ALIGN(r->width, 2);
        *r = *src_crop;
 
        /* Propagate to out format */
-       src_fmt = v4l2_subdev_get_pad_format(&isp->sd, sd_state,
-                                            RKISP1_ISP_PAD_SOURCE_VIDEO);
+       src_fmt = v4l2_subdev_state_get_format(sd_state,
+                                              RKISP1_ISP_PAD_SOURCE_VIDEO);
        rkisp1_isp_set_src_fmt(isp, sd_state, src_fmt);
 }
 
        struct v4l2_rect *sink_crop, *src_crop;
        const struct v4l2_mbus_framefmt *sink_fmt;
 
-       sink_crop = v4l2_subdev_get_pad_crop(&isp->sd, sd_state,
-                                            RKISP1_ISP_PAD_SINK_VIDEO);
-       sink_fmt = v4l2_subdev_get_pad_format(&isp->sd, sd_state,
-                                             RKISP1_ISP_PAD_SINK_VIDEO);
+       sink_crop = v4l2_subdev_state_get_crop(sd_state,
+                                              RKISP1_ISP_PAD_SINK_VIDEO);
+       sink_fmt = v4l2_subdev_state_get_format(sd_state,
+                                               RKISP1_ISP_PAD_SINK_VIDEO);
 
        sink_crop->left = ALIGN(r->left, 2);
        sink_crop->width = ALIGN(r->width, 2);
        *r = *sink_crop;
 
        /* Propagate to out crop */
-       src_crop = v4l2_subdev_get_pad_crop(&isp->sd, sd_state,
-                                           RKISP1_ISP_PAD_SOURCE_VIDEO);
+       src_crop = v4l2_subdev_state_get_crop(sd_state,
+                                             RKISP1_ISP_PAD_SOURCE_VIDEO);
        rkisp1_isp_set_src_crop(isp, sd_state, src_crop);
 }
 
        struct v4l2_rect *sink_crop;
        bool is_yuv;
 
-       sink_fmt = v4l2_subdev_get_pad_format(&isp->sd, sd_state,
-                                             RKISP1_ISP_PAD_SINK_VIDEO);
+       sink_fmt = v4l2_subdev_state_get_format(sd_state,
+                                               RKISP1_ISP_PAD_SINK_VIDEO);
        sink_fmt->code = format->code;
        mbus_info = rkisp1_mbus_info_get_by_code(sink_fmt->code);
        if (!mbus_info || !(mbus_info->direction & RKISP1_ISP_SD_SINK)) {
        *format = *sink_fmt;
 
        /* Propagate to in crop */
-       sink_crop = v4l2_subdev_get_pad_crop(&isp->sd, sd_state,
-                                            RKISP1_ISP_PAD_SINK_VIDEO);
+       sink_crop = v4l2_subdev_state_get_crop(sd_state,
+                                              RKISP1_ISP_PAD_SINK_VIDEO);
        rkisp1_isp_set_sink_crop(isp, sd_state, sink_crop);
 }
 
        else if (fmt->pad == RKISP1_ISP_PAD_SOURCE_VIDEO)
                rkisp1_isp_set_src_fmt(isp, sd_state, &fmt->format);
        else
-               fmt->format = *v4l2_subdev_get_pad_format(sd, sd_state, fmt->pad);
+               fmt->format = *v4l2_subdev_state_get_format(sd_state,
+                                                           fmt->pad);
 
        return 0;
 }
                if (sel->pad == RKISP1_ISP_PAD_SINK_VIDEO) {
                        struct v4l2_mbus_framefmt *fmt;
 
-                       fmt = v4l2_subdev_get_pad_format(sd, sd_state, sel->pad);
+                       fmt = v4l2_subdev_state_get_format(sd_state, sel->pad);
                        sel->r.height = fmt->height;
                        sel->r.width = fmt->width;
                        sel->r.left = 0;
                        sel->r.top = 0;
                } else {
-                       sel->r = *v4l2_subdev_get_pad_crop(sd, sd_state,
-                                                          RKISP1_ISP_PAD_SINK_VIDEO);
+                       sel->r = *v4l2_subdev_state_get_crop(sd_state,
+                                                            RKISP1_ISP_PAD_SINK_VIDEO);
                }
                break;
 
        case V4L2_SEL_TGT_CROP:
-               sel->r = *v4l2_subdev_get_pad_crop(sd, sd_state, sel->pad);
+               sel->r = *v4l2_subdev_state_get_crop(sd_state, sel->pad);
                break;
 
        default:
 
        struct v4l2_rect *sink_crop;
        u32 dc_ctrl;
 
-       sink_crop = v4l2_subdev_get_pad_crop(&rsz->sd, sd_state,
-                                            RKISP1_RSZ_PAD_SINK);
-       sink_fmt = v4l2_subdev_get_pad_format(&rsz->sd, sd_state,
-                                             RKISP1_RSZ_PAD_SINK);
+       sink_crop = v4l2_subdev_state_get_crop(sd_state, RKISP1_RSZ_PAD_SINK);
+       sink_fmt = v4l2_subdev_state_get_format(sd_state, RKISP1_RSZ_PAD_SINK);
 
        if (sink_crop->width == sink_fmt->width &&
            sink_crop->height == sink_fmt->height &&
        struct v4l2_area src_y, src_c;
        struct v4l2_rect sink_c;
 
-       sink_fmt = v4l2_subdev_get_pad_format(&rsz->sd, sd_state,
-                                             RKISP1_RSZ_PAD_SINK);
-       src_fmt = v4l2_subdev_get_pad_format(&rsz->sd, sd_state,
-                                            RKISP1_RSZ_PAD_SRC);
+       sink_fmt = v4l2_subdev_state_get_format(sd_state, RKISP1_RSZ_PAD_SINK);
+       src_fmt = v4l2_subdev_state_get_format(sd_state, RKISP1_RSZ_PAD_SRC);
 
        sink_yuv_info = rkisp1_rsz_get_yuv_mbus_info(sink_fmt->code);
        src_yuv_info = rkisp1_rsz_get_yuv_mbus_info(src_fmt->code);
                return;
        }
 
-       sink_y = v4l2_subdev_get_pad_crop(&rsz->sd, sd_state,
-                                         RKISP1_RSZ_PAD_SINK);
+       sink_y = v4l2_subdev_state_get_crop(sd_state, RKISP1_RSZ_PAD_SINK);
        sink_c.width = sink_y->width / sink_yuv_info->hdiv;
        sink_c.height = sink_y->height / sink_yuv_info->vdiv;
 
        struct v4l2_mbus_framefmt *sink_fmt, *src_fmt;
        struct v4l2_rect *sink_crop;
 
-       sink_fmt = v4l2_subdev_get_pad_format(sd, sd_state,
-                                             RKISP1_RSZ_PAD_SRC);
+       sink_fmt = v4l2_subdev_state_get_format(sd_state, RKISP1_RSZ_PAD_SRC);
        sink_fmt->width = RKISP1_DEFAULT_WIDTH;
        sink_fmt->height = RKISP1_DEFAULT_HEIGHT;
        sink_fmt->field = V4L2_FIELD_NONE;
        sink_fmt->ycbcr_enc = V4L2_YCBCR_ENC_601;
        sink_fmt->quantization = V4L2_QUANTIZATION_LIM_RANGE;
 
-       sink_crop = v4l2_subdev_get_try_crop(sd, sd_state,
-                                            RKISP1_RSZ_PAD_SINK);
+       sink_crop = v4l2_subdev_state_get_crop(sd_state, RKISP1_RSZ_PAD_SINK);
        sink_crop->width = RKISP1_DEFAULT_WIDTH;
        sink_crop->height = RKISP1_DEFAULT_HEIGHT;
        sink_crop->left = 0;
        sink_crop->top = 0;
 
-       src_fmt = v4l2_subdev_get_pad_format(sd, sd_state,
-                                            RKISP1_RSZ_PAD_SINK);
+       src_fmt = v4l2_subdev_state_get_format(sd_state, RKISP1_RSZ_PAD_SINK);
        *src_fmt = *sink_fmt;
 
        /* NOTE: there is no crop in the source pad, only in the sink */
        const struct rkisp1_mbus_info *sink_mbus_info;
        struct v4l2_mbus_framefmt *src_fmt, *sink_fmt;
 
-       sink_fmt = v4l2_subdev_get_pad_format(&rsz->sd, sd_state,
-                                             RKISP1_RSZ_PAD_SINK);
-       src_fmt = v4l2_subdev_get_pad_format(&rsz->sd, sd_state,
-                                            RKISP1_RSZ_PAD_SRC);
+       sink_fmt = v4l2_subdev_state_get_format(sd_state, RKISP1_RSZ_PAD_SINK);
+       src_fmt = v4l2_subdev_state_get_format(sd_state, RKISP1_RSZ_PAD_SRC);
 
        sink_mbus_info = rkisp1_mbus_info_get_by_code(sink_fmt->code);
 
        struct v4l2_mbus_framefmt *sink_fmt;
        struct v4l2_rect *sink_crop;
 
-       sink_fmt = v4l2_subdev_get_pad_format(&rsz->sd, sd_state,
-                                             RKISP1_RSZ_PAD_SINK);
-       sink_crop = v4l2_subdev_get_pad_crop(&rsz->sd, sd_state,
-                                            RKISP1_RSZ_PAD_SINK);
+       sink_fmt = v4l2_subdev_state_get_format(sd_state, RKISP1_RSZ_PAD_SINK);
+       sink_crop = v4l2_subdev_state_get_crop(sd_state, RKISP1_RSZ_PAD_SINK);
 
        /* Not crop for MP bayer raw data */
        mbus_info = rkisp1_mbus_info_get_by_code(sink_fmt->code);
        struct v4l2_rect *sink_crop;
        bool is_yuv;
 
-       sink_fmt = v4l2_subdev_get_pad_format(&rsz->sd, sd_state,
-                                             RKISP1_RSZ_PAD_SINK);
-       src_fmt = v4l2_subdev_get_pad_format(&rsz->sd, sd_state,
-                                            RKISP1_RSZ_PAD_SRC);
-       sink_crop = v4l2_subdev_get_pad_crop(&rsz->sd, sd_state,
-                                            RKISP1_RSZ_PAD_SINK);
+       sink_fmt = v4l2_subdev_state_get_format(sd_state, RKISP1_RSZ_PAD_SINK);
+       src_fmt = v4l2_subdev_state_get_format(sd_state, RKISP1_RSZ_PAD_SRC);
+       sink_crop = v4l2_subdev_state_get_crop(sd_state, RKISP1_RSZ_PAD_SINK);
 
        if (rsz->id == RKISP1_SELFPATH)
                sink_fmt->code = MEDIA_BUS_FMT_YUYV8_2X8;
 
        switch (sel->target) {
        case V4L2_SEL_TGT_CROP_BOUNDS:
-               mf_sink = v4l2_subdev_get_pad_format(sd, sd_state,
-                                                    RKISP1_RSZ_PAD_SINK);
+               mf_sink = v4l2_subdev_state_get_format(sd_state,
+                                                      RKISP1_RSZ_PAD_SINK);
                sel->r.height = mf_sink->height;
                sel->r.width = mf_sink->width;
                sel->r.left = 0;
                break;
 
        case V4L2_SEL_TGT_CROP:
-               sel->r = *v4l2_subdev_get_pad_crop(sd, sd_state,
-                                                  RKISP1_RSZ_PAD_SINK);
+               sel->r = *v4l2_subdev_state_get_crop(sd_state,
+                                                    RKISP1_RSZ_PAD_SINK);
                break;
 
        default:
 
        struct v4l2_mbus_framefmt *mf;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               mf = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               mf = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                fmt->format = *mf;
                return 0;
        }
        mf->colorspace = V4L2_COLORSPACE_JPEG;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               mf = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               mf = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                *mf = fmt->format;
                return 0;
        }
                return 0;
 
        case V4L2_SEL_TGT_CROP:
-               try_sel = v4l2_subdev_get_try_crop(sd, sd_state, sel->pad);
+               try_sel = v4l2_subdev_state_get_crop(sd_state, sel->pad);
                break;
        case V4L2_SEL_TGT_COMPOSE:
-               try_sel = v4l2_subdev_get_try_compose(sd, sd_state, sel->pad);
+               try_sel = v4l2_subdev_state_get_compose(sd_state, sel->pad);
                f = &ctx->d_frame;
                break;
        default:
 
        switch (sel->target) {
        case V4L2_SEL_TGT_CROP:
-               try_sel = v4l2_subdev_get_try_crop(sd, sd_state, sel->pad);
+               try_sel = v4l2_subdev_state_get_crop(sd_state, sel->pad);
                break;
        case V4L2_SEL_TGT_COMPOSE:
-               try_sel = v4l2_subdev_get_try_compose(sd, sd_state, sel->pad);
+               try_sel = v4l2_subdev_state_get_compose(sd_state, sel->pad);
                f = &ctx->d_frame;
                break;
        default:
 
        struct v4l2_mbus_framefmt *mf = &fmt->format;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *mf = *v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               *mf = *v4l2_subdev_state_get_format(sd_state, fmt->pad);
                return 0;
        }
 
                mf->code = MEDIA_BUS_FMT_SGRBG10_1X10;
        } else {
                if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
-                       format = v4l2_subdev_get_try_format(&isp->subdev,
-                                                           sd_state,
-                                                           FIMC_ISP_SD_PAD_SINK);
+                       format = v4l2_subdev_state_get_format(sd_state,
+                                                             FIMC_ISP_SD_PAD_SINK);
                else
                        format = &isp->sink_fmt;
 
        __isp_subdev_try_format(isp, sd_state, fmt);
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               mf = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               mf = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                *mf = fmt->format;
 
                /* Propagate format to the source pads */
                                format.pad = pad;
                                __isp_subdev_try_format(isp, sd_state,
                                                        &format);
-                               mf = v4l2_subdev_get_try_format(sd, sd_state,
-                                                               pad);
+                               mf = v4l2_subdev_state_get_format(sd_state,
+                                                                 pad);
                                *mf = format.format;
                        }
                }
                .field = V4L2_FIELD_NONE,
        };
 
-       format = v4l2_subdev_get_try_format(sd, fh->state,
-                                           FIMC_ISP_SD_PAD_SINK);
+       format = v4l2_subdev_state_get_format(fh->state, FIMC_ISP_SD_PAD_SINK);
        *format = fmt;
 
-       format = v4l2_subdev_get_try_format(sd, fh->state,
-                                           FIMC_ISP_SD_PAD_SRC_FIFO);
+       format = v4l2_subdev_state_get_format(fh->state,
+                                             FIMC_ISP_SD_PAD_SRC_FIFO);
        fmt.width = DEFAULT_PREVIEW_STILL_WIDTH;
        fmt.height = DEFAULT_PREVIEW_STILL_HEIGHT;
        *format = fmt;
 
-       format = v4l2_subdev_get_try_format(sd, fh->state,
-                                           FIMC_ISP_SD_PAD_SRC_DMA);
+       format = v4l2_subdev_state_get_format(fh->state,
+                                             FIMC_ISP_SD_PAD_SRC_DMA);
        *format = fmt;
 
        return 0;
 
                struct v4l2_rect *rect;
 
                if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-                       sink_fmt = v4l2_subdev_get_try_format(&fimc->subdev,
-                                                             sd_state,
-                                                             FLITE_SD_PAD_SINK);
+                       sink_fmt = v4l2_subdev_state_get_format(sd_state,
+                                                               FLITE_SD_PAD_SINK);
 
                        mf->code = sink_fmt->code;
                        mf->colorspace = sink_fmt->colorspace;
 
-                       rect = v4l2_subdev_get_try_crop(&fimc->subdev,
-                                                       sd_state,
-                                                       FLITE_SD_PAD_SINK);
+                       rect = v4l2_subdev_state_get_crop(sd_state,
+                                                         FLITE_SD_PAD_SINK);
                } else {
                        mf->code = sink->fmt->mbus_code;
                        mf->colorspace = sink->fmt->colorspace;
        if (pad != FLITE_SD_PAD_SINK)
                pad = FLITE_SD_PAD_SOURCE_DMA;
 
-       return v4l2_subdev_get_try_format(sd, sd_state, pad);
+       return v4l2_subdev_state_get_format(sd_state, pad);
 }
 
 static int fimc_lite_subdev_get_fmt(struct v4l2_subdev *sd,
                return -EINVAL;
 
        if (sel->which == V4L2_SUBDEV_FORMAT_TRY) {
-               sel->r = *v4l2_subdev_get_try_crop(sd, sd_state, sel->pad);
+               sel->r = *v4l2_subdev_state_get_crop(sd_state, sel->pad);
                return 0;
        }
 
        fimc_lite_try_crop(fimc, &sel->r);
 
        if (sel->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_try_crop(sd, sd_state, sel->pad) = sel->r;
+               *v4l2_subdev_state_get_crop(sd_state, sel->pad) = sel->r;
        } else {
                unsigned long flags;
                spin_lock_irqsave(&fimc->slock, flags);
 
                enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return sd_state ? v4l2_subdev_get_try_format(&state->sd,
-                                                            sd_state, 0) : NULL;
+               return sd_state ? v4l2_subdev_state_get_format(sd_state, 0) : NULL;
 
        return &state->format;
 }
 
        struct v4l2_mbus_framefmt *mf = &fmt->format;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               mf = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               mf = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                fmt->format = *mf;
                return 0;
        }
        __camif_subdev_try_format(camif, mf, fmt->pad);
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-               mf = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               mf = v4l2_subdev_state_get_format(sd_state, fmt->pad);
                *mf = fmt->format;
                mutex_unlock(&camif->lock);
                return 0;
                return -EINVAL;
 
        if (sel->which == V4L2_SUBDEV_FORMAT_TRY) {
-               sel->r = *v4l2_subdev_get_try_crop(sd, sd_state, sel->pad);
+               sel->r = *v4l2_subdev_state_get_crop(sd_state, sel->pad);
                return 0;
        }
 
        __camif_try_crop(camif, &sel->r);
 
        if (sel->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_try_crop(sd, sd_state, sel->pad) = sel->r;
+               *v4l2_subdev_state_get_crop(sd_state, sel->pad) = sel->r;
        } else {
                unsigned long flags;
                unsigned int i;
 
 {
        struct v4l2_mbus_framefmt *fmt;
 
-       fmt = v4l2_subdev_get_try_format(subdev, sd_state, CSI_SUBDEV_SINK);
+       fmt = v4l2_subdev_state_get_format(sd_state, CSI_SUBDEV_SINK);
        *fmt = sun4i_csi_pad_fmt_default;
 
        return 0;
        struct v4l2_mbus_framefmt *subdev_fmt;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
-               subdev_fmt = v4l2_subdev_get_try_format(subdev, sd_state,
-                                                       fmt->pad);
+               subdev_fmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);
        else
                subdev_fmt = &csi->subdev_fmt;
 
        struct v4l2_mbus_framefmt *subdev_fmt;
 
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
-               subdev_fmt = v4l2_subdev_get_try_format(subdev, sd_state,
-                                                       fmt->pad);
+               subdev_fmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);
        else
                subdev_fmt = &csi->subdev_fmt;
 
 
        struct sun6i_csi_device *csi_dev = v4l2_get_subdevdata(subdev);
        unsigned int pad = SUN6I_CSI_BRIDGE_PAD_SINK;
        struct v4l2_mbus_framefmt *mbus_format =
-               v4l2_subdev_get_try_format(subdev, state, pad);
+               v4l2_subdev_state_get_format(state, pad);
        struct mutex *lock = &csi_dev->bridge.lock;
 
        mutex_lock(lock);
        mutex_lock(lock);
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY)
-               *mbus_format = *v4l2_subdev_get_try_format(subdev, state,
-                                                          format->pad);
+               *mbus_format = *v4l2_subdev_state_get_format(state,
+                                                            format->pad);
        else
                *mbus_format = csi_dev->bridge.mbus_format;
 
        sun6i_csi_bridge_mbus_format_prepare(mbus_format);
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY)
-               *v4l2_subdev_get_try_format(subdev, state, format->pad) =
+               *v4l2_subdev_state_get_format(state, format->pad) =
                        *mbus_format;
        else
                csi_dev->bridge.mbus_format = *mbus_format;
 
        struct sun6i_mipi_csi2_device *csi2_dev = v4l2_get_subdevdata(subdev);
        unsigned int pad = SUN6I_MIPI_CSI2_PAD_SINK;
        struct v4l2_mbus_framefmt *mbus_format =
-               v4l2_subdev_get_try_format(subdev, state, pad);
+               v4l2_subdev_state_get_format(state, pad);
        struct mutex *lock = &csi2_dev->bridge.lock;
 
        mutex_lock(lock);
        mutex_lock(lock);
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY)
-               *mbus_format = *v4l2_subdev_get_try_format(subdev, state,
-                                                          format->pad);
+               *mbus_format = *v4l2_subdev_state_get_format(state,
+                                                            format->pad);
        else
                *mbus_format = csi2_dev->bridge.mbus_format;
 
        sun6i_mipi_csi2_mbus_format_prepare(mbus_format);
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY)
-               *v4l2_subdev_get_try_format(subdev, state, format->pad) =
+               *v4l2_subdev_state_get_format(state, format->pad) =
                        *mbus_format;
        else
                csi2_dev->bridge.mbus_format = *mbus_format;
 
                v4l2_get_subdevdata(subdev);
        unsigned int pad = SUN8I_A83T_MIPI_CSI2_PAD_SINK;
        struct v4l2_mbus_framefmt *mbus_format =
-               v4l2_subdev_get_try_format(subdev, state, pad);
+               v4l2_subdev_state_get_format(state, pad);
        struct mutex *lock = &csi2_dev->bridge.lock;
 
        mutex_lock(lock);
        mutex_lock(lock);
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY)
-               *mbus_format = *v4l2_subdev_get_try_format(subdev, state,
-                                                          format->pad);
+               *mbus_format = *v4l2_subdev_state_get_format(state,
+                                                            format->pad);
        else
                *mbus_format = csi2_dev->bridge.mbus_format;
 
        sun8i_a83t_mipi_csi2_mbus_format_prepare(mbus_format);
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY)
-               *v4l2_subdev_get_try_format(subdev, state, format->pad) =
+               *v4l2_subdev_state_get_format(state, format->pad) =
                        *mbus_format;
        else
                csi2_dev->bridge.mbus_format = *mbus_format;
 
 
        state = v4l2_subdev_get_locked_active_state(&phy->subdev);
 
-       fmt = v4l2_subdev_get_pad_format(&phy->subdev, state, CAL_CAMERARX_PAD_SINK);
+       fmt = v4l2_subdev_state_get_format(state, CAL_CAMERARX_PAD_SINK);
 
        fmtinfo = cal_format_by_code(fmt->code);
        if (!fmtinfo)
                                          struct v4l2_subdev_state *state,
                                          struct v4l2_subdev_mbus_code_enum *code)
 {
-       struct cal_camerarx *phy = to_cal_camerarx(sd);
-
        /* No transcoding, source and sink codes must match. */
        if (cal_rx_pad_is_source(code->pad)) {
                struct v4l2_mbus_framefmt *fmt;
                if (code->index > 0)
                        return -EINVAL;
 
-               fmt = v4l2_subdev_get_pad_format(&phy->subdev, state,
-                                                CAL_CAMERARX_PAD_SINK);
+               fmt = v4l2_subdev_state_get_format(state,
+                                                  CAL_CAMERARX_PAD_SINK);
                code->code = fmt->code;
        } else {
                if (code->index >= cal_num_formats)
        if (cal_rx_pad_is_source(fse->pad)) {
                struct v4l2_mbus_framefmt *fmt;
 
-               fmt = v4l2_subdev_get_pad_format(sd, state,
-                                                CAL_CAMERARX_PAD_SINK);
+               fmt = v4l2_subdev_state_get_format(state,
+                                                  CAL_CAMERARX_PAD_SINK);
                if (fse->code != fmt->code)
                        return -EINVAL;
 
 
        /* Store the format and propagate it to the source pad. */
 
-       fmt = v4l2_subdev_get_pad_format(sd, state, CAL_CAMERARX_PAD_SINK);
+       fmt = v4l2_subdev_state_get_format(state, CAL_CAMERARX_PAD_SINK);
        *fmt = format->format;
 
-       fmt = v4l2_subdev_get_pad_format(sd, state,
-                                        CAL_CAMERARX_PAD_FIRST_SOURCE);
+       fmt = v4l2_subdev_state_get_format(state,
+                                          CAL_CAMERARX_PAD_FIRST_SOURCE);
        *fmt = format->format;
 
        return 0;
 
 
        state = v4l2_subdev_lock_and_get_active_state(&ctx->phy->subdev);
 
-       format = v4l2_subdev_get_pad_format(&ctx->phy->subdev, state, remote_pad->index);
+       format = v4l2_subdev_state_get_format(state, remote_pad->index);
        if (!format) {
                ret = -EINVAL;
                goto out;
 
                  unsigned int pad, enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&ccdc->subdev, sd_state,
-                                                 pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        else
                return &ccdc->formats[pad];
 }
                enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_crop(&ccdc->subdev, sd_state,
-                                               CCDC_PAD_SOURCE_OF);
+               return v4l2_subdev_state_get_crop(sd_state,
+                                                 CCDC_PAD_SOURCE_OF);
        else
                return &ccdc->crop;
 }
 
                  unsigned int pad, enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&ccp2->subdev, sd_state,
-                                                 pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        else
                return &ccp2->formats[pad];
 }
 
                  unsigned int pad, enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&csi2->subdev, sd_state,
-                                                 pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        else
                return &csi2->formats[pad];
 }
 
                     unsigned int pad, enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&prev->subdev, sd_state,
-                                                 pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        else
                return &prev->formats[pad];
 }
                   enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_crop(&prev->subdev, sd_state,
-                                               PREV_PAD_SINK);
+               return v4l2_subdev_state_get_crop(sd_state, PREV_PAD_SINK);
        else
                return &prev->crop;
 }
 
                     unsigned int pad, enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&res->subdev, sd_state, pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        else
                return &res->formats[pad];
 }
                   enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_crop(&res->subdev, sd_state,
-                                               RESZ_PAD_SINK);
+               return v4l2_subdev_state_get_crop(sd_state, RESZ_PAD_SINK);
        else
                return &res->crop.request;
 }
 
 
                /* Propagate the active format to the source */
                sd_state = v4l2_subdev_lock_and_get_active_state(sd);
-               source_mbusformat = v4l2_subdev_get_pad_format(sd, sd_state,
-                                                              source_pad);
-               *source_mbusformat = *v4l2_subdev_get_pad_format(sd, sd_state,
-                                                                vmux->active);
+               source_mbusformat = v4l2_subdev_state_get_format(sd_state,
+                                                                source_pad);
+               *source_mbusformat = *v4l2_subdev_state_get_format(sd_state,
+                                                                  vmux->active);
                v4l2_subdev_unlock_state(sd_state);
        } else {
                if (vmux->active != local->index)
        struct media_pad *pad = &vmux->pads[sdformat->pad];
        u16 source_pad = sd->entity.num_pads - 1;
 
-       mbusformat = v4l2_subdev_get_pad_format(sd, sd_state, sdformat->pad);
+       mbusformat = v4l2_subdev_state_get_format(sd_state, sdformat->pad);
        if (!mbusformat)
                return -EINVAL;
 
-       source_mbusformat = v4l2_subdev_get_pad_format(sd, sd_state, source_pad);
+       source_mbusformat = v4l2_subdev_state_get_format(sd_state, source_pad);
        if (!source_mbusformat)
                return -EINVAL;
 
 
        /* Source pad mirrors active sink pad, no limitations on sink pads */
        if ((pad->flags & MEDIA_PAD_FL_SOURCE) && vmux->active >= 0)
-               sdformat->format = *v4l2_subdev_get_pad_format(sd, sd_state,
-                                                              vmux->active);
+               sdformat->format = *v4l2_subdev_state_get_format(sd_state,
+                                                                vmux->active);
 
        *mbusformat = sdformat->format;
 
        mutex_lock(&vmux->lock);
 
        for (i = 0; i < sd->entity.num_pads; i++) {
-               mbusformat = v4l2_subdev_get_pad_format(sd, sd_state, i);
+               mbusformat = v4l2_subdev_state_get_format(sd_state, i);
                *mbusformat = video_mux_format_mbus_default;
        }
 
 
 {
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_format(&xcsi2rxss->subdev,
-                                                 sd_state, pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return &xcsi2rxss->format;
        default:
 
        mutex_lock(&xcsi2rxss->lock);
        for (i = 0; i < XCSI_MEDIA_PADS; i++) {
-               format = v4l2_subdev_get_try_format(sd, sd_state, i);
+               format = v4l2_subdev_state_get_format(sd_state, i);
                *format = xcsi2rxss->default_format;
        }
        mutex_unlock(&xcsi2rxss->lock);
 
 {
        switch (which) {
        case V4L2_SUBDEV_FORMAT_TRY:
-               return v4l2_subdev_get_try_format(&xtpg->xvip.subdev,
-                                                 sd_state, pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        case V4L2_SUBDEV_FORMAT_ACTIVE:
                return &xtpg->formats[pad];
        default:
 {
        struct v4l2_mbus_framefmt *format;
 
-       format = v4l2_subdev_get_try_format(subdev, sd_state, fse->pad);
+       format = v4l2_subdev_state_get_format(sd_state, fse->pad);
 
        if (fse->index || fse->code != format->code)
                return -EINVAL;
        struct xtpg_device *xtpg = to_tpg(subdev);
        struct v4l2_mbus_framefmt *format;
 
-       format = v4l2_subdev_get_try_format(subdev, fh->state, 0);
+       format = v4l2_subdev_state_get_format(fh->state, 0);
        *format = xtpg->default_format;
 
        if (xtpg->npads == 2) {
-               format = v4l2_subdev_get_try_format(subdev, fh->state, 1);
+               format = v4l2_subdev_state_get_format(fh->state, 1);
                *format = xtpg->default_format;
        }
 
 
        if (code->index)
                return -EINVAL;
 
-       format = v4l2_subdev_get_try_format(subdev, sd_state, code->pad);
+       format = v4l2_subdev_state_get_format(sd_state, code->pad);
 
        code->code = format->code;
 
        if (fse->which == V4L2_SUBDEV_FORMAT_ACTIVE)
                return -EINVAL;
 
-       format = v4l2_subdev_get_try_format(subdev, sd_state, fse->pad);
+       format = v4l2_subdev_state_get_format(sd_state, fse->pad);
 
        if (fse->index || fse->code != format->code)
                return -EINVAL;
 
        struct v4l2_mbus_framefmt *mf;
        unsigned int i;
 
-       mf = v4l2_subdev_get_try_format(sd, sd_state, 0);
+       mf = v4l2_subdev_state_get_format(sd_state, 0);
        *mf = sink_fmt_default;
 
        for (i = 1; i < sd->entity.num_pads; i++) {
-               mf = v4l2_subdev_get_try_format(sd, sd_state, i);
+               mf = v4l2_subdev_state_get_format(sd_state, i);
                *mf = sink_fmt_default;
                mf->code = vdebayer->src_code;
        }
 
        /* Get the current sink format */
        fmt->format = fmt->which == V4L2_SUBDEV_FORMAT_TRY ?
-                     *v4l2_subdev_get_try_format(sd, sd_state, 0) :
+                     *v4l2_subdev_state_get_format(sd_state, 0) :
                      vdebayer->sink_fmt;
 
        /* Set the right code for the source pad */
                sink_fmt = &vdebayer->sink_fmt;
                src_code = &vdebayer->src_code;
        } else {
-               sink_fmt = v4l2_subdev_get_try_format(sd, sd_state, 0);
-               src_code = &v4l2_subdev_get_try_format(sd, sd_state, 1)->code;
+               sink_fmt = v4l2_subdev_state_get_format(sd_state, 0);
+               src_code = &v4l2_subdev_state_get_format(sd_state, 1)->code;
        }
 
        /*
 
        unsigned int i;
 
        for (i = 0; i < sd->entity.num_pads; i++) {
-               mf = v4l2_subdev_get_try_format(sd, sd_state, i);
+               mf = v4l2_subdev_state_get_format(sd_state, i);
                *mf = fmt_default;
        }
 
-       r = v4l2_subdev_get_try_crop(sd, sd_state, VIMC_SCALER_SINK);
+       r = v4l2_subdev_state_get_crop(sd_state, VIMC_SCALER_SINK);
        *r = crop_rect_default;
 
        return 0;
                    enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&vscaler->sd, sd_state, pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        else
                return &vscaler->fmt[pad];
 }
                  enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_crop(&vscaler->sd, sd_state,
-                                               VIMC_SCALER_SINK);
+               return v4l2_subdev_state_get_crop(sd_state, VIMC_SCALER_SINK);
        else
                return &vscaler->crop_rect;
 }
 
        for (i = 0; i < sd->entity.num_pads; i++) {
                struct v4l2_mbus_framefmt *mf;
 
-               mf = v4l2_subdev_get_try_format(sd, sd_state, i);
+               mf = v4l2_subdev_state_get_format(sd_state, i);
                *mf = fmt_default;
        }
 
                                container_of(sd, struct vimc_sensor_device, sd);
 
        fmt->format = fmt->which == V4L2_SUBDEV_FORMAT_TRY ?
-                     *v4l2_subdev_get_try_format(sd, sd_state, fmt->pad) :
+                     *v4l2_subdev_state_get_format(sd_state, fmt->pad) :
                      vsensor->mbus_format;
 
        return 0;
 
                mf = &vsensor->mbus_format;
        } else {
-               mf = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);
+               mf = v4l2_subdev_state_get_format(sd_state, fmt->pad);
        }
 
        /* Set the new format */
 
                      unsigned int pad, enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&dev->sd, state, pad);
+               return v4l2_subdev_state_get_format(state, pad);
 
        return &dev->mode.fmt;
 }
 
 
        fmt->code = MEDIA_BUS_FMT_SGRBG10_1X10;
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_pad_format(sd, sd_state, 0) = *fmt;
+               *v4l2_subdev_state_get_format(sd_state, 0) = *fmt;
                mutex_unlock(&dev->input_lock);
                return 0;
        }
 
        fmt->height = res->height;
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_pad_format(sd, sd_state, 0) = *fmt;
+               *v4l2_subdev_state_get_format(sd_state, 0) = *fmt;
                return 0;
        }
 
 
 
        fmt->code = MEDIA_BUS_FMT_SGRBG10_1X10;
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_pad_format(sd, sd_state, 0) = *fmt;
+               *v4l2_subdev_state_get_format(sd_state, 0) = *fmt;
                return 0;
        }
 
 
                                      unsigned int pad)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&csi2->subdev, sd_state,
-                                                 pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        else
                return &csi2->formats[pad];
 }
 
        if (which == V4L2_SUBDEV_FORMAT_TRY) {
                switch (target) {
                case V4L2_SEL_TGT_CROP:
-                       return v4l2_subdev_get_try_crop(sd, sd_state, pad);
+                       return v4l2_subdev_state_get_crop(sd_state, pad);
                case V4L2_SEL_TGT_COMPOSE:
-                       return v4l2_subdev_get_try_compose(sd, sd_state, pad);
+                       return v4l2_subdev_state_get_compose(sd_state, pad);
                }
        }
 
        struct atomisp_sub_device *isp_sd = v4l2_get_subdevdata(sd);
 
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(sd, sd_state, pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
 
        return &isp_sd->fmt[pad].fmt;
 }
 
        /* only raw8 grbg is supported by TPG */
        fmt->code = MEDIA_BUS_FMT_SGRBG8_1X8;
        if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
-               *v4l2_subdev_get_pad_format(sd, sd_state, 0) = *fmt;
+               *v4l2_subdev_state_get_format(sd_state, 0) = *fmt;
                return 0;
        }
        return 0;
 
                        struct v4l2_subdev_state *sd_state)
 {
        struct v4l2_rect *try_crop =
-               v4l2_subdev_get_pad_crop(isc->current_subdev->sd, sd_state, 0);
+               v4l2_subdev_state_get_crop(sd_state, 0);
        struct v4l2_subdev_frame_size_enum fse = {
                .which = V4L2_SUBDEV_FORMAT_TRY,
        };
 
 __prp_get_fmt(struct prp_priv *priv, struct v4l2_subdev_state *sd_state,
              unsigned int pad, enum v4l2_subdev_format_whence which)
 {
-       struct imx_ic_priv *ic_priv = priv->ic_priv;
-
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&ic_priv->sd, sd_state, pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        else
                return &priv->format_mbus;
 }
 
 __prp_get_fmt(struct prp_priv *priv, struct v4l2_subdev_state *sd_state,
              unsigned int pad, enum v4l2_subdev_format_whence which)
 {
-       struct imx_ic_priv *ic_priv = priv->ic_priv;
-
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&ic_priv->sd, sd_state, pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        else
                return &priv->format_mbus[pad];
 }
 
              unsigned int pad, enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&priv->sd, sd_state, pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        else
                return &priv->format_mbus[pad];
 }
               enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_crop(&priv->sd, sd_state,
-                                               CSI_SINK_PAD);
+               return v4l2_subdev_state_get_crop(sd_state, CSI_SINK_PAD);
        else
                return &priv->crop;
 }
                  enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_compose(&priv->sd, sd_state,
-                                                  CSI_SINK_PAD);
+               return v4l2_subdev_state_get_compose(sd_state, CSI_SINK_PAD);
        else
                return &priv->compose;
 }
 
                if (ret)
                        continue;
 
-               mf_try = v4l2_subdev_get_try_format(sd, sd_state, pad);
+               mf_try = v4l2_subdev_state_get_format(sd_state, pad);
                *mf_try = format.format;
        }
 
 
               unsigned int pad, enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&priv->sd, sd_state, pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        else
                return &priv->format_mbus[pad];
 }
 
               unsigned int pad, enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&csi2->sd, sd_state, pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        else
                return &csi2->format_mbus;
 }
 
        /* Initialize try_fmt */
        for (i = 0; i < IMGU_NODE_NUM; i++) {
                struct v4l2_mbus_framefmt *try_fmt =
-                       v4l2_subdev_get_try_format(sd, fh->state, i);
+                       v4l2_subdev_state_get_format(fh->state, i);
 
                try_fmt->width = try_crop.width;
                try_fmt->height = try_crop.height;
                try_fmt->field = V4L2_FIELD_NONE;
        }
 
-       *v4l2_subdev_get_try_crop(sd, fh->state, IMGU_NODE_IN) = try_crop;
-       *v4l2_subdev_get_try_compose(sd, fh->state, IMGU_NODE_IN) = try_crop;
+       *v4l2_subdev_state_get_crop(fh->state, IMGU_NODE_IN) = try_crop;
+       *v4l2_subdev_state_get_compose(fh->state, IMGU_NODE_IN) = try_crop;
 
        return 0;
 }
        if (fmt->which == V4L2_SUBDEV_FORMAT_ACTIVE) {
                fmt->format = imgu_pipe->nodes[pad].pad_fmt;
        } else {
-               mf = v4l2_subdev_get_try_format(sd, sd_state, pad);
+               mf = v4l2_subdev_state_get_format(sd_state, pad);
                fmt->format = *mf;
        }
 
 
        imgu_pipe = &imgu->imgu_pipe[pipe];
        if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
-               mf = v4l2_subdev_get_try_format(sd, sd_state, pad);
+               mf = v4l2_subdev_state_get_format(sd_state, pad);
        else
                mf = &imgu_pipe->nodes[pad].pad_fmt;
 
                     enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_crop(&sd->subdev, sd_state, pad);
+               return v4l2_subdev_state_get_crop(sd_state, pad);
        else
                return &sd->rect.eff;
 }
                        enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_compose(&sd->subdev, sd_state, pad);
+               return v4l2_subdev_state_get_compose(sd_state, pad);
        else
                return &sd->rect.bds;
 }
 
                  enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&csi2->subdev, sd_state,
-                                                 pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
 
        return &csi2->formats[pad];
 }
 
                   enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&ipipe->subdev, sd_state,
-                                                 pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
 
        return &ipipe->formats[pad];
 }
 
                     enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&ipipeif->subdev, sd_state,
-                                                 pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        return &ipipeif->formats[pad];
 }
 
 
                     enum v4l2_subdev_format_whence which)
 {
        if (which == V4L2_SUBDEV_FORMAT_TRY)
-               return v4l2_subdev_get_try_format(&resizer->subdev, sd_state,
-                                                 pad);
+               return v4l2_subdev_state_get_format(sd_state, pad);
        return &resizer->formats[pad];
 }
 
 
        struct v4l2_rect *crop;
 
        sd_state = v4l2_subdev_lock_and_get_active_state(sd);
-       fmt = v4l2_subdev_get_pad_format(sd, sd_state, STF_ISP_PAD_SINK);
-       crop = v4l2_subdev_get_pad_crop(sd, sd_state, STF_ISP_PAD_SRC);
+       fmt = v4l2_subdev_state_get_format(sd_state, STF_ISP_PAD_SINK);
+       crop = v4l2_subdev_state_get_crop(sd_state, STF_ISP_PAD_SRC);
 
        if (enable) {
                stf_isp_reset(isp_dev);
                if (code->index > ARRAY_SIZE(isp_formats_source))
                        return -EINVAL;
 
-               sink_fmt = v4l2_subdev_get_pad_format(sd, state,
-                                                     STF_ISP_PAD_SRC);
+               sink_fmt = v4l2_subdev_state_get_format(state,
+                                                       STF_ISP_PAD_SRC);
 
                code->code = sink_fmt->code;
                if (!code->code)
        struct stf_isp_dev *isp_dev = v4l2_get_subdevdata(sd);
        struct v4l2_mbus_framefmt *format;
 
-       format = v4l2_subdev_get_pad_format(sd, state, fmt->pad);
+       format = v4l2_subdev_state_get_format(state, fmt->pad);
        if (!format)
                return -EINVAL;
 
                         struct v4l2_rect *crop)
 {
        struct v4l2_mbus_framefmt *fmt =
-               v4l2_subdev_get_pad_format(&isp_dev->subdev, state,
-                                          STF_ISP_PAD_SINK);
+               v4l2_subdev_state_get_format(state, STF_ISP_PAD_SINK);
 
        const struct v4l2_rect bounds = {
                .width = fmt->width,
        switch (sel->target) {
        case V4L2_SEL_TGT_CROP_BOUNDS:
                if (sel->pad == STF_ISP_PAD_SINK) {
-                       fmt.format = *v4l2_subdev_get_pad_format(sd, state,
-                                                                sel->pad);
+                       fmt.format = *v4l2_subdev_state_get_format(state,
+                                                                  sel->pad);
                        sel->r.left = 0;
                        sel->r.top = 0;
                        sel->r.width = fmt.format.width;
                        sel->r.height = fmt.format.height;
                } else if (sel->pad == STF_ISP_PAD_SRC) {
-                       rect = v4l2_subdev_get_pad_crop(sd, state, sel->pad);
+                       rect = v4l2_subdev_state_get_crop(state, sel->pad);
                        sel->r = *rect;
                }
                break;
 
        case V4L2_SEL_TGT_CROP:
-               rect = v4l2_subdev_get_pad_crop(sd, state, sel->pad);
+               rect = v4l2_subdev_state_get_crop(state, sel->pad);
                if (!rect)
                        return -EINVAL;
 
            sel->pad == STF_ISP_PAD_SINK) {
                struct v4l2_subdev_selection crop = { 0 };
 
-               rect = v4l2_subdev_get_pad_crop(sd, state, sel->pad);
+               rect = v4l2_subdev_state_get_crop(state, sel->pad);
                if (!rect)
                        return -EINVAL;
 
                   sel->pad == STF_ISP_PAD_SRC) {
                struct v4l2_subdev_format fmt = { 0 };
 
-               rect = v4l2_subdev_get_pad_crop(sd, state, sel->pad);
+               rect = v4l2_subdev_state_get_crop(state, sel->pad);
                if (!rect)
                        return -EINVAL;
 
 
        struct sun6i_isp_device *isp_dev = v4l2_get_subdevdata(subdev);
        unsigned int pad = SUN6I_ISP_PROC_PAD_SINK_CSI;
        struct v4l2_mbus_framefmt *mbus_format =
-               v4l2_subdev_get_try_format(subdev, state, pad);
+               v4l2_subdev_state_get_format(state, pad);
        struct mutex *lock = &isp_dev->proc.lock;
 
        mutex_lock(lock);
        mutex_lock(lock);
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY)
-               *mbus_format = *v4l2_subdev_get_try_format(subdev, state,
-                                                          format->pad);
+               *mbus_format = *v4l2_subdev_state_get_format(state,
+                                                            format->pad);
        else
                *mbus_format = isp_dev->proc.mbus_format;
 
        sun6i_isp_proc_mbus_format_prepare(mbus_format);
 
        if (format->which == V4L2_SUBDEV_FORMAT_TRY)
-               *v4l2_subdev_get_try_format(subdev, state, format->pad) =
+               *v4l2_subdev_state_get_format(state, format->pad) =
                        *mbus_format;
        else
                isp_dev->proc.mbus_format = *mbus_format;
 
         * Attempt to obtain the format size from subdev.
         * If not available, try to get crop boundary from subdev.
         */
-       try_crop = v4l2_subdev_get_pad_crop(subdev, sd_state, 0);
+       try_crop = v4l2_subdev_state_get_crop(sd_state, 0);
        fse.code = fmtinfo->code;
        ret = v4l2_subdev_call(subdev, pad, enum_frame_size, sd_state, &fse);
        if (ret) {