Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752339AbbHaI7R (ORCPT ); Mon, 31 Aug 2015 04:59:17 -0400 Received: from mail-by2on0094.outbound.protection.outlook.com ([207.46.100.94]:7272 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751372AbbHaI7Q (ORCPT ); Mon, 31 Aug 2015 04:59:16 -0400 Authentication-Results: spf=softfail (sender IP is 192.88.158.2) smtp.mailfrom=gmail.com; gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=fail action=none header.from=gmail.com; From: Jianwei Wang To: CC: , , , Jianwei Wang Subject: [PATCH] drm/fsl-dcu: Add multi layers support Date: Mon, 31 Aug 2015 16:53:35 +0800 Message-ID: <1441011215-3769-1-git-send-email-jianwei.wang.chn@gmail.com> X-Mailer: git-send-email 2.1.0.27.g96db324 X-EOPAttributedMessage: 0 X-Matching-Connectors: 130854851539326636;(91ab9b29-cfa4-454e-5278-08d120cd25b8);() X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11FD022;1:OZln3Ax9MNi8vnYRNmM2lQ2r/7l00g/kIzLkumkwlZsmZc9/1MPqMwJJdm5PL6sFhDUgQ4ULEM8RIDeuF5PwGjoWYvBmi7Wm99YQrlxNKvQxu/f11PVTRoZDhX4Ms6CSJY7UYRNIUQSRqir4MXAm4fpWhQHlXZVXQdn3c3ySNt8GIW4jkoG/NgnnxRLIJthDvMkfVftWFnhDWHZSushWK0AMNi9Nx33bcTcGmai8RdOTRJoGrWfbc0zwboCDv2K2QNVPk5G11NA811K4vbKoOU4utoKikLtFUbJ1qzFTSWDg1XVDiSII6tRq1gFqUezi17obCbbU0iPDs+WuWAQggZHs0JDvH7AZuvzI0Rn8EZKbDbk6GvmudF83uXikh3f6xxGBtcM81QngzpBOTL6Z9bkiTD2sBRby81AkAZpTsGU= X-Forefront-Antispam-Report: CIP:192.88.158.2;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(3050300001)(199003)(189002)(36756003)(82202001)(64706001)(61266001)(47776003)(55446002)(73392002)(46102003)(5003940100001)(4001540100001)(81156007)(73972006)(76482005)(97736004)(81442002)(87572001)(50986999)(48376002)(5007970100001)(50466002)(50226001)(104016003)(33646002)(19580405001)(6806004)(19580395003)(92566002)(106466001)(189998001)(110136002)(5001830100001)(5001960100002)(5001860100001)(6260500002)(87936001)(77096005)(69596002)(86362001)(68736005)(83322999)(105596002)(62966003)(77156002)(229853001)(2351001);DIR:OUT;SFP:1101;SCL:1;SRVR:DM2PR0301MB1277;H:az84smr01.freescale.net;FPR:;SPF:SoftFail;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;DM2PR0301MB1277;2:OKqEEXhnBILogx/ZhBDiMKAKTOftsQL0GHz5UHDK5dfdwesVGcCOp08cxHcX1Vk1q4qlKniTTRa2qF7HzWkuSUfi/6zKFK/wDD4DWgaZvmdOxTtohhd4vyc2jtiTWg+EbXvuCHuTSu0tbcHqc72LCBaHVpiGVpdfwNW3F74XgcE=;3:QI6FlnddXspcmC5dbzSoYwVFAgERT/PyuKGxl1+74RiVTezcr7/VKQOvRlzzB1No8T2tq6vvIzIjJj/RIDOlz5VKMGhRnT+fUMDaeBWnA6aFf3Dvz0aofSTyqlK5vDYfvsavd4KRKfN2cLQq9ajUZWf0OkEo3fH7n0vgQ7xX7yZYC4cSIi5GNljskb3SVy+5pwVPMN+75Cn54e2bWmnCSlXw0OF3q86VonBMGA6A8UM=;25:2/vSSrGiCqrLyW0RfLVVH+SfjxNTmDY285WOlUkzC/9RilDZuxGKk2dncHGuYzMOfYM4Z4/V/hqiaLhdtfLBhj87Of4uo5qwiTLlz1yZvKNarcS8NZhbeO2XZaaPT9T03jWlg2TMbO0wz+AVl/pNocVjltWUC6458NRJzVyOp50CHvTJBoFurnej8/CZXmKqoeIhuBU1BZfDL7KKaIBt/vXAJaxsaAV5zpD9oaM1JoqvBLyBNMR1Pe7A0NoslFTYScHRyGisjQswi1ZDtIQ3UA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR0301MB1277; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(8121501046)(3002001);SRVR:DM2PR0301MB1277;BCL:0;PCL:0;RULEID:(400006);SRVR:DM2PR0301MB1277; X-Microsoft-Exchange-Diagnostics: 1;DM2PR0301MB1277;4:1FOCWgNxKwV89C4AAnPCr0xj1kM1zEYkir9ifAJ2KOODM6cCCxQbKe+FF+UOVAzK9rX/HCHJaubapDN7psqqWu935DT0WVwWHjDSJhfeSsHs3bSrCl6N4fibFJW1vnlNFEJmtn16GUIzpfK575UBB6CT1Pg7a9pFMiZ6WERgYqzunBxpnwW8/pBgBmLzfMvBj+LnOFdplt+HS05fYvvKwlTnPZvQJKYTB3aeF9Pef1zTUXF79j+rDIpIl1vfBLeh3RnJe0U+W1v99Be++0eCcIpGUI4FCX0tlJkkKAwk/BXjfarkdwUa7aoysO508LVM2LcNKq/GQ18KqNkkaQ/9hA== X-Forefront-PRVS: 0685122203 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM2PR0301MB1277;23:zUQgmCJF5IVtTn7R4fJBCXXBAAfyz/P8qFBue/k?= =?us-ascii?Q?o97QLKXS2u9IKb1JOZIK/0b8cJ1pT6qRK/ggI1pVLrpZvR5NlAcHkKqAHH1z?= =?us-ascii?Q?WBlBIYH14xlwy1gMRd04a00CnJFhL5pFkIWHHQaAbmYBeIws31UeCtz/zC4/?= =?us-ascii?Q?4N3fg/O4RaiyYb5kmE1ezUQmlTRebvxaUXOR35TO9yK8ZzjKxekcpRg8UeFa?= =?us-ascii?Q?3so1d6gNpElEW6XT/UfVgwfNr5yOKywLH8ScFWpbDPGDYSgKuFvwZr0tBUrS?= =?us-ascii?Q?tOP37Uu+Iq0TZ0+kOQ+xBk84TkBfi4X0M4fjkuSw1fd/wju6mabzVxa3hU+T?= =?us-ascii?Q?95qzDwXFu0nbiRtvry5SgdDnL16cbDr8LJZXhvhUe1fYSCxjbvYVXE0wAK6v?= =?us-ascii?Q?u4SYY75g9zBvMuq+6BziDv1e2Gw7WpzN+JS3uMkhnevjiwgK5QaJFr5+oPpv?= =?us-ascii?Q?OkyaPS1mqoZ58yQei5q8a8Nzzyss2hdbVGXMOTbUgTsmb8KkkbkeMoUJkIfL?= =?us-ascii?Q?Mdwmg9lzcWTvQFErhRuuY9Bf2k2t4j/eUhSXoqm5amLaBqUSzdWPx2ReHwEF?= =?us-ascii?Q?9ubWL+JT1ExzpfJxxZwpiAVwWmVTrlfqofp5UTfJ7LsxdJYiBW0sk/pZIKhw?= =?us-ascii?Q?8ujoSmSRbwMHJH8XYBYqAUMt/+JPeCl3dGERSJ0KfIxWeXoEan3TBFWOQR2U?= =?us-ascii?Q?1kcEtC2X/Nne7tsmRrAgjHNFsPWJJ57s3s0kLn20lpv2RKxebONG0NWsv/v6?= =?us-ascii?Q?xHC6nXIpUXtFjyx153E5b2Hf6iAHajwnpgTVvFoqra2gKbPSDiZBhCdpO5MX?= =?us-ascii?Q?4MfugO5HHhWJz93o0aX4uH1aF8CX7e1j1c3qDcmrid+/VWCgpeEuVA1enUQd?= =?us-ascii?Q?0fTPqFuJ42Fpg0lpQP4nchbVauMorXVJTmreASS0ky0VIdL/VQe+3oa/eYbj?= =?us-ascii?Q?q2wWQaJqeguyE9N6+jLtaSp971xgOhtb94unfeUDLuB1z3T1gxFrGzfsKyC+?= =?us-ascii?Q?NnaC7WGtiCx5fk+q7GaE1UpAncr0GeAuQCMGBzGp+L3LbhYHwjzYXN0ZTOvy?= =?us-ascii?Q?lWDfoAG56Kz+vjmIGJCLm3ZkN8x6QCkRtFFGXdWwzRZ1hxr+F+s/1S1OylvZ?= =?us-ascii?Q?R+VO5oWwsBTmZyreyWLjp3mF7ZfucXzO8sCNMLXtRg4EYHqu4UaYkfGH9nU8?= =?us-ascii?Q?5ivFNOq0chMiaPUCPQJTMZ+U74Y3XGyF5rye7dOdukgtUMG1nQKkRpWvaVvl?= =?us-ascii?Q?98urXiZll+NpUSIO/GVNDeyfEQQzYTCnkz5H9V8q2zUHEn62EnuPsfeiBQcq?= =?us-ascii?Q?E9ZMAFLIQQwU7wCbaryyOwro=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR0301MB1277;5:YRUbCBEl1nuTrMPDqUVDw3cpB5sJuW71gcJRskwHnWM4+LuYc7X1V6ypYMm3Ovp9/FdGYMzHTYUGoks9YXDkWHutg27sKh5/ncJ1KieiOq8hb8G416sq/1WvTgqRBoAUBHBxWS4gfqA3SIrT3XlzS0lGvXw49MHD34+z6S48hLY=;24:NMrn22d4cXhSqQ1typnnkumG90cjLGISWGukVut8Utb9X2sp7MJbHKA6e1Hkg3cPpyEozSAvT7gFXAEyLE5d2v0TrYHX/nK4LSXHTFfItno= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2015 08:59:13.6674 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;Ip=[192.88.158.2];Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0301MB1277 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2432 Lines: 72 For DCU support atmost 16 layers(on ls1021a) or 64 layers(on vf610), add (total_layer - 1) overlay planes. Signed-off-by: Jianwei Wang --- drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c index 8787920..1195568 100644 --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c @@ -236,7 +236,10 @@ static const u32 fsl_dcu_drm_plane_formats[] = { struct drm_plane *fsl_dcu_drm_primary_create_plane(struct drm_device *dev) { + struct fsl_dcu_drm_device *fsl_dev = dev->dev_private; struct drm_plane *primary; + struct drm_plane *overlay; + unsigned int total_layer, formats_size, i; int ret; primary = kzalloc(sizeof(*primary), GFP_KERNEL); @@ -245,11 +248,12 @@ struct drm_plane *fsl_dcu_drm_primary_create_plane(struct drm_device *dev) return NULL; } + formats_size = ARRAY_SIZE(fsl_dcu_drm_plane_formats); /* possible_crtc's will be filled in later by crtc_init */ ret = drm_universal_plane_init(dev, primary, 0, &fsl_dcu_drm_plane_funcs, fsl_dcu_drm_plane_formats, - ARRAY_SIZE(fsl_dcu_drm_plane_formats), + formats_size, DRM_PLANE_TYPE_PRIMARY); if (ret) { kfree(primary); @@ -257,5 +261,26 @@ struct drm_plane *fsl_dcu_drm_primary_create_plane(struct drm_device *dev) } drm_plane_helper_add(primary, &fsl_dcu_drm_plane_helper_funcs); + total_layer = fsl_dev->soc->total_layer; + for (i = 0; i < total_layer - 1; i++) { + overlay = kzalloc(sizeof(*overlay), GFP_KERNEL); + if (!overlay) { + DRM_DEBUG_KMS("Failed to allocate overlay plane\n"); + goto out; + } + + ret = drm_universal_plane_init(dev, overlay, 1, + &fsl_dcu_drm_plane_funcs, + fsl_dcu_drm_plane_formats, + formats_size, + DRM_PLANE_TYPE_OVERLAY); + if (ret) { + kfree(overlay); + goto out; + } + drm_plane_helper_add(overlay, &fsl_dcu_drm_plane_helper_funcs); + } + +out: return primary; } -- 2.1.0.27.g96db324 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/