From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from pandora.armlinux.org.uk ([78.32.30.218]:42852 "EHLO pandora.armlinux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751791AbdBBWuw (ORCPT ); Thu, 2 Feb 2017 17:50:52 -0500 Date: Thu, 2 Feb 2017 22:50:04 +0000 From: Russell King - ARM Linux To: Steve Longerbeam Cc: robh+dt@kernel.org, mark.rutland@arm.com, shawnguo@kernel.org, kernel@pengutronix.de, fabio.estevam@nxp.com, mchehab@kernel.org, hverkuil@xs4all.nl, nick@shmanahar.org, markus.heiser@darmarIT.de, p.zabel@pengutronix.de, laurent.pinchart+renesas@ideasonboard.com, bparrot@ti.com, geert@linux-m68k.org, arnd@arndb.de, sudipm.mukherjee@gmail.com, minghsiu.tsai@mediatek.com, tiffany.lin@mediatek.com, jean-christophe.trotin@st.com, horms+renesas@verge.net.au, niklas.soderlund+renesas@ragnatech.se, robert.jarzmik@free.fr, songjun.wu@microchip.com, andrew-ct.chen@mediatek.com, gregkh@linuxfoundation.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org, devel@driverdev.osuosl.org, Steve Longerbeam Subject: Re: [PATCH v3 16/24] media: Add i.MX media core driver Message-ID: <20170202225004.GZ27312@n2100.armlinux.org.uk> References: <1483755102-24785-1-git-send-email-steve_longerbeam@mentor.com> <1483755102-24785-17-git-send-email-steve_longerbeam@mentor.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1483755102-24785-17-git-send-email-steve_longerbeam@mentor.com> Sender: linux-media-owner@vger.kernel.org List-ID: On Fri, Jan 06, 2017 at 06:11:34PM -0800, Steve Longerbeam wrote: > +/* register an internal subdev as a platform device */ > +static struct imx_media_subdev * > +add_internal_subdev(struct imx_media_dev *imxmd, > + const struct internal_subdev *isd, > + int ipu_id) > +{ > + struct imx_media_internal_sd_platformdata pdata; > + struct platform_device_info pdevinfo = {0}; > + struct imx_media_subdev *imxsd; > + struct platform_device *pdev; > + > + switch (isd->id->grp_id) { > + case IMX_MEDIA_GRP_ID_CAMIF0...IMX_MEDIA_GRP_ID_CAMIF1: > + pdata.grp_id = isd->id->grp_id + > + ((2 * ipu_id) << IMX_MEDIA_GRP_ID_CAMIF_BIT); > + break; > + default: > + pdata.grp_id = isd->id->grp_id; > + break; > + } > + > + /* the id of IPU this subdev will control */ > + pdata.ipu_id = ipu_id; > + > + /* create subdev name */ > + imx_media_grp_id_to_sd_name(pdata.sd_name, sizeof(pdata.sd_name), > + pdata.grp_id, ipu_id); > + > + pdevinfo.name = isd->id->name; > + pdevinfo.id = ipu_id * num_isd + isd->id->index; > + pdevinfo.parent = imxmd->dev; > + pdevinfo.data = &pdata; > + pdevinfo.size_data = sizeof(pdata); > + pdevinfo.dma_mask = DMA_BIT_MASK(32); > + > + pdev = platform_device_register_full(&pdevinfo); > + if (IS_ERR(pdev)) > + return ERR_CAST(pdev); > + > + imxsd = imx_media_add_async_subdev(imxmd, NULL, dev_name(&pdev->dev)); > + if (IS_ERR(imxsd)) > + return imxsd; > + > + imxsd->num_sink_pads = isd->num_sink_pads; > + imxsd->num_src_pads = isd->num_src_pads; > + > + return imxsd; > +} You seem to create platform devices here, but I see nowhere that you ever remove them - so if you get to the lucky point of being able to rmmod imx-media and then try to re-insert it, you end up with a load of kernel warnings, one for each device created this way, and platform_device_register_full() fails: WARNING: CPU: 0 PID: 2143 at /home/rmk/git/linux-rmk/fs/sysfs/dir.c:31 sysfs_warn_dup+0x64/0x80 sysfs: cannot create duplicate filename '/devices/soc0/soc/soc:media@0/imx-ipuv3-smfc.2' Modules linked in: imx_media(C+) rfcomm bnep bluetooth nfsd imx_camif(C) imx_ic(C) imx_smfc(C) caam_jr snd_soc_imx_sgtl5000 snd_soc_fsl_asoc_card uvcvideo snd_soc_imx_spdif imx_mipi_csi2(C) imx_media_common(C) snd_soc_imx_audmux imx219 snd_soc_sgtl5000 video_multiplexer imx_sdma caam imx2_wdt rc_cec coda v4l2_mem2mem videobuf2_v4l2 snd_soc_fsl_ssi snd_soc_fsl_spdif videobuf2_dma_contig imx_pcm_dma videobuf2_core videobuf2_vmalloc videobuf2_memops imx_thermal dw_hdmi_cec dw_hdmi_ahb_audio etnaviv fuse rc_pinnacle_pctv_hd [last unloaded: imx_media] CPU: 0 PID: 2143 Comm: modprobe Tainted: G C 4.10.0-rc6+ #2103 Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree) Backtrace: [] (dump_backtrace) from [] (show_stack+0x18/0x1c) r6:60000013 r5:ffffffff r4:00000000 r3:00000000 [] (show_stack) from [] (dump_stack+0xa4/0xdc) [] (dump_stack) from [] (__warn+0xdc/0x108) r6:c08ad998 r5:00000000 r4:cf4e9a78 r3:ec984980 [] (__warn) from [] (warn_slowpath_fmt+0x40/0x48) r10:e5800010 r8:ef1fa818 r7:ef1fa810 r6:ef202300 r5:e9809000 r4:ee868000 [] (warn_slowpath_fmt) from [] (sysfs_warn_dup+0x64/0x80) r3:ee868000 r2:c08ad9c0 [] (sysfs_warn_dup) from [] (sysfs_create_dir_ns+0x90/0x98) r6:ffffffef r5:ef202300 r4:eb5e3418 [] (sysfs_create_dir_ns) from [] (kobject_add_internal+0xa4/0x2d8) r6:ef1fa818 r5:00000000 r4:eb5e3418 [] (kobject_add_internal) from [] (kobject_add+0x50/0x98) r8:bf1f9018 r7:ef1fa810 r6:ef1fa818 r5:00000000 r4:eb5e3418 [] (kobject_add) from [] (device_add+0xc8/0x538) r3:ef1fa834 r2:00000000 r6:eb5e3418 r5:00000000 r4:eb5e3410 [] (device_add) from [] (platform_device_add+0xb0/0x214) r10:e5800010 r9:00000000 r8:bf1f9018 r7:e5806fd4 r6:eb5e3410 r5:eb5e3400 r4:00000000 [] (platform_device_add) from [] (platform_device_register_full+0xe8/0x110) r7:e5806fd4 r6:00000002 r5:eb5e3400 r4:cf4e9c18 [] (platform_device_register_full) from [] (add_ipu_internal_subdevs+0x128/0x2c8 [imx_media]) r5:bf1f9000 r4:00000918 [] (add_ipu_internal_subdevs [imx_media]) from [] (imx_media_add_internal_subdevs+0x2c/0x70 [imx_media]) r10:00000048 r9:f31ceef8 r8:ef7f1d94 r7:e5800230 r6:e5800200 r5:e5800010 r4:cf4e9c90 [] (imx_media_add_internal_subdevs [imx_media]) from [] (imx_media_probe+0xc4/0x1c0 [imx_media]) r5:00000000 r4:e5800010 [] (imx_media_probe [imx_media]) from [] (platform_drv_probe+0x58/0xb8) r8:00000000 r7:bf1fbd48 r6:fffffdfb r5:ef1fa810 r4:fffffffe [] (platform_drv_probe) from [] (driver_probe_device+0x204/0x2c8) r7:bf1fbd48 r6:00000000 r5:c1419de8 r4:ef1fa810 [] (driver_probe_device) from [] (__driver_attach+0xbc/0xc0) r10:00000124 r8:00000001 r7:00000000 r6:ef1fa844 r5:bf1fbd48 r4:ef1fa810 [] (__driver_attach) from [] (bus_for_each_dev+0x5c/0x90) r6:c0418d54 r5:bf1fbd48 r4:00000000 r3:00000000 [] (bus_for_each_dev) from [] (driver_attach+0x24/0x28) r6:c0a45e90 r5:ed5a8980 r4:bf1fbd48 [] (driver_attach) from [] (bus_add_driver+0xf4/0x200) [] (bus_add_driver) from [] (driver_register+0x80/0xfc) r7:00000000 r6:bf1fe000 r5:c0a70528 r4:bf1fbd48 [] (driver_register) from [] (__platform_driver_register+0x48/0x4c) r5:c0a70528 r4:bf1fbdc0 [] (__platform_driver_register) from [] (imx_media_pdrv_init+0x18/0x24 [imx_media]) [] (imx_media_pdrv_init [imx_media]) from [] (do_one_initcall+0x44/0x170) [] (do_one_initcall) from [] (do_init_module+0x68/0x1d8) r8:00000001 r7:bf1fbdc0 r6:e9809540 r5:c0a70528 r4:bf1fbdc0 [] (do_init_module) from [] (load_module+0x195c/0x2080) r7:bf1fbdc0 r6:c09e04ec r5:c0a70528 r4:c09f5f27 [] (load_module) from [] (SyS_finit_module+0x94/0xa0) r10:00000000 r9:cf4e8000 r8:7f6b2398 r7:00000003 r6:00000000 r5:00000000 r4:7fffffff [] (SyS_finit_module) from [] (ret_fast_syscall+0x0/0x1c) r8:c000ff04 r7:0000017b r6:80c95148 r5:80c95b10 r4:80c95370 ---[ end trace 05abce0bbb26bc34 ]--- imx-media: add_internal_subdevs failed with -17 imx-media: probe of soc:media@0 failed with error -17 -- RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up according to speedtest.net.