Received: by 2002:a05:7412:8d10:b0:f3:1519:9f41 with SMTP id bj16csp226703rdb; Tue, 5 Dec 2023 04:00:06 -0800 (PST) X-Google-Smtp-Source: AGHT+IEiA+1kM3leSZ34XjmxbAnpB/uLfoNENb1lo7R2Jo2DPvB06WCCYGZYyqvPXL3uKF1TKzs1 X-Received: by 2002:a05:6358:63a8:b0:170:21ef:3e7b with SMTP id k40-20020a05635863a800b0017021ef3e7bmr6252290rwh.44.1701777606025; Tue, 05 Dec 2023 04:00:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701777605; cv=none; d=google.com; s=arc-20160816; b=W6kSU4c2stfCh1jVJr/TLMKhsPkoFIuhbq2ne7f4brLUuj3hVGBdOUv2O4+X7Yk1mt pLjHwyfCjneCIl6ZT3nnZLm1BlQgUFHiorFRrzzp9G+fmWr48m+ir8xDKtcJpbSefoo1 HORUUJZOG+LaidN7ZPId7s58iyZPpZzeLkrjB9Ys25POWvk6H8POqDt7AVvfLRfBkBtz 8jUUPR7FlHOKT28t184F0rrlxmcwAnzgX8cDr7ivCgNH283xI3AoodXmDLkpNWe5O2WH qCBzsXULEs5mzqGbOF059TYiOI68vyw76Airp2LSbnWfwr87hMhY6BcCwflBVR9bCp1t VMAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :content-language:references:cc:to:subject:mime-version:date :dkim-signature:message-id; bh=9FNNsCD4UdrxJOkb/IVwaih82zP1k+LML9/DNjLCExQ=; fh=OYbwi+qJ5PlMBtDs0Kdyyv/5K9+cTmB2HdDdRRNbU3Y=; b=VQUsBosMXjgFgH4hz4XdOTkXnMT+dAsNnnsvjg24ymTYx878YwAbQpX2sXQvUXexLg 900Hjtu0n7mbSksYtYW8BTxjL3Y/mBjrVzttNXh2jxIBKY/2/SAv5uyZ7e7JKWvo9GgJ I0C0UwTztORH+TMvwwe0a2B/+vDBKaqvqfMAGXMcANc6yCx9NuR1TduN0vKqOXoHCk5S 8cLeEY3dEnwkwxkeVPcNpVo3b7gHYjSwuPGEja/G9t6eSS7DHIdLunN3BRAEu5WogmDo zX7lGOyZ2DR9CIqDOGlyswNcaTKLi1mG8ZHIO9nf+Uc1Hy1Robdru4Ez5RTODmC7VF4E orvQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=IAVA675A; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.dev Return-Path: Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id q33-20020a635061000000b005bdbedcaf61si9456579pgl.674.2023.12.05.04.00.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 04:00:05 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=IAVA675A; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id ABC6F80C244B; Tue, 5 Dec 2023 04:00:00 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347050AbjLEL7v (ORCPT + 99 others); Tue, 5 Dec 2023 06:59:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54286 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345120AbjLEL7u (ORCPT ); Tue, 5 Dec 2023 06:59:50 -0500 Received: from out-189.mta1.migadu.com (out-189.mta1.migadu.com [IPv6:2001:41d0:203:375::bd]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 27DB2A8 for ; Tue, 5 Dec 2023 03:59:53 -0800 (PST) Message-ID: <50e674a2-89f8-46d2-8efe-3cf65ca1b554@linux.dev> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1701777590; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9FNNsCD4UdrxJOkb/IVwaih82zP1k+LML9/DNjLCExQ=; b=IAVA675At4yZ/VrLScYNDbl/w7pWWgyAmRpL+D3r5bkICJmsonRbjwkAPoE5YDQ5PJf7d4 ejJy1DXjM77hAzel142fv9DyEYR+kvK6f2OLGTEiKxuxz7vAwGPnN26LMyG7Nbb0rHuWtp +wCRBTsxbOQyI9Oogr51f/SrfOePv0s= Date: Tue, 5 Dec 2023 19:59:40 +0800 MIME-Version: 1.0 Subject: Re: [v3 0/6] DRM driver for verisilicon To: Keith Zhao , devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org Cc: aou@eecs.berkeley.edu, tzimmermann@suse.de, paul.walmsley@sifive.com, mripard@kernel.org, xingyu.wu@starfivetech.com, jack.zhu@starfivetech.com, palmer@dabbelt.com, krzysztof.kozlowski+dt@linaro.org, william.qiu@starfivetech.com, shengyang.chen@starfivetech.com, changhuang.liang@starfivetech.com References: <20231204123315.28456-1-keith.zhao@starfivetech.com> Content-Language: en-US X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Sui Jingfeng In-Reply-To: <20231204123315.28456-1-keith.zhao@starfivetech.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Migadu-Flow: FLOW_OUT X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Tue, 05 Dec 2023 04:00:00 -0800 (PST) Hi, On 2023/12/4 20:33, Keith Zhao wrote: > This patch is a drm driver for Starfive Soc JH7110, > I am sending Drm driver part and HDMI driver part. > > We used GEM framework for buffer management, > and for buffer allocation,we use DMA APIs. > > the Starfive HDMI servers as interface between a LCD Controller > and a HDMI bus. > A HDMI TX consists of one HDMI transmitter controller > and one HDMI transmitter PHY. > (Sound support is not include in this patch) > > This patchset should be applied on next branch. Please study Thomas's patch[1][2] carefully and write a good cover letter. Introduce what each single patch does, demonstrate how the whole driver is divided and organized, and why. And probably keep contact with him if he would like to curve your driver to a good shape. :-) [1] https://lore.kernel.org/dri-devel/20200715145902.13122-1-tzimmermann@suse.de/ [2] https://lore.kernel.org/dri-devel/20231113091439.17181-1-tzimmermann@suse.de/ > V1: > Changes since v1: > - Further standardize the yaml file. > - Dts naming convention improved. > - Fix the problem of compiling and loading ko files. > - Use drm new api to automatically manage resources. > - Drop vs_crtc_funcs&vs_plane_funcs, subdivide the plane's help interface. > - Reduce the modifiers unused. > - Optimize the hdmi driver code > > V2: > Changes since v2: > - fix the error about checking the yaml file. > - match drm driver GEM DMA API. > - Delete the custom crtc property . > - hdmi use drmm_ new api to automatically manage resources. > - update the modifiers comments. > - enabling KASAN, fix the error during removing module > > V3: > Changes since v3: > - Delete the custom plane property. > - Delete the custom fourcc modifiers. > - Adjust the calculation mode of hdmi pixclock. > - Add match data for dc8200 driver. > - Adjust some magic values. > - Add a simple encoder for dsi output. > > Keith Zhao (6): > dt-bindings: display: Add yamls for JH7110 display system > riscv: dts: starfive: jh7110: display subsystem > drm/vs: Register DRM device > drm/vs: Add KMS crtc&plane > drm/vs: Add hdmi driver > drm/vs: simple encoder > > .../starfive/starfive,display-subsystem.yaml | 104 ++ > .../starfive/starfive,dsi-encoder.yaml | 92 ++ > .../starfive/starfive,jh7110-dc8200.yaml | 113 ++ > .../starfive/starfive,jh7110-inno-hdmi.yaml | 82 ++ > .../soc/starfive/starfive,jh7110-syscon.yaml | 1 + > MAINTAINERS | 8 + > .../jh7110-starfive-visionfive-2.dtsi | 134 ++ > arch/riscv/boot/dts/starfive/jh7110.dtsi | 49 + > drivers/gpu/drm/Kconfig | 2 + > drivers/gpu/drm/Makefile | 1 + > drivers/gpu/drm/verisilicon/Kconfig | 21 + > drivers/gpu/drm/verisilicon/Makefile | 12 + > drivers/gpu/drm/verisilicon/starfive_hdmi.c | 849 ++++++++++++ > drivers/gpu/drm/verisilicon/starfive_hdmi.h | 304 +++++ > drivers/gpu/drm/verisilicon/vs_crtc.c | 208 +++ > drivers/gpu/drm/verisilicon/vs_crtc.h | 42 + > drivers/gpu/drm/verisilicon/vs_dc.c | 1192 +++++++++++++++++ > drivers/gpu/drm/verisilicon/vs_dc.h | 67 + > drivers/gpu/drm/verisilicon/vs_dc_hw.c | 1022 ++++++++++++++ > drivers/gpu/drm/verisilicon/vs_dc_hw.h | 580 ++++++++ > drivers/gpu/drm/verisilicon/vs_drv.c | 323 +++++ > drivers/gpu/drm/verisilicon/vs_drv.h | 46 + > drivers/gpu/drm/verisilicon/vs_modeset.c | 39 + > drivers/gpu/drm/verisilicon/vs_modeset.h | 10 + > drivers/gpu/drm/verisilicon/vs_plane.c | 301 +++++ > drivers/gpu/drm/verisilicon/vs_plane.h | 39 + > drivers/gpu/drm/verisilicon/vs_simple_enc.c | 195 +++ > drivers/gpu/drm/verisilicon/vs_simple_enc.h | 23 + > drivers/gpu/drm/verisilicon/vs_type.h | 69 + > 29 files changed, 5928 insertions(+) > create mode 100644 Documentation/devicetree/bindings/display/starfive/starfive,display-subsystem.yaml > create mode 100644 Documentation/devicetree/bindings/display/starfive/starfive,dsi-encoder.yaml > create mode 100644 Documentation/devicetree/bindings/display/starfive/starfive,jh7110-dc8200.yaml > create mode 100644 Documentation/devicetree/bindings/display/starfive/starfive,jh7110-inno-hdmi.yaml > create mode 100644 drivers/gpu/drm/verisilicon/Kconfig > create mode 100644 drivers/gpu/drm/verisilicon/Makefile > create mode 100644 drivers/gpu/drm/verisilicon/starfive_hdmi.c > create mode 100644 drivers/gpu/drm/verisilicon/starfive_hdmi.h > create mode 100644 drivers/gpu/drm/verisilicon/vs_crtc.c > create mode 100644 drivers/gpu/drm/verisilicon/vs_crtc.h > create mode 100644 drivers/gpu/drm/verisilicon/vs_dc.c > create mode 100644 drivers/gpu/drm/verisilicon/vs_dc.h > create mode 100644 drivers/gpu/drm/verisilicon/vs_dc_hw.c > create mode 100644 drivers/gpu/drm/verisilicon/vs_dc_hw.h > create mode 100644 drivers/gpu/drm/verisilicon/vs_drv.c > create mode 100644 drivers/gpu/drm/verisilicon/vs_drv.h > create mode 100644 drivers/gpu/drm/verisilicon/vs_modeset.c > create mode 100644 drivers/gpu/drm/verisilicon/vs_modeset.h > create mode 100644 drivers/gpu/drm/verisilicon/vs_plane.c > create mode 100644 drivers/gpu/drm/verisilicon/vs_plane.h > create mode 100644 drivers/gpu/drm/verisilicon/vs_simple_enc.c > create mode 100644 drivers/gpu/drm/verisilicon/vs_simple_enc.h > create mode 100644 drivers/gpu/drm/verisilicon/vs_type.h >