What´s the best Practice to Build own Kernel

Please apply these patches:

https://patchwork.kernel.org/patch/10344913/ https://patchwork.kernel.org/patch/10341993/

ed1ba70.diff (9.2 KB) 915c49f.diff (4.0 KB)

1 Like

added all so far to my 4.16-hdmi-branch, compiles ok, if anyone will test it :slight_smile:

uploaded 3 versions of 4.16 to my gdrive for testing:

  • main (with usb-fix)
  • hdmi (hdmi-patches)
  • wlan (driver for internal wifi)

https://drive.google.com/open?id=1dJPz1REuIQiVfY4XliGOmGSZVDgT80Yc

1 Like

Hi frank

Thanks for your sharing, I’d like to know if the HDMI interface is working fine on your branch.

Hello, Frank.

I’ve tested your hdmi-patched kernel, it runs with a lot of errors. Looks like modules version magic is different from that kernel expects, please see attached log. (I didn’t tryed to run other versions)

4.16-hdmi-frank-w.log (29.0 КБ)

After i’ve rebuilt the kernel from hdmi branch with latest commits it has starded with only one hdmi related error:

[    1.051102] mediatek-dpi 14014000.dpi: Found bridge node: /hdmi@14015000
[    1.052741] random: crng init done
[    1.060319] mediatek-drm 14000000.dispsys: Adding component match for /ovl@14007000
[    1.070253] mediatek-drm 14000000.dispsys: Adding component match for /rdma@14008000
[    1.078065] mediatek-drm 14000000.dispsys: Adding component match for /color@1400b000
[    1.085947] mediatek-drm 14000000.dispsys: Adding component match for /rdma@14012000
[    1.093662] mediatek-drm 14000000.dispsys: Adding component match for /dpi@14014000
[    1.102368] mediatek-hdmi-phy 10209100.phy: Using default TX DRV impedance: 4.2k/36
[    1.111339] clk: failed to reparent hdmi_sel to hdmitx_dig_cts: -22
[    1.117727] [drm] hdmi-audio-codec driver bound to HDMI

See full log: 4.16-hdmi-self_built.log (20.7 КБ)

P.S. HDMI doesn’t work.

clk: failed to reparent hdmi_sel to hdmitx_dig_cts: -22

Did you apply this patch https://patchwork.kernel.org/patch/10344913/ ?

After i’ve added hdmitx_dig_cts to hdmi_parents (just like in 4.4) the error has gone.

clk-mt2701.diff

Now after kernel boots, there are no more hdmi errors, monitor doesn’t sows any messages about ‘no hdmi signal’, and does not suspends, but there is no image. The /dev/fb0 framebuffer does not creates.

We use DRM framework so I guess you need to enable some configs for use.

Yes, it’s applied.

Ok, thank You!

It’s odd. Did you apply all of the patches? As we don’t need to add hdmitx_dig_cts to hdmi_parents.

https://lkml.org/lkml/2018/5/7/843

here you can see patches i have applied: the 7 part patchset from Bibby Hsieh, your 4 patches and the iommu-patch

i used the v1 from this patchset from may 14 instead of the old from may 8, but on a quick look i see no difference in part 7/7

ohhh, you don’t need to add this. This is a harmless error.

i’ve traced initialisation from mtk_hdmi_phy.c:

static int mtk_hdmi_phy_probe(struct platform_device *pdev)
....
        return of_clk_add_provider(dev->of_node, of_clk_src_simple_get,
                                   hdmi_phy->pll);

to drivers/clk/clk.c:

static int clk_fetch_parent_index(struct clk_core *core,
				  struct clk_core *parent)
        ....
	for (i = 0; i < core->num_parents; i++)
		if (clk_core_get_parent_by_index(core, i) == parent)
			return i;

	return -EINVAL;

and the only way to fix it, i’ve found, was to add hdmitx_dig_cts to hdmi_parents.

Another good news! After a’ve added CONFIG_DRM_MALI_DISPLAY=y option the kernel became able to start Xorg server. But we steel have no framebuffer console. I didn’t found any gegeral fb device like VGA or VESA on x86 platform, so i don’t know what to add.

1 Like

New photo by Alexander Ryabchenko

Looks Good :grinning:. But I guess you could ignore that harmless error.

Sorry, didn’t get it. :slight_smile: I’m completely new to hardware drivers, so it’s possible that i can miss some obvious errors :slight_smile:

nice what have you changed in addition to my repo?

Blockquote[quote=“DeadMeat, post:155, topic:3937”] Sorry, didn’t get it. :slight_smile: I’m completely new to hardware drivers, so it’s possible that i can miss some obvious errors :slight_smile: [/quote]

That is, I’m afraid the clock topology will be broken (not sure), and we will fix this .Can you try to adjust the resolution?

1 Like

Hello, Frank, i’ve applided diff --git a/drivers/clk/mediatek/clk-mt2701.c b/drivers/clk/mediatek/clk-mt2701.c index 4dda898…c560ac6 100644 — a/drivers/clk/mediatek/clk-mt2701.c +++ b/drivers/clk/mediatek/clk-mt2701.c @@ -315,9 +315,11 @@ static const char * const tve_parents[] = {

 static const char * const hdmi_parents[] = {
        "clk26m",
+       "hdmitx_dig_cts",
        "hdmipll_ck",
        "hdmipll_d2",
        "hdmipll_d3"
+
 };
 
 static const char * const apll_parents[] = {

Also i’ve enabled CONFIG_REGULATOR_FIXED_VOLTAGE=y, CONFIG_DRM_MALI_DISPLAY=y, and some other not hdmi related stuff. I can make diff between my and standart .config . I didn’t changed mt7623n_evb_fwu_defconfig

I’ve tried few random resolution setting. Everything seems ok.

CONFIG_REGULATOR_FIXED_VOLTAGE=y is only for usb, or is it needed for hdmi (found no reference in dts-changes)?

can you try without the “hdmitx_dig_cts”-patch, because ryder says it is not neccessary

so actually only CONFIG_DRM_MALI_DISPLAY=y is missing in defconfig, right?