mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 08:33:17 +02:00
ASoC: sti: regmap_field usage improvements
Merge series from Sander Vanheule <sander@svanheule.net>: uni_player_parse_dt_audio_glue() allocates two regmap_field objects on the device's regmap. However, error codes from these allocations are not propagated correctly and the resources will leak on device removal. These issues were found while looking for users of regmap_field_alloc(), to assess the impact of adding a cleanup helper for regmap_field. It appears this driver is the only (remaining) in-tree user of this allocator. Since the resources are long-lived, it may as well switch to devm_regmap_field_alloc(). As I don't have access to this hardware, these patches were only compile tested on a UM build.
This commit is contained in:
commit
a8fd392f6e
|
|
@ -1028,8 +1028,13 @@ static int uni_player_parse_dt_audio_glue(struct platform_device *pdev,
|
|||
return PTR_ERR(regmap);
|
||||
}
|
||||
|
||||
player->clk_sel = regmap_field_alloc(regmap, regfield[0]);
|
||||
player->valid_sel = regmap_field_alloc(regmap, regfield[1]);
|
||||
player->clk_sel = devm_regmap_field_alloc(&pdev->dev, regmap, regfield[0]);
|
||||
if (IS_ERR(player->clk_sel))
|
||||
return PTR_ERR(player->clk_sel);
|
||||
|
||||
player->valid_sel = devm_regmap_field_alloc(&pdev->dev, regmap, regfield[1]);
|
||||
if (IS_ERR(player->valid_sel))
|
||||
return PTR_ERR(player->valid_sel);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user