ASoC: WCD9310: Fixes issues with ANC

ANC register writes were improperly packed into
integers. ANC register writes were not correctly
performed, as the mask was incorrectly applied.

Signed-off-by: Brad Rubin <brubin@codeaurora.org>
diff --git a/sound/soc/codecs/wcd9310.c b/sound/soc/codecs/wcd9310.c
index 8318126..dc03d2a 100644
--- a/sound/soc/codecs/wcd9310.c
+++ b/sound/soc/codecs/wcd9310.c
@@ -611,7 +611,7 @@
 	switch (event) {
 	case SND_SOC_DAPM_PRE_PMU:
 
-		filename = "wcd9310_anc.bin";
+		filename = "wcd9310/wcd9310_anc.bin";
 
 		ret = request_firmware(&fw, filename, codec->dev);
 		if (ret != 0) {
@@ -642,7 +642,8 @@
 			TABLA_CODEC_UNPACK_ENTRY(tabla->anc_writes[i], reg,
 				mask, val);
 			old_val = snd_soc_read(codec, reg);
-			snd_soc_write(codec, reg, (old_val & ~mask) | val);
+			snd_soc_write(codec, reg, (old_val & ~mask) |
+				(val & mask));
 		}
 		release_firmware(fw);
 		tabla->anc_writes = NULL;