summaryrefslogtreecommitdiffstats
path: root/drivers/video/via/via_aux.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/via/via_aux.c')
-rw-r--r--drivers/video/via/via_aux.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/video/via/via_aux.c b/drivers/video/via/via_aux.c
index e728b9bec23..4a0a55cdac3 100644
--- a/drivers/video/via/via_aux.c
+++ b/drivers/video/via/via_aux.c
@@ -60,9 +60,29 @@ void via_aux_free(struct via_aux_bus *bus)
return;
list_for_each_entry_safe(pos, n, &bus->drivers, chain) {
+ if (pos->cleanup)
+ pos->cleanup(pos);
+
list_del(&pos->chain);
+ kfree(pos->data);
kfree(pos);
}
kfree(bus);
}
+
+const struct fb_videomode *via_aux_get_preferred_mode(struct via_aux_bus *bus)
+{
+ struct via_aux_drv *pos;
+ const struct fb_videomode *mode = NULL;
+
+ if (!bus)
+ return NULL;
+
+ list_for_each_entry(pos, &bus->drivers, chain) {
+ if (pos->get_preferred_mode)
+ mode = pos->get_preferred_mode(pos);
+ }
+
+ return mode;
+}