#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 <media/cec.h>
#include <drm/drm_atomic.h>
#include <drm/drm_atomic_state_helper.h>
#include <drm/drm_edid.h>
#include "omapdss.h"
#include "hdmi4_core.h"
#include "hdmi4_cec.h"
#include "dss.h"
#include "hdmi.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)
{ … }
int hdmi4_core_enable(struct hdmi_core_data *core)
{ … }
void hdmi4_core_disable(struct hdmi_core_data *core)
{ … }
static int hdmi4_bridge_attach(struct drm_bridge *bridge,
enum drm_bridge_attach_flags flags)
{ … }
static void hdmi4_bridge_mode_set(struct drm_bridge *bridge,
const struct drm_display_mode *mode,
const struct drm_display_mode *adjusted_mode)
{ … }
static void hdmi4_bridge_enable(struct drm_bridge *bridge,
struct drm_bridge_state *bridge_state)
{ … }
static void hdmi4_bridge_disable(struct drm_bridge *bridge,
struct drm_bridge_state *bridge_state)
{ … }
static void hdmi4_bridge_hpd_notify(struct drm_bridge *bridge,
enum drm_connector_status status)
{ … }
static const struct drm_edid *hdmi4_bridge_edid_read(struct drm_bridge *bridge,
struct drm_connector *connector)
{ … }
static const struct drm_bridge_funcs hdmi4_bridge_funcs = …;
static void hdmi4_bridge_init(struct omap_hdmi *hdmi)
{ … }
static void hdmi4_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 hdmi4_bind(struct device *dev, struct device *master, void *data)
{ … }
static void hdmi4_unbind(struct device *dev, struct device *master, void *data)
{ … }
static const struct component_ops hdmi4_component_ops = …;
static int hdmi4_init_output(struct omap_hdmi *hdmi)
{ … }
static void hdmi4_uninit_output(struct omap_hdmi *hdmi)
{ … }
static int hdmi4_probe_of(struct omap_hdmi *hdmi)
{ … }
static int hdmi4_probe(struct platform_device *pdev)
{ … }
static void hdmi4_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id hdmi_of_match[] = …;
struct platform_driver omapdss_hdmi4hw_driver = …;