Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfashe...
[firefly-linux-kernel-4.4.55.git] / sound / pci / ac97 / ac97_bus.c
index 227f8b9f67ce97965a3c29aca27f3fd59c77beda..66de2c2f155470cc1977fe98e923f15eafa20379 100644 (file)
 #include <linux/string.h>
 
 /*
- * Codec families have names seperated by commas, so we search for an
- * individual codec name within the family string. 
+ * Let drivers decide whether they want to support given codec from their
+ * probe method.  Drivers have direct access to the struct snd_ac97 structure and may
+ * decide based on the id field amongst other things.
  */
 static int ac97_bus_match(struct device *dev, struct device_driver *drv)
 {
-       return (strstr(dev->bus_id, drv->name) != NULL);
+       return 1;
 }
 
 static int ac97_bus_suspend(struct device *dev, pm_message_t state)
 {
        int ret = 0;
 
-       if (dev->driver && dev->driver->suspend) {
-               ret = dev->driver->suspend(dev, state, SUSPEND_DISABLE);
-               if (ret == 0)
-                       ret = dev->driver->suspend(dev, state, SUSPEND_SAVE_STATE);
-               if (ret == 0)
-                       ret = dev->driver->suspend(dev, state, SUSPEND_POWER_DOWN);
-       }
+       if (dev->driver && dev->driver->suspend)
+               ret = dev->driver->suspend(dev, state);
+
        return ret;
 }
 
@@ -43,13 +40,9 @@ static int ac97_bus_resume(struct device *dev)
 {
        int ret = 0;
 
-       if (dev->driver && dev->driver->resume) {
-               ret = dev->driver->resume(dev, RESUME_POWER_ON);
-               if (ret == 0)
-                       ret = dev->driver->resume(dev, RESUME_RESTORE_STATE);
-               if (ret == 0)
-                       ret = dev->driver->resume(dev, RESUME_ENABLE);
-       }
+       if (dev->driver && dev->driver->resume)
+               ret = dev->driver->resume(dev);
+
        return ret;
 }