mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
Compare commits
13 Commits
fab1beda75
...
39f90c1967
Author | SHA1 | Date | |
---|---|---|---|
![]() |
39f90c1967 | ||
![]() |
518b21ba13 | ||
![]() |
45d8ef6322 | ||
![]() |
528d92bfc0 | ||
![]() |
24fc631539 | ||
![]() |
ced17ee32a | ||
![]() |
dd54bcf86c | ||
![]() |
a39d13e291 | ||
![]() |
6f6fbd9a0c | ||
![]() |
a032fe30cf | ||
![]() |
da3fa08a89 | ||
![]() |
0d58a72b66 | ||
![]() |
6347dc7fb9 |
@ -1841,7 +1841,6 @@ static int alvium_s_stream(struct v4l2_subdev *sd, int enable)
|
||||
|
||||
} else {
|
||||
alvium_set_stream_mipi(alvium, enable);
|
||||
pm_runtime_mark_last_busy(&client->dev);
|
||||
pm_runtime_put_autosuspend(&client->dev);
|
||||
}
|
||||
|
||||
|
@ -787,10 +787,8 @@ static int ccs_set_ctrl(struct v4l2_ctrl *ctrl)
|
||||
rval = -EINVAL;
|
||||
}
|
||||
|
||||
if (pm_status > 0) {
|
||||
pm_runtime_mark_last_busy(&client->dev);
|
||||
if (pm_status > 0)
|
||||
pm_runtime_put_autosuspend(&client->dev);
|
||||
}
|
||||
|
||||
return rval;
|
||||
}
|
||||
@ -1914,7 +1912,6 @@ static int ccs_set_stream(struct v4l2_subdev *subdev, int enable)
|
||||
if (!enable) {
|
||||
ccs_stop_streaming(sensor);
|
||||
sensor->streaming = false;
|
||||
pm_runtime_mark_last_busy(&client->dev);
|
||||
pm_runtime_put_autosuspend(&client->dev);
|
||||
|
||||
return 0;
|
||||
@ -1929,7 +1926,6 @@ static int ccs_set_stream(struct v4l2_subdev *subdev, int enable)
|
||||
rval = ccs_start_streaming(sensor);
|
||||
if (rval < 0) {
|
||||
sensor->streaming = false;
|
||||
pm_runtime_mark_last_busy(&client->dev);
|
||||
pm_runtime_put_autosuspend(&client->dev);
|
||||
}
|
||||
|
||||
@ -2677,7 +2673,6 @@ nvm_show(struct device *dev, struct device_attribute *attr, char *buf)
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
pm_runtime_mark_last_busy(&client->dev);
|
||||
pm_runtime_put_autosuspend(&client->dev);
|
||||
|
||||
/*
|
||||
|
@ -374,7 +374,6 @@ static int dw9768_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
|
||||
|
||||
static int dw9768_close(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
|
||||
{
|
||||
pm_runtime_mark_last_busy(sd->dev);
|
||||
pm_runtime_put_autosuspend(sd->dev);
|
||||
|
||||
return 0;
|
||||
|
@ -974,7 +974,6 @@ static int gc0308_s_ctrl(struct v4l2_ctrl *ctrl)
|
||||
if (ret)
|
||||
dev_err(gc0308->dev, "failed to set control: %d\n", ret);
|
||||
|
||||
pm_runtime_mark_last_busy(gc0308->dev);
|
||||
pm_runtime_put_autosuspend(gc0308->dev);
|
||||
|
||||
return ret;
|
||||
@ -1157,14 +1156,12 @@ static int gc0308_start_stream(struct gc0308 *gc0308)
|
||||
return 0;
|
||||
|
||||
disable_pm:
|
||||
pm_runtime_mark_last_busy(gc0308->dev);
|
||||
pm_runtime_put_autosuspend(gc0308->dev);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int gc0308_stop_stream(struct gc0308 *gc0308)
|
||||
{
|
||||
pm_runtime_mark_last_busy(gc0308->dev);
|
||||
pm_runtime_put_autosuspend(gc0308->dev);
|
||||
return 0;
|
||||
}
|
||||
|
@ -963,7 +963,6 @@ static int gc2145_enable_streams(struct v4l2_subdev *sd,
|
||||
return 0;
|
||||
|
||||
err_rpm_put:
|
||||
pm_runtime_mark_last_busy(&client->dev);
|
||||
pm_runtime_put_autosuspend(&client->dev);
|
||||
return ret;
|
||||
}
|
||||
@ -985,7 +984,6 @@ static int gc2145_disable_streams(struct v4l2_subdev *sd,
|
||||
if (ret)
|
||||
dev_err(&client->dev, "%s failed to write regs\n", __func__);
|
||||
|
||||
pm_runtime_mark_last_busy(&client->dev);
|
||||
pm_runtime_put_autosuspend(&client->dev);
|
||||
|
||||
return ret;
|
||||
@ -1193,7 +1191,6 @@ static int gc2145_s_ctrl(struct v4l2_ctrl *ctrl)
|
||||
break;
|
||||
}
|
||||
|
||||
pm_runtime_mark_last_busy(&client->dev);
|
||||
pm_runtime_put_autosuspend(&client->dev);
|
||||
|
||||
return ret;
|
||||
|
@ -771,7 +771,6 @@ static int imx219_enable_streams(struct v4l2_subdev *sd,
|
||||
return 0;
|
||||
|
||||
err_rpm_put:
|
||||
pm_runtime_mark_last_busy(&client->dev);
|
||||
pm_runtime_put_autosuspend(&client->dev);
|
||||
return ret;
|
||||
}
|
||||
@ -793,7 +792,6 @@ static int imx219_disable_streams(struct v4l2_subdev *sd,
|
||||
__v4l2_ctrl_grab(imx219->vflip, false);
|
||||
__v4l2_ctrl_grab(imx219->hflip, false);
|
||||
|
||||
pm_runtime_mark_last_busy(&client->dev);
|
||||
pm_runtime_put_autosuspend(&client->dev);
|
||||
|
||||
return ret;
|
||||
|
@ -1143,7 +1143,6 @@ static int imx283_enable_streams(struct v4l2_subdev *sd,
|
||||
return 0;
|
||||
|
||||
err_rpm_put:
|
||||
pm_runtime_mark_last_busy(imx283->dev);
|
||||
pm_runtime_put_autosuspend(imx283->dev);
|
||||
|
||||
return ret;
|
||||
@ -1163,7 +1162,6 @@ static int imx283_disable_streams(struct v4l2_subdev *sd,
|
||||
if (ret)
|
||||
dev_err(imx283->dev, "Failed to stop stream\n");
|
||||
|
||||
pm_runtime_mark_last_busy(imx283->dev);
|
||||
pm_runtime_put_autosuspend(imx283->dev);
|
||||
|
||||
return ret;
|
||||
@ -1558,7 +1556,6 @@ static int imx283_probe(struct i2c_client *client)
|
||||
* Decrease the PM usage count. The device will get suspended after the
|
||||
* autosuspend delay, turning the power off.
|
||||
*/
|
||||
pm_runtime_mark_last_busy(imx283->dev);
|
||||
pm_runtime_put_autosuspend(imx283->dev);
|
||||
|
||||
return 0;
|
||||
|
@ -869,7 +869,6 @@ static int imx290_set_ctrl(struct v4l2_ctrl *ctrl)
|
||||
break;
|
||||
}
|
||||
|
||||
pm_runtime_mark_last_busy(imx290->dev);
|
||||
pm_runtime_put_autosuspend(imx290->dev);
|
||||
|
||||
return ret;
|
||||
@ -1099,7 +1098,6 @@ static int imx290_set_stream(struct v4l2_subdev *sd, int enable)
|
||||
}
|
||||
} else {
|
||||
imx290_stop_streaming(imx290);
|
||||
pm_runtime_mark_last_busy(imx290->dev);
|
||||
pm_runtime_put_autosuspend(imx290->dev);
|
||||
}
|
||||
|
||||
@ -1294,7 +1292,6 @@ static int imx290_subdev_init(struct imx290 *imx290)
|
||||
* will already be prevented even before the delay.
|
||||
*/
|
||||
v4l2_i2c_subdev_init(&imx290->sd, client, &imx290_subdev_ops);
|
||||
pm_runtime_mark_last_busy(imx290->dev);
|
||||
pm_runtime_put_autosuspend(imx290->dev);
|
||||
|
||||
imx290->sd.internal_ops = &imx290_internal_ops;
|
||||
|
@ -604,7 +604,6 @@ static int imx296_s_stream(struct v4l2_subdev *sd, int enable)
|
||||
if (!enable) {
|
||||
ret = imx296_stream_off(sensor);
|
||||
|
||||
pm_runtime_mark_last_busy(sensor->dev);
|
||||
pm_runtime_put_autosuspend(sensor->dev);
|
||||
|
||||
goto unlock;
|
||||
|
@ -952,7 +952,6 @@ static int imx415_s_stream(struct v4l2_subdev *sd, int enable)
|
||||
if (!enable) {
|
||||
ret = imx415_stream_off(sensor);
|
||||
|
||||
pm_runtime_mark_last_busy(sensor->dev);
|
||||
pm_runtime_put_autosuspend(sensor->dev);
|
||||
|
||||
goto unlock;
|
||||
|
@ -974,7 +974,6 @@ static int mt9m114_start_streaming(struct mt9m114 *sensor,
|
||||
return 0;
|
||||
|
||||
error:
|
||||
pm_runtime_mark_last_busy(&sensor->client->dev);
|
||||
pm_runtime_put_autosuspend(&sensor->client->dev);
|
||||
|
||||
return ret;
|
||||
@ -988,7 +987,6 @@ static int mt9m114_stop_streaming(struct mt9m114 *sensor)
|
||||
|
||||
ret = mt9m114_set_state(sensor, MT9M114_SYS_STATE_ENTER_SUSPEND);
|
||||
|
||||
pm_runtime_mark_last_busy(&sensor->client->dev);
|
||||
pm_runtime_put_autosuspend(&sensor->client->dev);
|
||||
|
||||
return ret;
|
||||
@ -1046,7 +1044,6 @@ static int mt9m114_pa_g_ctrl(struct v4l2_ctrl *ctrl)
|
||||
break;
|
||||
}
|
||||
|
||||
pm_runtime_mark_last_busy(&sensor->client->dev);
|
||||
pm_runtime_put_autosuspend(&sensor->client->dev);
|
||||
|
||||
return ret;
|
||||
@ -1113,7 +1110,6 @@ static int mt9m114_pa_s_ctrl(struct v4l2_ctrl *ctrl)
|
||||
break;
|
||||
}
|
||||
|
||||
pm_runtime_mark_last_busy(&sensor->client->dev);
|
||||
pm_runtime_put_autosuspend(&sensor->client->dev);
|
||||
|
||||
return ret;
|
||||
@ -1565,7 +1561,6 @@ static int mt9m114_ifp_s_ctrl(struct v4l2_ctrl *ctrl)
|
||||
break;
|
||||
}
|
||||
|
||||
pm_runtime_mark_last_busy(&sensor->client->dev);
|
||||
pm_runtime_put_autosuspend(&sensor->client->dev);
|
||||
|
||||
return ret;
|
||||
@ -2472,7 +2467,6 @@ static int mt9m114_probe(struct i2c_client *client)
|
||||
* Decrease the PM usage count. The device will get suspended after the
|
||||
* autosuspend delay, turning the power off.
|
||||
*/
|
||||
pm_runtime_mark_last_busy(dev);
|
||||
pm_runtime_put_autosuspend(dev);
|
||||
|
||||
return 0;
|
||||
|
@ -497,7 +497,6 @@ static int ov4689_s_stream(struct v4l2_subdev *sd, int on)
|
||||
} else {
|
||||
cci_write(ov4689->regmap, OV4689_REG_CTRL_MODE,
|
||||
OV4689_MODE_SW_STANDBY, NULL);
|
||||
pm_runtime_mark_last_busy(dev);
|
||||
pm_runtime_put_autosuspend(dev);
|
||||
}
|
||||
|
||||
@ -702,7 +701,6 @@ static int ov4689_set_ctrl(struct v4l2_ctrl *ctrl)
|
||||
break;
|
||||
}
|
||||
|
||||
pm_runtime_mark_last_busy(dev);
|
||||
pm_runtime_put_autosuspend(dev);
|
||||
|
||||
return ret;
|
||||
@ -999,7 +997,6 @@ static int ov4689_probe(struct i2c_client *client)
|
||||
goto err_clean_subdev_pm;
|
||||
}
|
||||
|
||||
pm_runtime_mark_last_busy(dev);
|
||||
pm_runtime_put_autosuspend(dev);
|
||||
|
||||
return 0;
|
||||
|
@ -3341,7 +3341,6 @@ static int ov5640_g_volatile_ctrl(struct v4l2_ctrl *ctrl)
|
||||
break;
|
||||
}
|
||||
|
||||
pm_runtime_mark_last_busy(&sensor->i2c_client->dev);
|
||||
pm_runtime_put_autosuspend(&sensor->i2c_client->dev);
|
||||
|
||||
return 0;
|
||||
@ -3417,7 +3416,6 @@ static int ov5640_s_ctrl(struct v4l2_ctrl *ctrl)
|
||||
break;
|
||||
}
|
||||
|
||||
pm_runtime_mark_last_busy(&sensor->i2c_client->dev);
|
||||
pm_runtime_put_autosuspend(&sensor->i2c_client->dev);
|
||||
|
||||
return ret;
|
||||
@ -3754,7 +3752,6 @@ out:
|
||||
mutex_unlock(&sensor->lock);
|
||||
|
||||
if (!enable || ret) {
|
||||
pm_runtime_mark_last_busy(&sensor->i2c_client->dev);
|
||||
pm_runtime_put_autosuspend(&sensor->i2c_client->dev);
|
||||
}
|
||||
|
||||
@ -3965,7 +3962,6 @@ static int ov5640_probe(struct i2c_client *client)
|
||||
|
||||
pm_runtime_set_autosuspend_delay(dev, 1000);
|
||||
pm_runtime_use_autosuspend(dev);
|
||||
pm_runtime_mark_last_busy(dev);
|
||||
pm_runtime_put_autosuspend(dev);
|
||||
|
||||
return 0;
|
||||
|
@ -808,7 +808,6 @@ static int ov5645_s_ctrl(struct v4l2_ctrl *ctrl)
|
||||
break;
|
||||
}
|
||||
|
||||
pm_runtime_mark_last_busy(ov5645->dev);
|
||||
pm_runtime_put_autosuspend(ov5645->dev);
|
||||
|
||||
return ret;
|
||||
@ -979,7 +978,6 @@ static int ov5645_disable_streams(struct v4l2_subdev *sd,
|
||||
OV5645_SYSTEM_CTRL0_STOP);
|
||||
|
||||
rpm_put:
|
||||
pm_runtime_mark_last_busy(ov5645->dev);
|
||||
pm_runtime_put_autosuspend(ov5645->dev);
|
||||
|
||||
return ret;
|
||||
@ -1196,7 +1194,6 @@ static int ov5645_probe(struct i2c_client *client)
|
||||
|
||||
pm_runtime_set_autosuspend_delay(dev, 1000);
|
||||
pm_runtime_use_autosuspend(dev);
|
||||
pm_runtime_mark_last_busy(dev);
|
||||
pm_runtime_put_autosuspend(dev);
|
||||
|
||||
return 0;
|
||||
|
@ -2990,7 +2990,6 @@ static int ov64a40_start_streaming(struct ov64a40 *ov64a40,
|
||||
return 0;
|
||||
|
||||
error_power_off:
|
||||
pm_runtime_mark_last_busy(ov64a40->dev);
|
||||
pm_runtime_put_autosuspend(ov64a40->dev);
|
||||
|
||||
return ret;
|
||||
@ -3000,7 +2999,6 @@ static int ov64a40_stop_streaming(struct ov64a40 *ov64a40,
|
||||
struct v4l2_subdev_state *state)
|
||||
{
|
||||
cci_update_bits(ov64a40->cci, OV64A40_REG_SMIA, BIT(0), 0, NULL);
|
||||
pm_runtime_mark_last_busy(ov64a40->dev);
|
||||
pm_runtime_put_autosuspend(ov64a40->dev);
|
||||
|
||||
__v4l2_ctrl_grab(ov64a40->link_freq, false);
|
||||
@ -3329,10 +3327,8 @@ static int ov64a40_set_ctrl(struct v4l2_ctrl *ctrl)
|
||||
break;
|
||||
}
|
||||
|
||||
if (pm_status > 0) {
|
||||
pm_runtime_mark_last_busy(ov64a40->dev);
|
||||
if (pm_status > 0)
|
||||
pm_runtime_put_autosuspend(ov64a40->dev);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -3622,7 +3618,6 @@ static int ov64a40_probe(struct i2c_client *client)
|
||||
goto error_subdev_cleanup;
|
||||
}
|
||||
|
||||
pm_runtime_mark_last_busy(&client->dev);
|
||||
pm_runtime_put_autosuspend(&client->dev);
|
||||
|
||||
return 0;
|
||||
|
@ -1391,7 +1391,6 @@ static int ov8858_s_stream(struct v4l2_subdev *sd, int on)
|
||||
}
|
||||
} else {
|
||||
ov8858_stop_stream(ov8858);
|
||||
pm_runtime_mark_last_busy(&client->dev);
|
||||
pm_runtime_put_autosuspend(&client->dev);
|
||||
}
|
||||
|
||||
@ -1945,7 +1944,6 @@ static int ov8858_probe(struct i2c_client *client)
|
||||
goto err_power_off;
|
||||
}
|
||||
|
||||
pm_runtime_mark_last_busy(dev);
|
||||
pm_runtime_put_autosuspend(dev);
|
||||
|
||||
return 0;
|
||||
|
@ -465,7 +465,6 @@ static int mipid02_disable_streams(struct v4l2_subdev *sd,
|
||||
if (ret)
|
||||
goto error;
|
||||
|
||||
pm_runtime_mark_last_busy(&client->dev);
|
||||
pm_runtime_put_autosuspend(&client->dev);
|
||||
|
||||
error:
|
||||
@ -542,7 +541,6 @@ error:
|
||||
cci_write(bridge->regmap, MIPID02_DATA_LANE0_REG1, 0, &ret);
|
||||
cci_write(bridge->regmap, MIPID02_DATA_LANE1_REG1, 0, &ret);
|
||||
|
||||
pm_runtime_mark_last_busy(&client->dev);
|
||||
pm_runtime_put_autosuspend(&client->dev);
|
||||
return ret;
|
||||
}
|
||||
|
@ -816,7 +816,6 @@ static int tc358746_s_stream(struct v4l2_subdev *sd, int enable)
|
||||
return 0;
|
||||
|
||||
err_out:
|
||||
pm_runtime_mark_last_busy(sd->dev);
|
||||
pm_runtime_put_sync_autosuspend(sd->dev);
|
||||
|
||||
return err;
|
||||
@ -838,7 +837,6 @@ err_out:
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
pm_runtime_mark_last_busy(sd->dev);
|
||||
pm_runtime_put_sync_autosuspend(sd->dev);
|
||||
|
||||
return v4l2_subdev_call(src, video, s_stream, 0);
|
||||
@ -1016,7 +1014,6 @@ tc358746_g_register(struct v4l2_subdev *sd, struct v4l2_dbg_register *reg)
|
||||
err = tc358746_read(tc358746, reg->reg, &val);
|
||||
reg->val = val;
|
||||
|
||||
pm_runtime_mark_last_busy(sd->dev);
|
||||
pm_runtime_put_sync_autosuspend(sd->dev);
|
||||
|
||||
return err;
|
||||
@ -1032,7 +1029,6 @@ tc358746_s_register(struct v4l2_subdev *sd, const struct v4l2_dbg_register *reg)
|
||||
|
||||
tc358746_write(tc358746, (u32)reg->reg, (u32)reg->val);
|
||||
|
||||
pm_runtime_mark_last_busy(sd->dev);
|
||||
pm_runtime_put_sync_autosuspend(sd->dev);
|
||||
|
||||
return 0;
|
||||
@ -1395,7 +1391,6 @@ static int tc358746_init_hw(struct tc358746 *tc358746)
|
||||
}
|
||||
|
||||
err = tc358746_read(tc358746, CHIPID_REG, &val);
|
||||
pm_runtime_mark_last_busy(dev);
|
||||
pm_runtime_put_sync_autosuspend(dev);
|
||||
if (err)
|
||||
return -ENODEV;
|
||||
|
@ -808,7 +808,6 @@ static int thp7312_s_stream(struct v4l2_subdev *sd, int enable)
|
||||
if (!enable) {
|
||||
thp7312_stream_enable(thp7312, false);
|
||||
|
||||
pm_runtime_mark_last_busy(thp7312->dev);
|
||||
pm_runtime_put_autosuspend(thp7312->dev);
|
||||
|
||||
v4l2_subdev_unlock_state(sd_state);
|
||||
@ -839,7 +838,6 @@ static int thp7312_s_stream(struct v4l2_subdev *sd, int enable)
|
||||
goto finish_unlock;
|
||||
|
||||
finish_pm:
|
||||
pm_runtime_mark_last_busy(thp7312->dev);
|
||||
pm_runtime_put_autosuspend(thp7312->dev);
|
||||
finish_unlock:
|
||||
v4l2_subdev_unlock_state(sd_state);
|
||||
@ -1147,7 +1145,6 @@ static int thp7312_s_ctrl(struct v4l2_ctrl *ctrl)
|
||||
break;
|
||||
}
|
||||
|
||||
pm_runtime_mark_last_busy(thp7312->dev);
|
||||
pm_runtime_put_autosuspend(thp7312->dev);
|
||||
|
||||
return ret;
|
||||
@ -2183,7 +2180,6 @@ static int thp7312_probe(struct i2c_client *client)
|
||||
* Decrease the PM usage count. The device will get suspended after the
|
||||
* autosuspend delay, turning the power off.
|
||||
*/
|
||||
pm_runtime_mark_last_busy(dev);
|
||||
pm_runtime_put_autosuspend(dev);
|
||||
|
||||
dev_info(dev, "THP7312 firmware version %02u.%02u\n",
|
||||
|
@ -1104,7 +1104,6 @@ static int vd55g1_disable_streams(struct v4l2_subdev *sd,
|
||||
|
||||
vd55g1_grab_ctrls(sensor, false);
|
||||
|
||||
pm_runtime_mark_last_busy(sensor->dev);
|
||||
pm_runtime_put_autosuspend(sensor->dev);
|
||||
|
||||
return ret;
|
||||
@ -1338,7 +1337,6 @@ static int vd55g1_g_volatile_ctrl(struct v4l2_ctrl *ctrl)
|
||||
break;
|
||||
}
|
||||
|
||||
pm_runtime_mark_last_busy(sensor->dev);
|
||||
pm_runtime_put_autosuspend(sensor->dev);
|
||||
|
||||
return ret;
|
||||
@ -1433,7 +1431,6 @@ static int vd55g1_s_ctrl(struct v4l2_ctrl *ctrl)
|
||||
break;
|
||||
}
|
||||
|
||||
pm_runtime_mark_last_busy(sensor->dev);
|
||||
pm_runtime_put_autosuspend(sensor->dev);
|
||||
|
||||
return ret;
|
||||
@ -1895,7 +1892,6 @@ static int vd55g1_probe(struct i2c_client *client)
|
||||
pm_runtime_enable(dev);
|
||||
pm_runtime_set_autosuspend_delay(dev, 4000);
|
||||
pm_runtime_use_autosuspend(dev);
|
||||
pm_runtime_mark_last_busy(dev);
|
||||
pm_runtime_put_autosuspend(dev);
|
||||
|
||||
ret = vd55g1_subdev_init(sensor);
|
||||
|
@ -493,7 +493,6 @@ static int vd56g3_g_volatile_ctrl(struct v4l2_ctrl *ctrl)
|
||||
break;
|
||||
}
|
||||
|
||||
pm_runtime_mark_last_busy(sensor->dev);
|
||||
pm_runtime_put_autosuspend(sensor->dev);
|
||||
|
||||
return ret;
|
||||
@ -577,7 +576,6 @@ static int vd56g3_s_ctrl(struct v4l2_ctrl *ctrl)
|
||||
break;
|
||||
}
|
||||
|
||||
pm_runtime_mark_last_busy(sensor->dev);
|
||||
pm_runtime_put_autosuspend(sensor->dev);
|
||||
|
||||
return ret;
|
||||
@ -1021,7 +1019,6 @@ static int vd56g3_disable_streams(struct v4l2_subdev *sd,
|
||||
__v4l2_ctrl_grab(sensor->vflip_ctrl, false);
|
||||
__v4l2_ctrl_grab(sensor->patgen_ctrl, false);
|
||||
|
||||
pm_runtime_mark_last_busy(sensor->dev);
|
||||
pm_runtime_put_autosuspend(sensor->dev);
|
||||
|
||||
return ret;
|
||||
@ -1527,7 +1524,6 @@ static int vd56g3_probe(struct i2c_client *client)
|
||||
}
|
||||
|
||||
/* Sensor could now be powered off (after the autosuspend delay) */
|
||||
pm_runtime_mark_last_busy(dev);
|
||||
pm_runtime_put_autosuspend(dev);
|
||||
|
||||
dev_dbg(dev, "Successfully probe %s sensor\n",
|
||||
|
@ -288,7 +288,6 @@ static int amg88xx_read(struct device *dev, enum hwmon_sensor_types type,
|
||||
return tmp;
|
||||
|
||||
tmp = regmap_bulk_read(data->regmap, AMG88XX_REG_TTHL, &buf, 2);
|
||||
pm_runtime_mark_last_busy(regmap_get_device(data->regmap));
|
||||
pm_runtime_put_autosuspend(regmap_get_device(data->regmap));
|
||||
if (tmp)
|
||||
return tmp;
|
||||
@ -527,7 +526,6 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count)
|
||||
return 0;
|
||||
|
||||
error_rpm_put:
|
||||
pm_runtime_mark_last_busy(dev);
|
||||
pm_runtime_put_autosuspend(dev);
|
||||
error_del_list:
|
||||
video_i2c_del_list(vq, VB2_BUF_STATE_QUEUED);
|
||||
@ -544,7 +542,6 @@ static void stop_streaming(struct vb2_queue *vq)
|
||||
|
||||
kthread_stop(data->kthread_vid_cap);
|
||||
data->kthread_vid_cap = NULL;
|
||||
pm_runtime_mark_last_busy(regmap_get_device(data->regmap));
|
||||
pm_runtime_put_autosuspend(regmap_get_device(data->regmap));
|
||||
|
||||
video_i2c_del_list(vq, VB2_BUF_STATE_ERROR);
|
||||
@ -853,7 +850,6 @@ static int video_i2c_probe(struct i2c_client *client)
|
||||
if (ret < 0)
|
||||
goto error_pm_disable;
|
||||
|
||||
pm_runtime_mark_last_busy(&client->dev);
|
||||
pm_runtime_put_autosuspend(&client->dev);
|
||||
|
||||
return 0;
|
||||
|
@ -451,7 +451,6 @@ static void wave5_vpu_dec_finish_decode(struct vpu_instance *inst)
|
||||
if (q_status.report_queue_count == 0 &&
|
||||
(q_status.instance_queue_count == 0 || dec_info.sequence_changed)) {
|
||||
dev_dbg(inst->dev->dev, "%s: finishing job.\n", __func__);
|
||||
pm_runtime_mark_last_busy(inst->dev->dev);
|
||||
pm_runtime_put_autosuspend(inst->dev->dev);
|
||||
v4l2_m2m_job_finish(inst->v4l2_m2m_dev, m2m_ctx);
|
||||
}
|
||||
@ -1364,7 +1363,6 @@ static int wave5_vpu_dec_start_streaming(struct vb2_queue *q, unsigned int count
|
||||
}
|
||||
|
||||
}
|
||||
pm_runtime_mark_last_busy(inst->dev->dev);
|
||||
pm_runtime_put_autosuspend(inst->dev->dev);
|
||||
return ret;
|
||||
|
||||
@ -1498,7 +1496,6 @@ static void wave5_vpu_dec_stop_streaming(struct vb2_queue *q)
|
||||
else
|
||||
streamoff_capture(q);
|
||||
|
||||
pm_runtime_mark_last_busy(inst->dev->dev);
|
||||
pm_runtime_put_autosuspend(inst->dev->dev);
|
||||
}
|
||||
|
||||
@ -1662,7 +1659,6 @@ static void wave5_vpu_dec_device_run(void *priv)
|
||||
|
||||
finish_job_and_return:
|
||||
dev_dbg(inst->dev->dev, "%s: leave and finish job", __func__);
|
||||
pm_runtime_mark_last_busy(inst->dev->dev);
|
||||
pm_runtime_put_autosuspend(inst->dev->dev);
|
||||
v4l2_m2m_job_finish(inst->v4l2_m2m_dev, m2m_ctx);
|
||||
}
|
||||
|
@ -1391,12 +1391,10 @@ static int wave5_vpu_enc_start_streaming(struct vb2_queue *q, unsigned int count
|
||||
if (ret)
|
||||
goto return_buffers;
|
||||
|
||||
pm_runtime_mark_last_busy(inst->dev->dev);
|
||||
pm_runtime_put_autosuspend(inst->dev->dev);
|
||||
return 0;
|
||||
return_buffers:
|
||||
wave5_return_bufs(q, VB2_BUF_STATE_QUEUED);
|
||||
pm_runtime_mark_last_busy(inst->dev->dev);
|
||||
pm_runtime_put_autosuspend(inst->dev->dev);
|
||||
return ret;
|
||||
}
|
||||
@ -1465,7 +1463,6 @@ static void wave5_vpu_enc_stop_streaming(struct vb2_queue *q)
|
||||
else
|
||||
streamoff_capture(inst, q);
|
||||
|
||||
pm_runtime_mark_last_busy(inst->dev->dev);
|
||||
pm_runtime_put_autosuspend(inst->dev->dev);
|
||||
}
|
||||
|
||||
@ -1520,7 +1517,6 @@ static void wave5_vpu_enc_device_run(void *priv)
|
||||
break;
|
||||
}
|
||||
dev_dbg(inst->dev->dev, "%s: leave with active job", __func__);
|
||||
pm_runtime_mark_last_busy(inst->dev->dev);
|
||||
pm_runtime_put_autosuspend(inst->dev->dev);
|
||||
return;
|
||||
default:
|
||||
@ -1529,7 +1525,6 @@ static void wave5_vpu_enc_device_run(void *priv)
|
||||
break;
|
||||
}
|
||||
dev_dbg(inst->dev->dev, "%s: leave and finish job", __func__);
|
||||
pm_runtime_mark_last_busy(inst->dev->dev);
|
||||
pm_runtime_put_autosuspend(inst->dev->dev);
|
||||
v4l2_m2m_job_finish(inst->v4l2_m2m_dev, m2m_ctx);
|
||||
}
|
||||
|
@ -585,7 +585,6 @@ static int tegra_vde_decode_begin(struct tegra_vde *vde,
|
||||
return 0;
|
||||
|
||||
put_runtime_pm:
|
||||
pm_runtime_mark_last_busy(dev);
|
||||
pm_runtime_put_autosuspend(dev);
|
||||
|
||||
unlock:
|
||||
@ -612,7 +611,6 @@ static void tegra_vde_decode_abort(struct tegra_vde *vde)
|
||||
if (err)
|
||||
dev_err(dev, "DEC end: Failed to assert HW reset: %d\n", err);
|
||||
|
||||
pm_runtime_mark_last_busy(dev);
|
||||
pm_runtime_put_autosuspend(dev);
|
||||
|
||||
mutex_unlock(&vde->lock);
|
||||
|
@ -142,7 +142,6 @@ int iris_hfi_queue_cmd_write(struct iris_core *core, void *pkt, u32 pkt_size)
|
||||
}
|
||||
mutex_unlock(&core->lock);
|
||||
|
||||
pm_runtime_mark_last_busy(core->dev);
|
||||
pm_runtime_put_autosuspend(core->dev);
|
||||
|
||||
return 0;
|
||||
|
@ -950,7 +950,6 @@ static void pispbe_node_stop_streaming(struct vb2_queue *q)
|
||||
kfree(job);
|
||||
}
|
||||
|
||||
pm_runtime_mark_last_busy(pispbe->dev);
|
||||
pm_runtime_put_autosuspend(pispbe->dev);
|
||||
|
||||
dev_dbg(pispbe->dev, "Nodes streaming now 0x%x\n",
|
||||
@ -1742,7 +1741,6 @@ static int pispbe_probe(struct platform_device *pdev)
|
||||
if (ret)
|
||||
goto disable_devs_err;
|
||||
|
||||
pm_runtime_mark_last_busy(pispbe->dev);
|
||||
pm_runtime_put_autosuspend(pispbe->dev);
|
||||
|
||||
return 0;
|
||||
|
@ -765,7 +765,6 @@ static void rkvdec_job_finish(struct rkvdec_ctx *ctx,
|
||||
{
|
||||
struct rkvdec_dev *rkvdec = ctx->dev;
|
||||
|
||||
pm_runtime_mark_last_busy(rkvdec->dev);
|
||||
pm_runtime_put_autosuspend(rkvdec->dev);
|
||||
rkvdec_job_finish_no_pm(ctx, result);
|
||||
}
|
||||
@ -1159,13 +1158,6 @@ static int rkvdec_probe(struct platform_device *pdev)
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (iommu_get_domain_for_dev(&pdev->dev)) {
|
||||
rkvdec->empty_domain = iommu_paging_domain_alloc(rkvdec->dev);
|
||||
|
||||
if (!rkvdec->empty_domain)
|
||||
dev_warn(rkvdec->dev, "cannot alloc new empty domain\n");
|
||||
}
|
||||
|
||||
vb2_dma_contig_set_max_seg_size(&pdev->dev, DMA_BIT_MASK(32));
|
||||
|
||||
irq = platform_get_irq(pdev, 0);
|
||||
@ -1188,6 +1180,15 @@ static int rkvdec_probe(struct platform_device *pdev)
|
||||
if (ret)
|
||||
goto err_disable_runtime_pm;
|
||||
|
||||
if (iommu_get_domain_for_dev(&pdev->dev)) {
|
||||
rkvdec->empty_domain = iommu_paging_domain_alloc(rkvdec->dev);
|
||||
|
||||
if (IS_ERR(rkvdec->empty_domain)) {
|
||||
rkvdec->empty_domain = NULL;
|
||||
dev_warn(rkvdec->dev, "cannot alloc new empty domain\n");
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
err_disable_runtime_pm:
|
||||
|
@ -89,7 +89,6 @@ static void hantro_job_finish(struct hantro_dev *vpu,
|
||||
struct hantro_ctx *ctx,
|
||||
enum vb2_buffer_state result)
|
||||
{
|
||||
pm_runtime_mark_last_busy(vpu->dev);
|
||||
pm_runtime_put_autosuspend(vpu->dev);
|
||||
|
||||
clk_bulk_disable(vpu->variant->num_clocks, vpu->clocks);
|
||||
|
@ -48,10 +48,8 @@ static irqreturn_t gpio_ir_recv_irq(int irq, void *dev_id)
|
||||
if (val >= 0)
|
||||
ir_raw_event_store_edge(gpio_dev->rcdev, val == 1);
|
||||
|
||||
if (pmdev) {
|
||||
pm_runtime_mark_last_busy(pmdev);
|
||||
if (pmdev)
|
||||
pm_runtime_put_autosuspend(pmdev);
|
||||
}
|
||||
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
@ -5758,14 +5758,15 @@ static void virtnet_freeze_down(struct virtio_device *vdev)
|
||||
disable_rx_mode_work(vi);
|
||||
flush_work(&vi->rx_mode_work);
|
||||
|
||||
netif_tx_lock_bh(vi->dev);
|
||||
netif_device_detach(vi->dev);
|
||||
netif_tx_unlock_bh(vi->dev);
|
||||
if (netif_running(vi->dev)) {
|
||||
rtnl_lock();
|
||||
virtnet_close(vi->dev);
|
||||
rtnl_unlock();
|
||||
}
|
||||
|
||||
netif_tx_lock_bh(vi->dev);
|
||||
netif_device_detach(vi->dev);
|
||||
netif_tx_unlock_bh(vi->dev);
|
||||
}
|
||||
|
||||
static int init_vqs(struct virtnet_info *vi);
|
||||
|
@ -193,6 +193,10 @@ static void int3472_get_con_id_and_polarity(struct int3472_discrete_device *int3
|
||||
*con_id = "privacy-led";
|
||||
*gpio_flags = GPIO_ACTIVE_HIGH;
|
||||
break;
|
||||
case INT3472_GPIO_TYPE_HOTPLUG_DETECT:
|
||||
*con_id = "hpd";
|
||||
*gpio_flags = GPIO_ACTIVE_HIGH;
|
||||
break;
|
||||
case INT3472_GPIO_TYPE_POWER_ENABLE:
|
||||
*con_id = "avdd";
|
||||
*gpio_flags = GPIO_ACTIVE_HIGH;
|
||||
@ -223,6 +227,7 @@ static void int3472_get_con_id_and_polarity(struct int3472_discrete_device *int3
|
||||
* 0x0b Power enable
|
||||
* 0x0c Clock enable
|
||||
* 0x0d Privacy LED
|
||||
* 0x13 Hotplug detect
|
||||
*
|
||||
* There are some known platform specific quirks where that does not quite
|
||||
* hold up; for example where a pin with type 0x01 (Power down) is mapped to
|
||||
@ -292,6 +297,7 @@ static int skl_int3472_handle_gpio_resources(struct acpi_resource *ares,
|
||||
switch (type) {
|
||||
case INT3472_GPIO_TYPE_RESET:
|
||||
case INT3472_GPIO_TYPE_POWERDOWN:
|
||||
case INT3472_GPIO_TYPE_HOTPLUG_DETECT:
|
||||
ret = skl_int3472_map_gpio_to_sensor(int3472, agpio, con_id, gpio_flags);
|
||||
if (ret)
|
||||
err_msg = "Failed to map GPIO pin to sensor\n";
|
||||
|
@ -99,6 +99,7 @@ struct vhost_net_ubuf_ref {
|
||||
atomic_t refcount;
|
||||
wait_queue_head_t wait;
|
||||
struct vhost_virtqueue *vq;
|
||||
struct rcu_head rcu;
|
||||
};
|
||||
|
||||
#define VHOST_NET_BATCH 64
|
||||
@ -250,9 +251,13 @@ vhost_net_ubuf_alloc(struct vhost_virtqueue *vq, bool zcopy)
|
||||
|
||||
static int vhost_net_ubuf_put(struct vhost_net_ubuf_ref *ubufs)
|
||||
{
|
||||
int r = atomic_sub_return(1, &ubufs->refcount);
|
||||
int r;
|
||||
|
||||
rcu_read_lock();
|
||||
r = atomic_sub_return(1, &ubufs->refcount);
|
||||
if (unlikely(!r))
|
||||
wake_up(&ubufs->wait);
|
||||
rcu_read_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
@ -265,7 +270,7 @@ static void vhost_net_ubuf_put_and_wait(struct vhost_net_ubuf_ref *ubufs)
|
||||
static void vhost_net_ubuf_put_wait_and_free(struct vhost_net_ubuf_ref *ubufs)
|
||||
{
|
||||
vhost_net_ubuf_put_and_wait(ubufs);
|
||||
kfree(ubufs);
|
||||
kfree_rcu(ubufs, rcu);
|
||||
}
|
||||
|
||||
static void vhost_net_clear_ubuf_info(struct vhost_net *n)
|
||||
|
@ -360,11 +360,15 @@ static int virtinput_freeze(struct virtio_device *vdev)
|
||||
{
|
||||
struct virtio_input *vi = vdev->priv;
|
||||
unsigned long flags;
|
||||
void *buf;
|
||||
|
||||
spin_lock_irqsave(&vi->lock, flags);
|
||||
vi->ready = false;
|
||||
spin_unlock_irqrestore(&vi->lock, flags);
|
||||
|
||||
virtio_reset_device(vdev);
|
||||
while ((buf = virtqueue_detach_unused_buf(vi->sts)) != NULL)
|
||||
kfree(buf);
|
||||
vdev->config->del_vqs(vdev);
|
||||
return 0;
|
||||
}
|
||||
|
@ -140,9 +140,9 @@ EXPORT_SYMBOL_GPL(vp_legacy_set_status);
|
||||
* vp_legacy_queue_vector - set the MSIX vector for a specific virtqueue
|
||||
* @ldev: the legacy virtio-pci device
|
||||
* @index: queue index
|
||||
* @vector: the config vector
|
||||
* @vector: the queue vector
|
||||
*
|
||||
* Returns the config vector read from the device
|
||||
* Returns the queue vector read from the device
|
||||
*/
|
||||
u16 vp_legacy_queue_vector(struct virtio_pci_legacy_device *ldev,
|
||||
u16 index, u16 vector)
|
||||
|
@ -546,9 +546,9 @@ EXPORT_SYMBOL_GPL(vp_modern_set_queue_reset);
|
||||
* vp_modern_queue_vector - set the MSIX vector for a specific virtqueue
|
||||
* @mdev: the modern virtio-pci device
|
||||
* @index: queue index
|
||||
* @vector: the config vector
|
||||
* @vector: the queue vector
|
||||
*
|
||||
* Returns the config vector read from the device
|
||||
* Returns the queue vector read from the device
|
||||
*/
|
||||
u16 vp_modern_queue_vector(struct virtio_pci_modern_device *mdev,
|
||||
u16 index, u16 vector)
|
||||
|
@ -27,6 +27,7 @@
|
||||
#define INT3472_GPIO_TYPE_CLK_ENABLE 0x0c
|
||||
#define INT3472_GPIO_TYPE_PRIVACY_LED 0x0d
|
||||
#define INT3472_GPIO_TYPE_HANDSHAKE 0x12
|
||||
#define INT3472_GPIO_TYPE_HOTPLUG_DETECT 0x13
|
||||
|
||||
#define INT3472_PDEV_MAX_NAME_LEN 23
|
||||
#define INT3472_MAX_SENSOR_GPIOS 3
|
||||
|
@ -328,8 +328,6 @@ static inline
|
||||
bool virtio_get_shm_region(struct virtio_device *vdev,
|
||||
struct virtio_shm_region *region, u8 id)
|
||||
{
|
||||
if (!region->len)
|
||||
return false;
|
||||
if (!vdev->config->get_shm_region)
|
||||
return false;
|
||||
return vdev->config->get_shm_region(vdev, region, id);
|
||||
|
@ -260,7 +260,7 @@
|
||||
* When fork_owner is set to VHOST_FORK_OWNER_KTHREAD:
|
||||
* - Vhost will create vhost workers as kernel threads.
|
||||
*/
|
||||
#define VHOST_SET_FORK_FROM_OWNER _IOW(VHOST_VIRTIO, 0x83, __u8)
|
||||
#define VHOST_SET_FORK_FROM_OWNER _IOW(VHOST_VIRTIO, 0x84, __u8)
|
||||
|
||||
/**
|
||||
* VHOST_GET_FORK_OWNER - Get the current fork_owner flag for the vhost device.
|
||||
@ -268,6 +268,6 @@
|
||||
*
|
||||
* @return: An 8-bit value indicating the current thread mode.
|
||||
*/
|
||||
#define VHOST_GET_FORK_FROM_OWNER _IOR(VHOST_VIRTIO, 0x84, __u8)
|
||||
#define VHOST_GET_FORK_FROM_OWNER _IOR(VHOST_VIRTIO, 0x85, __u8)
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user