Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bd7d8888 authored by Sylwester Nawrocki's avatar Sylwester Nawrocki Committed by Mauro Carvalho Chehab
Browse files

[media] s5p-fimc: convert to clk_prepare()/clk_unprepare()

parent 479e3492
Loading
Loading
Loading
Loading
+20 −9
Original line number Original line Diff line number Diff line
@@ -1602,24 +1602,35 @@ static void fimc_clk_put(struct fimc_dev *fimc)
{
{
	int i;
	int i;
	for (i = 0; i < fimc->num_clocks; i++) {
	for (i = 0; i < fimc->num_clocks; i++) {
		if (fimc->clock[i])
		if (IS_ERR_OR_NULL(fimc->clock[i]))
			continue;
		clk_unprepare(fimc->clock[i]);
		clk_put(fimc->clock[i]);
		clk_put(fimc->clock[i]);
		fimc->clock[i] = NULL;
	}
	}
}
}


static int fimc_clk_get(struct fimc_dev *fimc)
static int fimc_clk_get(struct fimc_dev *fimc)
{
{
	int i;
	int i, ret;

	for (i = 0; i < fimc->num_clocks; i++) {
	for (i = 0; i < fimc->num_clocks; i++) {
		fimc->clock[i] = clk_get(&fimc->pdev->dev, fimc_clocks[i]);
		fimc->clock[i] = clk_get(&fimc->pdev->dev, fimc_clocks[i]);
		if (!IS_ERR_OR_NULL(fimc->clock[i]))
		if (IS_ERR(fimc->clock[i]))
			continue;
			goto err;
		dev_err(&fimc->pdev->dev, "failed to get fimc clock: %s\n",
		ret = clk_prepare(fimc->clock[i]);
			fimc_clocks[i]);
		if (ret < 0) {
		return -ENXIO;
			clk_put(fimc->clock[i]);
			fimc->clock[i] = NULL;
			goto err;
		}
	}
	}

	return 0;
	return 0;
err:
	fimc_clk_put(fimc);
	dev_err(&fimc->pdev->dev, "failed to get clock: %s\n",
		fimc_clocks[i]);
	return -ENXIO;
}
}


static int fimc_m2m_suspend(struct fimc_dev *fimc)
static int fimc_m2m_suspend(struct fimc_dev *fimc)
+19 −9
Original line number Original line Diff line number Diff line
@@ -258,26 +258,36 @@ static void s5pcsis_clk_put(struct csis_state *state)
{
{
	int i;
	int i;


	for (i = 0; i < NUM_CSIS_CLOCKS; i++)
	for (i = 0; i < NUM_CSIS_CLOCKS; i++) {
		if (!IS_ERR_OR_NULL(state->clock[i]))
		if (IS_ERR_OR_NULL(state->clock[i]))
			continue;
		clk_unprepare(state->clock[i]);
		clk_put(state->clock[i]);
		clk_put(state->clock[i]);
		state->clock[i] = NULL;
	}
}
}


static int s5pcsis_clk_get(struct csis_state *state)
static int s5pcsis_clk_get(struct csis_state *state)
{
{
	struct device *dev = &state->pdev->dev;
	struct device *dev = &state->pdev->dev;
	int i;
	int i, ret;


	for (i = 0; i < NUM_CSIS_CLOCKS; i++) {
	for (i = 0; i < NUM_CSIS_CLOCKS; i++) {
		state->clock[i] = clk_get(dev, csi_clock_name[i]);
		state->clock[i] = clk_get(dev, csi_clock_name[i]);
		if (IS_ERR(state->clock[i])) {
		if (IS_ERR(state->clock[i]))
			s5pcsis_clk_put(state);
			goto err;
			dev_err(dev, "failed to get clock: %s\n",
		ret = clk_prepare(state->clock[i]);
				csi_clock_name[i]);
		if (ret < 0) {
			return -ENXIO;
			clk_put(state->clock[i]);
			state->clock[i] = NULL;
			goto err;
		}
		}
	}
	}
	return 0;
	return 0;
err:
	s5pcsis_clk_put(state);
	dev_err(dev, "failed to get clock: %s\n", csi_clock_name[i]);
	return -ENXIO;
}
}


static int s5pcsis_s_power(struct v4l2_subdev *sd, int on)
static int s5pcsis_s_power(struct v4l2_subdev *sd, int on)