]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
drm/msm/mdp5: Update bus scaling support
authorArchit Taneja <architt@codeaurora.org>
Thu, 10 Dec 2015 10:54:51 +0000 (16:24 +0530)
committerSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Mon, 11 Jan 2016 09:55:02 +0000 (09:55 +0000)
Modify mdp5_encoder and mdp5_cmd_encoder such that they adapt to the
latest bus scaling API and get bus scale tables via DT.

Replace DOWNSTREAM_CONFIG_MSM_BUS_SCALING with CONFIG_MSM_BUS_SCALING so
that the bus scaling code is used.

Signed-off-by: Archit Taneja <architt@codeaurora.org>
drivers/gpu/drm/msm/mdp/mdp5/mdp5_cmd_encoder.c
drivers/gpu/drm/msm/mdp/mdp5/mdp5_encoder.c

index 8e6c9b598a57e0e1a73faf625d04ec684ffbc12f..70c568bb1dd99b2f025ae446a3371eb5f9311c55 100644 (file)
@@ -32,39 +32,23 @@ static struct mdp5_kms *get_kms(struct drm_encoder *encoder)
        return to_mdp5_kms(to_mdp_kms(priv->kms));
 }
 
-#ifdef DOWNSTREAM_CONFIG_MSM_BUS_SCALING
-#include <mach/board.h>
+#ifdef CONFIG_MSM_BUS_SCALING
 #include <linux/msm-bus.h>
-#include <linux/msm-bus-board.h>
-#define MDP_BUS_VECTOR_ENTRY(ab_val, ib_val)           \
-       {                                               \
-               .src = MSM_BUS_MASTER_MDP_PORT0,        \
-               .dst = MSM_BUS_SLAVE_EBI_CH0,           \
-               .ab = (ab_val),                         \
-               .ib = (ib_val),                         \
-       }
-
-static struct msm_bus_vectors mdp_bus_vectors[] = {
-       MDP_BUS_VECTOR_ENTRY(0, 0),
-       MDP_BUS_VECTOR_ENTRY(2000000000, 2000000000),
-};
-static struct msm_bus_paths mdp_bus_usecases[] = { {
-               .num_paths = 1,
-               .vectors = &mdp_bus_vectors[0],
-}, {
-               .num_paths = 1,
-               .vectors = &mdp_bus_vectors[1],
-} };
-static struct msm_bus_scale_pdata mdp_bus_scale_table = {
-       .usecase = mdp_bus_usecases,
-       .num_usecases = ARRAY_SIZE(mdp_bus_usecases),
-       .name = "mdss_mdp",
-};
 
 static void bs_init(struct mdp5_cmd_encoder *mdp5_cmd_enc)
 {
-       mdp5_cmd_enc->bsc = msm_bus_scale_register_client(
-                       &mdp_bus_scale_table);
+       struct drm_encoder *encoder = &mdp5_cmd_enc->base;
+       struct platform_device *pdev = encoder->dev->platformdev;
+       struct msm_bus_scale_pdata *bus_scale_table;
+
+       bus_scale_table = msm_bus_cl_get_pdata(pdev);
+       if (!bus_scale_table) {
+               DBG("bus scaling is disabled\n");
+       } else {
+               mdp5_cmd_enc->bsc = msm_bus_scale_register_client(
+                                       bus_scale_table);
+       }
+
        DBG("bus scale client: %08x", mdp5_cmd_enc->bsc);
 }
 
index c9e32b08a7a0b3c8807ce76b78018630d315632c..74af751b1109b5be2753a8088cb11c1a575dd249 100644 (file)
@@ -38,39 +38,23 @@ static struct mdp5_kms *get_kms(struct drm_encoder *encoder)
        return to_mdp5_kms(to_mdp_kms(priv->kms));
 }
 
-#ifdef DOWNSTREAM_CONFIG_MSM_BUS_SCALING
-#include <mach/board.h>
-#include <mach/msm_bus.h>
-#include <mach/msm_bus_board.h>
-#define MDP_BUS_VECTOR_ENTRY(ab_val, ib_val)           \
-       {                                               \
-               .src = MSM_BUS_MASTER_MDP_PORT0,        \
-               .dst = MSM_BUS_SLAVE_EBI_CH0,           \
-               .ab = (ab_val),                         \
-               .ib = (ib_val),                         \
-       }
-
-static struct msm_bus_vectors mdp_bus_vectors[] = {
-       MDP_BUS_VECTOR_ENTRY(0, 0),
-       MDP_BUS_VECTOR_ENTRY(2000000000, 2000000000),
-};
-static struct msm_bus_paths mdp_bus_usecases[] = { {
-               .num_paths = 1,
-               .vectors = &mdp_bus_vectors[0],
-}, {
-               .num_paths = 1,
-               .vectors = &mdp_bus_vectors[1],
-} };
-static struct msm_bus_scale_pdata mdp_bus_scale_table = {
-       .usecase = mdp_bus_usecases,
-       .num_usecases = ARRAY_SIZE(mdp_bus_usecases),
-       .name = "mdss_mdp",
-};
+#ifdef CONFIG_MSM_BUS_SCALING
+#include <linux/msm-bus.h>
 
 static void bs_init(struct mdp5_encoder *mdp5_encoder)
 {
-       mdp5_encoder->bsc = msm_bus_scale_register_client(
-                       &mdp_bus_scale_table);
+       struct drm_encoder *encoder = &mdp5_encoder->base;
+       struct platform_device *pdev = encoder->dev->platformdev;
+       struct msm_bus_scale_pdata *bus_scale_table;
+
+       bus_scale_table = msm_bus_cl_get_pdata(pdev);
+       if (!bus_scale_table) {
+               DBG("bus scaling is disabled\n");
+       } else {
+               mdp5_encoder->bsc = msm_bus_scale_register_client(
+                                       bus_scale_table);
+       }
+
        DBG("bus scale client: %08x", mdp5_encoder->bsc);
 }