Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 17 May 2019 02:05:35 +0000 (19:05 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 17 May 2019 02:05:35 +0000 (19:05 -0700)
Pull more clk framework updates from Stephen Boyd:
 "One more patch to remove io.h from clk-provider.h.

  We used to need this include when we had clk_readl() and clk_writel(),
  but those are gone now so this patch pushes the dependency out to the
  users of clk-provider.h"

* tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
  clk: Remove io.h from clk-provider.h

1  2 
drivers/gpu/drm/vc4/vc4_dsi.c
drivers/mfd/intel-lpss.c

@@@ -41,6 -41,7 +41,7 @@@
  #include <linux/component.h>
  #include <linux/dmaengine.h>
  #include <linux/i2c.h>
+ #include <linux/io.h>
  #include <linux/of_address.h>
  #include <linux/of_platform.h>
  #include <linux/pm_runtime.h>
@@@ -545,8 -546,6 +546,8 @@@ struct vc4_dsi 
  
        struct completion xfer_completion;
        int xfer_result;
 +
 +      struct debugfs_regset32 regset;
  };
  
  #define host_to_dsi(host) container_of(host, struct vc4_dsi, dsi_host)
@@@ -607,56 -606,113 +608,56 @@@ to_vc4_dsi_encoder(struct drm_encoder *
        return container_of(encoder, struct vc4_dsi_encoder, base.base);
  }
  
 -#define DSI_REG(reg) { reg, #reg }
 -static const struct {
 -      u32 reg;
 -      const char *name;
 -} dsi0_regs[] = {
 -      DSI_REG(DSI0_CTRL),
 -      DSI_REG(DSI0_STAT),
 -      DSI_REG(DSI0_HSTX_TO_CNT),
 -      DSI_REG(DSI0_LPRX_TO_CNT),
 -      DSI_REG(DSI0_TA_TO_CNT),
 -      DSI_REG(DSI0_PR_TO_CNT),
 -      DSI_REG(DSI0_DISP0_CTRL),
 -      DSI_REG(DSI0_DISP1_CTRL),
 -      DSI_REG(DSI0_INT_STAT),
 -      DSI_REG(DSI0_INT_EN),
 -      DSI_REG(DSI0_PHYC),
 -      DSI_REG(DSI0_HS_CLT0),
 -      DSI_REG(DSI0_HS_CLT1),
 -      DSI_REG(DSI0_HS_CLT2),
 -      DSI_REG(DSI0_HS_DLT3),
 -      DSI_REG(DSI0_HS_DLT4),
 -      DSI_REG(DSI0_HS_DLT5),
 -      DSI_REG(DSI0_HS_DLT6),
 -      DSI_REG(DSI0_HS_DLT7),
 -      DSI_REG(DSI0_PHY_AFEC0),
 -      DSI_REG(DSI0_PHY_AFEC1),
 -      DSI_REG(DSI0_ID),
 +static const struct debugfs_reg32 dsi0_regs[] = {
 +      VC4_REG32(DSI0_CTRL),
 +      VC4_REG32(DSI0_STAT),
 +      VC4_REG32(DSI0_HSTX_TO_CNT),
 +      VC4_REG32(DSI0_LPRX_TO_CNT),
 +      VC4_REG32(DSI0_TA_TO_CNT),
 +      VC4_REG32(DSI0_PR_TO_CNT),
 +      VC4_REG32(DSI0_DISP0_CTRL),
 +      VC4_REG32(DSI0_DISP1_CTRL),
 +      VC4_REG32(DSI0_INT_STAT),
 +      VC4_REG32(DSI0_INT_EN),
 +      VC4_REG32(DSI0_PHYC),
 +      VC4_REG32(DSI0_HS_CLT0),
 +      VC4_REG32(DSI0_HS_CLT1),
 +      VC4_REG32(DSI0_HS_CLT2),
 +      VC4_REG32(DSI0_HS_DLT3),
 +      VC4_REG32(DSI0_HS_DLT4),
 +      VC4_REG32(DSI0_HS_DLT5),
 +      VC4_REG32(DSI0_HS_DLT6),
 +      VC4_REG32(DSI0_HS_DLT7),
 +      VC4_REG32(DSI0_PHY_AFEC0),
 +      VC4_REG32(DSI0_PHY_AFEC1),
 +      VC4_REG32(DSI0_ID),
  };
  
 -static const struct {
 -      u32 reg;
 -      const char *name;
 -} dsi1_regs[] = {
 -      DSI_REG(DSI1_CTRL),
 -      DSI_REG(DSI1_STAT),
 -      DSI_REG(DSI1_HSTX_TO_CNT),
 -      DSI_REG(DSI1_LPRX_TO_CNT),
 -      DSI_REG(DSI1_TA_TO_CNT),
 -      DSI_REG(DSI1_PR_TO_CNT),
 -      DSI_REG(DSI1_DISP0_CTRL),
 -      DSI_REG(DSI1_DISP1_CTRL),
 -      DSI_REG(DSI1_INT_STAT),
 -      DSI_REG(DSI1_INT_EN),
 -      DSI_REG(DSI1_PHYC),
 -      DSI_REG(DSI1_HS_CLT0),
 -      DSI_REG(DSI1_HS_CLT1),
 -      DSI_REG(DSI1_HS_CLT2),
 -      DSI_REG(DSI1_HS_DLT3),
 -      DSI_REG(DSI1_HS_DLT4),
 -      DSI_REG(DSI1_HS_DLT5),
 -      DSI_REG(DSI1_HS_DLT6),
 -      DSI_REG(DSI1_HS_DLT7),
 -      DSI_REG(DSI1_PHY_AFEC0),
 -      DSI_REG(DSI1_PHY_AFEC1),
 -      DSI_REG(DSI1_ID),
 +static const struct debugfs_reg32 dsi1_regs[] = {
 +      VC4_REG32(DSI1_CTRL),
 +      VC4_REG32(DSI1_STAT),
 +      VC4_REG32(DSI1_HSTX_TO_CNT),
 +      VC4_REG32(DSI1_LPRX_TO_CNT),
 +      VC4_REG32(DSI1_TA_TO_CNT),
 +      VC4_REG32(DSI1_PR_TO_CNT),
 +      VC4_REG32(DSI1_DISP0_CTRL),
 +      VC4_REG32(DSI1_DISP1_CTRL),
 +      VC4_REG32(DSI1_INT_STAT),
 +      VC4_REG32(DSI1_INT_EN),
 +      VC4_REG32(DSI1_PHYC),
 +      VC4_REG32(DSI1_HS_CLT0),
 +      VC4_REG32(DSI1_HS_CLT1),
 +      VC4_REG32(DSI1_HS_CLT2),
 +      VC4_REG32(DSI1_HS_DLT3),
 +      VC4_REG32(DSI1_HS_DLT4),
 +      VC4_REG32(DSI1_HS_DLT5),
 +      VC4_REG32(DSI1_HS_DLT6),
 +      VC4_REG32(DSI1_HS_DLT7),
 +      VC4_REG32(DSI1_PHY_AFEC0),
 +      VC4_REG32(DSI1_PHY_AFEC1),
 +      VC4_REG32(DSI1_ID),
  };
  
 -static void vc4_dsi_dump_regs(struct vc4_dsi *dsi)
 -{
 -      int i;
 -
 -      if (dsi->port == 0) {
 -              for (i = 0; i < ARRAY_SIZE(dsi0_regs); i++) {
 -                      DRM_INFO("0x%04x (%s): 0x%08x\n",
 -                               dsi0_regs[i].reg, dsi0_regs[i].name,
 -                               DSI_READ(dsi0_regs[i].reg));
 -              }
 -      } else {
 -              for (i = 0; i < ARRAY_SIZE(dsi1_regs); i++) {
 -                      DRM_INFO("0x%04x (%s): 0x%08x\n",
 -                               dsi1_regs[i].reg, dsi1_regs[i].name,
 -                               DSI_READ(dsi1_regs[i].reg));
 -              }
 -      }
 -}
 -
 -#ifdef CONFIG_DEBUG_FS
 -int vc4_dsi_debugfs_regs(struct seq_file *m, void *unused)
 -{
 -      struct drm_info_node *node = (struct drm_info_node *)m->private;
 -      struct drm_device *drm = node->minor->dev;
 -      struct vc4_dev *vc4 = to_vc4_dev(drm);
 -      int dsi_index = (uintptr_t)node->info_ent->data;
 -      struct vc4_dsi *dsi = (dsi_index == 1 ? vc4->dsi1 : NULL);
 -      int i;
 -
 -      if (!dsi)
 -              return 0;
 -
 -      if (dsi->port == 0) {
 -              for (i = 0; i < ARRAY_SIZE(dsi0_regs); i++) {
 -                      seq_printf(m, "0x%04x (%s): 0x%08x\n",
 -                                 dsi0_regs[i].reg, dsi0_regs[i].name,
 -                                 DSI_READ(dsi0_regs[i].reg));
 -              }
 -      } else {
 -              for (i = 0; i < ARRAY_SIZE(dsi1_regs); i++) {
 -                      seq_printf(m, "0x%04x (%s): 0x%08x\n",
 -                                 dsi1_regs[i].reg, dsi1_regs[i].name,
 -                                 DSI_READ(dsi1_regs[i].reg));
 -              }
 -      }
 -
 -      return 0;
 -}
 -#endif
 -
  static void vc4_dsi_encoder_destroy(struct drm_encoder *encoder)
  {
        drm_encoder_cleanup(encoder);
@@@ -845,9 -901,8 +846,9 @@@ static void vc4_dsi_encoder_enable(stru
        }
  
        if (debug_dump_regs) {
 -              DRM_INFO("DSI regs before:\n");
 -              vc4_dsi_dump_regs(dsi);
 +              struct drm_printer p = drm_info_printer(&dsi->pdev->dev);
 +              dev_info(&dsi->pdev->dev, "DSI regs before:\n");
 +              drm_print_regset32(&p, &dsi->regset);
        }
  
        /* Round up the clk_set_rate() request slightly, since
        drm_bridge_enable(dsi->bridge);
  
        if (debug_dump_regs) {
 -              DRM_INFO("DSI regs after:\n");
 -              vc4_dsi_dump_regs(dsi);
 +              struct drm_printer p = drm_info_printer(&dsi->pdev->dev);
 +              dev_info(&dsi->pdev->dev, "DSI regs after:\n");
 +              drm_print_regset32(&p, &dsi->regset);
        }
  }
  
@@@ -1474,15 -1528,6 +1475,15 @@@ static int vc4_dsi_bind(struct device *
        if (IS_ERR(dsi->regs))
                return PTR_ERR(dsi->regs);
  
 +      dsi->regset.base = dsi->regs;
 +      if (dsi->port == 0) {
 +              dsi->regset.regs = dsi0_regs;
 +              dsi->regset.nregs = ARRAY_SIZE(dsi0_regs);
 +      } else {
 +              dsi->regset.regs = dsi1_regs;
 +              dsi->regset.nregs = ARRAY_SIZE(dsi1_regs);
 +      }
 +
        if (DSI_PORT_READ(ID) != DSI_ID_VALUE) {
                dev_err(dev, "Port returned 0x%08x for ID instead of 0x%08x\n",
                        DSI_PORT_READ(ID), DSI_ID_VALUE);
         */
        dsi->encoder->bridge = NULL;
  
 +      if (dsi->port == 0)
 +              vc4_debugfs_add_regset32(drm, "dsi0_regs", &dsi->regset);
 +      else
 +              vc4_debugfs_add_regset32(drm, "dsi1_regs", &dsi->regset);
 +
        pm_runtime_enable(dev);
  
        return 0;
diff --combined drivers/mfd/intel-lpss.c
@@@ -18,6 -18,7 +18,7 @@@
  #include <linux/clk-provider.h>
  #include <linux/debugfs.h>
  #include <linux/idr.h>
+ #include <linux/io.h>
  #include <linux/ioport.h>
  #include <linux/kernel.h>
  #include <linux/module.h>
@@@ -28,8 -29,6 +29,8 @@@
  #include <linux/seq_file.h>
  #include <linux/io-64-nonatomic-lo-hi.h>
  
 +#include <linux/dma/idma64.h>
 +
  #include "intel-lpss.h"
  
  #define LPSS_DEV_OFFSET               0x000
@@@ -98,6 -97,8 +99,6 @@@ static const struct resource intel_lpss
        DEFINE_RES_IRQ(0),
  };
  
 -#define LPSS_IDMA64_DRIVER_NAME               "idma64"
 -
  /*
   * Cells needs to be ordered so that the iDMA is created first. This is
   * because we need to be sure the DMA is available when the host controller
@@@ -273,9 -274,6 +274,9 @@@ static void intel_lpss_init_dev(const s
  {
        u32 value = LPSS_PRIV_SSP_REG_DIS_DMA_FIN;
  
 +      /* Set the device in reset state */
 +      writel(0, lpss->priv + LPSS_PRIV_RESETS);
 +
        intel_lpss_deassert_reset(lpss);
  
        intel_lpss_set_remap_addr(lpss);