Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions drivers/gpu/drm/bridge/imx/Kconfig
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
if ARCH_MXC || COMPILE_TEST

config DRM_IMX_LDB_HELPER
tristate

config DRM_IMX8MP_DW_HDMI_BRIDGE
tristate "Freescale i.MX8MP HDMI-TX bridge support"
depends on OF
Expand Down
17 changes: 17 additions & 0 deletions drivers/gpu/drm/bridge/imx/imx-ldb-helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@
* Copyright 2019,2020,2022 NXP
*/

#include <linux/export.h>
#include <linux/media-bus-format.h>
#include <linux/mfd/syscon.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/regmap.h>

Expand All @@ -19,12 +21,14 @@ bool ldb_channel_is_single_link(struct ldb_channel *ldb_ch)
{
return ldb_ch->link_type == LDB_CH_SINGLE_LINK;
}
EXPORT_SYMBOL_GPL(ldb_channel_is_single_link);

bool ldb_channel_is_split_link(struct ldb_channel *ldb_ch)
{
return ldb_ch->link_type == LDB_CH_DUAL_LINK_EVEN_ODD_PIXELS ||
ldb_ch->link_type == LDB_CH_DUAL_LINK_ODD_EVEN_PIXELS;
}
EXPORT_SYMBOL_GPL(ldb_channel_is_split_link);

int ldb_bridge_atomic_check_helper(struct drm_bridge *bridge,
struct drm_bridge_state *bridge_state,
Expand All @@ -38,6 +42,7 @@ int ldb_bridge_atomic_check_helper(struct drm_bridge *bridge,

return 0;
}
EXPORT_SYMBOL_GPL(ldb_bridge_atomic_check_helper);

void ldb_bridge_mode_set_helper(struct drm_bridge *bridge,
const struct drm_display_mode *mode,
Expand Down Expand Up @@ -69,6 +74,7 @@ void ldb_bridge_mode_set_helper(struct drm_bridge *bridge,
break;
}
}
EXPORT_SYMBOL_GPL(ldb_bridge_mode_set_helper);

void ldb_bridge_enable_helper(struct drm_bridge *bridge)
{
Expand All @@ -81,6 +87,7 @@ void ldb_bridge_enable_helper(struct drm_bridge *bridge)
*/
regmap_write(ldb->regmap, ldb->ctrl_reg, ldb->ldb_ctrl);
}
EXPORT_SYMBOL_GPL(ldb_bridge_enable_helper);

void ldb_bridge_disable_helper(struct drm_bridge *bridge)
{
Expand All @@ -95,6 +102,7 @@ void ldb_bridge_disable_helper(struct drm_bridge *bridge)

regmap_write(ldb->regmap, ldb->ctrl_reg, ldb->ldb_ctrl);
}
EXPORT_SYMBOL_GPL(ldb_bridge_disable_helper);

int ldb_bridge_attach_helper(struct drm_bridge *bridge,
enum drm_bridge_attach_flags flags)
Expand All @@ -112,6 +120,7 @@ int ldb_bridge_attach_helper(struct drm_bridge *bridge,
ldb_ch->next_bridge, bridge,
DRM_BRIDGE_ATTACH_NO_CONNECTOR);
}
EXPORT_SYMBOL_GPL(ldb_bridge_attach_helper);

int ldb_init_helper(struct ldb *ldb)
{
Expand Down Expand Up @@ -152,6 +161,7 @@ int ldb_init_helper(struct ldb *ldb)

return 0;
}
EXPORT_SYMBOL_GPL(ldb_init_helper);

int ldb_find_next_bridge_helper(struct ldb *ldb)
{
Expand Down Expand Up @@ -179,6 +189,7 @@ int ldb_find_next_bridge_helper(struct ldb *ldb)

return 0;
}
EXPORT_SYMBOL_GPL(ldb_find_next_bridge_helper);

void ldb_add_bridge_helper(struct ldb *ldb,
const struct drm_bridge_funcs *bridge_funcs)
Expand All @@ -199,6 +210,7 @@ void ldb_add_bridge_helper(struct ldb *ldb,
drm_bridge_add(&ldb_ch->bridge);
}
}
EXPORT_SYMBOL_GPL(ldb_add_bridge_helper);

void ldb_remove_bridge_helper(struct ldb *ldb)
{
Expand All @@ -214,3 +226,8 @@ void ldb_remove_bridge_helper(struct ldb *ldb)
drm_bridge_remove(&ldb_ch->bridge);
}
}
EXPORT_SYMBOL_GPL(ldb_remove_bridge_helper);

MODULE_DESCRIPTION("i.MX8 LVDS Display Bridge(LDB)/Pixel Mapper bridge helper");
MODULE_AUTHOR("Liu Ying <victor.liu@nxp.com>");
MODULE_LICENSE("GPL");