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

Commit fb625d18 authored by Narender Ankam's avatar Narender Ankam
Browse files

msm: mdss: select dss io utility as per supported display subsystem



msm-4.14 kernel supports only upstream pll clk driver and either of
DRM or FBDEV display subsystems. Select dss io utility as per target's
supported DRM or FBDEV display subsystem.

Change-Id: Ib90d6990b29bcd06e387a4f7710084012b24e4d8
Signed-off-by: default avatarNarender Ankam <nankam@codeaurora.org>
parent b8900bc7
Loading
Loading
Loading
Loading
+6 −1
Original line number Original line Diff line number Diff line
@@ -12,7 +12,7 @@


#ifndef __MDSS_PLL_H
#ifndef __MDSS_PLL_H
#define __MDSS_PLL_H
#define __MDSS_PLL_H
#include <linux/sde_io_util.h>

#include <linux/clk-provider.h>
#include <linux/clk-provider.h>
#include <linux/io.h>
#include <linux/io.h>
#include <linux/clk.h>
#include <linux/clk.h>
@@ -22,6 +22,11 @@
#include "../clk-regmap-divider.h"
#include "../clk-regmap-divider.h"
#include "../clk-regmap-mux.h"
#include "../clk-regmap-mux.h"


#if defined(CONFIG_DRM)
#include <linux/sde_io_util.h>
#else
#include <linux/mdss_io_util.h>
#endif


#define MDSS_PLL_REG_W(base, offset, data)	\
#define MDSS_PLL_REG_W(base, offset, data)	\
				writel_relaxed((data), (base) + (offset))
				writel_relaxed((data), (base) + (offset))
