Message ID | 20191120093712.11370-1-perex@perex.cz (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] ASoC: improve the DMI long card code in asoc-core | expand |
On 11/20/19 3:37 AM, Jaroslav Kysela wrote: > Add append_dmi_string() function and make the code more readable. > > Signed-off-by: Jaroslav Kysela <perex@perex.cz> > Cc: Mark Brown <broonie@kernel.org> > --- > sound/soc/soc-core.c | 66 +++++++++++++++++--------------------------- > 1 file changed, 25 insertions(+), 41 deletions(-) > > diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c > index b4683d4588ee..1d1baf78818c 100644 > --- a/sound/soc/soc-core.c > +++ b/sound/soc/soc-core.c > @@ -1755,6 +1755,23 @@ static int is_dmi_valid(const char *field) > return 1; > } > > +/* > + * > + */ unneeded comments or missing text? > +static void append_dmi_string(struct snd_soc_card *card, const char *str) > +{ > + char *dst = card->dmi_longname; > + size_t dst_len = sizeof(card->dmi_longname); > + size_t len; > + > + len = strlen(dst); > + snprintf(dst + len, dst_len - len, "-%s", str); > + > + len++; /* skip the separator "-" */ > + if (len < dst_len) > + cleanup_dmi_name(dst + len); > +} > + > /** > * snd_soc_set_dmi_name() - Register DMI names to card > * @card: The card to register DMI names > @@ -1789,61 +1806,36 @@ static int is_dmi_valid(const char *field) > int snd_soc_set_dmi_name(struct snd_soc_card *card, const char *flavour) > { > const char *vendor, *product, *product_version, *board; > - size_t longname_buf_size = sizeof(card->snd_card->longname); > - size_t len; > > if (card->long_name) > return 0; /* long name already set by driver or from DMI */ > > - /* make up dmi long name as: vendor.product.version.board */ > + /* make up dmi long name as: vendor-product-version-board */ here you are just fixing a misleading comment, yes? I don't see any dots to dashes substitution but better ask.
Dne 20. 11. 19 v 15:55 Pierre-Louis Bossart napsal(a): > > > On 11/20/19 3:37 AM, Jaroslav Kysela wrote: >> Add append_dmi_string() function and make the code more readable. >> >> Signed-off-by: Jaroslav Kysela <perex@perex.cz> >> Cc: Mark Brown <broonie@kernel.org> >> --- >> sound/soc/soc-core.c | 66 +++++++++++++++++--------------------------- >> 1 file changed, 25 insertions(+), 41 deletions(-) >> >> diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c >> index b4683d4588ee..1d1baf78818c 100644 >> --- a/sound/soc/soc-core.c >> +++ b/sound/soc/soc-core.c >> @@ -1755,6 +1755,23 @@ static int is_dmi_valid(const char *field) >> return 1; >> } >> >> +/* >> + * >> + */ > > unneeded comments or missing text? There should be a text, of course. >> +static void append_dmi_string(struct snd_soc_card *card, const char *str) >> +{ >> + char *dst = card->dmi_longname; >> + size_t dst_len = sizeof(card->dmi_longname); >> + size_t len; >> + >> + len = strlen(dst); >> + snprintf(dst + len, dst_len - len, "-%s", str); >> + >> + len++; /* skip the separator "-" */ >> + if (len < dst_len) >> + cleanup_dmi_name(dst + len); >> +} >> + >> /** >> * snd_soc_set_dmi_name() - Register DMI names to card >> * @card: The card to register DMI names >> @@ -1789,61 +1806,36 @@ static int is_dmi_valid(const char *field) >> int snd_soc_set_dmi_name(struct snd_soc_card *card, const char *flavour) >> { >> const char *vendor, *product, *product_version, *board; >> - size_t longname_buf_size = sizeof(card->snd_card->longname); >> - size_t len; >> >> if (card->long_name) >> return 0; /* long name already set by driver or from DMI */ >> >> - /* make up dmi long name as: vendor.product.version.board */ >> + /* make up dmi long name as: vendor-product-version-board */ > > here you are just fixing a misleading comment, yes? > I don't see any dots to dashes substitution but better ask. The result is LENOVO-20QE000VMC-ThinkPadX1Carbon7th-20QE000VMC. I think that the dots were replaced by dashes as the field separators during the initial implementation or so. I just reflect the current state. Jaroslav
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index b4683d4588ee..1d1baf78818c 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -1755,6 +1755,23 @@ static int is_dmi_valid(const char *field) return 1; } +/* + * + */ +static void append_dmi_string(struct snd_soc_card *card, const char *str) +{ + char *dst = card->dmi_longname; + size_t dst_len = sizeof(card->dmi_longname); + size_t len; + + len = strlen(dst); + snprintf(dst + len, dst_len - len, "-%s", str); + + len++; /* skip the separator "-" */ + if (len < dst_len) + cleanup_dmi_name(dst + len); +} + /** * snd_soc_set_dmi_name() - Register DMI names to card * @card: The card to register DMI names @@ -1789,61 +1806,36 @@ static int is_dmi_valid(const char *field) int snd_soc_set_dmi_name(struct snd_soc_card *card, const char *flavour) { const char *vendor, *product, *product_version, *board; - size_t longname_buf_size = sizeof(card->snd_card->longname); - size_t len; if (card->long_name) return 0; /* long name already set by driver or from DMI */ - /* make up dmi long name as: vendor.product.version.board */ + /* make up dmi long name as: vendor-product-version-board */ vendor = dmi_get_system_info(DMI_BOARD_VENDOR); if (!vendor || !is_dmi_valid(vendor)) { dev_warn(card->dev, "ASoC: no DMI vendor name!\n"); return 0; } - snprintf(card->dmi_longname, sizeof(card->snd_card->longname), - "%s", vendor); + snprintf(card->dmi_longname, sizeof(card->dmi_longname), "%s", vendor); cleanup_dmi_name(card->dmi_longname); product = dmi_get_system_info(DMI_PRODUCT_NAME); if (product && is_dmi_valid(product)) { - len = strlen(card->dmi_longname); - snprintf(card->dmi_longname + len, - longname_buf_size - len, - "-%s", product); - - len++; /* skip the separator "-" */ - if (len < longname_buf_size) - cleanup_dmi_name(card->dmi_longname + len); + append_dmi_string(card, product); /* * some vendors like Lenovo may only put a self-explanatory * name in the product version field */ product_version = dmi_get_system_info(DMI_PRODUCT_VERSION); - if (product_version && is_dmi_valid(product_version)) { - len = strlen(card->dmi_longname); - snprintf(card->dmi_longname + len, - longname_buf_size - len, - "-%s", product_version); - - len++; - if (len < longname_buf_size) - cleanup_dmi_name(card->dmi_longname + len); - } + if (product_version && is_dmi_valid(product_version)) + append_dmi_string(card, product_version); } board = dmi_get_system_info(DMI_BOARD_NAME); if (board && is_dmi_valid(board)) { - len = strlen(card->dmi_longname); - snprintf(card->dmi_longname + len, - longname_buf_size - len, - "-%s", board); - - len++; - if (len < longname_buf_size) - cleanup_dmi_name(card->dmi_longname + len); + append_dmi_string(card, board); } else if (!product) { /* fall back to using legacy name */ dev_warn(card->dev, "ASoC: no DMI board/product name!\n"); @@ -1851,16 +1843,8 @@ int snd_soc_set_dmi_name(struct snd_soc_card *card, const char *flavour) } /* Add flavour to dmi long name */ - if (flavour) { - len = strlen(card->dmi_longname); - snprintf(card->dmi_longname + len, - longname_buf_size - len, - "-%s", flavour); - - len++; - if (len < longname_buf_size) - cleanup_dmi_name(card->dmi_longname + len); - } + if (flavour) + append_dmi_string(card, flavour); /* set the card long name */ card->long_name = card->dmi_longname;
Add append_dmi_string() function and make the code more readable. Signed-off-by: Jaroslav Kysela <perex@perex.cz> Cc: Mark Brown <broonie@kernel.org> --- sound/soc/soc-core.c | 66 +++++++++++++++++--------------------------- 1 file changed, 25 insertions(+), 41 deletions(-)