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

Commit 51b24ffd authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: kgsl: Scale hub clock to 150 Mhz"

parents 026e0119 ffc94db8
Loading
Loading
Loading
Loading
+20 −10
Original line number Diff line number Diff line
@@ -1320,14 +1320,6 @@ static int gmu_probe(struct kgsl_device *device, struct platform_device *pdev)

	gmu->num_clks = ret;

	/* Get a pointer to the GMU clock */
	gmu->gmu_clk = kgsl_of_clk_by_name(gmu->clks, gmu->num_clks, "gmu_clk");
	if (!gmu->gmu_clk) {
		dev_err(&pdev->dev, "Couldn't get gmu_clk\n");
		ret = -ENODEV;
		goto error;
	}

	/* Set up GMU IOMMU and shared memory with GMU */
	ret = gmu_iommu_init(gmu, pdev->dev.of_node);
	if (ret)
@@ -1417,14 +1409,32 @@ static int gmu_probe(struct kgsl_device *device, struct platform_device *pdev)
	return ret;
}

static int gmu_clk_set_rate(struct gmu_device *gmu, const char *id,
	unsigned long rate)
{
	struct clk *clk;

	clk = kgsl_of_clk_by_name(gmu->clks, gmu->num_clks, id);
	if (!clk)
		return -ENODEV;

	return clk_set_rate(clk, rate);
}

static int gmu_enable_clks(struct kgsl_device *device)
{
	struct gmu_device *gmu = KGSL_GMU_DEVICE(device);
	int ret;

	ret = clk_set_rate(gmu->gmu_clk, GMU_FREQUENCY);
	ret = gmu_clk_set_rate(gmu, "gmu_clk", GMU_FREQUENCY);
	if (ret) {
		dev_err(&gmu->pdev->dev, "Unable to set GMU clock\n");
		dev_err(&gmu->pdev->dev, "Unable to set the GMU clock\n");
		return ret;
	}

	ret = gmu_clk_set_rate(gmu, "hub_clk", 150000000);
	if (ret && ret != ENODEV) {
		dev_err(&gmu->pdev->dev, "Unable to set the HUB clock\n");
		return ret;
	}

+0 −2
Original line number Diff line number Diff line
@@ -194,8 +194,6 @@ struct gmu_device {
	struct clk_bulk_data *clks;
	/** @num_clks: Number of entries in the @clks array */
	int num_clks;
	/** @gmu_clk: Pointer to the core GMU clock */
	struct clk *gmu_clk;
	enum gmu_load_mode load_mode;
	unsigned int wakeup_pwrlevel;
	unsigned int idle_level;