This patch set adds a new drm driver for Hisilicon Hibmc. Hibmc is a BMC SoC with a display controller intergrated, usually it is used on server for Out-of-band management purpose. In this patch set, we just support basic function for Hibmc display subsystem. Hibmc display subsystem is connected to host CPU by PCIe as blow: +----------+ +----------+ | | PCIe | Hibmc | |host CPU( |<----->| display | |arm64,x86)| |subsystem | +----------+ +----------+ Hardware Detail for Hibmc display subsystem ----------- The display subsystem of Hibmc is show as bellow: +----+ +----+ +----+ +--------+ | | | | | | | | | FB |----->| DE |----->|VDAC|---->|external| | | | | | | | VGA | +----+ +----+ +----+ +--------+ -DE(Display Engine) is the display controller. -VDAC(Video Digital-to-Analog converter) converts the RGB diaital data stream from DE to VGA analog signals. Change History ------------ Changes in v7: -remove hibmc_drm_power.c/hibmc_drm_power.h, move the functions to hibmc_drm_drv.c. -remove hibmc_drm_de.h and move the struct defined in head file to hibmc_drm_de.c. -plane is initialized inside crtc, not in hibmc_kms_init(). -connector is initialized inside encoder, not in hibmc_kms_init(). -remove plane/crtc/encoder/connector from hibmc_drm_private struct. -call drm_atomic_helper_suspend/resume in hibmc_pm_suspend/resume. -remove these empty stubs because caller will do NULL check. hibmc_plane_atomic_disable hibmc_crtc_atomic_check hibmc_encoder_disable hibmc_encoder_enable hibmc_encoder_atomic_check -clean up in all error paths of creating driver-private framebuffer. Changes in v6: -remove the embedded framebuffer and use a pointer of hibmc_framebuffer instead. -remove the deprecated drm_framebuffer_unregister_private(), drm_framebuffer_unreference() will be called in hibmc_fbdev_destroy(). -uninstall irq in hibmc_unload(). Changes in v5: -rebase on v4.9-rc2. -replace drm_fb_helper_set_suspend with drm_fb_helper_set_suspend_unlocked. and remove redundant console_lock and console_unlock. Changes in v4: -remove unused include files, and include header file when it is needed. -remove unused FLAG in Kconfig: DRM_GEM_CMA_HELPER/DRM_KMS_CMA_HELPER. -remove drm_helper_disable_unused_functions, since we use DRIVER_ATOMIC. Changes in v3: -enable KMS, in v2, only fbdev is enabled. -management video memory with ttm. -add vblank interrupt. -remove drm_connector_register_all() and drm_connector_unregister_all(). -I have a basic test with igt. Changes in v2: -Remove self-defined macros for bit operations. -Remove unused register. -Replace those deprecated functions with new version of them. -use drm_connector_register_all() to register connector after drm_dev_register(). The patch v2 is at https://lists.freedesktop.org/archives/dri-devel/2016-May/108661.html Rongrong Zou (7): drm/hisilicon/hibmc: Add hisilicon hibmc drm master driver drm/hisilicon/hibmc: Add video memory management drm/hisilicon/hibmc: Add support for frame buffer drm/hisilicon/hibmc: Add support for display engine drm/hisilicon/hibmc: Add support for VDAC drm/hisilicon/hibmc: Add support for vblank interrupt MAINTAINERS: Update HISILICON DRM entries MAINTAINERS | 1 + drivers/gpu/drm/hisilicon/Kconfig | 1 + drivers/gpu/drm/hisilicon/Makefile | 1 + drivers/gpu/drm/hisilicon/hibmc/Kconfig | 9 + drivers/gpu/drm/hisilicon/hibmc/Makefile | 4 + drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c | 477 ++++++++++++++++++ drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 456 ++++++++++++++++++ drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.h | 114 +++++ drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c | 267 +++++++++++ drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_regs.h | 196 ++++++++ drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c | 147 ++++++ drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c | 558 ++++++++++++++++++++++ 12 files changed, 2231 insertions(+) create mode 100644 drivers/gpu/drm/hisilicon/hibmc/Kconfig create mode 100644 drivers/gpu/drm/hisilicon/hibmc/Makefile create mode 100644 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c create mode 100644 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c create mode 100644 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.h create mode 100644 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c create mode 100644 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_regs.h create mode 100644 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c create mode 100644 drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c -- 1.9.1 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel