* [PATCH v3 1/2] ARM: imx6q: Add GPR6 and GPR7 register definitions for iomuxc gpr
@ 2014-02-24 13:51 Philipp Zabel
2014-02-24 13:51 ` [PATCH v3 2/2] ARM i.MX6q: Mark VPU and IPU AXI transfers as cacheable, increase IPU priority Philipp Zabel
2014-02-26 9:10 ` [PATCH v3 1/2] ARM: imx6q: Add GPR6 and GPR7 register definitions for iomuxc gpr Shawn Guo
0 siblings, 2 replies; 3+ messages in thread
From: Philipp Zabel @ 2014-02-24 13:51 UTC (permalink / raw)
To: linux-arm-kernel
Masks for IPU AXI transaction QoS settings
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
---
include/linux/mfd/syscon/imx6q-iomuxc-gpr.h | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h b/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h
index 866e355..ff44374 100644
--- a/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h
+++ b/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h
@@ -242,6 +242,24 @@
#define IMX6Q_GPR5_L2_CLK_STOP BIT(8)
+#define IMX6Q_GPR6_IPU1_ID00_WR_QOS_MASK (0xf << 0)
+#define IMX6Q_GPR6_IPU1_ID01_WR_QOS_MASK (0xf << 4)
+#define IMX6Q_GPR6_IPU1_ID10_WR_QOS_MASK (0xf << 8)
+#define IMX6Q_GPR6_IPU1_ID11_WR_QOS_MASK (0xf << 12)
+#define IMX6Q_GPR6_IPU1_ID00_RD_QOS_MASK (0xf << 16)
+#define IMX6Q_GPR6_IPU1_ID01_RD_QOS_MASK (0xf << 20)
+#define IMX6Q_GPR6_IPU1_ID10_RD_QOS_MASK (0xf << 24)
+#define IMX6Q_GPR6_IPU1_ID11_RD_QOS_MASK (0xf << 28)
+
+#define IMX6Q_GPR7_IPU2_ID00_WR_QOS_MASK (0xf << 0)
+#define IMX6Q_GPR7_IPU2_ID01_WR_QOS_MASK (0xf << 4)
+#define IMX6Q_GPR7_IPU2_ID10_WR_QOS_MASK (0xf << 8)
+#define IMX6Q_GPR7_IPU2_ID11_WR_QOS_MASK (0xf << 12)
+#define IMX6Q_GPR7_IPU2_ID00_RD_QOS_MASK (0xf << 16)
+#define IMX6Q_GPR7_IPU2_ID01_RD_QOS_MASK (0xf << 20)
+#define IMX6Q_GPR7_IPU2_ID10_RD_QOS_MASK (0xf << 24)
+#define IMX6Q_GPR7_IPU2_ID11_RD_QOS_MASK (0xf << 28)
+
#define IMX6Q_GPR8_TX_SWING_LOW (0x7f << 25)
#define IMX6Q_GPR8_TX_SWING_FULL (0x7f << 18)
#define IMX6Q_GPR8_TX_DEEMPH_GEN2_6DB (0x3f << 12)
--
1.8.5.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH v3 2/2] ARM i.MX6q: Mark VPU and IPU AXI transfers as cacheable, increase IPU priority
2014-02-24 13:51 [PATCH v3 1/2] ARM: imx6q: Add GPR6 and GPR7 register definitions for iomuxc gpr Philipp Zabel
@ 2014-02-24 13:51 ` Philipp Zabel
2014-02-26 9:10 ` [PATCH v3 1/2] ARM: imx6q: Add GPR6 and GPR7 register definitions for iomuxc gpr Shawn Guo
1 sibling, 0 replies; 3+ messages in thread
From: Philipp Zabel @ 2014-02-24 13:51 UTC (permalink / raw)
To: linux-arm-kernel
This is needed so that the IPU framebuffer scanout cannot be
starved by VPU or GPU activity.
Some boards like the SabreLite and SabreSD seem to set this in
the DCD already, but the documented register reset values do not
contain the necessary settings.
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
---
Changes since v1:
- Limited to 80 char lines
- Rebased onto Shawn's for-next
---
arch/arm/mach-imx/mach-imx6q.c | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c
index 1e12685..e60456d 100644
--- a/arch/arm/mach-imx/mach-imx6q.c
+++ b/arch/arm/mach-imx/mach-imx6q.c
@@ -228,6 +228,39 @@ put_node:
of_node_put(np);
}
+static void __init imx6q_axi_init(void)
+{
+ struct regmap *gpr;
+ unsigned int mask;
+
+ gpr = syscon_regmap_lookup_by_compatible("fsl,imx6q-iomuxc-gpr");
+ if (!IS_ERR(gpr)) {
+ /*
+ * Enable the cacheable attribute of VPU and IPU
+ * AXI transactions.
+ */
+ mask = IMX6Q_GPR4_VPU_WR_CACHE_SEL |
+ IMX6Q_GPR4_VPU_RD_CACHE_SEL |
+ IMX6Q_GPR4_VPU_P_WR_CACHE_VAL |
+ IMX6Q_GPR4_VPU_P_RD_CACHE_VAL_MASK |
+ IMX6Q_GPR4_IPU_WR_CACHE_CTL |
+ IMX6Q_GPR4_IPU_RD_CACHE_CTL;
+ regmap_update_bits(gpr, IOMUXC_GPR4, mask, mask);
+
+ /* Increase IPU read QoS priority */
+ regmap_update_bits(gpr, IOMUXC_GPR6,
+ IMX6Q_GPR6_IPU1_ID00_RD_QOS_MASK |
+ IMX6Q_GPR6_IPU1_ID01_RD_QOS_MASK,
+ (0xf << 16) | (0x7 << 20));
+ regmap_update_bits(gpr, IOMUXC_GPR7,
+ IMX6Q_GPR7_IPU2_ID00_RD_QOS_MASK |
+ IMX6Q_GPR7_IPU2_ID01_RD_QOS_MASK,
+ (0xf << 16) | (0x7 << 20));
+ } else {
+ pr_warn("failed to find fsl,imx6q-iomuxc-gpr regmap\n");
+ }
+}
+
static void __init imx6q_init_machine(void)
{
struct device *parent;
@@ -248,6 +281,7 @@ static void __init imx6q_init_machine(void)
imx_anatop_init();
cpu_is_imx6q() ? imx6q_pm_init() : imx6dl_pm_init();
imx6q_1588_init();
+ imx6q_axi_init();
}
#define OCOTP_CFG3 0x440
--
1.8.5.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH v3 1/2] ARM: imx6q: Add GPR6 and GPR7 register definitions for iomuxc gpr
2014-02-24 13:51 [PATCH v3 1/2] ARM: imx6q: Add GPR6 and GPR7 register definitions for iomuxc gpr Philipp Zabel
2014-02-24 13:51 ` [PATCH v3 2/2] ARM i.MX6q: Mark VPU and IPU AXI transfers as cacheable, increase IPU priority Philipp Zabel
@ 2014-02-26 9:10 ` Shawn Guo
1 sibling, 0 replies; 3+ messages in thread
From: Shawn Guo @ 2014-02-26 9:10 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, Feb 24, 2014 at 02:51:49PM +0100, Philipp Zabel wrote:
> Masks for IPU AXI transaction QoS settings
>
> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Applied both, thanks.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-02-26 9:10 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-24 13:51 [PATCH v3 1/2] ARM: imx6q: Add GPR6 and GPR7 register definitions for iomuxc gpr Philipp Zabel
2014-02-24 13:51 ` [PATCH v3 2/2] ARM i.MX6q: Mark VPU and IPU AXI transfers as cacheable, increase IPU priority Philipp Zabel
2014-02-26 9:10 ` [PATCH v3 1/2] ARM: imx6q: Add GPR6 and GPR7 register definitions for iomuxc gpr Shawn Guo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).