ASoC: uda1380: remove kmemdup_array

Use a flexible array member to combine allocations.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://patch.msgid.link/20260519010337.629127-1-rosenp@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Rosen Penev 2026-05-18 18:03:37 -07:00 committed by Mark Brown
parent 1e50c7006d
commit 04aec3799e
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -38,9 +38,9 @@ struct uda1380_priv {
unsigned int dac_clk;
struct work_struct work;
struct i2c_client *i2c;
u16 *reg_cache;
struct gpio_desc *power;
struct gpio_desc *reset;
u16 reg_cache[];
};
/*
@ -767,11 +767,15 @@ static int uda1380_i2c_probe(struct i2c_client *i2c)
struct uda1380_priv *uda1380;
int ret;
uda1380 = devm_kzalloc(&i2c->dev, sizeof(struct uda1380_priv),
uda1380 = devm_kzalloc(&i2c->dev,
struct_size(uda1380, reg_cache, ARRAY_SIZE(uda1380_reg)),
GFP_KERNEL);
if (uda1380 == NULL)
return -ENOMEM;
memcpy(uda1380->reg_cache, uda1380_reg,
ARRAY_SIZE(uda1380_reg) * sizeof(*uda1380->reg_cache));
uda1380->reset = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW);
if (IS_ERR(uda1380->reset))
return dev_err_probe(dev, PTR_ERR(uda1380->reset),
@ -789,11 +793,6 @@ static int uda1380_i2c_probe(struct i2c_client *i2c)
if (device_property_match_string(dev, "dac-clk", "wspll") >= 0)
uda1380->dac_clk = UDA1380_DAC_CLK_WSPLL;
uda1380->reg_cache = devm_kmemdup_array(&i2c->dev, uda1380_reg, ARRAY_SIZE(uda1380_reg),
sizeof(uda1380_reg[0]), GFP_KERNEL);
if (!uda1380->reg_cache)
return -ENOMEM;
i2c_set_clientdata(i2c, uda1380);
uda1380->i2c = i2c;