From patchwork Fri Nov 1 10:50:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yongbang Shi X-Patchwork-Id: 13859223 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 81A6EE6B240 for ; Fri, 1 Nov 2024 10:55:53 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id EE25A10E99B; Fri, 1 Nov 2024 10:55:52 +0000 (UTC) Received: from szxga05-in.huawei.com (szxga05-in.huawei.com [45.249.212.191]) by gabe.freedesktop.org (Postfix) with ESMTPS id CE58010E99B for ; Fri, 1 Nov 2024 10:55:51 +0000 (UTC) Received: from mail.maildlp.com (unknown [172.19.88.234]) by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4XfyR95kwKz1jwMH; Fri, 1 Nov 2024 18:54:13 +0800 (CST) Received: from kwepemd500013.china.huawei.com (unknown [7.221.188.12]) by mail.maildlp.com (Postfix) with ESMTPS id 4CE5B14011B; Fri, 1 Nov 2024 18:55:48 +0800 (CST) Received: from localhost.huawei.com (10.169.71.169) by kwepemd500013.china.huawei.com (7.221.188.12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.34; Fri, 1 Nov 2024 18:55:46 +0800 From: Yongbang Shi To: , , , , , , , CC: , , , , , , , , Subject: [PATCH V3 drm-dp 0/4] Add dp module in hibmc driver Date: Fri, 1 Nov 2024 18:50:24 +0800 Message-ID: <20241101105028.2177274-1-shiyongbang@huawei.com> X-Mailer: git-send-email 2.33.0 MIME-Version: 1.0 X-Originating-IP: [10.169.71.169] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To kwepemd500013.china.huawei.com (7.221.188.12) X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" From: baihan li Realizing the basic display function of DP cable for DP connector displaying. Add DP module in hibmc drm driver, which is for Hisilicon Hibmc SoC which used for Out-of-band management. Blow is the general hardware connection, both the Hibmc and the host CPU are on the same mother board. +----------+ +----------+ +----- ----+ +----------------+ | | PCIe | Hibmc | | | | | |host CPU( |<----->| display |<---->| dp kapi |<---->| dp aux moduel | |arm64,x86)| |subsystem | | moduel |<---->| dp link moduel | +----------+ +----------+ +----------+ +----------------+ --- ChangeLog: v2 -> v3: - put the macro definations in latter patch where they are actually used, suggested by Dmitry Baryshkov. - rename some macro definations to make them sensible, suggested by Dmitry Baryshkov. - using FIELD_PREP and FIELD_GET, suggested by Dmitry Baryshkov. - using DP_DPCD_REV_foo, suggested by Dmitry Baryshkov. - using switchcase in dp_link_reduce_lane, suggested by Dmitry Baryshkov. - deleting dp_link_pattern2dpcd function and using macros directly, suggested by Dmitry Baryshkov. - deleting EFAULT error codes, suggested by Dmitry Baryshkov. - fix build errors reported by kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202410250305.UHKDhtxy-lkp@intel.com/ Closes: https://lore.kernel.org/oe-kbuild-all/202410250931.UDQ9s66H-lkp@intel.com/ Closes: https://lore.kernel.org/oe-kbuild-all/202410251136.1m7BlR68-lkp@intel.com/ v2:https://lore.kernel.org/all/20241022124148.1952761-1-shiyongbang@huawei.com/ v1 -> v2: - using drm_dp_aux frame implement dp aux read and write functions, suggested by Jani Nikula. - using drm dp header files' dp macros instead, suggested by Andy Yan. - using drm_dp_* functions implement dp link training process, suggested by Jani Nikula. - changed some defines and functions to former patch, suggested by Dmitry Baryshkov. - sorting the headers including in dp_hw.h and hibmc_drm_drv.c files, suggested by Dmitry Baryshkov. - deleting struct dp_mode and dp_mode_cfg function, suggested by Dmitry Baryshkov. - modifying drm_simple_encoder_init function, suggested by Dmitry Baryshkov. - refactoring struct hibmc_connector, suggested by Dmitry Baryshkov. - withdrawing the modification in hibmc_kms_init, suggested by Dmitry Baryshkov. - fix build errors reported by kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202410031735.8iRZZR6T-lkp@intel.com/ Closes: https://lore.kernel.org/oe-kbuild-all/202410040328.VeVxM9yB-lkp@intel.com/ v1:https://lore.kernel.org/all/20240930100610.782363-1-shiyongbang@huawei.com/ --- baihan li (4): drm/hisilicon/hibmc: add dp aux in hibmc drivers drm/hisilicon/hibmc: add dp link moduel in hibmc drivers drm/hisilicon/hibmc: add dp hw moduel in hibmc driver drm/hisilicon/hibmc: add dp module in hibmc drivers/gpu/drm/hisilicon/hibmc/Makefile | 3 +- drivers/gpu/drm/hisilicon/hibmc/dp/dp_aux.c | 162 ++++++++ drivers/gpu/drm/hisilicon/hibmc/dp/dp_aux.h | 23 ++ drivers/gpu/drm/hisilicon/hibmc/dp/dp_comm.h | 58 +++ .../gpu/drm/hisilicon/hibmc/dp/dp_config.h | 19 + drivers/gpu/drm/hisilicon/hibmc/dp/dp_hw.c | 237 ++++++++++++ drivers/gpu/drm/hisilicon/hibmc/dp/dp_hw.h | 31 ++ drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c | 346 ++++++++++++++++++ drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.h | 25 ++ drivers/gpu/drm/hisilicon/hibmc/dp/dp_reg.h | 76 ++++ .../gpu/drm/hisilicon/hibmc/hibmc_drm_dp.c | 128 +++++++ .../gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 16 + .../gpu/drm/hisilicon/hibmc/hibmc_drm_drv.h | 21 +- .../gpu/drm/hisilicon/hibmc/hibmc_drm_i2c.c | 41 +-- .../gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c | 20 +- 15 files changed, 1166 insertions(+), 40 deletions(-) create mode 100644 drivers/gpu/drm/hisilicon/hibmc/dp/dp_aux.c create mode 100644 drivers/gpu/drm/hisilicon/hibmc/dp/dp_aux.h create mode 100644 drivers/gpu/drm/hisilicon/hibmc/dp/dp_comm.h create mode 100644 drivers/gpu/drm/hisilicon/hibmc/dp/dp_config.h create mode 100644 drivers/gpu/drm/hisilicon/hibmc/dp/dp_hw.c create mode 100644 drivers/gpu/drm/hisilicon/hibmc/dp/dp_hw.h create mode 100644 drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c create mode 100644 drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.h create mode 100644 drivers/gpu/drm/hisilicon/hibmc/dp/dp_reg.h create mode 100644 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_dp.c