gpu: host1x: mipi: Preserve the contents of MIPI_CAL_CTRL
authorSean Paul <seanpaul@chromium.org>
Wed, 10 Sep 2014 14:52:03 +0000 (10:52 -0400)
committerThierry Reding <treding@nvidia.com>
Thu, 13 Nov 2014 15:11:51 +0000 (16:11 +0100)
By paving the CTRL reg value, the current code changes MIPI_CAL_PRESCALE
("Auto-cal calibration step prescale") from 1us to 0.1us (val=0). In the
description for PHY's noise filter (MIPI_CAL_NOISE_FLT), the TRM states
that if the value of the prescale is 0 (or 0.1us), the filter should be
set between 2-5. However, the current code sets it to 0.

For now, let's keep the prescale and filter values as-is, which is most
likely the power-on-reset values of 0x2 and 0xa, respectively.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/gpu/host1x/mipi.c

index a3e215a0116ff28151844c3237f8a54a53bbade9..0d8c3ae8db6ae293bbef52eaab8d4347789296f6 100644 (file)
@@ -208,7 +208,9 @@ int tegra_mipi_calibrate(struct tegra_mipi_device *device)
                tegra_mipi_writel(device->mipi, value, modules[i].reg);
        }
 
-       tegra_mipi_writel(device->mipi, MIPI_CAL_CTRL_START, MIPI_CAL_CTRL);
+       value = tegra_mipi_readl(device->mipi, MIPI_CAL_CTRL);
+       value |= MIPI_CAL_CTRL_START;
+       tegra_mipi_writel(device->mipi, value, MIPI_CAL_CTRL);
 
        err = tegra_mipi_wait(device->mipi);