linux/drivers/gpu/drm/bridge/display-connector.c

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2019 Laurent Pinchart <[email protected]>
 */

#include <linux/gpio/consumer.h>
#include <linux/i2c.h>
#include <linux/interrupt.h>
#include <linux/media-bus-format.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/regulator/consumer.h>

#include <drm/drm_atomic_helper.h>
#include <drm/drm_bridge.h>
#include <drm/drm_edid.h>

struct display_connector {};

static inline struct display_connector *
to_display_connector(struct drm_bridge *bridge)
{}

static int display_connector_attach(struct drm_bridge *bridge,
				    enum drm_bridge_attach_flags flags)
{}

static enum drm_connector_status
display_connector_detect(struct drm_bridge *bridge)
{}

static const struct drm_edid *display_connector_edid_read(struct drm_bridge *bridge,
							  struct drm_connector *connector)
{}

/*
 * Since this bridge is tied to the connector, it acts like a passthrough,
 * so concerning the output bus formats, either pass the bus formats from the
 * previous bridge or return fallback data like done in the bridge function:
 * drm_atomic_bridge_chain_select_bus_fmts().
 * This supports negotiation if the bridge chain has all bits in place.
 */
static u32 *display_connector_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)
{}

/*
 * Since this bridge is tied to the connector, it acts like a passthrough,
 * so concerning the input bus formats, either pass the bus formats from the
 * previous bridge or MEDIA_BUS_FMT_FIXED (like select_bus_fmt_recursive())
 * when atomic_get_input_bus_fmts is not supported.
 * This supports negotiation if the bridge chain has all bits in place.
 */
static u32 *display_connector_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 const struct drm_bridge_funcs display_connector_bridge_funcs =;

static irqreturn_t display_connector_hpd_irq(int irq, void *arg)
{}

static int display_connector_get_supply(struct platform_device *pdev,
					struct display_connector *conn,
					const char *name)
{}

static int display_connector_probe(struct platform_device *pdev)
{}

static void display_connector_remove(struct platform_device *pdev)
{}

static const struct of_device_id display_connector_match[] =;
MODULE_DEVICE_TABLE(of, display_connector_match);

static struct platform_driver display_connector_driver =;
module_platform_driver();

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();