On 2020-09-29 10:46 AM, Andy Shevchenko wrote:
On Mon, Sep 28, 2020 at 04:52:41PM +0000, Rojewski, Cezary wrote:
On 2020-09-28 3:44 PM, Andy Shevchenko wrote:
On Sat, Sep 26, 2020 at 10:58:58AM +0200, Cezary Rojewski wrote:
...
- ret = ipc->rx.rsp.status;
- if (reply) {
reply->header = ipc->rx.header;
if (!ret && reply->data)
memcpy(reply->data, ipc->rx.data, reply->size);
- }
- return ret;
One more looking into this... What about
if (reply) reply->header = ipc->rx.header;
ret = ipc->rx.rsp.status; // or even directly if (status) return status. if (ret) return ret;
if (reply->data) memcpy(reply->data, ipc->rx.data, reply->size);
return 0;
It may be verbose but I think readability is better here.
In your example, last 'if' will cause exception if reply==NULL.
Yeah, should be reply && reply->data.
Got your point, although that's just few lines which already involve 'if' with { } spacing. After removing size-checks you suggested this code is quite thin already.
Yes, sometimes too thin is not good in terms of readability.
This will cost us additional check (2x reply==NULL instead of 1x). Maybe a newline between:
reply->header = ipc->rx.header;
if (!ret && reply->data) memcpy(reply->data, ipc->rx.data, reply->size);
suffices?
...
- CATPT_CHANNEL_CONFIG_5_POINT_0 = 7, /* L, C, R, Ls & Rs */
- CATPT_CHANNEL_CONFIG_5_POINT_1 = 8, /* L, C, R, Ls, Rs & LFE */
- CATPT_CHANNEL_CONFIG_DUAL_MONO = 9, /* One channel replicated in two */
- CATPT_CHANNEL_CONFIG_INVALID = 10,
Hmm... I think I got the point why DUAL_MONO was at the end of the switch-case.
Well, well. Indeed we found where Willy is..
So, we may return to the previous state, up to you.
...
+enum catpt_mclk_frequency {
- CATPT_MCLK_OFF = 0,
- CATPT_MCLK_FREQ_6_MHZ = 1,
- CATPT_MCLK_FREQ_21_MHZ = 2,
- CATPT_MCLK_FREQ_24_MHZ = 3,
+};
Looks like a 3 MHz as base frequency with multiplicators 0, 2, 7, 8.
Naming based on FW enum type equivalent.
It was just an observation without any AR item :-) If you really know the (hardware) background of these choices then perhaps comment would be good to have.
In general I'm avoiding that subject here. Quite disappointed with what I had to face, and that's not "just" existing linux solution but every other component involved in LPT/WPT ADSP project.
I have plans for many more comments Andy, e.g.: fw image block division (ascii graph and such). All of that will come in time, eventually. Not intending to leave catpt without maintenance like other sound/soc/intel/ solutions once were.
+#define CATPT_STREAM_MSG(msg_type) \ +{ \
- .stream_msg_type = CATPT_STRM_##msg_type, \
- .global_msg_type = CATPT_GLB_STREAM_MESSAGE }
+#define CATPT_STAGE_MSG(msg_type) \ +{ \
- .stage_action = CATPT_STG_##msg_type, \
- .stream_msg_type = CATPT_STRM_STAGE_MESSAGE, \
- .global_msg_type = CATPT_GLB_STREAM_MESSAGE }
Hmm... This split is interesting. I would rather move } to a new line.
As basically everything in my code, style is based on existing example - usually stuff from ASoC core - here, it's include/sound/soc.h. It's full of such definitions so because catpt belongs to ASoC subsystem, I've used the exact same style. No problem changing if that's your preference.
I think it's better to follow the existing style across subsystem. You may discard my (style related) comments if they contradict with used style.
If there are no other concerns, either a quick spinoff (v10) or delay those readability improvements till series with resource_union() re-use?
While catpt is a big upgrade when compared to existing /haswell/ (obviously) there are more fruits of this rewrite: house cleaning - follow-up series targeting /haswell/, /baytrail/ and /common/ of sound/soc/intel. Guess everyone would like to see those in 5.10.
Regards, Czarek