Hi Florian, It is called from bcm63xx-i2s-whistler.c. Maybe the name "_probe" function confused. It was 2 platform drivers, I combined them together now. Let me know if this answers your question, and what to do to address your question. Regards! Kevin -----Original Message----- From: Florian Fainelli [mailto:f.fainelli@xxxxxxxxx] Sent: Friday, March 06, 2020 2:34 PM To: Kevin Li <kevin-ke.li@xxxxxxxxxxxx>; Mark Brown <broonie@xxxxxxxxxx> Cc: alsa-devel@xxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx>; Scott Branden <sbranden@xxxxxxxxxxxx>; Liam Girdwood <lgirdwood@xxxxxxxxx>; Ray Jui <rjui@xxxxxxxxxxxx>; Takashi Iwai <tiwai@xxxxxxxx>; Jaroslav Kysela <perex@xxxxxxxx>; bcm-kernel-feedback-list@xxxxxxxxxxxx; Stephen Boyd <swboyd@xxxxxxxxxxxx>; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx Subject: Re: [PATCH] ASoC: brcm: Add DSL/PON SoC audio driver On 3/6/20 2:27 PM, Kevin Li wrote: > This patch adds Broadcom DSL/PON SoC audio driver with Whistler I2S > block. The SoC supported by this patch are BCM63158B0,BCM63178 and > BCM47622/6755. > > Signed-off-by: Kevin Li <kevin-ke.li@xxxxxxxxxxxx> > --- [snip] > +int bcm63xx_soc_platform_probe(struct platform_device *pdev, > + struct bcm_i2s_priv *i2s_priv) { > + int ret; > + > + i2s_priv->r_irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0); > + if (!i2s_priv->r_irq) { > + dev_err(&pdev->dev, "Unable to get register irq resource.\n"); > + return -ENODEV; > + } > + > + ret = devm_request_irq(&pdev->dev, i2s_priv->r_irq->start, i2s_dma_isr, > + i2s_priv->r_irq->flags, "i2s_dma", (void *)i2s_priv); > + if (ret) { > + dev_err(&pdev->dev, > + "i2s_init: failed to request interrupt.ret=%d\n", ret); > + return ret; > + } > + > + return devm_snd_soc_register_component(&pdev->dev, > + &bcm63xx_soc_platform, NULL, 0); } > + > +int bcm63xx_soc_platform_remove(struct platform_device *pdev) { > + return 0; > +} How does one probe this module if the bcm63xx_soc_platform_probe() functions are not called from anywhere and/or hooked up to the module entry/exit points? Are you not missing a platform_driver entry which matches the compatible string you defined? -- Florian