Re: [PATCHv2 1/4] ASoC: simple-card: add asoc_simple_card_fmt_master() to simplify the code.

From: Jyri Sarha
Date: Tue Sep 02 2014 - 07:32:55 EST


On 09/02/2014 02:09 PM, Jean-Francois Moine wrote:
On Tue, 02 Sep 2014 16:12:40 +0530
Varka Bhadram <varkabhadram@xxxxxxxxx> wrote:

+ switch (((np == bitclkmaster) << 4) | (np == framemaster)) {
+ case 0x11:
+ return SND_SOC_DAIFMT_CBS_CFS;
+ case 0x10:
+ return SND_SOC_DAIFMT_CBS_CFM;
+ case 0x01:
+ return SND_SOC_DAIFMT_CBM_CFS;
+ default:
+ return SND_SOC_DAIFMT_CBM_CFM;
+ }
+
+ /* Shouldn't be here */
+ return -EINVAL;
+}
It will be nice if we declare the switch case numbers as macros (specific name)...
I don't see which macros: the values are just 2 booleans.

I am talking about 0x11, 0x10, 0x01 values.. We can give any understandable
names to those...?

#define TRUE_TRUE 0x11
#define TRUE_FALSE 0x10
#define FALSE_TRUE 0x01

or

case ((TRUE << 4) | TRUE:
...
case ((TRUE << 4) | FALSE:
...
case ((FALSE << 4) | TRUE:
...


I would vote for this. Even over the options suggested by Takashi, but then again this really a matter of taste.

The fact that frame and bit-clock master boolean values are bundled into a single "enum" field, instead of two dedicated bits, makes all options bit inconvenient.

Best regards,
Jyri


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/