Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp549868ybb; Wed, 8 Apr 2020 05:21:10 -0700 (PDT) X-Google-Smtp-Source: APiQypIVdDUKyM2LKTXQHksaHVM9/WKRp1WON9skh2zscZjGS2RaIH+EIp5xGouD9zSowCp8OYIR X-Received: by 2002:a4a:c819:: with SMTP id s25mr5720452ooq.6.1586348470607; Wed, 08 Apr 2020 05:21:10 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a6si1816581otp.100.2020.04.08.05.20.56; Wed, 08 Apr 2020 05:21:10 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@synopsys.com header.s=mail header.b=HeKYkVPY; dkim=fail header.i=@synopsys.com header.s=selector1 header.b=mSUYqbOf; arc=fail (signature failed); spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=synopsys.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727950AbgDHJ4h (ORCPT + 99 others); Wed, 8 Apr 2020 05:56:37 -0400 Received: from smtprelay-out1.synopsys.com ([149.117.87.133]:42610 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725932AbgDHJ4g (ORCPT ); Wed, 8 Apr 2020 05:56:36 -0400 Received: from mailhost.synopsys.com (badc-mailhost2.synopsys.com [10.192.0.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id 7E775C00BF; Wed, 8 Apr 2020 09:56:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1586339794; bh=2WHbTkVEOFhnBVZEkX0pfr3Vmj1W0BKgM8GgqUlUZ5g=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=HeKYkVPYNFfITnO/elIdc1ZxFml+0824o4JiNVgLBoQjOLIzLSh7zODJK1u8P0Lmc c7v2L7KCL6pc3Mgo1AQpKwFT8KLp2kRzbou9IvbOhj+lpbIU4YXc5CLGaemx5lcNTs wZvkHAGyPMczETOAM6LyTHqF4Jhjh50GHHPB0dJswb7AybopyueWZVP2WG2rNCqoCI s2eJb06xT2PnAEq7AF8dG9ug056P7I2zRUqoUumY/8++CIOUKySjsjRDs7kCq1eWG+ m1JQcAMXHtJ4RTaYJ3wfApfO6F6kPcLW8j08QVsysa766ByXpsewlkKMfandEOE5k+ rq0GYzSDZ1yeg== Received: from US01WEHTC3.internal.synopsys.com (us01wehtc3.internal.synopsys.com [10.15.84.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mailhost.synopsys.com (Postfix) with ESMTPS id B0813A0067; Wed, 8 Apr 2020 09:56:29 +0000 (UTC) Received: from us01hybrid1.internal.synopsys.com (10.200.27.51) by US01WEHTC3.internal.synopsys.com (10.15.84.232) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 8 Apr 2020 02:56:29 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (10.202.3.67) by mrs.synopsys.com (10.200.27.51) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 8 Apr 2020 02:56:28 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AGfP30+ANGXRnlPPB6Y4j1rDhJJbxv8CrP4uYemZRESgomQyVvg/4Uxti0ubsrBjEiUVWkYw78YV0B7tBSCoxxqtuPvC6JzRsjPmEnOYTyyXnrGUsUXjJ2sTK2Xi5X6GFAhSyQimquHIwY3eZ+cR731s3kSWhGxYWEbxUcDYlWdx0PVx1NbWU26OsynPFIYEZ4/mOZlkcU194tOIZozu27+7mbW6mCZKquMFSrG1MBX98ZSShqteK9RtYrsPUPDS2NnIr1AkvXcr8pVzjL2rOBBG+YBfDCpYtKgzkOod+AGely+qzOhPVzV7ar1vqXTrTv9dQQabLuQECpHGzSSMbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DpqJRl6Z4qmlrjSi9Ws8WMV8welnpP5uutmeleZ0/dk=; b=eHBZYruRfIqZCElA955wtzmPVkAeeCmwMdTwNtY3SMjFeJ4EUBcAd5fNacavVHzeIlYPQNDqLZOud+8GB+cRila6x6AVl0sTN9B/zBZfd2hA3pVWAZf7K7Cb32om8ioFv3F1hxoq9xZZIGnsulRe35r0NbWnKTZR0JT/EHkbdMSD6UJ5WQIUqz85x0OumAVHA2lyLGba7hy0WQvRJnA0kRyvZiQJDtTgFCVBpyjL2nIbx7FFlqeMgAx8h+y2EfxRdcEYKKUKjG4xNGxoLYu7BUTSwhId68hR5eixrWbq+oPIu6hg/HbV6XElzQ1AGVu50hMr6lT6LlEsYZRumFbNdA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=synopsys.com; dmarc=pass action=none header.from=synopsys.com; dkim=pass header.d=synopsys.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=synopsys.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DpqJRl6Z4qmlrjSi9Ws8WMV8welnpP5uutmeleZ0/dk=; b=mSUYqbOfO0/23Qd8+a9GP4r2KseCAYQxfq48ov11Mpg0W85soaANolHqX0IjBGjDDuErwuFymye0UTI70NCt1Adq1EgPQ5wD0nlykfq86UosEcSmE7UiZotZI6lBh4Bkaby5A09/MY1ippoQeQhfTyxZvx5UJdeMj9Qku4JYlcI= Received: from CH2PR12MB3782.namprd12.prod.outlook.com (2603:10b6:610:23::28) by CH2PR12MB3845.namprd12.prod.outlook.com (2603:10b6:610:29::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2878.20; Wed, 8 Apr 2020 09:56:26 +0000 Received: from CH2PR12MB3782.namprd12.prod.outlook.com ([fe80::98c8:5bfd:ae23:37cf]) by CH2PR12MB3782.namprd12.prod.outlook.com ([fe80::98c8:5bfd:ae23:37cf%7]) with mapi id 15.20.2878.022; Wed, 8 Apr 2020 09:56:26 +0000 From: Angelo Ribeiro To: Daniel Vetter CC: "dri-devel@lists.freedesktop.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "robh+dt@kernel.org" , "maarten.lankhorst@linux.intel.com" , "mripard@kernel.org" , "airlied@linux.ie" , Gustavo Pimentel , Joao Pinto Subject: RE: [PATCH v2 2/4] drm: ipk: Add DRM driver for DesignWare IPK DSI Thread-Topic: [PATCH v2 2/4] drm: ipk: Add DRM driver for DesignWare IPK DSI Thread-Index: AQHWDBbUKpmAts4Nc0iZZCj3l9PlLKhtUK2AgAGuARA= Date: Wed, 8 Apr 2020 09:56:25 +0000 Message-ID: References: <488ff0f31581967517607e6860ab520839e29635.1586174459.git.angelo.ribeiro@synopsys.com> <20200407081333.GI3456981@phenom.ffwll.local> In-Reply-To: <20200407081333.GI3456981@phenom.ffwll.local> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-dg-ref: =?us-ascii?Q?PG1ldGE+PGF0IG5tPSJib2R5LnR4dCIgcD0iYzpcdXNlcnNcYW5nZWxvclxh?= =?us-ascii?Q?cHBkYXRhXHJvYW1pbmdcMDlkODQ5YjYtMzJkMy00YTQwLTg1ZWUtNmI4NGJh?= =?us-ascii?Q?MjllMzViXG1zZ3NcbXNnLTMxY2U1NWI3LTc5N2YtMTFlYS05ZDcwLWZjNzc3?= =?us-ascii?Q?NGVlZGMyZVxhbWUtdGVzdFwzMWNlNTViOS03OTdmLTExZWEtOWQ3MC1mYzc3?= =?us-ascii?Q?NzRlZWRjMmVib2R5LnR4dCIgc3o9IjMxMzg5IiB0PSIxMzIzMDgxMzM4MDE3?= =?us-ascii?Q?ODQ0NzUiIGg9IkdEUzN4RGRvYjdneHVGYUNRM2d6UVMwWG44bz0iIGlkPSIi?= =?us-ascii?Q?IGJsPSIwIiBibz0iMSIgY2k9ImNBQUFBRVJIVTFSU1JVRk5DZ1VBQUJRSkFB?= =?us-ascii?Q?Q2JkQ2IwaXczV0FjNTBlai9YSDhOU3puUjZQOWNmdzFJT0FBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFIQUFBQUNrQ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFFQUFRQUJBQUFBb3lubjZRQUFBQUFBQUFBQUFBQUFBSjRBQUFCbUFHa0Fi?= =?us-ascii?Q?Z0JoQUc0QVl3QmxBRjhBY0FCc0FHRUFiZ0J1QUdrQWJnQm5BRjhBZHdCaEFI?= =?us-ascii?Q?UUFaUUJ5QUcwQVlRQnlBR3NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUVBQUFBQUFBQUFBZ0FBQUFBQW5nQUFBR1lBYndCMUFHNEFaQUJ5QUhrQVh3?= =?us-ascii?Q?QndBR0VBY2dCMEFHNEFaUUJ5QUhNQVh3Qm5BR1lBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBQ0FB?= =?us-ascii?Q?QUFBQUNlQUFBQVpnQnZBSFVBYmdCa0FISUFlUUJmQUhBQVlRQnlBSFFBYmdC?= =?us-ascii?Q?bEFISUFjd0JmQUhNQVlRQnRBSE1BZFFCdUFHY0FYd0JqQUc4QWJnQm1BQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQUlBQUFBQUFKNEFBQUJtQUc4?= =?us-ascii?Q?QWRRQnVBR1FBY2dCNUFGOEFjQUJoQUhJQWRBQnVBR1VBY2dCekFGOEFjd0Jo?= =?us-ascii?Q?QUcwQWN3QjFBRzRBWndCZkFISUFaUUJ6QUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBRUFBQUFBQUFBQUFnQUFBQUFBbmdBQUFHWUFid0IxQUc0QVpBQnlBSGtB?= =?us-ascii?Q?WHdCd0FHRUFjZ0IwQUc0QVpRQnlBSE1BWHdCekFHMEFhUUJqQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFD?= =?us-ascii?Q?QUFBQUFBQ2VBQUFBWmdCdkFIVUFiZ0JrQUhJQWVRQmZBSEFBWVFCeUFIUUFi?= =?us-ascii?Q?Z0JsQUhJQWN3QmZBSE1BZEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBSUFBQUFBQUo0QUFBQm1B?= =?us-ascii?Q?RzhBZFFCdUFHUUFjZ0I1QUY4QWNBQmhBSElBZEFCdUFHVUFjZ0J6QUY4QWRB?= =?us-ascii?Q?QnpBRzBBWXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFFQUFBQUFBQUFBQWdBQUFBQUFuZ0FBQUdZQWJ3QjFBRzRBWkFCeUFI?= =?us-ascii?Q?a0FYd0J3QUdFQWNnQjBBRzRBWlFCeUFITUFYd0IxQUcwQVl3QUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFB?= =?us-ascii?Q?QUNBQUFBQUFDZUFBQUFad0IwQUhNQVh3QndBSElBYndCa0FIVUFZd0IwQUY4?= =?us-ascii?Q?QWRBQnlBR0VBYVFCdUFHa0FiZ0JuQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFJQUFBQUFBSjRBQUFC?= =?us-ascii?Q?ekFHRUFiQUJsQUhNQVh3QmhBR01BWXdCdkFIVUFiZ0IwQUY4QWNBQnNBR0VB?= =?us-ascii?Q?YmdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUVBQUFBQUFBQUFBZ0FBQUFBQW5nQUFBSE1BWVFCc0FHVUFjd0Jm?= =?us-ascii?Q?QUhFQWRRQnZBSFFBWlFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBQUFB?= =?us-ascii?Q?QUFBQ0FBQUFBQUNlQUFBQWN3QnVBSEFBY3dCZkFHd0FhUUJqQUdVQWJnQnpB?= =?us-ascii?Q?R1VBWHdCMEFHVUFjZ0J0QUY4QU1RQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQUlBQUFBQUFKNEFB?= =?us-ascii?Q?QUJ6QUc0QWNBQnpBRjhBYkFCcEFHTUFaUUJ1QUhNQVpRQmZBSFFBWlFCeUFH?= =?us-ascii?Q?MEFYd0J6QUhRQWRRQmtBR1VBYmdCMEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBRUFBQUFBQUFBQUFnQUFBQUFBbmdBQUFIWUFad0JmQUdzQVpR?= =?us-ascii?Q?QjVBSGNBYndCeUFHUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFB?= =?us-ascii?Q?QUFBQUFDQUFBQUFBQT0iLz48L21ldGE+?= authentication-results: spf=none (sender IP is ) smtp.mailfrom=angelor@synopsys.com; x-originating-ip: [95.136.124.74] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8cc4c05c-672a-4893-dffc-08d7dba31a51 x-ms-traffictypediagnostic: CH2PR12MB3845: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9; x-forefront-prvs: 0367A50BB1 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3782.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(10019020)(396003)(376002)(39850400004)(136003)(346002)(366004)(66476007)(64756008)(4326008)(66446008)(8676002)(81156014)(2906002)(107886003)(54906003)(66556008)(30864003)(81166007)(8936002)(55016002)(9686003)(7696005)(66946007)(76116006)(316002)(478600001)(6916009)(186003)(6506007)(71200400001)(966005)(52536014)(33656002)(86362001)(5660300002)(26005)(579004)(559001);DIR:OUT;SFP:1102; received-spf: None (protection.outlook.com: synopsys.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: V7ZrNtB8E5Io5bIO8hgWS1lH4WgnX61FL8qZj1cXuv+49wZMSm7I42cJQsKeUnEOV8gtFJ5bEpGsscpQm9N22/ymQzLa8z9PaLD5MfRQFiGtWyDDoG5Ox3fKJAbAipOzthR3niBA6xJds48Y+sJv6i4EQDZzyrySHe/Xu7dkn6pGLlHX1hwwPEXSnjtBM4Fcn8zwL08fcLF1HRXzyZmwpnAKUkGqbOuR6EQW9W16fu0cQ/HE38+waUrdYK+ZWuDifMujD7Eejw0OSQLQFYLcy7EmCy1gAVPJOgj5gSy6JhWnCwLsWxQfHHype9ZmCzZLZt0yLh0NHs/papaeo1oq61IKhhW0AR75Z9ZVNDNk6yDACg+KkzKe1cCcuGItc68tvzX7Zx0JkmWCSU2QS8N/6BdGR8UbesFWihvjlVJy7t5SubsrWLzHos//zSR0An5YHVGPqVL3I5AV/c9IwySw9GMNWyvgCKDTJXAEEfeL7YurysinzkpMynTqvrLvi2EGf1duDeJ/pNf98ib6JDEQ7Q== x-ms-exchange-antispam-messagedata: aWLW62r7mluddiUDvSq77Z5riT76DKFSljl7oRKvQErJ0x9CF5lrWstNlIyW3J+CBGCf1hsfraUtkCMSJC8ZLp/OwNLAhM7l4UHbpzPxdVnyQ6oMx10YUpOuoPMQvFZ9MKFj1naZ2zfnqBHwQeQCfw== Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 8cc4c05c-672a-4893-dffc-08d7dba31a51 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Apr 2020 09:56:25.7983 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c33c9f88-1eb7-4099-9700-16013fd9e8aa X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: K+iPUdv2haH22X5Q51em7Zlc5h9164mE7easKtQhpaNUSSDNrSsMSlpmt4uuTCHY695ZBzwNdYk1xGEcGRm3dw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB3845 X-OriginatorOrg: synopsys.com Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Daniel, From: Daniel Vetter Date: Tue, Apr 07, 2020 at 09:13:33 > On Mon, Apr 06, 2020 at 03:24:12PM +0200, Angelo Ribeiro wrote: > > Add support for Synopsys DesignWare VPG (Video Pattern Generator) and > > DRM driver for Synopsys DesignWare DSI Host IPK solution. > >=20 > > Cc: Maarten Lankhorst > > Cc: Maxime Ripard > > Cc: David Airlie > > Cc: Daniel Vetter > > Cc: Gustavo Pimentel > > Cc: Joao Pinto > > Signed-off-by: Angelo Ribeiro > > --- > > drivers/gpu/drm/Kconfig | 2 + > > drivers/gpu/drm/Makefile | 1 + > > drivers/gpu/drm/ipk/Kconfig | 13 + > > drivers/gpu/drm/ipk/Makefile | 6 + > > drivers/gpu/drm/ipk/dw-drv.c | 189 +++++++++++++++ > > drivers/gpu/drm/ipk/dw-ipk.h | 30 +++ > > drivers/gpu/drm/ipk/dw-vpg.c | 559 +++++++++++++++++++++++++++++++++++= ++++++++ > > drivers/gpu/drm/ipk/dw-vpg.h | 55 +++++ > > 8 files changed, 855 insertions(+) > > create mode 100644 drivers/gpu/drm/ipk/Kconfig > > create mode 100644 drivers/gpu/drm/ipk/Makefile > > create mode 100644 drivers/gpu/drm/ipk/dw-drv.c > > create mode 100644 drivers/gpu/drm/ipk/dw-ipk.h > > create mode 100644 drivers/gpu/drm/ipk/dw-vpg.c > > create mode 100644 drivers/gpu/drm/ipk/dw-vpg.h > >=20 > > diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig > > index 4359497..29ea1d1 100644 > > --- a/drivers/gpu/drm/Kconfig > > +++ b/drivers/gpu/drm/Kconfig > > @@ -388,6 +388,8 @@ source "drivers/gpu/drm/mcde/Kconfig" > > =20 > > source "drivers/gpu/drm/tidss/Kconfig" > > =20 > > +source "drivers/gpu/drm/ipk/Kconfig" > > + > > # Keep legacy drivers last > > =20 > > menuconfig DRM_LEGACY > > diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile > > index 183c600..5bcc1c1 100644 > > --- a/drivers/gpu/drm/Makefile > > +++ b/drivers/gpu/drm/Makefile > > @@ -125,3 +125,4 @@ obj-$(CONFIG_DRM_PANFROST) +=3D panfrost/ > > obj-$(CONFIG_DRM_ASPEED_GFX) +=3D aspeed/ > > obj-$(CONFIG_DRM_MCDE) +=3D mcde/ > > obj-$(CONFIG_DRM_TIDSS) +=3D tidss/ > > +obj-$(CONFIG_DRM_IPK) +=3D ipk/ > > diff --git a/drivers/gpu/drm/ipk/Kconfig b/drivers/gpu/drm/ipk/Kconfig > > new file mode 100644 > > index 0000000..1f87444 > > --- /dev/null > > +++ b/drivers/gpu/drm/ipk/Kconfig > > @@ -0,0 +1,13 @@ > > +# SPDX-License-Identifier: GPL-2.0-only > > +config DRM_IPK > > + tristate "DRM Support for Synopsys DesignWare IPK DSI" > > + depends on DRM > > + select DRM_KMS_HELPER > > + select DRM_GEM_CMA_HELPER > > + select DRM_KMS_CMA_HELPER > > + select DRM_PANEL_BRIDGE > > + select VIDEOMODE_HELPERS > > + help > > + Enable support for the Synopsys DesignWare DRM DSI. > > + To compile this driver as a module, choose M here: the module > > + will be called ipk-drm. > > diff --git a/drivers/gpu/drm/ipk/Makefile b/drivers/gpu/drm/ipk/Makefil= e > > new file mode 100644 > > index 0000000..51d2774 > > --- /dev/null > > +++ b/drivers/gpu/drm/ipk/Makefile > > @@ -0,0 +1,6 @@ > > +# SPDX-License-Identifier: GPL-2.0-only > > +ipk-drm-y :=3D \ > > + dw-drv.o \ > > + dw-vpg.o > > + > > +obj-$(CONFIG_DRM_IPK) +=3D ipk-drm.o > > diff --git a/drivers/gpu/drm/ipk/dw-drv.c b/drivers/gpu/drm/ipk/dw-drv.= c > > new file mode 100644 > > index 0000000..6205f1c > > --- /dev/null > > +++ b/drivers/gpu/drm/ipk/dw-drv.c > > @@ -0,0 +1,189 @@ > > +// SPDX-License-Identifier: GPL-2.0 > > +/* > > + * Copyright (c) 2019-2020 Synopsys, Inc. and/or its affiliates. > > + * Synopsys DesignWare MIPI DSI DRM driver > > + * > > + * Author: Angelo Ribeiro > > + */ > > + > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > + > > +#include "dw-ipk.h" > > +#include "dw-vpg.h" > > + > > +static const struct drm_mode_config_funcs dw_ipk_drm_modecfg_funcs =3D= { > > + .fb_create =3D drm_gem_fb_create_with_dirty, > > + .atomic_check =3D drm_atomic_helper_check, > > + .atomic_commit =3D drm_atomic_helper_commit, > > +}; > > + > > +static int dw_ipk_load(struct drm_device *drm) > > +{ > > + int ret; > > + > > + drm_mode_config_init(drm); > > + > > + drm->mode_config.min_width =3D 0; > > + drm->mode_config.min_height =3D 0; > > + > > + /* To handle orientation */ > > + drm->mode_config.max_width =3D 2048; > > + drm->mode_config.max_height =3D 2048; > > + > > + drm->mode_config.funcs =3D &dw_ipk_drm_modecfg_funcs; > > + > > + /* TODO > > + * Optional framebuffer memory resources allocation > > + */ > > + > > + ret =3D vpg_load(drm); > > + if (ret) > > + return ret; > > + > > + /* Calls all the crtc's, encoder's and connector's reset */ > > + drm_mode_config_reset(drm); > > + > > + /* Initialize and enable output polling */ > > + drm_kms_helper_poll_init(drm); > > + > > + return ret; > > +} > > + > > +static void dw_ipk_unload(struct drm_device *drm) > > +{ > > + DRM_DEBUG_DRIVER("\n"); > > + > > + drm_kms_helper_poll_fini(drm); > > + vpg_unload(drm); > > +} > > + > > +DEFINE_DRM_GEM_CMA_FOPS(ipk_drm_driver_fops); > > + > > +static int ipk_gem_cma_dumb_create(struct drm_file *file, > > + struct drm_device *dev, > > + struct drm_mode_create_dumb *args) > > +{ > > + unsigned int min_pitch =3D DIV_ROUND_UP(args->width * args->bpp, 8); > > + int err; > > + > > + /* > > + * In order to optimize data transfer, pitch is aligned on > > + * 128 bytes, height is aligned on 4 bytes > > + */ > > + args->pitch =3D roundup(min_pitch, 128); > > + args->height =3D roundup(args->height, 4); > > + > > + err =3D drm_gem_cma_dumb_create_internal(file, dev, args); > > + if (err < 0) > > + drm_err(dev, "dumb_create failed %d\n", err); > > + > > + return err; > > +} > > + > > +static struct drm_driver dw_ipk_drm_driver =3D { > > + .driver_features =3D DRIVER_MODESET | DRIVER_GEM | DRIVER_ATOMIC, > > + .name =3D "dw_ipk", > > + .desc =3D "DW IPK DSI Host Controller", > > + .date =3D "20190725", > > + .major =3D 1, > > + .minor =3D 0, > > + .patchlevel =3D 0, > > + .fops =3D &ipk_drm_driver_fops, > > + .dumb_create =3D ipk_gem_cma_dumb_create, > > + .prime_handle_to_fd =3D drm_gem_prime_handle_to_fd, > > + .prime_fd_to_handle =3D drm_gem_prime_fd_to_handle, > > + .gem_free_object_unlocked =3D drm_gem_cma_free_object, > > + .gem_vm_ops =3D &drm_gem_cma_vm_ops, > > + .gem_prime_export =3D drm_gem_prime_export, > > + .gem_prime_import =3D drm_gem_prime_import, > > + .gem_prime_get_sg_table =3D drm_gem_cma_prime_get_sg_table, > > + .gem_prime_import_sg_table =3D drm_gem_cma_prime_import_sg_table, > > + .gem_prime_vmap =3D drm_gem_cma_prime_vmap, > > + .gem_prime_vunmap =3D drm_gem_cma_prime_vunmap, > > + .gem_prime_mmap =3D drm_gem_cma_prime_mmap, > > +}; > > + > > +static int dw_ipk_drm_platform_probe(struct platform_device *pdev) > > +{ > > + struct device *dev =3D &pdev->dev; > > + struct drm_device *drm; > > + struct ipk_device *ipk; > > + int ret; > > + > > + DRM_DEBUG_DRIVER("\n"); > > + > > + ipk =3D kzalloc(sizeof(*ipk), GFP_KERNEL); > > + if (!ipk) > > + return -ENOMEM; > > + > > + ipk->platform =3D pdev; > > + drm =3D &ipk->drm; > > + > > + ret =3D drm_dev_init(&ipk->drm, &dw_ipk_drm_driver, dev); > > + if (ret) { > > + kfree(ipk); > > + return ret; > > + } >=20 > I'm reworking this right now, you're missing a call to > drmm_add_final_kfree here. But I think even better would be to rebase on > top of my patch here: >=20 > https://urldefense.proofpoint.com/v2/url?u=3Dhttps-3A__patchwork.freedesk= top.org_patch_359897_&d=3DDwIBAg&c=3DDPL6_X_6JkXFx7AXWqB0tg&r=3D-1lJkMi2j8I= E8jpsNWO99o9zJFwyv1Mbjj3vJBR__i0&m=3Dknxu5BXoiypjzq6gobgbIqbrpnkIlWKYlpnGtK= MLvnw&s=3DsUMf2MJZh_cU3VOmu_TXUwCftlGMtMzkJgkPTExhq8I&e=3D=20 >=20 > Which would allow you to drop a bunch of code from your load/unload code. > See that patch series for a lot of example conversions. I plan to land > that patch pretty soon in drm-misc-next so shouldn't hold up merging your > driver. > -Daniel Thank you for the revision, I will do it. >=20 > > + > > + platform_set_drvdata(pdev, drm); > > + > > + ret =3D dw_ipk_load(drm); > > + if (ret) > > + goto err_put; > > + > > + ret =3D drm_dev_register(drm, 0); > > + if (ret) > > + goto err_put; > > + > > + drm_fbdev_generic_setup(drm, 24); > > + > > + return ret; > > + > > +err_put: > > + drm_dev_put(drm); > > + return ret; > > +} > > + > > +static int dw_ipk_drm_platform_remove(struct platform_device *pdev) > > +{ > > + struct drm_device *drm =3D platform_get_drvdata(pdev); > > + > > + drm_dev_unregister(drm); > > + dw_ipk_unload(drm); > > + drm_dev_put(drm); > > + > > + return 0; > > +} > > + > > +static const struct of_device_id dw_ipk_dt_ids[] =3D { > > + {.compatible =3D "snps,dw-ipk-vpg"}, > > + { /* sentinel */ } > > +}; > > +MODULE_DEVICE_TABLE(of, dw_ipk_dt_ids); > > + > > +static struct platform_driver dw_ipk_drm_platform_driver =3D { > > + .probe =3D dw_ipk_drm_platform_probe, > > + .remove =3D dw_ipk_drm_platform_remove, > > + .driver =3D { > > + .name =3D "dw-ipk-drm", > > + .of_match_table =3D dw_ipk_dt_ids, > > + }, > > +}; > > + > > +module_platform_driver(dw_ipk_drm_platform_driver); > > + > > +MODULE_DESCRIPTION("Synopsys DesignWare IPK DRM driver"); > > +MODULE_LICENSE("GPL v2"); > > +MODULE_AUTHOR("Angelo Ribeiro "); > > diff --git a/drivers/gpu/drm/ipk/dw-ipk.h b/drivers/gpu/drm/ipk/dw-ipk.= h > > new file mode 100644 > > index 0000000..4abb6dd > > --- /dev/null > > +++ b/drivers/gpu/drm/ipk/dw-ipk.h > > @@ -0,0 +1,30 @@ > > +/* SPDX-License-Identifier: GPL-2.0 */ > > +/* > > + * Copyright (c) 2019-2020 Synopsys, Inc. and/or its affiliates. > > + * Synopsys DesignWare MIPI DSI Controller > > + */ > > + > > +#ifndef _DW_IPK_H > > +#define _DW_IPK_H > > + > > +#include "drm/drm_device.h" > > +#include > > + > > +struct ipk_pipeline { > > + struct drm_framebuffer *fb; > > + struct drm_crtc crtc; > > + struct drm_plane *plane; > > + struct drm_bridge *bridge; > > +}; > > + > > +struct ipk_device { > > + struct drm_device drm; > > + struct platform_device *platform; > > + struct ipk_pipeline pipeline; > > + struct vpg_device *vpg; > > +}; > > + > > +#define drm_device_to_ipk_device(target) \ > > + container_of(target, struct ipk_device, drm) > > + > > +#endif /* _DW_IPK_H */ > > diff --git a/drivers/gpu/drm/ipk/dw-vpg.c b/drivers/gpu/drm/ipk/dw-vpg.= c > > new file mode 100644 > > index 0000000..feb3e90 > > --- /dev/null > > +++ b/drivers/gpu/drm/ipk/dw-vpg.c > > @@ -0,0 +1,559 @@ > > +// SPDX-License-Identifier: GPL-2.0 > > +/* > > + * Copyright (c) 2019-2020 Synopsys, Inc. and/or its affiliates. > > + * Synopsys DesignWare MIPI DSI controller > > + * > > + * Author: Angelo Ribeiro > > + * Author: Luis Oliveira > > + */ > > + > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > + > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include