Move audio-related functions to dp_audio.c, following up the cleanup
done by the rest of the submodules. Inline functions with simple
register access patterns.

Reviewed-by: Stephen Boyd <swb...@chromium.org>
Tested-by: Stephen Boyd <swb...@chromium.org> # sc7180-trogdor
Signed-off-by: Dmitry Baryshkov <dmitry.barysh...@linaro.org>
---
 drivers/gpu/drm/msm/dp/dp_audio.c   | 112 +++++++++++++++++++++---
 drivers/gpu/drm/msm/dp/dp_catalog.c | 166 ------------------------------------
 drivers/gpu/drm/msm/dp/dp_catalog.h |  16 ----
 3 files changed, 98 insertions(+), 196 deletions(-)

diff --git a/drivers/gpu/drm/msm/dp/dp_audio.c 
b/drivers/gpu/drm/msm/dp/dp_audio.c
index 
a4b792624ccc444f8912eb967d722cb94f6d4087..6a6b4032548cf3298e7fa75795401ec0925d48d4
 100644
--- a/drivers/gpu/drm/msm/dp/dp_audio.c
+++ b/drivers/gpu/drm/msm/dp/dp_audio.c
@@ -31,67 +31,129 @@ struct msm_dp_audio_private {
 
 static void msm_dp_audio_stream_sdp(struct msm_dp_audio_private *audio)
 {
+       struct msm_dp_catalog *catalog = audio->catalog;
        struct dp_sdp_header sdp_hdr = {
                .HB0 = 0x00,
                .HB1 = 0x02,
                .HB2 = 0x00,
                .HB3 = audio->channels - 1,
        };
+       u32 header[2];
+
+       msm_dp_utils_pack_sdp_header(&sdp_hdr, header);
 
-       msm_dp_catalog_write_audio_stream(audio->catalog, &sdp_hdr);
+       msm_dp_write_link(catalog, MMSS_DP_AUDIO_STREAM_0, header[0]);
+       msm_dp_write_link(catalog, MMSS_DP_AUDIO_STREAM_1, header[1]);
 }
 
 static void msm_dp_audio_timestamp_sdp(struct msm_dp_audio_private *audio)
 {
+       struct msm_dp_catalog *catalog = audio->catalog;
        struct dp_sdp_header sdp_hdr = {
                .HB0 = 0x00,
                .HB1 = 0x01,
                .HB2 = 0x17,
                .HB3 = 0x0 | (0x11 << 2),
        };
+       u32 header[2];
 
-       msm_dp_catalog_write_audio_timestamp(audio->catalog, &sdp_hdr);
+       msm_dp_utils_pack_sdp_header(&sdp_hdr, header);
+
+       msm_dp_write_link(catalog, MMSS_DP_AUDIO_TIMESTAMP_0, header[0]);
+       msm_dp_write_link(catalog, MMSS_DP_AUDIO_TIMESTAMP_1, header[1]);
 }
 
 static void msm_dp_audio_infoframe_sdp(struct msm_dp_audio_private *audio)
 {
+       struct msm_dp_catalog *catalog = audio->catalog;
        struct dp_sdp_header sdp_hdr = {
                .HB0 = 0x00,
                .HB1 = 0x84,
                .HB2 = 0x1b,
                .HB3 = 0x0 | (0x11 << 2),
        };
+       u32 header[2];
+
+       msm_dp_utils_pack_sdp_header(&sdp_hdr, header);
 
-       msm_dp_catalog_write_audio_infoframe(audio->catalog, &sdp_hdr);
+       msm_dp_write_link(catalog, MMSS_DP_AUDIO_INFOFRAME_0, header[0]);
+       msm_dp_write_link(catalog, MMSS_DP_AUDIO_INFOFRAME_1, header[1]);
 }
 
 static void msm_dp_audio_copy_management_sdp(struct msm_dp_audio_private 
*audio)
 {
+       struct msm_dp_catalog *catalog = audio->catalog;
        struct dp_sdp_header sdp_hdr = {
                .HB0 = 0x00,
                .HB1 = 0x05,
                .HB2 = 0x0f,
                .HB3 = 0x00,
        };
+       u32 header[2];
+
+       msm_dp_utils_pack_sdp_header(&sdp_hdr, header);
 
-       msm_dp_catalog_write_audio_copy_mgmt(audio->catalog, &sdp_hdr);
+       msm_dp_write_link(catalog, MMSS_DP_AUDIO_COPYMANAGEMENT_0, header[0]);
+       msm_dp_write_link(catalog, MMSS_DP_AUDIO_COPYMANAGEMENT_1, header[1]);
 }
 
 static void msm_dp_audio_isrc_sdp(struct msm_dp_audio_private *audio)
 {
+       struct msm_dp_catalog *catalog = audio->catalog;
        struct dp_sdp_header sdp_hdr = {
                .HB0 = 0x00,
                .HB1 = 0x06,
                .HB2 = 0x0f,
                .HB3 = 0x00,
        };
+       u32 header[2];
+       u32 reg;
+
+       /* XXX: is it necessary to preserve this field? */
+       reg = msm_dp_read_link(catalog, MMSS_DP_AUDIO_ISRC_1);
+       sdp_hdr.HB3 = FIELD_GET(HEADER_3_MASK, reg);
+
+       msm_dp_utils_pack_sdp_header(&sdp_hdr, header);
+
+       msm_dp_write_link(catalog, MMSS_DP_AUDIO_ISRC_0, header[0]);
+       msm_dp_write_link(catalog, MMSS_DP_AUDIO_ISRC_1, header[1]);
+}
 
-       msm_dp_catalog_write_audio_isrc(audio->catalog, &sdp_hdr);
+static void msm_dp_audio_config_sdp(struct msm_dp_audio_private *audio)
+{
+       struct msm_dp_catalog *msm_dp_catalog = audio->catalog;
+       u32 sdp_cfg, sdp_cfg2;
+
+       sdp_cfg = msm_dp_read_link(msm_dp_catalog, MMSS_DP_SDP_CFG);
+       /* AUDIO_TIMESTAMP_SDP_EN */
+       sdp_cfg |= BIT(1);
+       /* AUDIO_STREAM_SDP_EN */
+       sdp_cfg |= BIT(2);
+       /* AUDIO_COPY_MANAGEMENT_SDP_EN */
+       sdp_cfg |= BIT(5);
+       /* AUDIO_ISRC_SDP_EN  */
+       sdp_cfg |= BIT(6);
+       /* AUDIO_INFOFRAME_SDP_EN  */
+       sdp_cfg |= BIT(20);
+
+       drm_dbg_dp(audio->drm_dev, "sdp_cfg = 0x%x\n", sdp_cfg);
+
+       msm_dp_write_link(msm_dp_catalog, MMSS_DP_SDP_CFG, sdp_cfg);
+
+       sdp_cfg2 = msm_dp_read_link(msm_dp_catalog, MMSS_DP_SDP_CFG2);
+       /* IFRM_REGSRC -> Do not use reg values */
+       sdp_cfg2 &= ~BIT(0);
+       /* AUDIO_STREAM_HB3_REGSRC-> Do not use reg values */
+       sdp_cfg2 &= ~BIT(1);
+
+       drm_dbg_dp(audio->drm_dev, "sdp_cfg2 = 0x%x\n", sdp_cfg2);
+
+       msm_dp_write_link(msm_dp_catalog, MMSS_DP_SDP_CFG2, sdp_cfg2);
 }
 
 static void msm_dp_audio_setup_sdp(struct msm_dp_audio_private *audio)
 {
-       msm_dp_catalog_audio_config_sdp(audio->catalog);
+       msm_dp_audio_config_sdp(audio);
 
        msm_dp_audio_stream_sdp(audio);
        msm_dp_audio_timestamp_sdp(audio);
@@ -102,8 +164,7 @@ static void msm_dp_audio_setup_sdp(struct 
msm_dp_audio_private *audio)
 
 static void msm_dp_audio_setup_acr(struct msm_dp_audio_private *audio)
 {
-       u32 select = 0;
-       struct msm_dp_catalog *catalog = audio->catalog;
+       u32 select, acr_ctrl;
 
        switch (audio->msm_dp_audio.bw_code) {
        case DP_LINK_BW_1_62:
@@ -124,13 +185,17 @@ static void msm_dp_audio_setup_acr(struct 
msm_dp_audio_private *audio)
                break;
        }
 
-       msm_dp_catalog_audio_config_acr(catalog, select);
+       acr_ctrl = select << 4 | BIT(31) | BIT(8) | BIT(14);
+
+       drm_dbg_dp(audio->drm_dev, "select: %#x, acr_ctrl: %#x\n",
+                  select, acr_ctrl);
+
+       msm_dp_write_link(audio->catalog, MMSS_DP_AUDIO_ACR_CTRL, acr_ctrl);
 }
 
 static void msm_dp_audio_safe_to_exit_level(struct msm_dp_audio_private *audio)
 {
-       struct msm_dp_catalog *catalog = audio->catalog;
-       u32 safe_to_exit_level = 0;
+       u32 safe_to_exit_level, mainlink_levels;
 
        switch (audio->msm_dp_audio.lane_count) {
        case 1:
@@ -150,14 +215,33 @@ static void msm_dp_audio_safe_to_exit_level(struct 
msm_dp_audio_private *audio)
                break;
        }
 
-       msm_dp_catalog_audio_sfe_level(catalog, safe_to_exit_level);
+       mainlink_levels = msm_dp_read_link(audio->catalog, 
REG_DP_MAINLINK_LEVELS);
+       mainlink_levels &= 0xFE0;
+       mainlink_levels |= safe_to_exit_level;
+
+       drm_dbg_dp(audio->drm_dev,
+                  "mainlink_level = 0x%x, safe_to_exit_level = 0x%x\n",
+                  mainlink_levels, safe_to_exit_level);
+
+       msm_dp_write_link(audio->catalog, REG_DP_MAINLINK_LEVELS, 
mainlink_levels);
 }
 
 static void msm_dp_audio_enable(struct msm_dp_audio_private *audio, bool 
enable)
 {
-       struct msm_dp_catalog *catalog = audio->catalog;
+       u32 audio_ctrl;
+
+       audio_ctrl = msm_dp_read_link(audio->catalog, MMSS_DP_AUDIO_CFG);
+
+       if (enable)
+               audio_ctrl |= BIT(0);
+       else
+               audio_ctrl &= ~BIT(0);
+
+       drm_dbg_dp(audio->drm_dev, "dp_audio_cfg = 0x%x\n", audio_ctrl);
 
-       msm_dp_catalog_audio_enable(catalog, enable);
+       msm_dp_write_link(audio->catalog, MMSS_DP_AUDIO_CFG, audio_ctrl);
+       /* make sure audio engine is disabled */
+       wmb();
 }
 
 static struct msm_dp_audio_private *msm_dp_audio_get_data(struct 
platform_device *pdev)
diff --git a/drivers/gpu/drm/msm/dp/dp_catalog.c 
b/drivers/gpu/drm/msm/dp/dp_catalog.c
index 
e9db5585c1325fe5e067526f567e39387d5a4f47..332d168811c28f5c54069db9754ecf69904d5b24
 100644
--- a/drivers/gpu/drm/msm/dp/dp_catalog.c
+++ b/drivers/gpu/drm/msm/dp/dp_catalog.c
@@ -670,169 +670,3 @@ struct msm_dp_catalog *msm_dp_catalog_get(struct device 
*dev)
 
        return &catalog->msm_dp_catalog;
 }
-
-void msm_dp_catalog_write_audio_stream(struct msm_dp_catalog *msm_dp_catalog,
-                                      struct dp_sdp_header *sdp_hdr)
-{
-       u32 header[2];
-
-       msm_dp_utils_pack_sdp_header(sdp_hdr, header);
-
-       msm_dp_write_link(msm_dp_catalog, MMSS_DP_AUDIO_STREAM_0, header[0]);
-       msm_dp_write_link(msm_dp_catalog, MMSS_DP_AUDIO_STREAM_1, header[1]);
-}
-
-void msm_dp_catalog_write_audio_timestamp(struct msm_dp_catalog 
*msm_dp_catalog,
-                                         struct dp_sdp_header *sdp_hdr)
-{
-       u32 header[2];
-
-       msm_dp_utils_pack_sdp_header(sdp_hdr, header);
-
-       msm_dp_write_link(msm_dp_catalog, MMSS_DP_AUDIO_TIMESTAMP_0, header[0]);
-       msm_dp_write_link(msm_dp_catalog, MMSS_DP_AUDIO_TIMESTAMP_1, header[1]);
-}
-
-void msm_dp_catalog_write_audio_infoframe(struct msm_dp_catalog 
*msm_dp_catalog,
-                                         struct dp_sdp_header *sdp_hdr)
-{
-       u32 header[2];
-
-       msm_dp_utils_pack_sdp_header(sdp_hdr, header);
-
-       msm_dp_write_link(msm_dp_catalog, MMSS_DP_AUDIO_INFOFRAME_0, header[0]);
-       msm_dp_write_link(msm_dp_catalog, MMSS_DP_AUDIO_INFOFRAME_1, header[1]);
-}
-
-void msm_dp_catalog_write_audio_copy_mgmt(struct msm_dp_catalog 
*msm_dp_catalog,
-                                         struct dp_sdp_header *sdp_hdr)
-{
-       u32 header[2];
-
-       msm_dp_utils_pack_sdp_header(sdp_hdr, header);
-
-       msm_dp_write_link(msm_dp_catalog, MMSS_DP_AUDIO_COPYMANAGEMENT_0, 
header[0]);
-       msm_dp_write_link(msm_dp_catalog, MMSS_DP_AUDIO_COPYMANAGEMENT_1, 
header[1]);
-}
-
-void msm_dp_catalog_write_audio_isrc(struct msm_dp_catalog *msm_dp_catalog,
-                                    struct dp_sdp_header *sdp_hdr)
-{
-       struct dp_sdp_header tmp = *sdp_hdr;
-       u32 header[2];
-       u32 reg;
-
-       /* XXX: is it necessary to preserve this field? */
-       reg = msm_dp_read_link(msm_dp_catalog, MMSS_DP_AUDIO_ISRC_1);
-       tmp.HB3 = FIELD_GET(HEADER_3_MASK, reg);
-
-       msm_dp_utils_pack_sdp_header(&tmp, header);
-
-       msm_dp_write_link(msm_dp_catalog, MMSS_DP_AUDIO_ISRC_0, header[0]);
-       msm_dp_write_link(msm_dp_catalog, MMSS_DP_AUDIO_ISRC_1, header[1]);
-}
-
-void msm_dp_catalog_audio_config_acr(struct msm_dp_catalog *msm_dp_catalog, 
u32 select)
-{
-       struct msm_dp_catalog_private *catalog;
-       u32 acr_ctrl;
-
-       if (!msm_dp_catalog)
-               return;
-
-       catalog = container_of(msm_dp_catalog,
-               struct msm_dp_catalog_private, msm_dp_catalog);
-
-       acr_ctrl = select << 4 | BIT(31) | BIT(8) | BIT(14);
-
-       drm_dbg_dp(catalog->drm_dev, "select: %#x, acr_ctrl: %#x\n",
-                                       select, acr_ctrl);
-
-       msm_dp_write_link(msm_dp_catalog, MMSS_DP_AUDIO_ACR_CTRL, acr_ctrl);
-}
-
-void msm_dp_catalog_audio_enable(struct msm_dp_catalog *msm_dp_catalog, bool 
enable)
-{
-       struct msm_dp_catalog_private *catalog;
-       u32 audio_ctrl;
-
-       if (!msm_dp_catalog)
-               return;
-
-       catalog = container_of(msm_dp_catalog,
-               struct msm_dp_catalog_private, msm_dp_catalog);
-
-       audio_ctrl = msm_dp_read_link(msm_dp_catalog, MMSS_DP_AUDIO_CFG);
-
-       if (enable)
-               audio_ctrl |= BIT(0);
-       else
-               audio_ctrl &= ~BIT(0);
-
-       drm_dbg_dp(catalog->drm_dev, "dp_audio_cfg = 0x%x\n", audio_ctrl);
-
-       msm_dp_write_link(msm_dp_catalog, MMSS_DP_AUDIO_CFG, audio_ctrl);
-       /* make sure audio engine is disabled */
-       wmb();
-}
-
-void msm_dp_catalog_audio_config_sdp(struct msm_dp_catalog *msm_dp_catalog)
-{
-       struct msm_dp_catalog_private *catalog;
-       u32 sdp_cfg = 0;
-       u32 sdp_cfg2 = 0;
-
-       if (!msm_dp_catalog)
-               return;
-
-       catalog = container_of(msm_dp_catalog,
-               struct msm_dp_catalog_private, msm_dp_catalog);
-
-       sdp_cfg = msm_dp_read_link(msm_dp_catalog, MMSS_DP_SDP_CFG);
-       /* AUDIO_TIMESTAMP_SDP_EN */
-       sdp_cfg |= BIT(1);
-       /* AUDIO_STREAM_SDP_EN */
-       sdp_cfg |= BIT(2);
-       /* AUDIO_COPY_MANAGEMENT_SDP_EN */
-       sdp_cfg |= BIT(5);
-       /* AUDIO_ISRC_SDP_EN  */
-       sdp_cfg |= BIT(6);
-       /* AUDIO_INFOFRAME_SDP_EN  */
-       sdp_cfg |= BIT(20);
-
-       drm_dbg_dp(catalog->drm_dev, "sdp_cfg = 0x%x\n", sdp_cfg);
-
-       msm_dp_write_link(msm_dp_catalog, MMSS_DP_SDP_CFG, sdp_cfg);
-
-       sdp_cfg2 = msm_dp_read_link(msm_dp_catalog, MMSS_DP_SDP_CFG2);
-       /* IFRM_REGSRC -> Do not use reg values */
-       sdp_cfg2 &= ~BIT(0);
-       /* AUDIO_STREAM_HB3_REGSRC-> Do not use reg values */
-       sdp_cfg2 &= ~BIT(1);
-
-       drm_dbg_dp(catalog->drm_dev, "sdp_cfg2 = 0x%x\n", sdp_cfg2);
-
-       msm_dp_write_link(msm_dp_catalog, MMSS_DP_SDP_CFG2, sdp_cfg2);
-}
-
-void msm_dp_catalog_audio_sfe_level(struct msm_dp_catalog *msm_dp_catalog, u32 
safe_to_exit_level)
-{
-       struct msm_dp_catalog_private *catalog;
-       u32 mainlink_levels;
-
-       if (!msm_dp_catalog)
-               return;
-
-       catalog = container_of(msm_dp_catalog,
-               struct msm_dp_catalog_private, msm_dp_catalog);
-
-       mainlink_levels = msm_dp_read_link(msm_dp_catalog, 
REG_DP_MAINLINK_LEVELS);
-       mainlink_levels &= 0xFE0;
-       mainlink_levels |= safe_to_exit_level;
-
-       drm_dbg_dp(catalog->drm_dev,
-                       "mainlink_level = 0x%x, safe_to_exit_level = 0x%x\n",
-                        mainlink_levels, safe_to_exit_level);
-
-       msm_dp_write_link(msm_dp_catalog, REG_DP_MAINLINK_LEVELS, 
mainlink_levels);
-}
diff --git a/drivers/gpu/drm/msm/dp/dp_catalog.h 
b/drivers/gpu/drm/msm/dp/dp_catalog.h
index 
60f08fe888cb110e3fc3dfb1d763a57bd5bf47f6..9ebdc9bd865c566efb97cf0edbdcd809e5a713e7
 100644
--- a/drivers/gpu/drm/msm/dp/dp_catalog.h
+++ b/drivers/gpu/drm/msm/dp/dp_catalog.h
@@ -150,20 +150,4 @@ u32 msm_dp_catalog_ctrl_read_phy_pattern(struct 
msm_dp_catalog *msm_dp_catalog);
 
 struct msm_dp_catalog *msm_dp_catalog_get(struct device *dev);
 
-/* DP Audio APIs */
-void msm_dp_catalog_write_audio_stream(struct msm_dp_catalog *msm_dp_catalog,
-                                      struct dp_sdp_header *sdp_hdr);
-void msm_dp_catalog_write_audio_timestamp(struct msm_dp_catalog 
*msm_dp_catalog,
-                                         struct dp_sdp_header *sdp_hdr);
-void msm_dp_catalog_write_audio_infoframe(struct msm_dp_catalog 
*msm_dp_catalog,
-                                         struct dp_sdp_header *sdp_hdr);
-void msm_dp_catalog_write_audio_copy_mgmt(struct msm_dp_catalog 
*msm_dp_catalog,
-                                         struct dp_sdp_header *sdp_hdr);
-void msm_dp_catalog_write_audio_isrc(struct msm_dp_catalog *msm_dp_catalog,
-                                    struct dp_sdp_header *sdp_hdr);
-void msm_dp_catalog_audio_config_acr(struct msm_dp_catalog *catalog, u32 
select);
-void msm_dp_catalog_audio_enable(struct msm_dp_catalog *catalog, bool enable);
-void msm_dp_catalog_audio_config_sdp(struct msm_dp_catalog *catalog);
-void msm_dp_catalog_audio_sfe_level(struct msm_dp_catalog *catalog, u32 
safe_to_exit_level);
-
 #endif /* _DP_CATALOG_H_ */

-- 
2.39.5

Reply via email to