mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 03:24:19 +02:00
drm/vc4: hvs: Remove planes currently allocated before taking down
When the HVS driver is unbound, a lot of memory allocations in the LBM and DLIST RAM are still assigned to planes that are still allocated. Thus, we hit a warning when calling drm_mm_takedown() since the memory pool is not completely free of allocations. Let's free all the currently live entries before calling drm_mm_takedown(). Acked-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com> Signed-off-by: Maxime Ripard <maxime@cerno.tech> Link: https://lore.kernel.org/r/20220711173939.1132294-17-maxime@cerno.tech
This commit is contained in:
parent
969cfae1f0
commit
398e7ceae6
|
|
@ -873,11 +873,18 @@ static void vc4_hvs_unbind(struct device *dev, struct device *master,
|
|||
struct drm_device *drm = dev_get_drvdata(master);
|
||||
struct vc4_dev *vc4 = to_vc4_dev(drm);
|
||||
struct vc4_hvs *hvs = vc4->hvs;
|
||||
struct drm_mm_node *node, *next;
|
||||
|
||||
if (drm_mm_node_allocated(&vc4->hvs->mitchell_netravali_filter))
|
||||
drm_mm_remove_node(&vc4->hvs->mitchell_netravali_filter);
|
||||
|
||||
drm_mm_for_each_node_safe(node, next, &vc4->hvs->dlist_mm)
|
||||
drm_mm_remove_node(node);
|
||||
|
||||
drm_mm_takedown(&vc4->hvs->dlist_mm);
|
||||
|
||||
drm_mm_for_each_node_safe(node, next, &vc4->hvs->lbm_mm)
|
||||
drm_mm_remove_node(node);
|
||||
drm_mm_takedown(&vc4->hvs->lbm_mm);
|
||||
|
||||
clk_disable_unprepare(hvs->core_clk);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user