mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
[media] smiapp: Remove set_xclk() callback from hwconfig
The clock framework is generally so well supported that there's no reason to keep this one around. Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Reviewed-by: Sebastian Reichel <sre@kernel.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
567716c581
commit
e62c30e768
2 changed files with 17 additions and 34 deletions
|
@ -1201,11 +1201,7 @@ static int smiapp_power_on(struct smiapp_sensor *sensor)
|
|||
}
|
||||
usleep_range(1000, 1000);
|
||||
|
||||
if (sensor->hwcfg->set_xclk)
|
||||
rval = sensor->hwcfg->set_xclk(
|
||||
&sensor->src->sd, sensor->hwcfg->ext_clk);
|
||||
else
|
||||
rval = clk_prepare_enable(sensor->ext_clk);
|
||||
rval = clk_prepare_enable(sensor->ext_clk);
|
||||
if (rval < 0) {
|
||||
dev_dbg(&client->dev, "failed to enable xclk\n");
|
||||
goto out_xclk_fail;
|
||||
|
@ -1322,10 +1318,7 @@ static int smiapp_power_on(struct smiapp_sensor *sensor)
|
|||
|
||||
out_cci_addr_fail:
|
||||
gpiod_set_value(sensor->xshutdown, 0);
|
||||
if (sensor->hwcfg->set_xclk)
|
||||
sensor->hwcfg->set_xclk(&sensor->src->sd, 0);
|
||||
else
|
||||
clk_disable_unprepare(sensor->ext_clk);
|
||||
clk_disable_unprepare(sensor->ext_clk);
|
||||
|
||||
out_xclk_fail:
|
||||
regulator_disable(sensor->vana);
|
||||
|
@ -1347,10 +1340,7 @@ static void smiapp_power_off(struct smiapp_sensor *sensor)
|
|||
SMIAPP_SOFTWARE_RESET);
|
||||
|
||||
gpiod_set_value(sensor->xshutdown, 0);
|
||||
if (sensor->hwcfg->set_xclk)
|
||||
sensor->hwcfg->set_xclk(&sensor->src->sd, 0);
|
||||
else
|
||||
clk_disable_unprepare(sensor->ext_clk);
|
||||
clk_disable_unprepare(sensor->ext_clk);
|
||||
usleep_range(5000, 5000);
|
||||
regulator_disable(sensor->vana);
|
||||
sensor->streaming = false;
|
||||
|
@ -2551,22 +2541,20 @@ static int smiapp_init(struct smiapp_sensor *sensor)
|
|||
return PTR_ERR(sensor->vana);
|
||||
}
|
||||
|
||||
if (!sensor->hwcfg->set_xclk) {
|
||||
sensor->ext_clk = devm_clk_get(&client->dev, NULL);
|
||||
if (IS_ERR(sensor->ext_clk)) {
|
||||
dev_err(&client->dev, "could not get clock (%ld)\n",
|
||||
PTR_ERR(sensor->ext_clk));
|
||||
return -EPROBE_DEFER;
|
||||
}
|
||||
sensor->ext_clk = devm_clk_get(&client->dev, NULL);
|
||||
if (IS_ERR(sensor->ext_clk)) {
|
||||
dev_err(&client->dev, "could not get clock (%ld)\n",
|
||||
PTR_ERR(sensor->ext_clk));
|
||||
return -EPROBE_DEFER;
|
||||
}
|
||||
|
||||
rval = clk_set_rate(sensor->ext_clk,
|
||||
sensor->hwcfg->ext_clk);
|
||||
if (rval < 0) {
|
||||
dev_err(&client->dev,
|
||||
"unable to set clock freq to %u\n",
|
||||
sensor->hwcfg->ext_clk);
|
||||
return rval;
|
||||
}
|
||||
rval = clk_set_rate(sensor->ext_clk,
|
||||
sensor->hwcfg->ext_clk);
|
||||
if (rval < 0) {
|
||||
dev_err(&client->dev,
|
||||
"unable to set clock freq to %u\n",
|
||||
sensor->hwcfg->ext_clk);
|
||||
return rval;
|
||||
}
|
||||
|
||||
sensor->xshutdown = devm_gpiod_get_optional(&client->dev, "xshutdown",
|
||||
|
@ -3108,10 +3096,7 @@ static int smiapp_remove(struct i2c_client *client)
|
|||
|
||||
if (sensor->power_count) {
|
||||
gpiod_set_value(sensor->xshutdown, 0);
|
||||
if (sensor->hwcfg->set_xclk)
|
||||
sensor->hwcfg->set_xclk(&sensor->src->sd, 0);
|
||||
else
|
||||
clk_disable_unprepare(sensor->ext_clk);
|
||||
clk_disable_unprepare(sensor->ext_clk);
|
||||
sensor->power_count = 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -73,8 +73,6 @@ struct smiapp_hwconfig {
|
|||
enum smiapp_module_board_orient module_board_orient;
|
||||
|
||||
struct smiapp_flash_strobe_parms *strobe_setup;
|
||||
|
||||
int (*set_xclk)(struct v4l2_subdev *sd, int hz);
|
||||
};
|
||||
|
||||
#endif /* __SMIAPP_H_ */
|
||||
|
|
Loading…
Reference in a new issue