return -EINVAL;
 }
 
-static int amd_pmc_czn_wa_irq1(struct amd_pmc_dev *pdev)
+static int amd_pmc_wa_irq1(struct amd_pmc_dev *pdev)
 {
        struct device *d;
        int rc;
 
-       if (!pdev->major) {
-               rc = amd_pmc_get_smu_version(pdev);
-               if (rc)
-                       return rc;
-       }
+       /* cezanne platform firmware has a fix in 64.66.0 */
+       if (pdev->cpu_id == AMD_CPU_ID_CZN) {
+               if (!pdev->major) {
+                       rc = amd_pmc_get_smu_version(pdev);
+                       if (rc)
+                               return rc;
+               }
 
-       if (pdev->major > 64 || (pdev->major == 64 && pdev->minor > 65))
-               return 0;
+               if (pdev->major > 64 || (pdev->major == 64 && pdev->minor > 65))
+                       return 0;
+       }
 
        d = bus_find_device_by_name(&serio_bus, NULL, "serio0");
        if (!d)
        struct amd_pmc_dev *pdev = dev_get_drvdata(dev);
 
        if (pdev->cpu_id == AMD_CPU_ID_CZN && !disable_workarounds) {
-               int rc = amd_pmc_czn_wa_irq1(pdev);
+               int rc = amd_pmc_wa_irq1(pdev);
 
                if (rc) {
                        dev_err(pdev->dev, "failed to adjust keyboard wakeup: %d\n", rc);