From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: Cezary Rojewski <cezary.rojewski@intel.com>
Cc: alsa-devel@alsa-project.org, Blauciak@vger.kernel.org,
tiwai@suse.de, gregkh@linuxfoundation.org,
linux-kernel@vger.kernel.org, vkoul@kernel.org,
broonie@kernel.org, srinivas.kandagatla@linaro.org,
jank@cadence.com, Slawomir <slawomir.blauciak@intel.com>,
Sanyog Kale <sanyog.r.kale@intel.com>
Subject: Re: [alsa-devel] [PATCH 06/17] soundwire: cadence_master: use firmware defaults for frame shape
Date: Tue, 6 Aug 2019 10:36:32 -0500 [thread overview]
Message-ID: <024b4fb4-bdfa-a6dc-48bb-c070f2ed36b2@linux.intel.com> (raw)
In-Reply-To: <03b6091b-af41-ac54-43c7-196a3583a731@intel.com>
On 8/6/19 10:27 AM, Cezary Rojewski wrote:
> On 2019-08-06 02:55, Pierre-Louis Bossart wrote:
>> diff --git a/drivers/soundwire/cadence_master.c
>> b/drivers/soundwire/cadence_master.c
>> index 5d9729b4d634..89c55e4bb72c 100644
>> --- a/drivers/soundwire/cadence_master.c
>> +++ b/drivers/soundwire/cadence_master.c
>> @@ -48,6 +48,8 @@
>> #define CDNS_MCP_SSPSTAT 0xC
>> #define CDNS_MCP_FRAME_SHAPE 0x10
>> #define CDNS_MCP_FRAME_SHAPE_INIT 0x14
>> +#define CDNS_MCP_FRAME_SHAPE_COL_MASK GENMASK(2, 0)
>> +#define CDNS_MCP_FRAME_SHAPE_ROW_OFFSET 3
>> #define CDNS_MCP_CONFIG_UPDATE 0x18
>> #define CDNS_MCP_CONFIG_UPDATE_BIT BIT(0)
>> @@ -175,7 +177,6 @@
>> /* Driver defaults */
>> #define CDNS_DEFAULT_CLK_DIVIDER 0
>> -#define CDNS_DEFAULT_FRAME_SHAPE 0x30
>> #define CDNS_DEFAULT_SSP_INTERVAL 0x18
>> #define CDNS_TX_TIMEOUT 2000
>> @@ -901,6 +902,20 @@ int sdw_cdns_pdi_init(struct sdw_cdns *cdns,
>> }
>> EXPORT_SYMBOL(sdw_cdns_pdi_init);
>> +static u32 cdns_set_initial_frame_shape(int n_rows, int n_cols)
>> +{
>> + u32 val;
>> + int c;
>> + int r;
>> +
>> + r = sdw_find_row_index(n_rows);
>> + c = sdw_find_col_index(n_cols) & CDNS_MCP_FRAME_SHAPE_COL_MASK;
>> +
>> + val = (r << CDNS_MCP_FRAME_SHAPE_ROW_OFFSET) | c;
>> +
>> + return val;
>> +}
>> +
>
> Guess this have been said already, but this function could be simplified
> - unless you really want to keep explicit variable declaration. Both "c"
> and "r" declarations could be merged into single line while "val" is not
> needed at all.
>
> One more thing - is AND bitwise op really needed for cols explicitly? We
> know all col values upfront - these are static and declared in global
> table nearby. Static declaration takes care of "initial range-check". Is
> another one necessary?
>
> Moreover, this is a _get_ and certainly not a _set_ type of function.
> I'd even consider renaming it to: "cdns_get_frame_shape" as this is
> neither a _set_ nor an explicit initial frame shape setter.
>
> It might be even helpful to split two usages:
>
> #define sdw_frame_shape(col_idx, row_idx) \
> ((row_idx << CDNS_MCP_FRAME_SHAPE_ROW_OFFSET) | col_idx)
>
> u32 cdns_get_frame_shape(u16 rows, u16 cols)
> {
> u16 c, r;
>
> r = sdw_find_row_index(rows);
> c = sdw_find_col_index(cols);
>
> return sdw_frame_shape(c, r);
> }
>
> The above may even be simplified into one-liner.
This is a function used once on startup, there is no real need to
simplify further. The separate variables help add debug traces as needed
and keep the code readable while showing how the values are encoded into
a register.
next prev parent reply other threads:[~2019-08-06 15:36 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-06 0:55 [PATCH 00/17] soundwire: fixes for 5.4 Pierre-Louis Bossart
2019-08-06 0:55 ` [PATCH 01/17] soundwire: intel: prevent possible dereference in hw_params Pierre-Louis Bossart
2019-08-06 0:55 ` [PATCH 02/17] soundwire: intel: fix channel number reported by hardware Pierre-Louis Bossart
2019-08-06 0:55 ` [PATCH 03/17] soundwire: cadence_master: revisit interrupt settings Pierre-Louis Bossart
2019-08-06 0:55 ` [PATCH 04/17] soundwire: bus: improve dynamic debug comments for enumeration Pierre-Louis Bossart
2019-08-06 0:55 ` [PATCH 05/17] soundwire: export helpers to find row and column values Pierre-Louis Bossart
2019-08-06 0:55 ` [PATCH 06/17] soundwire: cadence_master: use firmware defaults for frame shape Pierre-Louis Bossart
2019-08-06 15:27 ` Cezary Rojewski
2019-08-06 15:36 ` Pierre-Louis Bossart [this message]
2019-08-06 16:06 ` [alsa-devel] " Cezary Rojewski
2019-08-14 4:31 ` Vinod Koul
2019-08-14 14:03 ` Pierre-Louis Bossart
2019-08-06 0:55 ` [PATCH 07/17] soundwire: include mod_devicetable.h to avoid compiling warnings Pierre-Louis Bossart
2019-08-06 0:55 ` [PATCH 08/17] soundwire: stream: fix disable sequence Pierre-Louis Bossart
2019-08-06 0:55 ` [PATCH 09/17] soundwire: stream: remove unnecessary variable initializations Pierre-Louis Bossart
2019-08-06 15:31 ` Cezary Rojewski
2019-08-06 15:39 ` Pierre-Louis Bossart
2019-08-06 0:55 ` [PATCH 10/17] soundwire: add new mclk_freq field for properties Pierre-Louis Bossart
2019-08-06 0:55 ` [PATCH 11/17] soundwire: intel: read mclk_freq property from firmware Pierre-Louis Bossart
2019-08-06 0:55 ` [PATCH 12/17] soundwire: cadence_master: make use of mclk_freq property Pierre-Louis Bossart
2019-08-06 0:55 ` [PATCH 13/17] soundwire: cadence_master: fix divider setting in clock register Pierre-Louis Bossart
2019-08-06 0:55 ` [PATCH 14/17] soundwire: intel: handle disabled links Pierre-Louis Bossart
2019-08-06 0:55 ` [PATCH 15/17] soundwire: intel_init: add kernel module parameter to filter out links Pierre-Louis Bossart
2019-08-06 0:55 ` [PATCH 16/17] soundwire: cadence_master: add kernel parameter to override interrupt mask Pierre-Louis Bossart
2019-08-06 0:55 ` [PATCH 17/17] soundwire: intel: move shutdown() callback and don't export symbol Pierre-Louis Bossart
2019-08-21 9:07 ` [PATCH 00/17] soundwire: fixes for 5.4 Vinod Koul
2019-08-21 14:03 ` [alsa-devel] " Pierre-Louis Bossart
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=024b4fb4-bdfa-a6dc-48bb-c070f2ed36b2@linux.intel.com \
--to=pierre-louis.bossart@linux.intel.com \
--cc=Blauciak@vger.kernel.org \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=cezary.rojewski@intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=jank@cadence.com \
--cc=linux-kernel@vger.kernel.org \
--cc=sanyog.r.kale@intel.com \
--cc=slawomir.blauciak@intel.com \
--cc=srinivas.kandagatla@linaro.org \
--cc=tiwai@suse.de \
--cc=vkoul@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox