static int aml_snd_read(u32 base_type, unsigned int reg, unsigned int *val)
{
- if ((base_type >= IO_PDM_BUS) && (base_type < IO_MAX)) {
+ if (base_type < IO_MAX) {
*val = readl((aml_snd_reg_map[base_type] + (reg << 2)));
return 0;
static void aml_snd_write(u32 base_type, unsigned int reg, unsigned int val)
{
- if ((base_type >= IO_PDM_BUS) && (base_type < IO_MAX)) {
+ if (base_type < IO_MAX) {
writel(val, (aml_snd_reg_map[base_type] + (reg << 2)));
return;
unsigned int reg, unsigned int mask,
unsigned int val)
{
- if ((base_type >= IO_PDM_BUS) && (base_type < IO_MAX)) {
+ if (base_type < IO_MAX) {
unsigned int tmp, orig;
- aml_snd_read(base_type, reg, &orig);
- tmp = orig & ~mask;
- tmp |= val & mask;
- aml_snd_write(base_type, reg, tmp);
+ if (aml_snd_read(base_type, reg, &orig) == 0) {
+ tmp = orig & ~mask;
+ tmp |= val & mask;
+ aml_snd_write(base_type, reg, tmp);
- return;
+ return;
+ }
}
pr_err("write snd reg %x error\n", reg);
init = NULL;
/* CPU sub-node */
cpu_node = of_parse_phandle(np, "cpu_list", i);
- if (cpu_node < 0) {
+ if (!cpu_node) {
dev_err(dev, "parse aml sound card cpu list error\n");
return -EINVAL;
}
/* CODEC sub-node */
codec_node = of_parse_phandle(np, "codec_list", i);
- if (codec_node < 0) {
+ if (!codec_node) {
dev_err(dev, "parse aml sound card codec list error\n");
return ret;
}
/* Platform sub-node */
plat_node = of_parse_phandle(np, "plat_list", i);
- if (plat_node < 0) {
+ if (!plat_node) {
dev_err(dev,
"parse aml sound card platform list error\n");
return ret;