diff options
author | Rob Clark <[email protected]> | 2013-08-29 17:26:16 -0400 |
---|---|---|
committer | Rob Clark <[email protected]> | 2013-08-29 17:35:05 -0400 |
commit | de10d383d029c8559522f731e04572dc997a0dbc (patch) | |
tree | e13062af1f99f2fa1e202feb84105f9ac8a2995d /src/gallium/targets | |
parent | e95b7d89b9cd7d82b6122f9ad9bbf2249a0a8802 (diff) |
freedreno: pipe loader for either kgsl or msm
The downstream android kernel driver is "kgsl", the upstream drm/kms
driver is called "msm". Since libdrm_freedreno handles the differences
between the two, we need to load the same thing for either device.
Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/targets')
-rw-r--r-- | src/gallium/targets/dri-freedreno/Makefile.am | 27 | ||||
-rw-r--r-- | src/gallium/targets/dri-freedreno/target-kgsl.c (renamed from src/gallium/targets/dri-freedreno/target.c) | 0 | ||||
-rw-r--r-- | src/gallium/targets/dri-freedreno/target-msm.c | 20 | ||||
-rw-r--r-- | src/gallium/targets/egl-static/egl_pipe.c | 2 |
4 files changed, 39 insertions, 10 deletions
diff --git a/src/gallium/targets/dri-freedreno/Makefile.am b/src/gallium/targets/dri-freedreno/Makefile.am index cfa1f37fd37..615ae6f2de8 100644 --- a/src/gallium/targets/dri-freedreno/Makefile.am +++ b/src/gallium/targets/dri-freedreno/Makefile.am @@ -37,18 +37,16 @@ AM_CPPFLAGS = \ -DGALLIUM_NOOP dridir = $(DRI_DRIVER_INSTALL_DIR) -dri_LTLIBRARIES = kgsl_dri.la +dri_LTLIBRARIES = kgsl_dri.la msm_dri.la -nodist_EXTRA_kgsl_dri_la_SOURCES = dummy.cpp -kgsl_dri_la_SOURCES = \ - target.c \ +COMMON_SOURCES = \ $(top_srcdir)/src/mesa/drivers/dri/common/utils.c \ $(top_srcdir)/src/mesa/drivers/dri/common/dri_util.c \ $(top_srcdir)/src/mesa/drivers/dri/common/xmlconfig.c -kgsl_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined +COMMON_LDFLAGS = -module -avoid-version -shared -no-undefined -kgsl_dri_la_LIBADD = \ +COMMON_LIBADD = \ $(top_builddir)/src/mesa/libmesagallium.la \ $(top_builddir)/src/gallium/auxiliary/libgallium.la \ $(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \ @@ -62,12 +60,23 @@ kgsl_dri_la_LIBADD = \ $(FREEDRENO_LIBS) if HAVE_MESA_LLVM -kgsl_dri_la_LDFLAGS += $(LLVM_LDFLAGS) -kgsl_dri_la_LIBADD += $(LLVM_LIBS) +COMMON_LDFLAGS += $(LLVM_LDFLAGS) +COMMON_LIBADD += $(LLVM_LIBS) endif +nodist_EXTRA_kgsl_dri_la_SOURCES = dummy.cpp +kgsl_dri_la_SOURCES = target-kgsl.c $(COMMON_SOURCES) +kgsl_dri_la_LDFLAGS = $(COMMON_LDFLAGS) +kgsl_dri_la_LIBADD = $(COMMON_LIBADD) + +nodist_EXTRA_msm_dri_la_SOURCES = dummy.cpp +msm_dri_la_SOURCES = target-msm.c $(COMMON_SOURCES) +msm_dri_la_LDFLAGS = $(COMMON_LDFLAGS) +msm_dri_la_LIBADD = $(COMMON_LIBADD) + # Provide compatibility with scripts for the old Mesa build system for # a while by putting a link to the driver into /lib of the build tree. -all-local: kgsl_dri.la +all-local: kgsl_dri.la msm_dri.la $(MKDIR_P) $(top_builddir)/$(LIB_DIR)/gallium ln -f .libs/kgsl_dri.so $(top_builddir)/$(LIB_DIR)/gallium/kgsl_dri.so + ln -f .libs/msm_dri.so $(top_builddir)/$(LIB_DIR)/gallium/msm_dri.so diff --git a/src/gallium/targets/dri-freedreno/target.c b/src/gallium/targets/dri-freedreno/target-kgsl.c index dcaf299a05b..dcaf299a05b 100644 --- a/src/gallium/targets/dri-freedreno/target.c +++ b/src/gallium/targets/dri-freedreno/target-kgsl.c diff --git a/src/gallium/targets/dri-freedreno/target-msm.c b/src/gallium/targets/dri-freedreno/target-msm.c new file mode 100644 index 00000000000..4a6299becb9 --- /dev/null +++ b/src/gallium/targets/dri-freedreno/target-msm.c @@ -0,0 +1,20 @@ + +#include "target-helpers/inline_debug_helper.h" +#include "state_tracker/drm_driver.h" +#include "freedreno/drm/freedreno_drm_public.h" + +static struct pipe_screen * +create_screen(int fd) +{ + struct pipe_screen *screen; + + screen = fd_drm_screen_create(fd); + if (!screen) + return NULL; + + screen = debug_screen_wrap(screen); + + return screen; +} + +DRM_DRIVER_DESCRIPTOR("freedreno", "msm", create_screen, NULL) diff --git a/src/gallium/targets/egl-static/egl_pipe.c b/src/gallium/targets/egl-static/egl_pipe.c index 57a3233530f..e5100c173e6 100644 --- a/src/gallium/targets/egl-static/egl_pipe.c +++ b/src/gallium/targets/egl-static/egl_pipe.c @@ -241,7 +241,7 @@ egl_pipe_create_drm_screen(const char *name, int fd) return pipe_radeonsi_create_screen(fd); else if (strcmp(name, "vmwgfx") == 0) return pipe_vmwgfx_create_screen(fd); - else if (strcmp(name, "kgsl") == 0) + else if ((strcmp(name, "kgsl") == 0) || (strcmp(name, "msm") == 0)) return pipe_freedreno_create_screen(fd); else return NULL; |