struct cht_mc_private *drv;
        struct snd_soc_acpi_mach *mach = pdev->dev.platform_data;
        const char *platform_name;
-       const char *i2c_name;
+       struct acpi_device *adev;
        int i;
 
        drv = devm_kzalloc(&pdev->dev, sizeof(*drv), GFP_KERNEL);
        strcpy(drv->codec_name, RT5672_I2C_DEFAULT);
 
        /* fixup codec name based on HID */
-       i2c_name = acpi_dev_get_first_match_name(mach->id, NULL, -1);
-       if (i2c_name) {
+       adev = acpi_dev_get_first_match_dev(mach->id, NULL, -1);
+       if (adev) {
                snprintf(drv->codec_name, sizeof(drv->codec_name),
-                        "i2c-%s", i2c_name);
+                        "i2c-%s", acpi_dev_name(adev));
+               put_device(&adev->dev);
                for (i = 0; i < ARRAY_SIZE(cht_dailink); i++) {
                        if (!strcmp(cht_dailink[i].codec_name,
                                RT5672_I2C_DEFAULT)) {