From nobody Sun Sep 22 07:29:36 2024 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3605CC433EF for ; Tue, 8 Mar 2022 12:56:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346957AbiCHM53 (ORCPT ); Tue, 8 Mar 2022 07:57:29 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33084 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233421AbiCHM52 (ORCPT ); Tue, 8 Mar 2022 07:57:28 -0500 Received: from mo4-p01-ob.smtp.rzone.de (mo4-p01-ob.smtp.rzone.de [85.215.255.54]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 96A8847547; Tue, 8 Mar 2022 04:56:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1646744168; s=strato-dkim-0002; d=goldelico.com; h=Message-Id:Date:Subject:Cc:To:From:Cc:Date:From:Subject:Sender; bh=N0uiBZn2X99YIa2R7oMyRvvyodifjNHPrFhmT4qjKWM=; b=dj1V3bPdkot3GmVUYUhCbuoNjRI8Gx2vEUwy//jdJqSnGV25/iIONM2DvcyLAEF1SZ WYjSiZgord8ZWkOSRDMXxMguy5dNNbiAlKb7jhBNC3E9x5J8lct1TEepJTRpT/kKt5HK oxK7+4wKEdanbKnppoUnClrF5qtmrfGGSVRe+sbLUBZnvBQVx2jfgHFzACdU9YD6hI4I b4eIH/h3Tevc32f7bq+KsyNU6BS/PSCjNwh6u25ELOu8v/iCeWlLonHqbTPY4/evUyOY hXHbnWzCvZVmyO8EWUlZfpj1f8ds1IttJ78zgWQjM4pv/RZIwNWQ65zSp/EAMyNXiTQT y/tA== Authentication-Results: strato.com; dkim=none X-RZG-AUTH: ":JGIXVUS7cutRB/49FwqZ7WcJeFKiMhflhwDubTJ9o1OAA2UMf2MwPVbpc9Y=" X-RZG-CLASS-ID: mo00 Received: from iMac.fritz.box by smtp.strato.de (RZmta 47.40.1 DYNA|AUTH) with ESMTPSA id n729cey28Cu7SHj (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Tue, 8 Mar 2022 13:56:07 +0100 (CET) From: "H. Nikolaus Schaller" To: Rob Herring , Bin Liu , Greg Kroah-Hartman , Matthias Brugger Cc: linux-usb@vger.kernel.org, linux-omap@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, letux-kernel@openphoenux.org, kernel@pyra-handheld.com, "H. Nikolaus Schaller" Subject: [PATCH] partially Revert "usb: musb: Set the DT node on the child device" Date: Tue, 8 Mar 2022 13:56:06 +0100 Message-Id: X-Mailer: git-send-email 2.33.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" This reverts the omap2430 changes of commit cf081d009c44 ("usb: musb: Set the DT node on the child device") Since v5.17-rc1, musb is broken on the gta04 and openpandora devices (omap3530/dm3730). BeagleBone Black (am335x) seems to work. Symptoms of this bug are a) main symptom [ 21.336517] using random host ethernet address [ 21.341430] using host ethernet address: 32:70:05:18:ff:78 [ 21.341461] using self ethernet address: 46:10:3a:b3:af:d9 [ 21.358184] usb0: HOST MAC 32:70:05:18:ff:78 [ 21.376678] usb0: MAC 46:10:3a:b3:af:d9 [ 21.388305] using random self ethernet address [ 21.393371] using random host ethernet address [ 21.398162] g_ether gadget: Ethernet Gadget, version: Memorial Day 2008 [ 21.421081] g_ether gadget: g_ether ready [ 21.492156] musb-hdrc musb-hdrc.1.auto: Could not enable: -22 [ 21.691345] musb-hdrc musb-hdrc.1.auto: Could not enable: -22 [ 21.803192] musb-hdrc musb-hdrc.1.auto: Could not enable: -22 [ 21.819427] musb-hdrc musb-hdrc.1.auto: Could not enable: -22 [ 22.124450] musb-hdrc musb-hdrc.1.auto: Could not enable: -22 [ 22.168518] musb-hdrc musb-hdrc.1.auto: Could not enable: -22 [ 22.179382] musb-hdrc musb-hdrc.1.auto: Could not enable: -22 [ 23.213592] musb-hdrc musb-hdrc.1.auto: pm runtime get failed in musb_ga= dget_queue [ 23.221832] musb-hdrc musb-hdrc.1.auto: Could not enable: -22 [ 23.227905] musb-hdrc musb-hdrc.1.auto: Could not enable: -22 [ 23.239440] musb-hdrc musb-hdrc.1.auto: Could not enable: -22 [ 23.401000] musb-hdrc musb-hdrc.1.auto: Could not enable: -22 [ 23.407073] musb-hdrc musb-hdrc.1.auto: Could not enable: -22 [ 23.426361] musb-hdrc musb-hdrc.1.auto: Could not enable: -22 [ 23.734466] musb-hdrc musb-hdrc.1.auto: pm runtime get failed in musb_ga= dget_queue [ 23.742462] musb-hdrc musb-hdrc.1.auto: pm runtime get failed in musb_ga= dget_queue [ 23.750396] musb-hdrc musb-hdrc.1.auto: pm runtime get failed in musb_ga= dget_queue ... (repeats with high frequency) This stops if the USB cable is unplugged and restarts if it is plugged in a= gain. b) also found in the log [ 6.498107] ------------[ cut here ]------------ [ 6.502960] WARNING: CPU: 0 PID: 868 at arch/arm/mach-omap2/omap_hwmod.c= :1885 _enable+0x50/0x234 [ 6.512207] omap_hwmod: usb_otg_hs: enabled state can only be entered fr= om initialized, idle, or disabled state [ 6.522766] Modules linked in: omap2430(+) bmp280_i2c bmp280 itg3200 at2= 4 tsc2007 leds_tca6507 bma180 hmc5843_i2c hmc5843_core industrialio_trigger= ed_buffer lis3lv02d_i2c kfifo_buf lis3lv02d phy_twl4030_usb snd_soc_omap_mc= bsp snd_soc_ti_sdma musb_hdrc snd_soc_twl4030 gnss_sirf twl4030_vibra twl40= 30_madc twl4030_charger twl4030_pwrbutton gnss industrialio ehci_omap omapd= rm drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops drm drm_pan= el_orientation_quirks cec [ 6.566436] CPU: 0 PID: 868 Comm: udevd Not tainted 5.16.0-rc5-letux+ #8= 251 [ 6.573730] Hardware name: Generic OMAP36xx (Flattened Device Tree) [ 6.580322] [] (unwind_backtrace) from [] (show_stac= k+0x10/0x14) [ 6.588470] [] (show_stack) from [] (dump_stack_lvl+= 0x40/0x4c) [ 6.596405] [] (dump_stack_lvl) from [] (__warn+0xb4= /0xdc) [ 6.604003] [] (__warn) from [] (warn_slowpath_fmt+0= x70/0x9c) [ 6.611846] [] (warn_slowpath_fmt) from [] (_enable+= 0x50/0x234) [ 6.619903] [] (_enable) from [] (omap_hwmod_enable+= 0x28/0x40) [ 6.627838] [] (omap_hwmod_enable) from [] (omap_dev= ice_enable+0x4c/0x78) [ 6.636779] [] (omap_device_enable) from [] (_od_run= time_resume+0x10/0x3c) [ 6.645812] [] (_od_runtime_resume) from [] (__rpm_c= allback+0x3c/0xf4) [ 6.654510] [] (__rpm_callback) from [] (rpm_callbac= k+0x50/0x54) [ 6.662628] [] (rpm_callback) from [] (rpm_resume+0x= 448/0x4e4) [ 6.670593] [] (rpm_resume) from [] (__pm_runtime_re= sume+0x38/0x50) [ 6.678985] [] (__pm_runtime_resume) from [] (musb_i= nit_controller+0x350/0xa5c [musb_hdrc]) [ 6.689727] [] (musb_init_controller [musb_hdrc]) from [] (platform_probe+0x58/0xa8) [ 6.699737] [] (platform_probe) from [] (really_prob= e+0x170/0x2fc) [ 6.708068] [] (really_probe) from [] (__driver_prob= e_device+0xc4/0xd8) [ 6.716827] [] (__driver_probe_device) from [] (driv= er_probe_device+0x30/0xac) [ 6.726226] [] (driver_probe_device) from [] (__devi= ce_attach_driver+0x94/0xb4) [ 6.735717] [] (__device_attach_driver) from [] (bus= _for_each_drv+0xa0/0xb4) [ 6.744934] [] (bus_for_each_drv) from [] (__device_= attach+0xc0/0x134) [ 6.753631] [] (__device_attach) from [] (bus_probe_= device+0x28/0x80) [ 6.762207] [] (bus_probe_device) from [] (device_ad= d+0x5fc/0x788) [ 6.770507] [] (device_add) from [] (platform_device= _add+0x70/0x1bc) [ 6.779022] [] (platform_device_add) from [] (omap24= 30_probe+0x260/0x2d4 [omap2430]) [ 6.789001] [] (omap2430_probe [omap2430]) from [] (= platform_probe+0x58/0xa8) [ 6.798309] [] (platform_probe) from [] (really_prob= e+0x170/0x2fc) [ 6.806610] [] (really_probe) from [] (__driver_prob= e_device+0xc4/0xd8) [ 6.815399] [] (__driver_probe_device) from [] (driv= er_probe_device+0x30/0xac) [ 6.824798] [] (driver_probe_device) from [] (__driv= er_attach+0xc4/0xd8) [ 6.833648] [] (__driver_attach) from [] (bus_for_ea= ch_dev+0x64/0xa0) [ 6.842224] [] (bus_for_each_dev) from [] (bus_add_d= river+0x148/0x1a4) [ 6.850891] [] (bus_add_driver) from [] (driver_regi= ster+0xb4/0xf8) [ 6.859313] [] (driver_register) from [] (do_one_ini= tcall+0x90/0x1c8) [ 6.867889] [] (do_one_initcall) from [] (do_init_mo= dule+0x4c/0x204) [ 6.876373] [] (do_init_module) from [] (load_module= +0x13f0/0x1928) [ 6.884796] [] (load_module) from [] (sys_finit_modu= le+0xa0/0xc0) [ 6.893005] [] (sys_finit_module) from [] (ret_fast_= syscall+0x0/0x54) [ 6.901580] Exception stack(0xc2807fa8 to 0xc2807ff0) [ 6.906890] 7fa0: b6e517d4 00052068 00000006 b6e509f8 = 00000000 b6e5131c [ 6.915466] 7fc0: b6e517d4 00052068 cd718000 0000017b 00020000 00037f78 = 00050048 00063368 [ 6.924011] 7fe0: bed8fef0 bed8fee0 b6e4ac4b b6f55a42 [ 6.929321] ---[ end trace d715ff121b58763c ]--- c) git bisect result on testing for "musb-hdrc" in the console log: cf081d009c447647c6b36aced535ca427dbebe72 is the first bad commit commit cf081d009c447647c6b36aced535ca427dbebe72 Author: Rob Herring Date: Wed Dec 15 17:07:57 2021 -0600 usb: musb: Set the DT node on the child device The musb glue drivers just copy the glue resources to the musb child devi= ce. Instead, set the musb child device's DT node pointer to the parent device= 's node so that platform_get_irq_byname() can find the resources in the DT. This removes the need for statically populating the IRQ resources from the DT which has been deprecated for some time. Signed-off-by: Rob Herring Link: https://lore.kernel.org/r/20211215230756.2009115-3-robh@kernel.org Signed-off-by: Greg Kroah-Hartman drivers/usb/musb/am35x.c | 2 ++ drivers/usb/musb/da8xx.c | 2 ++ drivers/usb/musb/jz4740.c | 1 + drivers/usb/musb/mediatek.c | 2 ++ drivers/usb/musb/omap2430.c | 1 + drivers/usb/musb/ux500.c | 1 + 6 files changed, 9 insertions(+) Reverting this patch makes musb work again as before. Fixes: cf081d009c44 ("usb: musb: Set the DT node on the child device") Cc: Rob Herring Signed-off-by: H. Nikolaus Schaller --- drivers/usb/musb/omap2430.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c index 7d4d0713f4f0..d2b7e613eb34 100644 --- a/drivers/usb/musb/omap2430.c +++ b/drivers/usb/musb/omap2430.c @@ -327,7 +327,6 @@ static int omap2430_probe(struct platform_device *pdev) musb->dev.parent =3D &pdev->dev; musb->dev.dma_mask =3D &omap2430_dmamask; musb->dev.coherent_dma_mask =3D omap2430_dmamask; - device_set_of_node_from_dev(&musb->dev, &pdev->dev); =20 glue->dev =3D &pdev->dev; glue->musb =3D musb; --=20 2.33.0