aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVinod Koul <vkoul@kernel.org>2020-10-12 10:26:50 +0530
committerVinod Koul <vkoul@kernel.org>2020-10-12 10:26:50 +0530
commit320f3c96ef2b939c9baf2a7a9459ec924eab9d53 (patch)
tree103e6c977c7c5e016e956fd1c7f8c53459321ea4
parent2a56715835b6bb67e26571dbb3d566b6694b39e5 (diff)
Signed-off-by: Vinod Koul <vkoul@kernel.org>
-rw-r--r--drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c6
-rw-r--r--drivers/gpu/drm/msm/dsi/dsi_host.c5
-rw-r--r--drivers/gpu/drm/msm/dsi/dsi_manager.c29
-rw-r--r--drivers/gpu/drm/panel/panel-lg-sw43408.c6
4 files changed, 44 insertions, 2 deletions
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c
index 4a9b6a0c411b..2f78331a9752 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c
@@ -45,6 +45,7 @@ static void dpu_hw_dsc_config(struct dpu_hw_dsc *hw_dsc,
u32 initial_lines = dsc->initial_lines;
bool is_cmd_mode = !(mode & BIT(2));
+ pr_err("VK: in %s\n", __func__);
DPU_REG_WRITE(c, DSC_COMMON_MODE, mode);
data = 0;
@@ -139,6 +140,7 @@ static void dpu_hw_dsc_config_thresh(struct dpu_hw_dsc *hw_dsc,
u16 *lp;
int i;
+ pr_err("VK: in %s\n", __func__);
lp = dsc->drm.rc_buf_thresh;
off = DSC_RC_BUF_THRESH;
for (i = 0; i < DSC_NUM_BUF_RANGES -1 ; i++) {
@@ -172,6 +174,7 @@ static struct dpu_dsc_cfg *_dsc_offset(enum dpu_dsc dsc,
{
int i;
+ pr_err("VK: in %s\n", __func__);
for (i = 0; i < m->dsc_count; i++) {
if (dsc == m->dsc[i].id) {
b->base_off = addr;
@@ -189,6 +192,7 @@ static struct dpu_dsc_cfg *_dsc_offset(enum dpu_dsc dsc,
static void _setup_dsc_ops(struct dpu_hw_dsc_ops *ops,
unsigned long cap)
{
+ pr_err("VK: in %s\n", __func__);
ops->dsc_disable = dpu_hw_dsc_disable;
ops->dsc_config = dpu_hw_dsc_config;
ops->dsc_config_thresh = dpu_hw_dsc_config_thresh;
@@ -205,6 +209,7 @@ struct dpu_hw_dsc *dpu_hw_dsc_init(enum dpu_dsc idx, void __iomem *addr,
struct dpu_hw_dsc *c;
struct dpu_dsc_cfg *cfg;
+ pr_err("VK: in %s\n", __func__);
c = kzalloc(sizeof(*c), GFP_KERNEL);
if (!c)
return ERR_PTR(-ENOMEM);
@@ -226,6 +231,7 @@ struct dpu_hw_dsc *dpu_hw_dsc_init(enum dpu_dsc idx, void __iomem *addr,
void dpu_hw_dsc_destroy(struct dpu_hw_dsc *dsc)
{
+ pr_err("VK: in %s\n", __func__);
if (dsc)
dpu_hw_blk_destroy(&dsc->base);
kfree(dsc);
diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c
index f0955ad329b2..9e9ad636ece7 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_host.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_host.c
@@ -958,6 +958,7 @@ static void dsi_timing_setup(struct msm_dsi_host *msm_host, bool is_dual_dsi)
u32 hdisplay = mode->hdisplay;
u32 wc;
+ pr_err("VK: in %s\n", __func__);
/* divide hdisplay by 3 but keep the back/front-porch and pulse-width the same
.hdisplay = 2160,
.hsync_start = (2160 + 28),
@@ -965,11 +966,14 @@ static void dsi_timing_setup(struct msm_dsi_host *msm_host, bool is_dual_dsi)
.htotal = (2160 + 28 + 4 + 24),
*/
if (msm_host->dsc) {
+ pr_err("VK: in %s DSC set\n", __func__);
h_total = 776;
hs_end = 4;
ha_start = 28;
ha_end = 748;
hdisplay = 720;
+ } else {
+ pr_err("VK: DSC NOT SET!!!!!!!!!\n");
}
DBG("");
@@ -2643,6 +2647,7 @@ int msm_dsi_host_power_on(struct mipi_dsi_host *host,
const struct msm_dsi_cfg_handler *cfg_hnd = msm_host->cfg_hnd;
int ret = 0;
+ pr_err("VK: in %s\n", __func__);
mutex_lock(&msm_host->dev_mutex);
if (msm_host->power_on) {
DBG("dsi host already on");
diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c
index 4b363bd7ddff..064b923816a7 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
@@ -46,6 +46,7 @@ static int dsi_mgr_parse_dual_dsi(struct device_node *np, int id)
{
struct msm_dsi_manager *msm_dsim = &msm_dsim_glb;
+ pr_err("VK: in %s\n", __func__);
/* We assume 2 dsi nodes have the same information of dual-dsi and
* sync-mode, and only one node specifies master in case of dual mode.
*/
@@ -73,23 +74,31 @@ static int dsi_mgr_setup_components(int id)
struct msm_dsi_pll *src_pll;
int ret;
+ pr_err("VK: in %s\n", __func__);
if (!IS_DUAL_DSI()) {
+ pr_err("VK: not dual dsi\n");
ret = msm_dsi_host_register(msm_dsi->host, true);
- if (ret)
+ if (ret) {
+ pr_err("VK: host reg failed: %d\n", ret);
return ret;
+ }
msm_dsi_phy_set_usecase(msm_dsi->phy, MSM_DSI_PHY_STANDALONE);
src_pll = msm_dsi_phy_get_pll(msm_dsi->phy);
- if (IS_ERR(src_pll))
+ if (IS_ERR(src_pll)) {
+ pr_err("VK: phy pll failed: %d\n", ret);
return PTR_ERR(src_pll);
+ }
ret = msm_dsi_host_set_src_pll(msm_dsi->host, src_pll);
} else if (!other_dsi) {
+ pr_err("VK: other dsi\n");
ret = 0;
} else {
struct msm_dsi *master_link_dsi = IS_MASTER_DSI_LINK(id) ?
msm_dsi : other_dsi;
struct msm_dsi *slave_link_dsi = IS_MASTER_DSI_LINK(id) ?
other_dsi : msm_dsi;
+ pr_err("VK: in else\n");
/* Register slave host first, so that slave DSI device
* has a chance to probe, and do not block the master
* DSI device's probe.
@@ -104,6 +113,7 @@ static int dsi_mgr_setup_components(int id)
if (ret)
return ret;
+ pr_err("VK: msater|slave reg done\n");
/* PLL0 is to drive both 2 DSI link clocks in Dual DSI mode. */
msm_dsi_phy_set_usecase(clk_master_dsi->phy,
MSM_DSI_PHY_MASTER);
@@ -112,12 +122,14 @@ static int dsi_mgr_setup_components(int id)
src_pll = msm_dsi_phy_get_pll(clk_master_dsi->phy);
if (IS_ERR(src_pll))
return PTR_ERR(src_pll);
+ pr_err("VK: phy get clk done\n");
ret = msm_dsi_host_set_src_pll(msm_dsi->host, src_pll);
if (ret)
return ret;
ret = msm_dsi_host_set_src_pll(other_dsi->host, src_pll);
}
+ pr_err("VK: returning ret:%d\n", ret);
return ret;
}
@@ -252,6 +264,7 @@ static int msm_dsi_manager_panel_init(struct drm_connector *conn, u8 id)
struct msm_dsi *master_dsi, *slave_dsi;
struct drm_panel *panel;
+ pr_err("VK: in %s\n", __func__);
if (IS_DUAL_DSI() && !IS_MASTER_DSI_LINK(id)) {
master_dsi = other_dsi;
slave_dsi = msm_dsi;
@@ -299,6 +312,7 @@ static enum drm_connector_status dsi_mgr_connector_detect(
int id = dsi_mgr_connector_get_id(connector);
struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id);
+ pr_err("VK: in %s\n", __func__);
return msm_dsi->panel ? connector_status_connected :
connector_status_disconnected;
}
@@ -321,6 +335,7 @@ static int dsi_mgr_connector_get_modes(struct drm_connector *connector)
struct drm_panel *panel = msm_dsi->panel;
int num;
+ pr_err("VK: in %s\n", __func__);
if (!panel)
return 0;
@@ -346,6 +361,7 @@ static enum drm_mode_status dsi_mgr_connector_mode_valid(struct drm_connector *c
struct msm_kms *kms = priv->kms;
long actual, requested;
+ pr_err("VK: in %s\n", __func__);
DBG("");
requested = 1000 * mode->clock;
actual = kms->funcs->round_pixclk(kms, requested, encoder);
@@ -363,6 +379,7 @@ dsi_mgr_connector_best_encoder(struct drm_connector *connector)
int id = dsi_mgr_connector_get_id(connector);
struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id);
+ pr_err("VK: in %s\n", __func__);
DBG("");
return msm_dsi_get_encoder(msm_dsi);
}
@@ -379,6 +396,7 @@ static void dsi_mgr_bridge_pre_enable(struct drm_bridge *bridge)
int ret;
DBG("id=%d", id);
+ pr_err("VK: Are we doing pre enable!!\n");
if (!msm_dsi_device_connected(msm_dsi))
return;
@@ -459,6 +477,7 @@ static void dsi_mgr_bridge_enable(struct drm_bridge *bridge)
int ret;
DBG("id=%d", id);
+ pr_err("VK: in %s\n", __func__);
if (!msm_dsi_device_connected(msm_dsi))
return;
@@ -570,6 +589,7 @@ static void dsi_mgr_bridge_mode_set(struct drm_bridge *bridge,
bool is_dual_dsi = IS_DUAL_DSI();
DBG("set mode: " DRM_MODE_FMT, DRM_MODE_ARG(mode));
+ pr_err("VK: in %s\n", __func__);
if (is_dual_dsi && !IS_MASTER_DSI_LINK(id))
return;
@@ -610,6 +630,7 @@ struct drm_connector *msm_dsi_manager_connector_init(u8 id)
struct dsi_connector *dsi_connector;
int ret;
+ pr_err("VK: in %s\n", __func__);
dsi_connector = kzalloc(sizeof(*dsi_connector), GFP_KERNEL);
if (!dsi_connector)
return ERR_PTR(-ENOMEM);
@@ -675,6 +696,7 @@ struct drm_bridge *msm_dsi_manager_bridge_init(u8 id)
struct drm_encoder *encoder;
int ret;
+ pr_err("VK: in %s\n", __func__);
dsi_bridge = devm_kzalloc(msm_dsi->dev->dev,
sizeof(*dsi_bridge), GFP_KERNEL);
if (!dsi_bridge) {
@@ -693,6 +715,7 @@ struct drm_bridge *msm_dsi_manager_bridge_init(u8 id)
if (ret)
goto fail;
+ pr_err("VK: OK in %s\n", __func__);
return bridge;
fail:
@@ -711,6 +734,7 @@ struct drm_connector *msm_dsi_manager_ext_bridge_init(u8 id)
struct drm_connector *connector;
struct list_head *connector_list;
+ pr_err("VK: in %s\n", __func__);
int_bridge = msm_dsi->bridge;
ext_bridge = msm_dsi->external_bridge =
msm_dsi_host_get_bridge(msm_dsi->host);
@@ -808,6 +832,7 @@ int msm_dsi_manager_register(struct msm_dsi *msm_dsi)
int id = msm_dsi->id;
int ret;
+ pr_err("VK: in %s\n", __func__);
if (id >= DSI_MAX) {
pr_err("%s: invalid id %d\n", __func__, id);
return -EINVAL;
diff --git a/drivers/gpu/drm/panel/panel-lg-sw43408.c b/drivers/gpu/drm/panel/panel-lg-sw43408.c
index 8fccf66bbcab..d69d1bf4202e 100644
--- a/drivers/gpu/drm/panel/panel-lg-sw43408.c
+++ b/drivers/gpu/drm/panel/panel-lg-sw43408.c
@@ -403,6 +403,7 @@ static int lg_panel_enable(struct drm_panel *panel)
struct drm_dsi_dsc_infoframe pps;
int ret;
+ pr_err("VK: in %s\n", __func__);
if (pinfo->enabled)
return 0;
pr_err("In sw43408 panel_enable\n");
@@ -414,6 +415,7 @@ pr_err("In sw43408 panel_enable\n");
}
if (panel->dsc) {
+ pr_err("VK: dsc is enabled setting it\n");
/* this panel uses DSC so send the pps */
drm_dsc_dsi_pps_header_init(&pps.dsc_header);
drm_dsc_compute_rc_parameters(panel->dsc);
@@ -427,6 +429,8 @@ pr_err("In sw43408 panel_enable\n");
"failed to set pps: %d\n", ret);
return ret;
}
+ } else {
+ pr_err("VK: dsc is NOT enabled\n");
}
pinfo->enabled = true;
@@ -643,6 +647,7 @@ static int panel_add(struct panel_info *pinfo)
{
struct device *dev = &pinfo->link->dev;
int i, ret;
+ pr_err("VK: \n");
pr_err("In sw43408 panel add\n");
pinfo->init_delay_us = 5000;
@@ -693,6 +698,7 @@ static int panel_probe(struct mipi_dsi_device *dsi)
const struct panel_desc *desc;
int err;
+ pr_err("VK: in %s\n", __func__);
pinfo = devm_kzalloc(&dsi->dev, sizeof(*pinfo), GFP_KERNEL);
if (!pinfo)
return -ENOMEM;