diff options
Diffstat (limited to 'drivers/gpu/drm/tegra/dc.c')
| -rw-r--r-- | drivers/gpu/drm/tegra/dc.c | 30 | 
1 files changed, 13 insertions, 17 deletions
| diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c index 0ae3a025efe9..134986dc2783 100644 --- a/drivers/gpu/drm/tegra/dc.c +++ b/drivers/gpu/drm/tegra/dc.c @@ -1688,6 +1688,11 @@ static void tegra_dc_commit_state(struct tegra_dc *dc,  			dev_err(dc->dev,  				"failed to set clock rate to %lu Hz\n",  				state->pclk); + +		err = clk_set_rate(dc->clk, state->pclk); +		if (err < 0) +			dev_err(dc->dev, "failed to set clock %pC to %lu Hz: %d\n", +				dc->clk, state->pclk, err);  	}  	DRM_DEBUG_KMS("rate: %lu, div: %u\n", clk_get_rate(dc->clk), @@ -1698,11 +1703,6 @@ static void tegra_dc_commit_state(struct tegra_dc *dc,  		value = SHIFT_CLK_DIVIDER(state->div) | PIXEL_CLK_DIVIDER_PCD1;  		tegra_dc_writel(dc, value, DC_DISP_DISP_CLOCK_CONTROL);  	} - -	err = clk_set_rate(dc->clk, state->pclk); -	if (err < 0) -		dev_err(dc->dev, "failed to set clock %pC to %lu Hz: %d\n", -			dc->clk, state->pclk, err);  }  static void tegra_dc_stop(struct tegra_dc *dc) @@ -2501,22 +2501,18 @@ static int tegra_dc_couple(struct tegra_dc *dc)  	 * POWER_CONTROL registers during CRTC enabling.  	 */  	if (dc->soc->coupled_pm && dc->pipe == 1) { -		u32 flags = DL_FLAG_PM_RUNTIME | DL_FLAG_AUTOREMOVE_CONSUMER; -		struct device_link *link; -		struct device *partner; +		struct device *companion; +		struct tegra_dc *parent; -		partner = driver_find_device(dc->dev->driver, NULL, NULL, -					     tegra_dc_match_by_pipe); -		if (!partner) +		companion = driver_find_device(dc->dev->driver, NULL, (const void *)0, +					       tegra_dc_match_by_pipe); +		if (!companion)  			return -EPROBE_DEFER; -		link = device_link_add(dc->dev, partner, flags); -		if (!link) { -			dev_err(dc->dev, "failed to link controllers\n"); -			return -EINVAL; -		} +		parent = dev_get_drvdata(companion); +		dc->client.parent = &parent->client; -		dev_dbg(dc->dev, "coupled to %s\n", dev_name(partner)); +		dev_dbg(dc->dev, "coupled to %s\n", dev_name(companion));  	}  	return 0; | 
