if (!mt8173_rt5650_dais[DAI_LINK_CODEC_I2S].codecs[0].of_node) {
                dev_err(&pdev->dev,
                        "Property 'audio-codec' missing or invalid\n");
-               return -EINVAL;
+               ret = -EINVAL;
+               goto put_platform_node;
        }
        mt8173_rt5650_dais[DAI_LINK_CODEC_I2S].codecs[1].of_node =
                mt8173_rt5650_dais[DAI_LINK_CODEC_I2S].codecs[0].of_node;
                        dev_err(&pdev->dev,
                                "%s codec_capture_dai name fail %d\n",
                                __func__, ret);
-                       return ret;
+                       goto put_platform_node;
                }
                mt8173_rt5650_dais[DAI_LINK_CODEC_I2S].codecs[1].dai_name =
                        codec_capture_dai;
        if (!mt8173_rt5650_dais[DAI_LINK_HDMI_I2S].codecs->of_node) {
                dev_err(&pdev->dev,
                        "Property 'audio-codec' missing or invalid\n");
-               return -EINVAL;
+               ret = -EINVAL;
+               goto put_platform_node;
        }
        card->dev = &pdev->dev;
 
        ret = devm_snd_soc_register_card(&pdev->dev, card);
 
+put_platform_node:
        of_node_put(platform_node);
        return ret;
 }