From patchwork Thu Oct 7 07:08:49 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vinod Koul X-Patchwork-Id: 515438 Delivered-To: patch@linaro.org Received: by 2002:ac0:b5cc:0:0:0:0:0 with SMTP id x12csp1022263ime; Thu, 7 Oct 2021 00:09:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxySrhyrDvxtoFchowAtdcYVZ2n7H8rZPFHaXbxxoL4sfxiREfb7dibiMKL8pO8drPf9biu X-Received: by 2002:a17:907:76e1:: with SMTP id kg1mr3596379ejc.329.1633590555354; Thu, 07 Oct 2021 00:09:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633590555; cv=none; d=google.com; s=arc-20160816; b=ssrooCxUPK3dy3Q8pUOgm8mgBZQlTd1oOvR1fWHzQeMtwJaTK1PXllpBbS+FmEGBsz ebxnPJJId4vWx46EUb8vxJNHuVShpGQb2BFHvIP6j8/jR8kXhuIxU4181UtN/s7mw2Ty pQ2kJGaXXR5FH2iTRA95RuAXtf3SN/Gl13AR6wGFa2whmTcjJQeK4cHmuMn8qLPJ4mvU w0sDqeoxhRkDsKSJMzwrFn9VSDBxt7j8zuM9ghkB0DlrFtpUO/j5wKm5Vq45VHjXEXDr I9pFR+JRE2S3ucHGWyweaSgAZq9j+2ZANToCWQGbuOSt2frG7l+mSJjMgto5v+FjWTbP 8beA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=matksrbIiDkiitg8oI6BOvF+bxlGDIfIKXZ/jHDTYeM=; b=jGPmO24sYSKfzYhMbxSAd/b8Y8YHnDfOUrnX914Rh4LGym7JOkvp/fx/KAyu5gDsNp EGwqoF93tlBe7l2/IlgopuMEtxDXwxPS4CCatCpVzdgEfHYASNkok7wuK/IEql6nvPi6 N4RnzN9kBZ4CGG+k7GiRg5K1IKukkNRmStYSNgCG9jjCyIFAosM0z+MmAcI1DJSC9X1t f9Bz6/F9YYgQoGAVigRHUqTxMzba7CnViZu9AEyKSA59BgeQubwug4himAMdZPZ81YZk fJUkqr88DuOqfmpcIjFYGw+sCw5pYd7UfR2pnZI9vURSvo0FUybCLqjSS6JxpMSFzH6k FPJg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Lb4b5uA0; spf=pass (google.com: domain of linux-arm-msm-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-arm-msm-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p22si26920954ejm.526.2021.10.07.00.09.14; Thu, 07 Oct 2021 00:09:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-arm-msm-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Lb4b5uA0; spf=pass (google.com: domain of linux-arm-msm-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-arm-msm-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240216AbhJGHLG (ORCPT + 17 others); Thu, 7 Oct 2021 03:11:06 -0400 Received: from mail.kernel.org ([198.145.29.99]:40156 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233691AbhJGHLG (ORCPT ); Thu, 7 Oct 2021 03:11:06 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 67A19611C1; Thu, 7 Oct 2021 07:09:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1633590552; bh=22EYG0VzkD8UsNZv/lkvQgFKZirveDQdUqMZZu5dRKA=; h=From:To:Cc:Subject:Date:From; b=Lb4b5uA0/jATIBoT6CZHxtPxISJbBZvHODIMfa3pr8tQg9ehYoPB0MMNmymv5Qw35 /n4Y33bMWrgNUdyZV/NF9KcOBEvC2Bfa3CJjC5nY+r/tJ+6TB5veOT+9qrctc6G6hs 2B1cjbV064B2cQvMfEoF26/EXRqMmYTFJ8iMm5snk53kNzFfgQQXo3zZIBaggE1gfX iyTMPyrD77uBRCTPus3/oEso0dl0kKtTzOovBNoBPlFP+zbnBS3QHWnHcBz0ysHKE9 rwdvsS1mOM/d90XobHR2Wgzpp18o6LjwiUdKr7kNkmeTUYTXVcCDtbOkqjWi6dBxb9 L5n1hcdOP6L6g== From: Vinod Koul To: Rob Clark Cc: linux-arm-msm@vger.kernel.org, Bjorn Andersson , Vinod Koul , David Airlie , Daniel Vetter , Jonathan Marek , Dmitry Baryshkov , Abhinav Kumar , Jeffrey Hugo , Sumit Semwal , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org Subject: [PATCH v2 00/11] drm/msm: Add Display Stream Compression Support Date: Thu, 7 Oct 2021 12:38:49 +0530 Message-Id: <20211007070900.456044-1-vkoul@kernel.org> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org 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 DSC data and hardware block enabling for DPU1 then 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_v2 Comments welcome! Changes since v1: - Fix various issues spotted by kbuildbot - Rebase to v5.15-rc3 - Remove unused fields and duplicate defines - Enable DSC blocks only when DSC is enabled - remove sdm845 feature mask, use 0 - Check for DSC in hw_ctl 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: Don't use DSC with mode_3d drm/msm/disp/dpu1: Add DSC support in hw_ctl 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 | 155 +++++++++- .../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 | 20 ++ .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 13 + drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c | 17 +- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h | 2 + drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c | 210 ++++++++++++++ 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 | 61 ++++ 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 | 269 +++++++++++++++++- drivers/gpu/drm/msm/msm_drv.h | 18 ++ include/drm/drm_panel.h | 7 + 20 files changed, 928 insertions(+), 6 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