@@ -34,6 +34,7 @@
#include <sound/tlv.h>
#include <sound/initval.h>
#include <sound/jack.h>
+#include "hda_regmap.h"
#include "hda_local.h"
#include "hda_beep.h"
#include "hda_jack.h"
@@ -255,6 +256,23 @@ void snd_hda_sequence_write(struct hda_codec *codec, const struct hda_verb *seq)
EXPORT_SYMBOL_GPL(snd_hda_sequence_write);
/**
+ * snd_hda_param_read - read a parameter
+ * @codec: the HDA codec
+ * @nid: NID to read
+ * @parm: parameter value
+ */
+int snd_hda_param_read(struct hda_codec *codec, hda_nid_t nid, int parm)
+{
+ unsigned int verb = (AC_VERB_PARAMETERS << 8) | (nid << 20) | parm;
+ unsigned int val;
+
+ if (snd_hda_reg_raw_read(codec, verb, &val) < 0)
+ return -1;
+ return val;
+}
+EXPORT_SYMBOL_GPL(snd_hda_param_read);
+
+/**
* snd_hda_get_sub_nodes - get the range of sub nodes
* @codec: the HDA codec
* @nid: NID to parse
@@ -439,8 +439,7 @@ unsigned int snd_hda_codec_read(struct hda_codec *codec, hda_nid_t nid,
unsigned int verb, unsigned int parm);
int snd_hda_codec_write(struct hda_codec *codec, hda_nid_t nid, int flags,
unsigned int verb, unsigned int parm);
-#define snd_hda_param_read(codec, nid, param) \
- snd_hda_codec_read(codec, nid, 0, AC_VERB_PARAMETERS, param)
+int snd_hda_param_read(struct hda_codec *codec, hda_nid_t nid, int parm);
int snd_hda_get_sub_nodes(struct hda_codec *codec, hda_nid_t nid,
hda_nid_t *start_id);
int snd_hda_get_connections(struct hda_codec *codec, hda_nid_t nid,
Let's start converting the access functions to regmap. The first one is the simplest, just converting the codec parameter read helper function snd_hda_param_read(). Signed-off-by: Takashi Iwai <tiwai@suse.de> --- sound/pci/hda/hda_codec.c | 18 ++++++++++++++++++ sound/pci/hda/hda_codec.h | 3 +-- 2 files changed, 19 insertions(+), 2 deletions(-)