Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp3499101rwl; Sun, 2 Apr 2023 08:43:53 -0700 (PDT) X-Google-Smtp-Source: AKy350ZJW//10rEvOQ9JFHifMDSKV6ca25eMlLp6VPE+72Uujz+fe0m1qdKG+elPPUcFq36vGqC9 X-Received: by 2002:aa7:c554:0:b0:502:2148:298c with SMTP id s20-20020aa7c554000000b005022148298cmr31762427edr.19.1680450232790; Sun, 02 Apr 2023 08:43:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680450232; cv=none; d=google.com; s=arc-20160816; b=WBeRhp2NnuTUZyCIjF/4LL1FARTZ54eHGH9KFxLg7Nrz3P/iqyU0V+M952zA3k7maI 975B/TnLb5v0xsatb5IUsW4iPrK4foFTuhAeR/hcLaNsk7YogS3OnozE1eZmhXkmGMyg irlBI9hhf+ZNfFGECRyYbkcllm7uPrQaG3pGPCU9F8odmi1BeKJdmUpAyd9tY/rLabRm VimgwCG7ncvVpAtoFUBWr5uvXP1ZPrA86ELJrHeK5bLJQDKANALhaTOXEOK700qoQwKd vQ3V0FClhWrOhgfHw14egtoh7WT4VCcIRyapY2NZ2LpxqZa5WUDfrk4i1u0CD5aBuLNf Lg6w== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=ioVX8Nr4TqnSberjTsFA4ntPWzO6kbSyjkG3QrIiV+A=; b=s6RQggWWnBgQkBBaZkSHf1VY7qVQhRpgS8oa2QwCBuplavF1MA1ArjIl2So0j+L0ZP VZIiNVW48yyd7S/g8H3j7ENiLmOflY+kwyP9wlc5qUDS8rlFavE0p6GRqope/6XEbPTt ZaQPWsh5waZ2GOJ+yuT/QmGUTil3/JwbaR7w4njDZRwIobS47llCVCx7IzZ8shZ+s3gv hOA7p66MqNsjeQm30wuxwDf8ud6aGXKrENEafFu09uA+R0Ax299gvKkwvEERsVK1FBOf 0PEtJqKP1EWn982hJytZO5byk57qiXectXLrSeD/mzwx0lv5044riDt2xq+KwVHUfaZw RGNQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d22-20020aa7ce16000000b004fd9cad9928si3179684edv.40.2023.04.02.08.43.28; Sun, 02 Apr 2023 08:43:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231217AbjDBPli (ORCPT + 99 others); Sun, 2 Apr 2023 11:41:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40856 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230469AbjDBPle (ORCPT ); Sun, 2 Apr 2023 11:41:34 -0400 X-Greylist: delayed 422 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Sun, 02 Apr 2023 08:41:27 PDT Received: from kozue.soulik.info (kozue.soulik.info [108.61.200.231]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 50ED47282 for ; Sun, 2 Apr 2023 08:41:27 -0700 (PDT) Received: from ritsuko.sh.sumomo.pri (unknown [112.64.60.49]) by kozue.soulik.info (Postfix) with ESMTPSA id 46CBA100C93; Mon, 3 Apr 2023 00:34:18 +0900 (JST) From: Randy Li To: dri-devel@lists.freedesktop.org Cc: "Hsia-Jun(Randy) Li" , maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, airlied@gmail.com, daniel@ffwll.ch, linux-kernel@vger.kernel.org, tfiga@chromium.org, nicolas@ndufresne.ca, laurent.pinchart@ideasonboard.com, ribalda@chromium.org Subject: [PATCH v7 1/2] drm/fourcc: Add Synaptics VideoSmart tiled modifiers Date: Sun, 2 Apr 2023 23:33:57 +0800 Message-Id: <20230402153358.32948-2-ayaka@soulik.info> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230402153358.32948-1-ayaka@soulik.info> References: <20230402153358.32948-1-ayaka@soulik.info> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=0.0 required=5.0 tests=SPF_HELO_NONE,SPF_PASS autolearn=unavailable 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 From: "Hsia-Jun(Randy) Li" Those modifiers only record the parameters would effort pixel layout or memory layout. Whether physical memory page mapping is used is not a part of format. Signed-off-by: Hsia-Jun(Randy) Li --- include/uapi/drm/drm_fourcc.h | 75 +++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h index de703c6be969..ee13250f06f4 100644 --- a/include/uapi/drm/drm_fourcc.h +++ b/include/uapi/drm/drm_fourcc.h @@ -419,6 +419,7 @@ extern "C" { #define DRM_FORMAT_MOD_VENDOR_ARM 0x08 #define DRM_FORMAT_MOD_VENDOR_ALLWINNER 0x09 #define DRM_FORMAT_MOD_VENDOR_AMLOGIC 0x0a +#define DRM_FORMAT_MOD_VENDOR_SYNAPTICS 0x0b /* add more to the end as needed */ @@ -1519,6 +1520,80 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier) #define AMD_FMT_MOD_CLEAR(field) \ (~((__u64)AMD_FMT_MOD_##field##_MASK << AMD_FMT_MOD_##field##_SHIFT)) +/* + * Synaptics VideoSmart modifiers + * + * Tiles could be arranged in Groups of Tiles (GOTs), it is a small tile + * within a tile. GOT size and layout varies based on platform and + * performance concern. When the compression is applied, it is possible + * that we would have two tile type in the GOT, these parameters can't + * tell the secondary tile type. + * + * Besides, an 8 size 4 bytes arrary (32 bytes) would be need to store + * some compression parameters for a compression meta data plane. + * + * Macro + * Bits Param Description + * ---- ----- ----------------------------------------------------------------- + * + * 7:0 f Scan direction description. + * + * 0 = Invalid + * 1 = V4, the scan would always start from vertical for 4 pixel + * then move back to the start pixel of the next horizontal + * direction. + * 2 = Reserved for future use. + * + * 15:8 m The times of pattern repeat in the right angle direction from + * the first scan direction. + * + * 19:16 p The padding bits after the whole scan, could be zero. + * + * 20:20 g GOT packing flag. + * + * 23:21 - Reserved for future use. Must be zero. + * + * 27:24 h log2(horizontal) of bytes, in GOTs. + * + * 31:28 v log2(vertical) of bytes, in GOTs. + * + * 35:32 - Reserved for future use. Must be zero. + * + * 36:36 c Compression flag. + * + * 55:37 - Reserved for future use. Must be zero. + * + */ + +#define DRM_FORMAT_MOD_SYNA_V4_TILED fourcc_mod_code(SYNAPTICS, 1) + +#define DRM_FORMAT_MOD_SYNA_MTR_LINEAR_2D(f, m, p, g, h, v, c) \ + fourcc_mod_code(SYNAPTICS, ((__u64)((f) & 0xff) | \ + ((__u64)((m) & 0xff) << 8) | \ + ((__u64)((p) & 0xf) << 16) | \ + ((__u64)((g) & 0x1) << 20) | \ + ((__u64)((h) & 0xf) << 24) | \ + ((__u64)((v) & 0xf) << 28) | \ + ((__u64)((c) & 0x1) << 36))) + +#define DRM_FORMAT_MOD_SYNA_V4H1 \ + DRM_FORMAT_MOD_SYNA_MTR_LINEAR_2D(1, 1, 0, 0, 0, 0, 0) + +#define DRM_FORMAT_MOD_SYNA_V4H3P8 \ + DRM_FORMAT_MOD_SYNA_MTR_LINEAR_2D(1, 3, 8, 0, 0, 0, 0) + +#define DRM_FORMAT_MOD_SYNA_V4H1_64L4_COMPRESSED \ + DRM_FORMAT_MOD_SYNA_MTR_LINEAR_2D(1, 1, 0, 1, 6, 2, 1) + +#define DRM_FORMAT_MOD_SYNA_V4H3P8_64L4_COMPRESSED \ + DRM_FORMAT_MOD_SYNA_MTR_LINEAR_2D(1, 3, 8, 1, 6, 2, 1) + +#define DRM_FORMAT_MOD_SYNA_V4H1_128L128_COMPRESSED \ + DRM_FORMAT_MOD_SYNA_MTR_LINEAR_2D(1, 1, 0, 1, 7, 7, 1) + +#define DRM_FORMAT_MOD_SYNA_V4H3P8_128L128_COMPRESSED \ + DRM_FORMAT_MOD_SYNA_MTR_LINEAR_2D(1, 3, 8, 1, 7, 7, 1) + #if defined(__cplusplus) } #endif -- 2.39.2