ALSA: hda - introduce snd_hda_codec_update_cache()

Add a new helper, snd_hda_codec_update_cache(), for reducing the unneeded
verbs.  This function checks the cached value and skips if it's identical
with the given one.  Otherwise it works like snd_hda_codec_write_cache().

The alc269 code uses this function as an example.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 9a361c2..8ae4806 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -14012,8 +14012,9 @@
 		else
 			pinval = 0x20;
 		/* mic2 vref pin is used for mute LED control */
-		snd_hda_codec_write(codec, 0x19, 0,
-				    AC_VERB_SET_PIN_WIDGET_CONTROL, pinval);
+		snd_hda_codec_update_cache(codec, 0x19, 0,
+					   AC_VERB_SET_PIN_WIDGET_CONTROL,
+					   pinval);
 	}
 	return alc_check_power_status(codec, nid);
 }