#define DSS_SUBSYS_NAME …
#include <linux/delay.h>
#include <linux/err.h>
#include <linux/export.h>
#include <linux/kernel.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/regulator/consumer.h>
#include <linux/string.h>
#include <drm/drm_bridge.h>
#include "dss.h"
#include "omapdss.h"
struct sdi_device { … };
#define drm_bridge_to_sdi(bridge) …
struct sdi_clk_calc_ctx { … };
static bool dpi_calc_dispc_cb(int lckd, int pckd, unsigned long lck,
unsigned long pck, void *data)
{ … }
static bool dpi_calc_dss_cb(unsigned long fck, void *data)
{ … }
static int sdi_calc_clock_div(struct sdi_device *sdi, unsigned long pclk,
unsigned long *fck,
struct dispc_clock_info *dispc_cinfo)
{ … }
static void sdi_config_lcd_manager(struct sdi_device *sdi)
{ … }
static int sdi_bridge_attach(struct drm_bridge *bridge,
enum drm_bridge_attach_flags flags)
{ … }
static enum drm_mode_status
sdi_bridge_mode_valid(struct drm_bridge *bridge,
const struct drm_display_info *info,
const struct drm_display_mode *mode)
{ … }
static bool sdi_bridge_mode_fixup(struct drm_bridge *bridge,
const struct drm_display_mode *mode,
struct drm_display_mode *adjusted_mode)
{ … }
static void sdi_bridge_mode_set(struct drm_bridge *bridge,
const struct drm_display_mode *mode,
const struct drm_display_mode *adjusted_mode)
{ … }
static void sdi_bridge_enable(struct drm_bridge *bridge)
{ … }
static void sdi_bridge_disable(struct drm_bridge *bridge)
{ … }
static const struct drm_bridge_funcs sdi_bridge_funcs = …;
static void sdi_bridge_init(struct sdi_device *sdi)
{ … }
static void sdi_bridge_cleanup(struct sdi_device *sdi)
{ … }
static int sdi_init_output(struct sdi_device *sdi)
{ … }
static void sdi_uninit_output(struct sdi_device *sdi)
{ … }
int sdi_init_port(struct dss_device *dss, struct platform_device *pdev,
struct device_node *port)
{ … }
void sdi_uninit_port(struct device_node *port)
{ … }