Hi Russell > > +static int snd_dw_hdmi_probe(struct platform_device *pdev) > > +{ > > + struct dw_hdmi_i2s_audio_data *audio = pdev->dev.platform_data; > > + struct platform_device_info pdevinfo; > > + struct hdmi_codec_pdata pdata; > > + > > + pdata.ops = &dw_hdmi_i2s_ops; > > + pdata.i2s = 1; > > + pdata.max_i2s_channels = 6; > > + pdata.data = audio; > > + > > + memset(&pdevinfo, 0, sizeof(pdevinfo)); > > + pdevinfo.parent = pdev->dev.parent; > > + pdevinfo.id = PLATFORM_DEVID_AUTO; > > + pdevinfo.name = HDMI_CODEC_DRV_NAME; > > + pdevinfo.data = &pdata; > > + pdevinfo.size_data = sizeof(pdata); > > + pdevinfo.dma_mask = DMA_BIT_MASK(32); > > + > > + return IS_ERR_OR_NULL(platform_device_register_full(&pdevinfo)); > > This is certainly wrong. You're returning a 0/1 value rather than > an error code when platform_device_register_full() fails. Thanks. I forgot why I added this ?? I will fix it on v2 patch