Lines Matching refs:path
16 static struct mmp_overlay *path_get_overlay(struct mmp_path *path, in path_get_overlay() argument
19 if (path && overlay_id < path->overlay_num) in path_get_overlay()
20 return &path->overlays[overlay_id]; in path_get_overlay()
24 static int path_check_status(struct mmp_path *path) in path_check_status() argument
27 for (i = 0; i < path->overlay_num; i++) in path_check_status()
28 if (path->overlays[i].status) in path_check_status()
41 static int path_get_modelist(struct mmp_path *path, in path_get_modelist() argument
44 BUG_ON(!path || !modelist); in path_get_modelist()
46 if (path->panel && path->panel->get_modelist) in path_get_modelist()
47 return path->panel->get_modelist(path->panel, modelist); in path_get_modelist()
74 struct mmp_path *path; in mmp_register_panel() local
82 list_for_each_entry(path, &path_list, node) { in mmp_register_panel()
83 if (!strcmp(panel->plat_path_name, path->name)) { in mmp_register_panel()
85 path->name); in mmp_register_panel()
86 path->panel = panel; in mmp_register_panel()
104 struct mmp_path *path; in mmp_unregister_panel() local
109 list_for_each_entry(path, &path_list, node) { in mmp_unregister_panel()
110 if (path->panel && path->panel == panel) { in mmp_unregister_panel()
112 path->name); in mmp_unregister_panel()
113 path->panel = NULL; in mmp_unregister_panel()
130 struct mmp_path *path = NULL, *iter; in mmp_get_path() local
135 path = iter; in mmp_get_path()
141 return path; in mmp_get_path()
155 struct mmp_path *path = NULL; in mmp_register_path() local
158 path = kzalloc(struct_size(path, overlays, info->overlay_num), in mmp_register_path()
160 if (!path) in mmp_register_path()
164 mutex_init(&path->access_ok); in mmp_register_path()
165 path->dev = info->dev; in mmp_register_path()
166 path->id = info->id; in mmp_register_path()
167 path->name = info->name; in mmp_register_path()
168 path->output_type = info->output_type; in mmp_register_path()
169 path->overlay_num = info->overlay_num; in mmp_register_path()
170 path->plat_data = info->plat_data; in mmp_register_path()
171 path->ops.set_mode = info->set_mode; in mmp_register_path()
177 dev_info(path->dev, "get panel %s\n", panel->name); in mmp_register_path()
178 path->panel = panel; in mmp_register_path()
183 dev_info(path->dev, "register %s, overlay_num %d\n", in mmp_register_path()
184 path->name, path->overlay_num); in mmp_register_path()
187 if (!path->ops.check_status) in mmp_register_path()
188 path->ops.check_status = path_check_status; in mmp_register_path()
189 if (!path->ops.get_overlay) in mmp_register_path()
190 path->ops.get_overlay = path_get_overlay; in mmp_register_path()
191 if (!path->ops.get_modelist) in mmp_register_path()
192 path->ops.get_modelist = path_get_modelist; in mmp_register_path()
195 for (i = 0; i < path->overlay_num; i++) { in mmp_register_path()
196 path->overlays[i].path = path; in mmp_register_path()
197 path->overlays[i].id = i; in mmp_register_path()
198 mutex_init(&path->overlays[i].access_ok); in mmp_register_path()
199 path->overlays[i].ops = info->overlay_ops; in mmp_register_path()
203 list_add_tail(&path->node, &path_list); in mmp_register_path()
206 return path; in mmp_register_path()
216 void mmp_unregister_path(struct mmp_path *path) in mmp_unregister_path() argument
220 if (!path) in mmp_unregister_path()
225 list_del(&path->node); in mmp_unregister_path()
228 for (i = 0; i < path->overlay_num; i++) in mmp_unregister_path()
229 mutex_destroy(&path->overlays[i].access_ok); in mmp_unregister_path()
231 mutex_destroy(&path->access_ok); in mmp_unregister_path()
233 kfree(path); in mmp_unregister_path()