From mboxrd@z Thu Jan 1 00:00:00 1970 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 481CFCCD184 for ; Sun, 12 Oct 2025 19:24:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=kaJPE4L65CXDkqyIuBABLqdOxJoCd3GcyPIY1yQyHic=; b=vo6+AefEmOlNDpKQlViWp9SyRB yvmwl2BJhbX5etxHyuM14xnKPQAPU+AQXI20pCc5YFJP1p02y2BwpGnyNPFz/g9pn65za57uA2wdT J+WjgWlkk5Z2wcnG5LWMWQ8FMEo7IGfspHZkWUwvlX9Zu0XQhx0XxSwCy/S2qXT7zdsbCu5P99bcx 2rbyLXiWPmoUbKR1ODkBo9noYWAPotc87gnL8UNqX1sI9QD3syRHesGeURn3Q/hCpJgnHpMtocTFr NZazxrANHWay4znVSYKrjc/SyaedShZZExU3E5TGrkFsp+cq7qhtorguk8I5chdCUZtbpinoPfMXE HbbQ0wVA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1v81gT-0000000Bgvi-2cjI; Sun, 12 Oct 2025 19:24:45 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1v81g2-0000000BgFp-3OYC for linux-arm-kernel@bombadil.infradead.org; Sun, 12 Oct 2025 19:24:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:MIME-Version :References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=kaJPE4L65CXDkqyIuBABLqdOxJoCd3GcyPIY1yQyHic=; b=iGzZpoYB2pmh6xcwiPI8Oublxh 4KTIFvQryFu+x6BjZ7Iq6RhZp02p0I+o4Z16v+jdT3uGytrTZNQJKqt0pJe6SGd8VPyWKECZucjbw e1ZrrfoLcRnG1CFAzuWTPEmelsLiK83zSgHCy7gtffqvbsfxQd6u/q2NgMG+KbdS+Ts/OzG/wlifS PWEaHGQgkj3+zjN9VVPWsaFpf/SjN5SZeVeEg3D6r0yxL4WnDspWVtVtKYSc3CWDNIgyxfOUSy/f+ oj8MtS/p23zIh32NdmNLlqZ7uEkYBsLoxxtY7s5KdPm/xTdHncv1JI3s+SCi23ton8tNy2TZrelyU bNHLXfYg==; Received: from mail-ej1-x629.google.com ([2a00:1450:4864:20::629]) by desiato.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1v81fz-00000003nPm-1Vkj for linux-arm-kernel@lists.infradead.org; Sun, 12 Oct 2025 19:24:17 +0000 Received: by mail-ej1-x629.google.com with SMTP id a640c23a62f3a-b3d5088259eso522642566b.1 for ; Sun, 12 Oct 2025 12:24:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760297052; x=1760901852; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kaJPE4L65CXDkqyIuBABLqdOxJoCd3GcyPIY1yQyHic=; b=J0YnrfDP3n19BCYCPSiNVW8PmpaTAPXSHySFTKiObi+YCA7ABWeRf6iAX85l4RIgrn zTwo2VtBXaCEEWqXRbIl073/8ORjG6cfRfYB7zFAxncHAjzviuhNcWD/JI5tqzEbwvbs 45O0QvkDCNtE0tosRntY93lETLzsmfE3V8yNPFOFgPo0va7Ca6KdtJ1Km1UfRMpENFT1 /iUDu1wxYcsbUY35lOzuk/Q4q91img00kPRWT+o3c6JkzVye4VpzRqtR5CyNwmdBAfNi pADQcpNuh5P35ruk9aAesxnJFT2HTNn7KWPrOsrR+AOsbZXbHhX1Qgzp9TZJI6EPr8TL X9Rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760297052; x=1760901852; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kaJPE4L65CXDkqyIuBABLqdOxJoCd3GcyPIY1yQyHic=; b=Bn061HZQ6T7TBv6FDPXB41upmjxkMY5fgR0RBfXa2bidUS0kkGoKIrpz4UPRg87r/W wLKCFs+LWHUinnA07zcjz9V95BDIe4r1dEODKJs3QPKwhC2t3A6KW3NIHz35AKKDQmx6 6WTB8YuQbd20c+83dH2hFfNEVm0V04NJKwvQepIV/s5WklGJclI+qN6O4PTcbcriCNOh V2bZJHyufvujAf9zc/kZnD1ed3ezqpqz8RiICIz1B6n8yoQt6W/JUu47dB741rQoZVqj brlY+T2TpXV4BGb9M+C0piHqlEVimuu7Cb7g80tE5Ut6V+UtoetqOShDidugtEvliPNk sl8A== X-Forwarded-Encrypted: i=1; AJvYcCU/NHRW7hFiVUvCfvkEU71V6JFdlykHptf1jSB5LnlmNuKINNufQacbMgSpH3n9WFc2VCAzOatEPkQQH3GxsPEL@lists.infradead.org X-Gm-Message-State: AOJu0YxG86w28uos9mTyXEQBG6KOh5HeXXMIVn1T1+yynJHvY1xwQ5jY WJAeVCc3QxGXXkOFySqDoaSTGe0pU8nHFQpfEGw7y9ds1u05BimSr1IO X-Gm-Gg: ASbGncsJl/qXcCFMNFPT5/ykUE4LJxbeoOlaaL+RNo657mjOxAicXtiNddeqLPsp820 wquU6c2Lg/ejkCIUUgtsUg2zQQew6+239PUHtZHhFGlsm5clEAncTB4ZKbckR21UT4Eb5JSCGtR JXLlNpuWj69Zyj81QXVaKtfNP013eZcJKpY7Aph88Qax7Kz18BNycLGY2F0t+3BdlMa3t/k7u8A wvyBg1O3tDyEX/hO6HUu2iogrIS69q41pxYCfcLmPKsqct/+xugcxRfx5gKhcG2yu0J43OxmAwt 4dk0yNBlu2EtkGhg4efZXTbwnltE4f+mdIj+4vJJ6kJ4aQyYWmLzBQ5PotdmsT/LmhgfKh/GFnu 3r2NGtiL/MIn+4Q+SHm6Vfv5hn8mOoThAOuP0ltPHeIauzdVYcLMe+jCUwAp08L/7xTDlBBDU2k 5Gtx47xop1w5OeraqPEcrgFUHYJS7PZvc= X-Google-Smtp-Source: AGHT+IFQEmoHaQY1HSeHivRc7zOWRD2roSYeAHB1g5htc57RrShWiGIm59M++o32pnXdabZt6E9p4w== X-Received: by 2002:a17:907:94ca:b0:b46:1db9:cb7c with SMTP id a640c23a62f3a-b50ac1c6951mr1943566866b.33.1760297051775; Sun, 12 Oct 2025 12:24:11 -0700 (PDT) Received: from jernej-laptop (178-79-73-218.dynamic.telemach.net. [178.79.73.218]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b55d67d8283sm760176466b.38.2025.10.12.12.24.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 12:24:11 -0700 (PDT) From: Jernej Skrabec To: mripard@kernel.org, wens@csie.org Cc: maarten.lankhorst@linux.intel.com, tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch, samuel@sholland.org, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, Jernej Skrabec Subject: [PATCH 27/30] drm/sun4i: mixer: split out layer config Date: Sun, 12 Oct 2025 21:23:27 +0200 Message-ID: <20251012192330.6903-28-jernej.skrabec@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251012192330.6903-1-jernej.skrabec@gmail.com> References: <20251012192330.6903-1-jernej.skrabec@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251012_202415_727165_633E82A9 X-CRM114-Status: GOOD ( 20.52 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Later special plane only driver for DE33 will provide separate configuration. This change will also help layer driver migrate away from mixer structure. Signed-off-by: Jernej Skrabec --- drivers/gpu/drm/sun4i/sun8i_csc.c | 2 +- drivers/gpu/drm/sun4i/sun8i_mixer.c | 152 +++++++++++++++--------- drivers/gpu/drm/sun4i/sun8i_mixer.h | 32 +++-- drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 2 +- drivers/gpu/drm/sun4i/sun8i_ui_scaler.c | 2 +- drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 8 +- 6 files changed, 122 insertions(+), 76 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c index c371e94b95bd..30779db2f9b2 100644 --- a/drivers/gpu/drm/sun4i/sun8i_csc.c +++ b/drivers/gpu/drm/sun4i/sun8i_csc.c @@ -240,7 +240,7 @@ void sun8i_csc_config(struct sun8i_layer *layer, return; } - base = ccsc_base[layer->mixer->cfg->ccsc][layer->channel]; + base = ccsc_base[layer->mixer->cfg->lay_cfg.ccsc][layer->channel]; sun8i_csc_setup(layer->regs, base, mode, state->color_encoding, diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c index f9131396f22f..a01eccfca3a9 100644 --- a/drivers/gpu/drm/sun4i/sun8i_mixer.c +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c @@ -703,137 +703,173 @@ static void sun8i_mixer_remove(struct platform_device *pdev) } static const struct sun8i_mixer_cfg sun8i_a83t_mixer0_cfg = { - .ccsc = CCSC_MIXER0_LAYOUT, + .lay_cfg = { + .ccsc = CCSC_MIXER0_LAYOUT, + .de_type = SUN8I_MIXER_DE2, + .scaler_mask = 0xf, + .scanline_yuv = 2048, + .de2_fcc_alpha = 1, + .vi_scaler_num = 1, + }, .de_type = SUN8I_MIXER_DE2, - .scaler_mask = 0xf, - .scanline_yuv = 2048, - .de2_fcc_alpha = 1, - .vi_scaler_num = 1, .ui_num = 3, .vi_num = 1, }; static const struct sun8i_mixer_cfg sun8i_a83t_mixer1_cfg = { - .ccsc = CCSC_MIXER1_LAYOUT, + .lay_cfg = { + .ccsc = CCSC_MIXER1_LAYOUT, + .de_type = SUN8I_MIXER_DE2, + .scaler_mask = 0x3, + .scanline_yuv = 2048, + .de2_fcc_alpha = 1, + .vi_scaler_num = 1, + }, .de_type = SUN8I_MIXER_DE2, - .scaler_mask = 0x3, - .scanline_yuv = 2048, - .de2_fcc_alpha = 1, - .vi_scaler_num = 1, .ui_num = 1, .vi_num = 1, }; static const struct sun8i_mixer_cfg sun8i_h3_mixer0_cfg = { - .ccsc = CCSC_MIXER0_LAYOUT, + .lay_cfg = { + .ccsc = CCSC_MIXER0_LAYOUT, + .de_type = SUN8I_MIXER_DE2, + .scaler_mask = 0xf, + .scanline_yuv = 2048, + .de2_fcc_alpha = 1, + .vi_scaler_num = 1, + }, .de_type = SUN8I_MIXER_DE2, .mod_rate = 432000000, - .scaler_mask = 0xf, - .scanline_yuv = 2048, - .de2_fcc_alpha = 1, - .vi_scaler_num = 1, .ui_num = 3, .vi_num = 1, }; static const struct sun8i_mixer_cfg sun8i_r40_mixer0_cfg = { - .ccsc = CCSC_MIXER0_LAYOUT, + .lay_cfg = { + .ccsc = CCSC_MIXER0_LAYOUT, + .de_type = SUN8I_MIXER_DE2, + .scaler_mask = 0xf, + .scanline_yuv = 2048, + .de2_fcc_alpha = 1, + .vi_scaler_num = 1, + }, .de_type = SUN8I_MIXER_DE2, .mod_rate = 297000000, - .scaler_mask = 0xf, - .scanline_yuv = 2048, - .de2_fcc_alpha = 1, - .vi_scaler_num = 1, .ui_num = 3, .vi_num = 1, }; static const struct sun8i_mixer_cfg sun8i_r40_mixer1_cfg = { - .ccsc = CCSC_MIXER1_LAYOUT, + .lay_cfg = { + .ccsc = CCSC_MIXER1_LAYOUT, + .de_type = SUN8I_MIXER_DE2, + .scaler_mask = 0x3, + .scanline_yuv = 2048, + .de2_fcc_alpha = 1, + .vi_scaler_num = 1, + }, .de_type = SUN8I_MIXER_DE2, .mod_rate = 297000000, - .scaler_mask = 0x3, - .scanline_yuv = 2048, - .de2_fcc_alpha = 1, - .vi_scaler_num = 1, .ui_num = 1, .vi_num = 1, }; static const struct sun8i_mixer_cfg sun8i_v3s_mixer_cfg = { - .de_type = SUN8I_MIXER_DE2, - .vi_num = 2, - .ui_num = 1, - .scaler_mask = 0x3, - .scanline_yuv = 2048, - .vi_scaler_num = 2, - .ccsc = CCSC_MIXER0_LAYOUT, - .mod_rate = 150000000, + .lay_cfg = { + .ccsc = CCSC_MIXER0_LAYOUT, + .de_type = SUN8I_MIXER_DE2, + .scaler_mask = 0x3, + .scanline_yuv = 2048, + .vi_scaler_num = 2, + }, + .de_type = SUN8I_MIXER_DE2, + .mod_rate = 150000000, + .vi_num = 2, + .ui_num = 1, }; static const struct sun8i_mixer_cfg sun20i_d1_mixer0_cfg = { - .ccsc = CCSC_D1_MIXER0_LAYOUT, + .lay_cfg = { + .ccsc = CCSC_D1_MIXER0_LAYOUT, + .de_type = SUN8I_MIXER_DE2, + .scaler_mask = 0x3, + .scanline_yuv = 2048, + .de2_fcc_alpha = 1, + .vi_scaler_num = 1, + }, .de_type = SUN8I_MIXER_DE2, .mod_rate = 297000000, - .scaler_mask = 0x3, - .scanline_yuv = 2048, - .de2_fcc_alpha = 1, - .vi_scaler_num = 1, .ui_num = 1, .vi_num = 1, }; static const struct sun8i_mixer_cfg sun20i_d1_mixer1_cfg = { - .ccsc = CCSC_MIXER1_LAYOUT, + .lay_cfg = { + .ccsc = CCSC_MIXER1_LAYOUT, + .de_type = SUN8I_MIXER_DE2, + .scaler_mask = 0x1, + .scanline_yuv = 1024, + .de2_fcc_alpha = 1, + .vi_scaler_num = 1, + }, .de_type = SUN8I_MIXER_DE2, .mod_rate = 297000000, - .scaler_mask = 0x1, - .scanline_yuv = 1024, - .de2_fcc_alpha = 1, - .vi_scaler_num = 1, .ui_num = 0, .vi_num = 1, }; static const struct sun8i_mixer_cfg sun50i_a64_mixer0_cfg = { - .ccsc = CCSC_MIXER0_LAYOUT, + .lay_cfg = { + .ccsc = CCSC_MIXER0_LAYOUT, + .de_type = SUN8I_MIXER_DE2, + .scaler_mask = 0xf, + .scanline_yuv = 4096, + .de2_fcc_alpha = 1, + .vi_scaler_num = 1, + }, .de_type = SUN8I_MIXER_DE2, .mod_rate = 297000000, - .scaler_mask = 0xf, - .scanline_yuv = 4096, - .de2_fcc_alpha = 1, - .vi_scaler_num = 1, .ui_num = 3, .vi_num = 1, }; static const struct sun8i_mixer_cfg sun50i_a64_mixer1_cfg = { - .ccsc = CCSC_MIXER1_LAYOUT, + .lay_cfg = { + .ccsc = CCSC_MIXER1_LAYOUT, + .de_type = SUN8I_MIXER_DE2, + .scaler_mask = 0x3, + .scanline_yuv = 2048, + .de2_fcc_alpha = 1, + .vi_scaler_num = 1, + }, .de_type = SUN8I_MIXER_DE2, .mod_rate = 297000000, - .scaler_mask = 0x3, - .scanline_yuv = 2048, - .de2_fcc_alpha = 1, - .vi_scaler_num = 1, .ui_num = 1, .vi_num = 1, }; static const struct sun8i_mixer_cfg sun50i_h6_mixer0_cfg = { + .lay_cfg = { + .de_type = SUN8I_MIXER_DE3, + .scaler_mask = 0xf, + .scanline_yuv = 4096, + .vi_scaler_num = 1, + }, .de_type = SUN8I_MIXER_DE3, .mod_rate = 600000000, - .scaler_mask = 0xf, - .scanline_yuv = 4096, - .vi_scaler_num = 1, .ui_num = 3, .vi_num = 1, }; static const struct sun8i_mixer_cfg sun50i_h616_mixer0_cfg = { + .lay_cfg = { + .de_type = SUN8I_MIXER_DE33, + .scaler_mask = 0xf, + .scanline_yuv = 4096, + }, .de_type = SUN8I_MIXER_DE33, .mod_rate = 600000000, - .scaler_mask = 0xf, - .scanline_yuv = 4096, .ui_num = 3, .vi_num = 1, .map = {0, 6, 7, 8}, diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h index 40b800022237..8629e21f9cf6 100644 --- a/drivers/gpu/drm/sun4i/sun8i_mixer.h +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h @@ -164,34 +164,44 @@ enum sun8i_mixer_type { }; /** - * struct sun8i_mixer_cfg - mixer HW configuration - * @vi_num: number of VI channels - * @ui_num: number of UI channels + * struct sun8i_layer_cfg - layer configuration * @scaler_mask: bitmask which tells which channel supports scaling * First, scaler supports for VI channels is defined and after that, scaler * support for UI channels. For example, if mixer has 2 VI channels without * scaler and 2 UI channels with scaler, bitmask would be 0xC. * @ccsc: select set of CCSC base addresses from the enumeration above. - * @mod_rate: module clock rate that needs to be set in order to have - * a functional block. * @de_type: sun8i_mixer_type enum representing the display engine generation. * @scaline_yuv: size of a scanline for VI scaler for YUV formats. * @de2_fcc_alpha: use FCC for missing DE2 VI alpha capability * Most DE2 cores has FCC. If number of VI planes is one, enable this. * @vi_scaler_num: Number of VI scalers. Used on DE2 and DE3. - * @map: channel map for DE variants processing YUV separately (DE33) */ -struct sun8i_mixer_cfg { - int vi_num; - int ui_num; +struct sun8i_layer_cfg { int scaler_mask; int ccsc; - unsigned long mod_rate; unsigned int de_type; unsigned int scanline_yuv; unsigned int de2_fcc_alpha : 1; unsigned int vi_scaler_num; - unsigned int map[6]; +}; + +/** + * struct sun8i_mixer_cfg - mixer HW configuration + * @lay_cfg: layer configuration + * @vi_num: number of VI channels + * @ui_num: number of UI channels + * @mod_rate: module clock rate that needs to be set in order to have + * a functional block. + * @map: channel map for DE variants processing YUV separately (DE33) + */ + +struct sun8i_mixer_cfg { + struct sun8i_layer_cfg lay_cfg; + int vi_num; + int ui_num; + unsigned int de_type; + unsigned long mod_rate; + unsigned int map[6]; }; struct sun8i_mixer { diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c index e65dc313c87d..f71f5a8d0427 100644 --- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c @@ -190,7 +190,7 @@ static int sun8i_ui_layer_atomic_check(struct drm_plane *plane, min_scale = DRM_PLANE_NO_SCALING; max_scale = DRM_PLANE_NO_SCALING; - if (layer->mixer->cfg->scaler_mask & BIT(layer->channel)) { + if (layer->mixer->cfg->lay_cfg.scaler_mask & BIT(layer->channel)) { min_scale = SUN8I_UI_SCALER_SCALE_MIN; max_scale = SUN8I_UI_SCALER_SCALE_MAX; } diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c index 0ba1482688d7..4d06c366de7f 100644 --- a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c +++ b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c @@ -91,7 +91,7 @@ static const u32 lan2coefftab16[240] = { static u32 sun8i_ui_scaler_base(struct sun8i_mixer *mixer, int channel) { - int offset = mixer->cfg->vi_scaler_num; + int offset = mixer->cfg->lay_cfg.vi_scaler_num; if (mixer->cfg->de_type == SUN8I_MIXER_DE3) return DE3_VI_SCALER_UNIT_BASE + diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c index 8eb3f167e664..0286e7322612 100644 --- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c @@ -53,7 +53,7 @@ static void sun8i_vi_layer_update_attributes(struct sun8i_layer *layer, regmap_write(layer->regs, SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, layer->overlay), val); - if (mixer->cfg->de2_fcc_alpha) { + if (mixer->cfg->lay_cfg.de2_fcc_alpha) { regmap_write(layer->regs, SUN8I_MIXER_FCC_GLOBAL_ALPHA_REG, SUN8I_MIXER_FCC_GLOBAL_ALPHA(state->alpha >> 8)); @@ -152,7 +152,7 @@ static void sun8i_vi_layer_update_coord(struct sun8i_layer *layer, } /* it seems that every RGB scaler has buffer for 2048 pixels */ - scanline = subsampled ? mixer->cfg->scanline_yuv : 2048; + scanline = subsampled ? mixer->cfg->lay_cfg.scanline_yuv : 2048; if (src_w > scanline) { DRM_DEBUG_DRIVER("Using horizontal coarse scaling\n"); @@ -278,7 +278,7 @@ static int sun8i_vi_layer_atomic_check(struct drm_plane *plane, min_scale = DRM_PLANE_NO_SCALING; max_scale = DRM_PLANE_NO_SCALING; - if (layer->mixer->cfg->scaler_mask & BIT(layer->channel)) { + if (layer->mixer->cfg->lay_cfg.scaler_mask & BIT(layer->channel)) { min_scale = SUN8I_VI_SCALER_SCALE_MIN; max_scale = SUN8I_VI_SCALER_SCALE_MAX; } @@ -452,7 +452,7 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, return ERR_PTR(ret); } - if (mixer->cfg->de2_fcc_alpha || mixer->cfg->de_type >= SUN8I_MIXER_DE3) { + if (mixer->cfg->lay_cfg.de2_fcc_alpha || mixer->cfg->de_type >= SUN8I_MIXER_DE3) { ret = drm_plane_create_alpha_property(&layer->plane); if (ret) { dev_err(drm->dev, "Couldn't add alpha property\n"); -- 2.51.0