From patchwork Thu Jul 15 06:51:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vinod Koul X-Patchwork-Id: 477398 Delivered-To: patch@linaro.org Received: by 2002:a02:c94a:0:0:0:0:0 with SMTP id u10csp1408548jao; Wed, 14 Jul 2021 23:52:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwW4q6U9royTazyB8chNu5gfd4nlOkofGpAzqRSoocdTqvgiAVl9I+F3hkFRKCnCIR/ZYob X-Received: by 2002:a17:90a:2c09:: with SMTP id m9mr8614434pjd.212.1626331950416; Wed, 14 Jul 2021 23:52:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626331950; cv=none; d=google.com; s=arc-20160816; b=et72CiFoPqg3/jkRVb1jb9dZO8We5sUDXNM5eN2gsiUlamrWSn1hBcg/wKPHc7QegW +OWjzypgDhpFC0PraiZmyPUFccsY8s7D+0fKqQ/IBzjDpU9GbmqpET/fKgsoWlum4sSQ ENqv4pvi9DXbYZADPKtYIYS/tWcD2mPfu0aHxmad1VELEKY1S6W85YIsqUIBZNteMJ3p Yv9Oul+Qj+tXTSmmOkhZFLl7V+a9OZerjJDN0Buk2tswSUbBkKe2TTbCXwu1/Xiy4L/j 3y3GxpMDWE9diETwn6CcD3vIkgdxNOLYY3QkPBaB7vG8W63J/Fin2rXQNPiShaGYgKxt OgzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:message-id:date:subject:to:from:dkim-signature :delivered-to; bh=RLDUDRHB+PFCVLdyXaxZC3qPye5/fsiwnAh+zfgctwg=; b=JLAs7QyJ/huWJfjtlDf9l/kUscgF7dbbMDo+lM3+ocWsz2oCE1kyRYME/7+0wRMYNm 6JZfZuMMf0iorX4/Bd1aLCEw+7Vie8E2GzYJjCX4ff00/4GnNZtuYcbKlzXflubV2XJT zAy+lx2FuPXJ3+wIpEG1dH7MFlLTuFxYU8FsHb9aSc+wD+aRuH3Gn3yq0XxEC9DewHhu W5Iyb9ww3cRvJhoTujZXmS5ngsjys5xXcTFs2dvHHfauxj8RtpdnEl9MV1oJaXH8yNt8 Hc2LWt4eqcBcFsWuTURXiuoLOCIATdkcs0SI2F10xe45WgVMegjQZcNQTqyScvFmp6se za7Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@kernel.org header.s=k20201202 header.b=iISRNiog; spf=pass (google.com: best guess record for domain of dri-devel-bounces@lists.freedesktop.org designates 2610:10:20:722:a800:ff:fe36:1795 as permitted sender) smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from gabe.freedesktop.org (gabe.freedesktop.org. [2610:10:20:722:a800:ff:fe36:1795]) by mx.google.com with ESMTPS id g33si6025262pgm.131.2021.07.14.23.52.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Jul 2021 23:52:30 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of dri-devel-bounces@lists.freedesktop.org designates 2610:10:20:722:a800:ff:fe36:1795 as permitted sender) client-ip=2610:10:20:722:a800:ff:fe36:1795; Authentication-Results: mx.google.com; dkim=fail header.i=@kernel.org header.s=k20201202 header.b=iISRNiog; spf=pass (google.com: best guess record for domain of dri-devel-bounces@lists.freedesktop.org designates 2610:10:20:722:a800:ff:fe36:1795 as permitted sender) smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2414D6E52E; Thu, 15 Jul 2021 06:52:27 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0ABF06E17F; Thu, 15 Jul 2021 06:52:26 +0000 (UTC) Received: by mail.kernel.org (Postfix) with ESMTPSA id 6B3906117A; Thu, 15 Jul 2021 06:52:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1626331945; bh=Ol1Ypfkrt453Oh84OpaT+qh/m2pWp+qFE/FGZ6U2BQs=; h=From:To:Cc:Subject:Date:From; b=iISRNiogDeisnuwSXGhjF81JrojOJQtWdvksKJhM45KhFrPqk8x+K6YnNGRa+/ctm qk3fWEa98j7n4wqVZ2w7wUq9raMUrTBBSCjnCfLASK79QRu0RbUJfv+9oJUcidEvaf 6ivlDAjtgD9LZzKQ/hYRzyxt9ORcITlmqG59i25dPIvbBED+K6Dqs2YeQMPXiZVUVf qMk04UAZWM9q1ojchXuid21tf5edaSV+EJUWZYGd2KZ63BotiO52VnnaSosHOJgXZl M6tiHg0VDZPtiA87tEq0NSgs8ozJ+kniI4XNh8nTWDNhTqsTcYZ0TWAU4fMjy8oscD JK6g17bk5RbWw== From: Vinod Koul To: Rob Clark Subject: [PATCH 00/11] drm/msm: Add Display Stream Compression Support Date: Thu, 15 Jul 2021 12:21:52 +0530 Message-Id: <20210715065203.709914-1-vkoul@kernel.org> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 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: , Cc: Jonathan Marek , Jeffrey Hugo , David Airlie , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Abhinav Kumar , Bjorn Andersson , Vinod Koul , dri-devel@lists.freedesktop.org, Dmitry Baryshkov , freedreno@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Display Stream Compression (DSC) compresses the display stream in host which is later decoded by panel. This series enables this for Qualcomm msm driver. This was tested on Google Pixel3 phone which use LGE SW43408 panel. The changes include adding DT properties for DSC then hardware blocks support required in DPU1 driver and support in encoder. We also add support in DSI and introduce required topology changes. In order for panel to set the DSC parameters we add dsc in drm_panel and set it from the msm driver. Complete changes which enable this for Pixel3 along with panel driver (not part of this series) and DT changes can be found at: git.linaro.org/people/vinod.koul/kernel.git pixel/dsc_v1 Comments welcome! Changes since RFC: - Drop the DT binding patch as we derive the configuration from panel - Drop the drm api patch as we no longer need it (use pps drm api) - Fix comments raised by Dimitry - Add dsc parameters calculation from downstream Vinod Koul (11): drm/msm/dsi: add support for dsc data drm/msm/disp/dpu1: Add support for DSC drm/msm/disp/dpu1: Add support for DSC in pingpong block drm/msm/disp/dpu1: Add DSC support in RM drm/msm/disp/dpu1: Add DSC for SDM845 to hw_catalog drm/msm/disp/dpu1: Add DSC support in hw_ctl drm/msm/disp/dpu1: Don't use DSC with mode_3d drm/msm/disp/dpu1: Add support for DSC in encoder drm/msm/disp/dpu1: Add support for DSC in topology drm/msm/dsi: Add support for DSC configuration drm/msm/dsi: Pass DSC params to drm_panel drivers/gpu/drm/msm/Makefile | 1 + drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 158 +++++++++- .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h | 11 + .../drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c | 2 + .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 22 ++ .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 13 + drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c | 12 +- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h | 2 + drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c | 221 ++++++++++++++ drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.h | 77 +++++ drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h | 13 + .../gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c | 32 ++ .../gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.h | 14 + drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 1 + drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c | 32 ++ drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h | 1 + drivers/gpu/drm/msm/dsi/dsi.xml.h | 10 + drivers/gpu/drm/msm/dsi/dsi_host.c | 289 +++++++++++++++++- drivers/gpu/drm/msm/msm_drv.h | 21 ++ include/drm/drm_panel.h | 7 + 20 files changed, 925 insertions(+), 14 deletions(-) create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.h -- 2.31.1 Reviewed-by: Abhinav Kumar