Hi, On 7/28/22 20:39, Matwey V. Kornilov wrote: > чт, 28 июл. 2022 г. в 21:33, Hans de Goede <hdegoede@xxxxxxxxxx>: >> >> Hi, >> >> On 7/27/22 17:32, Matwey V. Kornilov wrote: >>> Lex 3I380A/CW (Atom E3845) motherboards are equipped with dual Intel I211 >>> based 1Gbps copper ethernet: >>> >>> http://www.lex.com.tw/products/pdf/3I380A&3I380CW.pdf >>> >>> This patch is to fix the issue with broken "LAN2" port. Before the >>> patch, only one ethernet port is initialized: >>> >>> igb 0000:01:00.0: added PHC on eth0 >>> igb 0000:01:00.0: Intel(R) Gigabit Ethernet Network Connection >>> igb 0000:01:00.0: eth0: (PCIe:2.5Gb/s:Width x1) 4c:02:89:10:02:e4 >>> igb 0000:01:00.0: eth0: PBA No: FFFFFF-0FF >>> igb 0000:01:00.0: Using MSI-X interrupts. 2 rx queue(s), 2 tx queue(s) >>> igb: probe of 0000:02:00.0 failed with error -2 >>> >>> With this patch, both ethernet ports are available: >>> >>> igb 0000:01:00.0: added PHC on eth0 >>> igb 0000:01:00.0: Intel(R) Gigabit Ethernet Network Connection >>> igb 0000:01:00.0: eth0: (PCIe:2.5Gb/s:Width x1) 4c:02:89:10:02:e4 >>> igb 0000:01:00.0: eth0: PBA No: FFFFFF-0FF >>> igb 0000:01:00.0: Using MSI-X interrupts. 2 rx queue(s), 2 tx queue(s) >>> igb 0000:02:00.0: added PHC on eth1 >>> igb 0000:02:00.0: Intel(R) Gigabit Ethernet Network Connection >>> igb 0000:02:00.0: eth1: (PCIe:2.5Gb/s:Width x1) 4c:02:89:10:02:e5 >>> igb 0000:02:00.0: eth1: PBA No: FFFFFF-0FF >>> igb 0000:02:00.0: Using MSI-X interrupts. 2 rx queue(s), 2 tx queue(s) >>> >>> The issue was observed at 3I380A board with BIOS version "A4 01/15/2016" >>> and 3I380CW board with BIOS version "A3 09/29/2014". >>> >>> Reference: https://lore.kernel.org/netdev/08c744e6-385b-8fcf-ecdf-1292b5869f94@xxxxxxxxxx/ >>> Fixes: 648e921888ad ("clk: x86: Stop marking clocks as CLK_IS_CRITICAL") >>> Cc: <stable@xxxxxxxxxxxxxxx> # v4.19+ >>> Signed-off-by: Matwey V. Kornilov <matwey@xxxxxxxxxx> >> >> >> Thank you for the patch. >> >> The last week I have received 2 different patches adding >> a total of 3 new "Lex BayTrail" entries to critclk_systems[] >> on top of the existing 2. >> >> Looking at: https://www.lex.com.tw/products/embedded-ipc-board/ >> we can see that Lex BayTrail makes many embedded boards with >> multiple ethernet boards and none of their products are battery >> powered so we don't need to worry (too much) about power consumption >> when suspended. >> >> So instead of adding 3 new entries I've written a patch to >> simply disable the turning off of the clocks on all >> systems which have "Lex BayTrail" as their DMI sys_vendor: >> >> https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/commit/?h=review-hans&id=c9d959fc32a5f9312282817052d8986614f2dc08 >> >> I've added a Reported-by tag to give you credit for the work >> you have done on this. >> >> I will send this alternative fix to Linus as part of >> the other pdx86 patches for 5.21. > > Thank you. Will your fix also appear in stable/lts kernels? Yes it has the same Fixes tag as your patch did, this will cause it to automatically get cherry-picked into kernels which have the fixed commit hash. Regards, Hans >>> --- >>> drivers/platform/x86/pmc_atom.c | 18 ++++++++++++++++++ >>> 1 file changed, 18 insertions(+) >>> >>> diff --git a/drivers/platform/x86/pmc_atom.c b/drivers/platform/x86/pmc_atom.c >>> index b8b1ed1406de..5dc82667907b 100644 >>> --- a/drivers/platform/x86/pmc_atom.c >>> +++ b/drivers/platform/x86/pmc_atom.c >>> @@ -388,6 +388,24 @@ static const struct dmi_system_id critclk_systems[] = { >>> DMI_MATCH(DMI_PRODUCT_NAME, "CEC10 Family"), >>> }, >>> }, >>> + { >>> + /* pmc_plt_clk* - are used for ethernet controllers */ >>> + .ident = "Lex 3I380A", >>> + .callback = dmi_callback, >>> + .matches = { >>> + DMI_MATCH(DMI_SYS_VENDOR, "Lex BayTrail"), >>> + DMI_MATCH(DMI_PRODUCT_NAME, "3I380A"), >>> + }, >>> + }, >>> + { >>> + /* pmc_plt_clk* - are used for ethernet controllers */ >>> + .ident = "Lex 3I380CW", >>> + .callback = dmi_callback, >>> + .matches = { >>> + DMI_MATCH(DMI_SYS_VENDOR, "Lex BayTrail"), >>> + DMI_MATCH(DMI_PRODUCT_NAME, "3I380CW"), >>> + }, >>> + }, >>> { >>> /* pmc_plt_clk0 - 3 are used for the 4 ethernet controllers */ >>> .ident = "Lex 3I380D", >> > >