Merge remote-tracking branches 'asoc/topic/cs47l24', 'asoc/topic/cx20442', 'asoc...
[sfrench/cifs-2.6.git] / sound / soc / soc-io.c
index 20340ade20a789803c7ec02d9bf3ad569db1e68d..2bc1c4c17896d6c946baf584656f4fdca2bc25e8 100644 (file)
@@ -34,6 +34,10 @@ int snd_soc_component_read(struct snd_soc_component *component,
                ret = regmap_read(component->regmap, reg, val);
        else if (component->read)
                ret = component->read(component, reg, val);
+       else if (component->driver->read) {
+               *val = component->driver->read(component, reg);
+               ret = 0;
+       }
        else
                ret = -EIO;
 
@@ -70,6 +74,8 @@ int snd_soc_component_write(struct snd_soc_component *component,
                return regmap_write(component->regmap, reg, val);
        else if (component->write)
                return component->write(component, reg, val);
+       else if (component->driver->write)
+               return component->driver->write(component, reg, val);
        else
                return -EIO;
 }