#define DSS_SUBSYS_NAME …
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/err.h>
#include <linux/io.h>
#include <linux/interrupt.h>
#include <linux/mutex.h>
#include <linux/delay.h>
#include <linux/string.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/clk.h>
#include <linux/regulator/consumer.h>
#include <linux/component.h>
#include <linux/of.h>
#include <linux/of_graph.h>
#include <sound/omap-hdmi-audio.h>
#include <drm/drm_atomic.h>
#include <drm/drm_atomic_state_helper.h>
#include <drm/drm_edid.h>
#include "omapdss.h"
#include "hdmi5_core.h"
#include "dss.h"
static int hdmi_runtime_get(struct omap_hdmi *hdmi)
{ … }
static void hdmi_runtime_put(struct omap_hdmi *hdmi)
{ … }
static irqreturn_t hdmi_irq_handler(int irq, void *data)
{ … }
static int hdmi_power_on_core(struct omap_hdmi *hdmi)
{ … }
static void hdmi_power_off_core(struct omap_hdmi *hdmi)
{ … }
static int hdmi_power_on_full(struct omap_hdmi *hdmi)
{ … }
static void hdmi_power_off_full(struct omap_hdmi *hdmi)
{ … }
static int hdmi_dump_regs(struct seq_file *s, void *p)
{ … }
static void hdmi_start_audio_stream(struct omap_hdmi *hd)
{ … }
static void hdmi_stop_audio_stream(struct omap_hdmi *hd)
{ … }
static int hdmi_core_enable(struct omap_hdmi *hdmi)
{ … }
static void hdmi_core_disable(struct omap_hdmi *hdmi)
{ … }
static int hdmi5_bridge_attach(struct drm_bridge *bridge,
enum drm_bridge_attach_flags flags)
{ … }
static void hdmi5_bridge_mode_set(struct drm_bridge *bridge,
const struct drm_display_mode *mode,
const struct drm_display_mode *adjusted_mode)
{ … }
static void hdmi5_bridge_enable(struct drm_bridge *bridge,
struct drm_bridge_state *bridge_state)
{ … }
static void hdmi5_bridge_disable(struct drm_bridge *bridge,
struct drm_bridge_state *bridge_state)
{ … }
static const struct drm_edid *hdmi5_bridge_edid_read(struct drm_bridge *bridge,
struct drm_connector *connector)
{ … }
static const struct drm_bridge_funcs hdmi5_bridge_funcs = …;
static void hdmi5_bridge_init(struct omap_hdmi *hdmi)
{ … }
static void hdmi5_bridge_cleanup(struct omap_hdmi *hdmi)
{ … }
static int hdmi_audio_startup(struct device *dev,
void (*abort_cb)(struct device *dev))
{ … }
static int hdmi_audio_shutdown(struct device *dev)
{ … }
static int hdmi_audio_start(struct device *dev)
{ … }
static void hdmi_audio_stop(struct device *dev)
{ … }
static int hdmi_audio_config(struct device *dev,
struct omap_dss_audio *dss_audio)
{ … }
static const struct omap_hdmi_audio_ops hdmi_audio_ops = …;
static int hdmi_audio_register(struct omap_hdmi *hdmi)
{ … }
static int hdmi5_bind(struct device *dev, struct device *master, void *data)
{ … }
static void hdmi5_unbind(struct device *dev, struct device *master, void *data)
{ … }
static const struct component_ops hdmi5_component_ops = …;
static int hdmi5_init_output(struct omap_hdmi *hdmi)
{ … }
static void hdmi5_uninit_output(struct omap_hdmi *hdmi)
{ … }
static int hdmi5_probe_of(struct omap_hdmi *hdmi)
{ … }
static int hdmi5_probe(struct platform_device *pdev)
{ … }
static void hdmi5_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id hdmi_of_match[] = …;
struct platform_driver omapdss_hdmi5hw_driver = …;