+5 −5
Original line number Original line Diff line number Diff line
@@ -1114,7 +1114,7 @@ static int msm_dsi_on(struct mdss_panel_data *pdata)


	if (!pdata->panel_info.dynamic_switch_pending) {
	if (!pdata->panel_info.dynamic_switch_pending) {
		for (i = 0; !ret && (i < DSI_MAX_PM); i++) {
		for (i = 0; !ret && (i < DSI_MAX_PM); i++) {
			ret = msm_mdss_enable_vreg(
			ret = msm_dss_enable_vreg(
				ctrl_pdata->power_data[i].vreg_config,
				ctrl_pdata->power_data[i].vreg_config,
				ctrl_pdata->power_data[i].num_vreg, 1);
				ctrl_pdata->power_data[i].num_vreg, 1);
			if (ret) {
			if (ret) {
@@ -1215,7 +1215,7 @@ static int msm_dsi_on(struct mdss_panel_data *pdata)
error_vreg:
error_vreg:
	if (ret) {
	if (ret) {
		for (; i >= 0; i--)
		for (; i >= 0; i--)
			msm_mdss_enable_vreg(
			msm_dss_enable_vreg(
				ctrl_pdata->power_data[i].vreg_config,
				ctrl_pdata->power_data[i].vreg_config,
				ctrl_pdata->power_data[i].num_vreg, 0);
				ctrl_pdata->power_data[i].num_vreg, 0);
	}
	}
@@ -1250,7 +1250,7 @@ static int msm_dsi_off(struct mdss_panel_data *pdata)


	if (!pdata->panel_info.dynamic_switch_pending) {
	if (!pdata->panel_info.dynamic_switch_pending) {
		for (i = DSI_MAX_PM - 1; i >= 0; i--) {
		for (i = DSI_MAX_PM - 1; i >= 0; i--) {
			ret = msm_mdss_enable_vreg(
			ret = msm_dss_enable_vreg(
				ctrl_pdata->power_data[i].vreg_config,
				ctrl_pdata->power_data[i].vreg_config,
				ctrl_pdata->power_data[i].num_vreg, 0);
				ctrl_pdata->power_data[i].num_vreg, 0);
			if (ret)
			if (ret)
@@ -1287,7 +1287,7 @@ static int msm_dsi_cont_on(struct mdss_panel_data *pdata)
	pinfo = &pdata->panel_info;
	pinfo = &pdata->panel_info;
	mutex_lock(&ctrl_pdata->mutex);
	mutex_lock(&ctrl_pdata->mutex);
	for (i = 0; !ret && (i < DSI_MAX_PM); i++) {
	for (i = 0; !ret && (i < DSI_MAX_PM); i++) {
		ret = msm_mdss_enable_vreg(
		ret = msm_dss_enable_vreg(
			ctrl_pdata->power_data[i].vreg_config,
			ctrl_pdata->power_data[i].vreg_config,
			ctrl_pdata->power_data[i].num_vreg, 1);
			ctrl_pdata->power_data[i].num_vreg, 1);
		if (ret) {
		if (ret) {
@@ -1314,7 +1314,7 @@ static int msm_dsi_cont_on(struct mdss_panel_data *pdata)
error_vreg:
error_vreg:
	if (ret) {
	if (ret) {
		for (; i >= 0; i--)
		for (; i >= 0; i--)
			msm_mdss_enable_vreg(
			msm_dss_enable_vreg(
				ctrl_pdata->power_data[i].vreg_config,
				ctrl_pdata->power_data[i].vreg_config,
				ctrl_pdata->power_data[i].num_vreg, 0);
				ctrl_pdata->power_data[i].num_vreg, 0);
	}
	}
+4 −4
Original line number Original line Diff line number Diff line
@@ -50,7 +50,7 @@ void msm_dsi_ahb_ctrl(int enable)
	}
	}
}
}


int msm_dsi_io_init(struct platform_device *pdev, struct mdss_module_power *mp)
int msm_dsi_io_init(struct platform_device *pdev, struct dss_module_power *mp)
{
{
	int rc;
	int rc;


@@ -67,7 +67,7 @@ int msm_dsi_io_init(struct platform_device *pdev, struct mdss_module_power *mp)
		return rc;
		return rc;
	}
	}


	rc = msm_mdss_config_vreg(&pdev->dev, mp->vreg_config,
	rc = msm_dss_config_vreg(&pdev->dev, mp->vreg_config,
						mp->num_vreg, 1);
						mp->num_vreg, 1);
	if (rc) {
	if (rc) {
		pr_err("fail to initialize DSI regulator\n");
		pr_err("fail to initialize DSI regulator\n");
@@ -78,11 +78,11 @@ int msm_dsi_io_init(struct platform_device *pdev, struct mdss_module_power *mp)
}
}


void msm_dsi_io_deinit(struct platform_device *pdev,
void msm_dsi_io_deinit(struct platform_device *pdev,
				 struct mdss_module_power *mp)
				 struct dss_module_power *mp)
{
{
	if (dsi_io_private) {
	if (dsi_io_private) {
		msm_dsi_clk_deinit();
		msm_dsi_clk_deinit();
		msm_mdss_config_vreg(&pdev->dev, mp->vreg_config,
		msm_dss_config_vreg(&pdev->dev, mp->vreg_config,
					mp->num_vreg, 0);
					mp->num_vreg, 0);
		kfree(dsi_io_private);
		kfree(dsi_io_private);
		dsi_io_private = NULL;
		dsi_io_private = NULL;
+2 −2
Original line number Original line Diff line number Diff line
@@ -18,10 +18,10 @@
void msm_dsi_ahb_ctrl(int enable);
void msm_dsi_ahb_ctrl(int enable);


int msm_dsi_io_init(struct platform_device *dev,
int msm_dsi_io_init(struct platform_device *dev,
				struct mdss_module_power *mp);
				struct dss_module_power *mp);


void msm_dsi_io_deinit(struct platform_device *dev,
void msm_dsi_io_deinit(struct platform_device *dev,
				struct mdss_module_power *mp);
				struct dss_module_power *mp);


int msm_dsi_clk_init(struct platform_device *dev);
int msm_dsi_clk_init(struct platform_device *dev);


+3 −3
Original line number Original line Diff line number Diff line
@@ -236,7 +236,7 @@ static int dsi_parse_gpio(struct platform_device *pdev,
}
}


static void mdss_dsi_put_dt_vreg_data(struct device *dev,
static void mdss_dsi_put_dt_vreg_data(struct device *dev,
	struct mdss_module_power *module_power)
	struct dss_module_power *module_power)
{
{
	if (!module_power) {
	if (!module_power) {
		pr_err("%s: invalid input\n", __func__);
		pr_err("%s: invalid input\n", __func__);
@@ -251,7 +251,7 @@ static void mdss_dsi_put_dt_vreg_data(struct device *dev,
}
}


static int mdss_dsi_get_dt_vreg_data(struct device *dev,
static int mdss_dsi_get_dt_vreg_data(struct device *dev,
	struct mdss_module_power *mp, enum dsi_pm_type module)
	struct dss_module_power *mp, enum dsi_pm_type module)
{
{
	int i = 0, rc = 0;
	int i = 0, rc = 0;
	u32 tmp = 0;
	u32 tmp = 0;
@@ -286,7 +286,7 @@ static int mdss_dsi_get_dt_vreg_data(struct device *dev,
		pr_debug("%s: vreg found. count=%d\n", __func__, mp->num_vreg);
		pr_debug("%s: vreg found. count=%d\n", __func__, mp->num_vreg);
	}
	}


	mp->vreg_config = devm_kzalloc(dev, sizeof(struct mdss_vreg) *
	mp->vreg_config = devm_kzalloc(dev, sizeof(struct dss_vreg) *
		mp->num_vreg, GFP_KERNEL);
		mp->num_vreg, GFP_KERNEL);
	if (!mp->vreg_config) {
	if (!mp->vreg_config) {
		rc = -ENOMEM;
		rc = -ENOMEM;
Loading