Lines Matching refs:panel

87 static inline struct panel_simple *to_panel_simple(struct drm_panel *panel)  in to_panel_simple()  argument
89 return container_of(panel, struct panel_simple, base); in to_panel_simple()
92 static int panel_simple_get_fixed_modes(struct panel_simple *panel) in panel_simple_get_fixed_modes() argument
94 struct drm_connector *connector = panel->base.connector; in panel_simple_get_fixed_modes()
95 struct drm_device *drm = panel->base.drm; in panel_simple_get_fixed_modes()
99 if (!panel->desc) in panel_simple_get_fixed_modes()
102 for (i = 0; i < panel->desc->num_timings; i++) { in panel_simple_get_fixed_modes()
103 const struct display_timing *dt = &panel->desc->timings[i]; in panel_simple_get_fixed_modes()
121 for (i = 0; i < panel->desc->num_modes; i++) { in panel_simple_get_fixed_modes()
122 const struct drm_display_mode *m = &panel->desc->modes[i]; in panel_simple_get_fixed_modes()
137 connector->display_info.bpc = panel->desc->bpc; in panel_simple_get_fixed_modes()
138 connector->display_info.width_mm = panel->desc->size.width; in panel_simple_get_fixed_modes()
139 connector->display_info.height_mm = panel->desc->size.height; in panel_simple_get_fixed_modes()
140 if (panel->desc->bus_format) in panel_simple_get_fixed_modes()
142 &panel->desc->bus_format, 1); in panel_simple_get_fixed_modes()
147 static int panel_simple_disable(struct drm_panel *panel) in panel_simple_disable() argument
149 struct panel_simple *p = to_panel_simple(panel); in panel_simple_disable()
167 static int panel_simple_unprepare(struct drm_panel *panel) in panel_simple_unprepare() argument
169 struct panel_simple *p = to_panel_simple(panel); in panel_simple_unprepare()
187 static int panel_simple_prepare(struct drm_panel *panel) in panel_simple_prepare() argument
189 struct panel_simple *p = to_panel_simple(panel); in panel_simple_prepare()
197 dev_err(panel->dev, "failed to enable supply: %d\n", err); in panel_simple_prepare()
212 static int panel_simple_enable(struct drm_panel *panel) in panel_simple_enable() argument
214 struct panel_simple *p = to_panel_simple(panel); in panel_simple_enable()
232 static int panel_simple_get_modes(struct drm_panel *panel) in panel_simple_get_modes() argument
234 struct panel_simple *p = to_panel_simple(panel); in panel_simple_get_modes()
239 struct edid *edid = drm_get_edid(panel->connector, p->ddc); in panel_simple_get_modes()
240 drm_mode_connector_update_edid_property(panel->connector, edid); in panel_simple_get_modes()
242 num += drm_add_edid_modes(panel->connector, edid); in panel_simple_get_modes()
253 static int panel_simple_get_timings(struct drm_panel *panel, in panel_simple_get_timings() argument
257 struct panel_simple *p = to_panel_simple(panel); in panel_simple_get_timings()
282 struct panel_simple *panel; in panel_simple_probe() local
285 panel = devm_kzalloc(dev, sizeof(*panel), GFP_KERNEL); in panel_simple_probe()
286 if (!panel) in panel_simple_probe()
289 panel->enabled = false; in panel_simple_probe()
290 panel->prepared = false; in panel_simple_probe()
291 panel->desc = desc; in panel_simple_probe()
293 panel->supply = devm_regulator_get(dev, "power"); in panel_simple_probe()
294 if (IS_ERR(panel->supply)) in panel_simple_probe()
295 return PTR_ERR(panel->supply); in panel_simple_probe()
297 panel->enable_gpio = devm_gpiod_get_optional(dev, "enable", in panel_simple_probe()
299 if (IS_ERR(panel->enable_gpio)) { in panel_simple_probe()
300 err = PTR_ERR(panel->enable_gpio); in panel_simple_probe()
307 panel->backlight = of_find_backlight_by_node(backlight); in panel_simple_probe()
310 if (!panel->backlight) in panel_simple_probe()
316 panel->ddc = of_find_i2c_adapter_by_node(ddc); in panel_simple_probe()
319 if (!panel->ddc) { in panel_simple_probe()
325 drm_panel_init(&panel->base); in panel_simple_probe()
326 panel->base.dev = dev; in panel_simple_probe()
327 panel->base.funcs = &panel_simple_funcs; in panel_simple_probe()
329 err = drm_panel_add(&panel->base); in panel_simple_probe()
333 dev_set_drvdata(dev, panel); in panel_simple_probe()
338 if (panel->ddc) in panel_simple_probe()
339 put_device(&panel->ddc->dev); in panel_simple_probe()
341 if (panel->backlight) in panel_simple_probe()
342 put_device(&panel->backlight->dev); in panel_simple_probe()
349 struct panel_simple *panel = dev_get_drvdata(dev); in panel_simple_remove() local
351 drm_panel_detach(&panel->base); in panel_simple_remove()
352 drm_panel_remove(&panel->base); in panel_simple_remove()
354 panel_simple_disable(&panel->base); in panel_simple_remove()
356 if (panel->ddc) in panel_simple_remove()
357 put_device(&panel->ddc->dev); in panel_simple_remove()
359 if (panel->backlight) in panel_simple_remove()
360 put_device(&panel->backlight->dev); in panel_simple_remove()
367 struct panel_simple *panel = dev_get_drvdata(dev); in panel_simple_shutdown() local
369 panel_simple_disable(&panel->base); in panel_simple_shutdown()