#include <linux/component.h>
#include <linux/media-bus-format.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/videodev2.h>
#include <video/of_display_timing.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_bridge.h>
#include <drm/drm_edid.h>
#include <drm/drm_managed.h>
#include <drm/drm_of.h>
#include <drm/drm_panel.h>
#include <drm/drm_probe_helper.h>
#include <drm/drm_simple_kms_helper.h>
#include "imx-drm.h"
struct imx_parallel_display_encoder { … };
struct imx_parallel_display { … };
static inline struct imx_parallel_display *con_to_imxpd(struct drm_connector *c)
{ … }
static inline struct imx_parallel_display *bridge_to_imxpd(struct drm_bridge *b)
{ … }
static int imx_pd_connector_get_modes(struct drm_connector *connector)
{ … }
static void imx_pd_bridge_enable(struct drm_bridge *bridge)
{ … }
static void imx_pd_bridge_disable(struct drm_bridge *bridge)
{ … }
static const u32 imx_pd_bus_fmts[] = …;
static u32 *
imx_pd_bridge_atomic_get_output_bus_fmts(struct drm_bridge *bridge,
struct drm_bridge_state *bridge_state,
struct drm_crtc_state *crtc_state,
struct drm_connector_state *conn_state,
unsigned int *num_output_fmts)
{ … }
static bool imx_pd_format_supported(u32 output_fmt)
{ … }
static u32 *
imx_pd_bridge_atomic_get_input_bus_fmts(struct drm_bridge *bridge,
struct drm_bridge_state *bridge_state,
struct drm_crtc_state *crtc_state,
struct drm_connector_state *conn_state,
u32 output_fmt,
unsigned int *num_input_fmts)
{ … }
static int imx_pd_bridge_atomic_check(struct drm_bridge *bridge,
struct drm_bridge_state *bridge_state,
struct drm_crtc_state *crtc_state,
struct drm_connector_state *conn_state)
{ … }
static const struct drm_connector_funcs imx_pd_connector_funcs = …;
static const struct drm_connector_helper_funcs imx_pd_connector_helper_funcs = …;
static const struct drm_bridge_funcs imx_pd_bridge_funcs = …;
static int imx_pd_bind(struct device *dev, struct device *master, void *data)
{ … }
static const struct component_ops imx_pd_ops = …;
static int imx_pd_probe(struct platform_device *pdev)
{ … }
static void imx_pd_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id imx_pd_dt_ids[] = …;
MODULE_DEVICE_TABLE(of, imx_pd_dt_ids);
static struct platform_driver imx_pd_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;