From 3d30cc8dde2a2e12bd3c6cff18fe2b96cc0c5a80 Mon Sep 17 00:00:00 2001 From: Vinu Deokaran Date: Fri, 3 Apr 2015 14:19:04 -0700 Subject: [PATCH] msm: add display bridge abstraction driver Add display bridge abstraction driver to provide an abstract interface for different types of bridge chips used on MSM platforms. This interface allows driver development for bridge chips from different manufactorers while allowing users, of the funcationality provided by these bridge chips, to re-use the same code across different boards. Change-Id: I64457e3a44479a3b1be5482691d4727a86dc9b87 Signed-off-by: Vinu Deokaran Signed-off-by: Siddharth Zaveri [cip@codeaurora.org: Moved file locations] Signed-off-by: Clarence Ip --- drivers/video/fbdev/msm/Kconfig | 1 + drivers/video/fbdev/msm/Makefile | 1 + drivers/video/fbdev/msm/msm_dba/Kconfig | 15 + drivers/video/fbdev/msm/msm_dba/Makefile | 3 + drivers/video/fbdev/msm/msm_dba/msm_dba.c | 146 +++++ .../video/fbdev/msm/msm_dba/msm_dba_debug.c | 299 +++++++++++ .../video/fbdev/msm/msm_dba/msm_dba_helpers.c | 445 ++++++++++++++++ .../video/fbdev/msm/msm_dba/msm_dba_init.c | 131 +++++ .../fbdev/msm/msm_dba/msm_dba_internal.h | 317 +++++++++++ include/video/msm_dba.h | 503 ++++++++++++++++++ 10 files changed, 1861 insertions(+) create mode 100644 drivers/video/fbdev/msm/msm_dba/Kconfig create mode 100644 drivers/video/fbdev/msm/msm_dba/Makefile create mode 100644 drivers/video/fbdev/msm/msm_dba/msm_dba.c create mode 100644 drivers/video/fbdev/msm/msm_dba/msm_dba_debug.c create mode 100644 drivers/video/fbdev/msm/msm_dba/msm_dba_helpers.c create mode 100644 drivers/video/fbdev/msm/msm_dba/msm_dba_init.c create mode 100644 drivers/video/fbdev/msm/msm_dba/msm_dba_internal.h create mode 100644 include/video/msm_dba.h diff --git a/drivers/video/fbdev/msm/Kconfig b/drivers/video/fbdev/msm/Kconfig index a4d5d5e0d637..c49ce06430be 100644 --- a/drivers/video/fbdev/msm/Kconfig +++ b/drivers/video/fbdev/msm/Kconfig @@ -1,3 +1,4 @@ +source "drivers/video/fbdev/msm/msm_dba/Kconfig" if FB_MSM diff --git a/drivers/video/fbdev/msm/Makefile b/drivers/video/fbdev/msm/Makefile index eadf8c7191ee..ac83251cbfe6 100644 --- a/drivers/video/fbdev/msm/Makefile +++ b/drivers/video/fbdev/msm/Makefile @@ -1,6 +1,7 @@ ccflags-y += -I$(src) -Idrivers/staging/android obj-$(CONFIG_FB_MSM_MDSS_MHL3) += mhl3/ +obj-$(CONFIG_MSM_DBA) += msm_dba/ mdss-mdp3-objs = mdp3.o mdp3_dma.o mdp3_ctrl.o dsi_status_v2.o mdss-mdp3-objs += mdp3_ppp.o mdp3_ppp_hwio.o mdp3_ppp_data.o diff --git a/drivers/video/fbdev/msm/msm_dba/Kconfig b/drivers/video/fbdev/msm/msm_dba/Kconfig new file mode 100644 index 000000000000..a20d59c16a0d --- /dev/null +++ b/drivers/video/fbdev/msm/msm_dba/Kconfig @@ -0,0 +1,15 @@ +# +# MSM DBA +# + +config MSM_DBA + bool "MSM Display Bridge Abstraction support" + depends on ARM + ---help--- + Support for MSM display bridge abstraction interface. MSM display + drivers can use the same interface to interact with different third + party bridge chips. Drivers implemented for third party bridge chips + should support this interface to allow display driver to control the + bridge chip. The MSM DBA driver maintains a list of devices supported + on the platform and allow clients to register and access these + devices. diff --git a/drivers/video/fbdev/msm/msm_dba/Makefile b/drivers/video/fbdev/msm/msm_dba/Makefile new file mode 100644 index 000000000000..68a1adf3f88e --- /dev/null +++ b/drivers/video/fbdev/msm/msm_dba/Makefile @@ -0,0 +1,3 @@ +obj-$(CONFIG_MSM_DBA) += msm_dba.o msm_dba_init.o msm_dba_helpers.o msm_dba_debug.o +clean: + rm *.o diff --git a/drivers/video/fbdev/msm/msm_dba/msm_dba.c b/drivers/video/fbdev/msm/msm_dba/msm_dba.c new file mode 100644 index 000000000000..7a5c9d9d873a --- /dev/null +++ b/drivers/video/fbdev/msm/msm_dba/msm_dba.c @@ -0,0 +1,146 @@ +/* + * Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include