Message ID | 1415269965-427-1-git-send-email-inki.dae@samsung.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
On 06.11.2014 11:32, Inki Dae wrote: > This patch resolves temporarily infinite loop issue incurred > when Exynos drm driver is enabled and multi-platform kernel > is used by registering Exynos drm device object only in case > of Exynos SoC. So this patch will be replaced with more generic > way later. Does not help for Rinato board. On Rinato: ----------------------- Failed to find PMU node Registering SWP/SWPB emulation handler mmc0: BKOPS_EN bit is not set mmc_host mmc0: Bus speed (slot 0) = 100000000Hz (slot req 100000000Hz, actual 100000000HZ div = 0) exynos-drm-ipp exynos-drm-ipp: drm ipp registered successfully. mmc0: new HS200 MMC card at address 0001 platform exynos-drm: Driver exynos-drm requests probe deferral mmcblk0: mmc0:0001 F5X5MA 3.64 GiB mmcblk0boot0: mmc0:0001 F5X5MA partition 1 4.00 MiB exynos-drm-ipp exynos-drm-ipp: drm ipp registered successfully. mmcblk0boot1: mmc0:0001 F5X5MA partition 2 4.00 MiB platform exynos-drm: Driver exynos-drm requests probe deferral mmcblk0rpmb: mmc0:0001 F5X5MA partition 3 512 KiB exynos-drm-ipp exynos-drm-ipp: drm ipp registered successfully. platform exynos-drm: Driver exynos-drm requests probe deferral mmcblk0: p1 p2 p3 p4 p5 p6 p7 exynos-drm-ipp exynos-drm-ipp: drm ipp registered successfully. platform exynos-drm: Driver exynos-drm requests probe deferral exynos-drm-ipp exynos-drm-ipp: drm ipp registered successfully. platform exynos-drm: Driver exynos-drm requests probe deferral and so on... ----------------------- I do not know whether it is related but Trats2 board cannot boot due to lockup after: [drm] Initialized drm 1.1.0 20060810 (with or without the patch) https://lkml.org/lkml/2014/11/6/125 Best regards, Krzysztof > > Signed-off-by: Inki Dae <inki.dae@samsung.com> > --- > drivers/gpu/drm/exynos/exynos_drm_drv.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c > index 443a206..ecc86aa 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c > @@ -734,6 +734,18 @@ static int exynos_drm_init(void) > { > int ret; > > + /* > + * Register device object only in case of Exynos SoC. > + * > + * Below codes resolves temporarily infinite loop issue incurred > + * by Exynos drm driver when using multi-platform kernel. > + * So these codes will be replaced with more generic way later. > + */ > + if (!of_machine_is_compatible("samsung,exynos3") && > + !of_machine_is_compatible("samsung,exynos4") && > + !of_machine_is_compatible("samsung,exynos5")) > + return -ENODEV; > + > exynos_drm_pdev = platform_device_register_simple("exynos-drm", -1, > NULL, 0); > if (IS_ERR(exynos_drm_pdev)) > -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 2014? 11? 06? 21:11, Krzysztof Koz?owski wrote: > On 06.11.2014 11:32, Inki Dae wrote: >> This patch resolves temporarily infinite loop issue incurred >> when Exynos drm driver is enabled and multi-platform kernel >> is used by registering Exynos drm device object only in case >> of Exynos SoC. So this patch will be replaced with more generic >> way later. > > Does not help for Rinato board. > > On Rinato: > ----------------------- > Failed to find PMU node > Registering SWP/SWPB emulation handler > mmc0: BKOPS_EN bit is not set > mmc_host mmc0: Bus speed (slot 0) = 100000000Hz (slot req 100000000Hz, > actual 100000000HZ div = 0) > exynos-drm-ipp exynos-drm-ipp: drm ipp registered successfully. > mmc0: new HS200 MMC card at address 0001 > platform exynos-drm: Driver exynos-drm requests probe deferral > mmcblk0: mmc0:0001 F5X5MA 3.64 GiB > mmcblk0boot0: mmc0:0001 F5X5MA partition 1 4.00 MiB > exynos-drm-ipp exynos-drm-ipp: drm ipp registered successfully. > mmcblk0boot1: mmc0:0001 F5X5MA partition 2 4.00 MiB > platform exynos-drm: Driver exynos-drm requests probe deferral > mmcblk0rpmb: mmc0:0001 F5X5MA partition 3 512 KiB > exynos-drm-ipp exynos-drm-ipp: drm ipp registered successfully. > platform exynos-drm: Driver exynos-drm requests probe deferral > mmcblk0: p1 p2 p3 p4 p5 p6 p7 > exynos-drm-ipp exynos-drm-ipp: drm ipp registered successfully. > platform exynos-drm: Driver exynos-drm requests probe deferral > exynos-drm-ipp exynos-drm-ipp: drm ipp registered successfully. > platform exynos-drm: Driver exynos-drm requests probe deferral > > and so on... > ----------------------- Can you show me compatible string placed on top of exynos3250-rinato.dts file? If the compatible has "samsung,exynos3" it should be no problem with this patch. And the rinato dts file we posted to mainline has the compatible string. > > I do not know whether it is related but Trats2 board cannot boot due to > lockup after: > [drm] Initialized drm 1.1.0 20060810 > (with or without the patch) > https://lkml.org/lkml/2014/11/6/125 > hmm... it's strange because my trats2 board works well with this patch. Which kernel did you test? And how can I reproduce above lockup? Thanks, Inki Dae > Best regards, > Krzysztof > >> >> Signed-off-by: Inki Dae <inki.dae@samsung.com> >> --- >> drivers/gpu/drm/exynos/exynos_drm_drv.c | 12 ++++++++++++ >> 1 file changed, 12 insertions(+) >> >> diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c >> index 443a206..ecc86aa 100644 >> --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c >> +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c >> @@ -734,6 +734,18 @@ static int exynos_drm_init(void) >> { >> int ret; >> >> + /* >> + * Register device object only in case of Exynos SoC. >> + * >> + * Below codes resolves temporarily infinite loop issue incurred >> + * by Exynos drm driver when using multi-platform kernel. >> + * So these codes will be replaced with more generic way later. >> + */ >> + if (!of_machine_is_compatible("samsung,exynos3") && >> + !of_machine_is_compatible("samsung,exynos4") && >> + !of_machine_is_compatible("samsung,exynos5")) >> + return -ENODEV; >> + >> exynos_drm_pdev = platform_device_register_simple("exynos-drm", -1, >> NULL, 0); >> if (IS_ERR(exynos_drm_pdev)) >> > > -- > To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On czw, 2014-11-06 at 21:32 +0900, Inki Dae wrote: > On 2014? 11? 06? 21:11, Krzysztof Koz?owski wrote: > > On 06.11.2014 11:32, Inki Dae wrote: > >> This patch resolves temporarily infinite loop issue incurred > >> when Exynos drm driver is enabled and multi-platform kernel > >> is used by registering Exynos drm device object only in case > >> of Exynos SoC. So this patch will be replaced with more generic > >> way later. > > > > Does not help for Rinato board. > > > > On Rinato: > > ----------------------- > > Failed to find PMU node > > Registering SWP/SWPB emulation handler > > mmc0: BKOPS_EN bit is not set > > mmc_host mmc0: Bus speed (slot 0) = 100000000Hz (slot req 100000000Hz, > > actual 100000000HZ div = 0) > > exynos-drm-ipp exynos-drm-ipp: drm ipp registered successfully. > > mmc0: new HS200 MMC card at address 0001 > > platform exynos-drm: Driver exynos-drm requests probe deferral > > mmcblk0: mmc0:0001 F5X5MA 3.64 GiB > > mmcblk0boot0: mmc0:0001 F5X5MA partition 1 4.00 MiB > > exynos-drm-ipp exynos-drm-ipp: drm ipp registered successfully. > > mmcblk0boot1: mmc0:0001 F5X5MA partition 2 4.00 MiB > > platform exynos-drm: Driver exynos-drm requests probe deferral > > mmcblk0rpmb: mmc0:0001 F5X5MA partition 3 512 KiB > > exynos-drm-ipp exynos-drm-ipp: drm ipp registered successfully. > > platform exynos-drm: Driver exynos-drm requests probe deferral > > mmcblk0: p1 p2 p3 p4 p5 p6 p7 > > exynos-drm-ipp exynos-drm-ipp: drm ipp registered successfully. > > platform exynos-drm: Driver exynos-drm requests probe deferral > > exynos-drm-ipp exynos-drm-ipp: drm ipp registered successfully. > > platform exynos-drm: Driver exynos-drm requests probe deferral > > > > and so on... > > ----------------------- > > Can you show me compatible string placed on top of exynos3250-rinato.dts > file? If the compatible has "samsung,exynos3" it should be no problem > with this patch. And the rinato dts file we posted to mainline has the > compatible string. model = "Samsung Rinato board"; compatible = "samsung,rinato-rev05", "samsung,exynos3250", "samsung,exynos3"; The problem is "samsung,exynos3" because the patch solves only issue on multiplatform kernel run on non-exynos board. It does not solve the problem on exynos board with DRM enabled but without all drivers. > > > > I do not know whether it is related but Trats2 board cannot boot due to > > lockup after: > > [drm] Initialized drm 1.1.0 20060810 > > (with or without the patch) > > https://lkml.org/lkml/2014/11/6/125 > > > > hmm... it's strange because my trats2 board works well with this patch. > Which kernel did you test? And how can I reproduce above lockup? Just boot up next-2014110{456} with kernel config attached in mentioned email. Best regards, Krzysztof -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 2014? 11? 06? 22:00, Krzysztof Kozlowski wrote: > On czw, 2014-11-06 at 21:32 +0900, Inki Dae wrote: >> On 2014? 11? 06? 21:11, Krzysztof Koz?owski wrote: >>> On 06.11.2014 11:32, Inki Dae wrote: >>>> This patch resolves temporarily infinite loop issue incurred >>>> when Exynos drm driver is enabled and multi-platform kernel >>>> is used by registering Exynos drm device object only in case >>>> of Exynos SoC. So this patch will be replaced with more generic >>>> way later. >>> >>> Does not help for Rinato board. >>> >>> On Rinato: >>> ----------------------- >>> Failed to find PMU node >>> Registering SWP/SWPB emulation handler >>> mmc0: BKOPS_EN bit is not set >>> mmc_host mmc0: Bus speed (slot 0) = 100000000Hz (slot req 100000000Hz, >>> actual 100000000HZ div = 0) >>> exynos-drm-ipp exynos-drm-ipp: drm ipp registered successfully. >>> mmc0: new HS200 MMC card at address 0001 >>> platform exynos-drm: Driver exynos-drm requests probe deferral >>> mmcblk0: mmc0:0001 F5X5MA 3.64 GiB >>> mmcblk0boot0: mmc0:0001 F5X5MA partition 1 4.00 MiB >>> exynos-drm-ipp exynos-drm-ipp: drm ipp registered successfully. >>> mmcblk0boot1: mmc0:0001 F5X5MA partition 2 4.00 MiB >>> platform exynos-drm: Driver exynos-drm requests probe deferral >>> mmcblk0rpmb: mmc0:0001 F5X5MA partition 3 512 KiB >>> exynos-drm-ipp exynos-drm-ipp: drm ipp registered successfully. >>> platform exynos-drm: Driver exynos-drm requests probe deferral >>> mmcblk0: p1 p2 p3 p4 p5 p6 p7 >>> exynos-drm-ipp exynos-drm-ipp: drm ipp registered successfully. >>> platform exynos-drm: Driver exynos-drm requests probe deferral >>> exynos-drm-ipp exynos-drm-ipp: drm ipp registered successfully. >>> platform exynos-drm: Driver exynos-drm requests probe deferral >>> >>> and so on... >>> ----------------------- >> >> Can you show me compatible string placed on top of exynos3250-rinato.dts >> file? If the compatible has "samsung,exynos3" it should be no problem >> with this patch. And the rinato dts file we posted to mainline has the >> compatible string. > > model = "Samsung Rinato board"; > compatible = "samsung,rinato-rev05", "samsung,exynos3250", > "samsung,exynos3"; > > The problem is "samsung,exynos3" because the patch solves only issue on > multiplatform kernel run on non-exynos board. It does not solve the > problem on exynos board with DRM enabled but without all drivers. > Right, if you disabled all kms drivers and enabled only non-kms drivers then the infinite loop will occur. However, this should be handled in separated issue because without this patch, same issue will occur. > >>> >>> I do not know whether it is related but Trats2 board cannot boot due to >>> lockup after: >>> [drm] Initialized drm 1.1.0 20060810 >>> (with or without the patch) >>> https://lkml.org/lkml/2014/11/6/125 >>> >> >> hmm... it's strange because my trats2 board works well with this patch. >> Which kernel did you test? And how can I reproduce above lockup? > > Just boot up next-2014110{456} with kernel config attached in mentioned > email. It looks like other issue regardless of this patch. If the board dts file includes compatible string that Exynos drm driver is checking then Exynos drm driver has no any change - having same logic. Thanks, Inki Dae > > Best regards, > Krzysztof > > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c index 443a206..ecc86aa 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c @@ -734,6 +734,18 @@ static int exynos_drm_init(void) { int ret; + /* + * Register device object only in case of Exynos SoC. + * + * Below codes resolves temporarily infinite loop issue incurred + * by Exynos drm driver when using multi-platform kernel. + * So these codes will be replaced with more generic way later. + */ + if (!of_machine_is_compatible("samsung,exynos3") && + !of_machine_is_compatible("samsung,exynos4") && + !of_machine_is_compatible("samsung,exynos5")) + return -ENODEV; + exynos_drm_pdev = platform_device_register_simple("exynos-drm", -1, NULL, 0); if (IS_ERR(exynos_drm_pdev))
This patch resolves temporarily infinite loop issue incurred when Exynos drm driver is enabled and multi-platform kernel is used by registering Exynos drm device object only in case of Exynos SoC. So this patch will be replaced with more generic way later. Signed-off-by: Inki Dae <inki.dae@samsung.com> --- drivers/gpu/drm/exynos/exynos_drm_drv.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)