Re: Tegra DRM with HDMI support (\o/)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/18/2012 04:38 AM, Stephen Warren wrote:
On 10/16/2012 07:32 PM, Mark Zhang wrote:
On 10/17/2012 12:03 AM, Stephen Warren wrote:
On 10/16/2012 02:18 AM, Mark Zhang wrote:
Hi,

I've made this drm driver worked on Tegra 3(LVDS and HDMI both).
But the code that Thierry
hosts(git://gitorious.org/thierryreding/linux.git) doesn't work
directly. If you build and run it, you'll get a white blank screen on
Tegra 3. I didn't find the root cause but I think this is not caused by
drm driver itself(maybe the PCIE codes?). The main symptom is: some
regulators can't be inited all the time. I tried to build drm driver as
kernel module, after kernel booted, modprobe the drm driver, and you'll
find there are a lot of error prints like this:

=========================================================
[   21.383529] reg-fixed-voltage 1.regulator: Failed to find supply vin
[   21.390299] reg-fixed-voltage 1.regulator: Failed to register
regulator: -517
[   21.397645] platform 1.regulator: Driver reg-fixed-voltage requests
probe deferral
[   21.405604] platform 2.regulator: Driver reg-fixed-voltage requests
probe deferral
=========================================================

This is normal; it's probe deferral. You'll find that those regulators
initialize correctly later. Hopefully tegra-drm handles this correctly,
and passes that error code through as the result of its probe.


I don't think so. In normal scenario, the regulator will be inited
correctly finally. But in the scenario I described above, these
regulators will not be inited correctly all the time. Just as I
mentioned above, I tried to build drm driver as kernel module, that
means I will load drm driver after kernel booting finished. Besides,
during the loading of drm driver, these regulator probe error were still
be printed out. And I'm sure this is not the normal case.

The Cardhu PMIC driver isn't enabled in tegra_defconfig in Thierry's
branch. Do this:

diff --git a/arch/arm/configs/tegra_defconfig b/arch/arm/configs/tegra_defconfig
index c2a2f6e..90f4d5c 100644
--- a/arch/arm/configs/tegra_defconfig
+++ b/arch/arm/configs/tegra_defconfig
@@ -124,16 +124,19 @@ CONFIG_SPI_OCORES=m
  CONFIG_GPIO_SYSFS=y
  CONFIG_GPIO_ADNP=y
  CONFIG_GPIO_TPS6586X=y
+CONFIG_GPIO_TPS65910=y
  CONFIG_POWER_SUPPLY=y
  CONFIG_BATTERY_SBS=y
  CONFIG_SENSORS_LM90=y
-CONFIG_SENSORS_ADC081C=m
  CONFIG_MFD_TPS6586X=y
+CONFIG_MFD_TPS65910=y
  CONFIG_REGULATOR=y
  CONFIG_REGULATOR_FIXED_VOLTAGE=y
  CONFIG_REGULATOR_VIRTUAL_CONSUMER=y
  CONFIG_REGULATOR_GPIO=y
+CONFIG_REGULATOR_TPS62360=y
  CONFIG_REGULATOR_TPS6586X=y
+CONFIG_REGULATOR_TPS65910=y
  CONFIG_DRM=m
  CONFIG_DRM_TEGRA=m
  CONFIG_DRM_TEGRA_DEBUG=y
@@ -172,7 +175,7 @@ CONFIG_RTC_CLASS=y
  CONFIG_RTC_INTF_SYSFS=y
  CONFIG_RTC_INTF_PROC=y
  CONFIG_RTC_INTF_DEV=y
-CONFIG_RTC_DRV_PCF8523=y
+CONFIG_RTC_DRV_TPS65910=y
  CONFIG_RTC_DRV_TEGRA=y
  CONFIG_DMADEVICES=y
  CONFIG_TEGRA20_APB_DMA=y

(That still doesn't make tegradrm work for me on Cardhu, but it does
solve the regulator issue)

Yes, it works. Thank you.
To make the cardhu working(LVDS and HDMI), you need this patch(check below). Sorry I forget to send this patch to Thierry and I'll do that now.

diff --git a/arch/arm/mach-tegra/board-dt-tegra30.c b/arch/arm/mach-tegra/board-dt-tegra30.c
index 03d2932..9f83b35 100644
--- a/arch/arm/mach-tegra/board-dt-tegra30.c
+++ b/arch/arm/mach-tegra/board-dt-tegra30.c
@@ -73,6 +73,10 @@ static __initdata struct tegra_clk_init_table tegra_dt_clk_init_table[] = {
        { "i2s2",       "pll_a_out0",   11289600,       false},
        { "i2s3",       "pll_a_out0",   11289600,       false},
        { "i2s4",       "pll_a_out0",   11289600,       false},
+        { "host1x",     "pll_c",        144000000,      true },
+        { "disp1",      "pll_p",        74000000,       false },
+        { "disp2",      "pll_d2_out0",  148500000,      false },
+        { "hdmi",       "pll_d2_out0",  148500000,      false },
        { NULL,         NULL,           0,              0},
 };

Mark
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [ARM Kernel]     [Linux ARM]     [Linux ARM MSM]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux