[PATCH v7 0/7] Add DRM driver for Hisilicon Hibmc
Sean Paul
seanpaul at chromium.org
Wed Nov 16 08:02:11 PST 2016
On Wed, Nov 16, 2016 at 11:01 AM, Sean Paul <seanpaul at chromium.org> wrote:
> On Wed, Nov 16, 2016 at 8:43 AM, Rongrong Zou <zourongrong at gmail.com> wrote:
>> 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.
>>
>
> For the whole series/driver:
>
> Acked-by: Sean Paul <seanpaul at chromium.org>
>
>
Also, please send those fixups for the other ttm drivers ;)
>
>> 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
>>
More information about the linux-arm-kernel
mailing list