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 X-Spam-Level: X-Spam-Status: No, score=-8.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E563FC0044C for ; Sat, 3 Nov 2018 18:08:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A11412084C for ; Sat, 3 Nov 2018 18:08:12 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=cadence.com header.i=@cadence.com header.b="N9PxIPDk"; dkim=pass (1024-bit key) header.d=cadence.com header.i=@cadence.com header.b="UFDP0VRa" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A11412084C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=cadence.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728832AbeKDDUJ (ORCPT ); Sat, 3 Nov 2018 23:20:09 -0400 Received: from mx0b-0014ca01.pphosted.com ([208.86.201.193]:44777 "EHLO mx0a-0014ca01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727281AbeKDDUD (ORCPT ); Sat, 3 Nov 2018 23:20:03 -0400 Received: from pps.filterd (m0042333.ppops.net [127.0.0.1]) by mx0b-0014ca01.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id wA3I49sh028064; Sat, 3 Nov 2018 11:07:57 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cadence.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=proofpoint; bh=XAxPoCD0kyd6vPN4NXAhjVMT5q0idCMpBPC/DfPb5N0=; b=N9PxIPDkHPuQlHTMtTj7Dx5kJCV7qfC9Ryy9aE/eEAbiPaMjTqG604ZkRiJsValU0NXO 35eoFC2CcR6txnS7kCKNW/3lZi1wuoNJcEEsxdESQ/6dUJXgsoefVQtiZurMzXZlPMlH EPfYoADyi/lJrKMZqtLBvyRd45YEyTGJeKnI34nLlT37DuP5N4nvAXEJhiH9kCu/Te3q WiG57N8H6/YIh7wYIToGMadzRtyqhFqSbQPSpM36F/EHQ5aZtBXy3ARUjxJRbmnV6oNo jim+hqRSEO4FXT3mO50YN0dT0CHNcbN1yr0LHM43uxp8t3soQF8kQEAN8l03/vkEJW7M rw== Authentication-Results: cadence.com; spf=pass smtp.mailfrom=pawell@cadence.com Received: from nam02-cy1-obe.outbound.protection.outlook.com (mail-cys01nam02lp0054.outbound.protection.outlook.com [207.46.163.54]) by mx0b-0014ca01.pphosted.com with ESMTP id 2nh9ed9ewg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sat, 03 Nov 2018 11:07:57 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cadence.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XAxPoCD0kyd6vPN4NXAhjVMT5q0idCMpBPC/DfPb5N0=; b=UFDP0VRakBFlJFHAfC38LKFLWnr/sJ3cA2n8E8TbMCocQCd224y/o+H5C5EHcdNQBRjPAnBCX8YpmSq8uZqxx3APsdnz+r2WEptQBTKq51lf1p801mF4H+PFclgIkbzh09GibE8Z9uSqvJO9UTmGnO0ucgM4HcGnpHWywPas5K0= Received: from BYAPR07CA0036.namprd07.prod.outlook.com (2603:10b6:a02:bc::49) by DM5PR07MB4103.namprd07.prod.outlook.com (2603:10b6:4:b3::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1294.21; Sat, 3 Nov 2018 18:07:54 +0000 Received: from DM3NAM05FT039.eop-nam05.prod.protection.outlook.com (2a01:111:f400:7e51::206) by BYAPR07CA0036.outlook.office365.com (2603:10b6:a02:bc::49) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1294.21 via Frontend Transport; Sat, 3 Nov 2018 18:07:54 +0000 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning cadence.com discourages use of 158.140.1.28 as permitted sender) Received: from sjmaillnx2.cadence.com (158.140.1.28) by DM3NAM05FT039.mail.protection.outlook.com (10.152.98.153) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1339.3 via Frontend Transport; Sat, 3 Nov 2018 18:07:53 +0000 Received: from mailrm1.global.cadence.com (mailrm1.cadence.com [10.209.213.2]) by sjmaillnx2.cadence.com (8.14.4/8.14.4) with ESMTP id wA3I7ppP028834 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=OK); Sat, 3 Nov 2018 11:07:52 -0700 X-CrossPremisesHeadersFilteredBySendConnector: mailrm1.global.cadence.com Received: from mailrm1.global.cadence.com (10.209.213.2) by mailrm1.global.cadence.com (10.209.213.2) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Sat, 3 Nov 2018 13:52:55 -0400 Received: from rmmaillnx1.cadence.com (10.209.208.46) by mailrm1.global.cadence.com (10.209.213.2) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Sat, 3 Nov 2018 13:52:55 -0400 Received: from mailrm1.global.cadence.com (mailrm1.cadence.com [10.209.213.2]) by rmmaillnx1.cadence.com (8.14.4/8.14.4) with ESMTP id wA3HqmJa000616 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=OK); Sat, 3 Nov 2018 13:52:49 -0400 X-CrossPremisesHeadersFilteredBySendConnector: mailrm1.global.cadence.com Received: from mailrm1.global.cadence.com (10.209.213.2) by mailrm1.global.cadence.com (10.209.213.2) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Sat, 3 Nov 2018 13:52:20 -0400 Received: from rmmaillnx1.cadence.com (10.209.208.46) by mailrm1.global.cadence.com (10.209.213.2) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Sat, 3 Nov 2018 13:52:20 -0400 Received: from mailrm1.global.cadence.com (mailrm1.cadence.com [10.209.213.2]) by rmmaillnx1.cadence.com (8.14.4/8.14.4) with ESMTP id wA3HqD5S000571 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=OK); Sat, 3 Nov 2018 13:52:14 -0400 X-CrossPremisesHeadersFilteredBySendConnector: mailrm1.global.cadence.com Received: from mailrm1.global.cadence.com (10.209.213.2) by mailrm1.global.cadence.com (10.209.213.2) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Sat, 3 Nov 2018 13:52:18 -0400 Received: from rmmaillnx1.cadence.com (10.209.208.46) by mailrm1.global.cadence.com (10.209.213.2) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Sat, 3 Nov 2018 13:52:18 -0400 Received: from maileu3.global.cadence.com (maileu3.cadence.com [10.160.88.99]) by rmmaillnx1.cadence.com (8.14.4/8.14.4) with ESMTP id wA3Hq9wx000566 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Sat, 3 Nov 2018 13:52:12 -0400 X-CrossPremisesHeadersFilteredBySendConnector: maileu3.global.cadence.com Received: from maileu3.global.cadence.com (10.160.88.99) by maileu3.global.cadence.com (10.160.88.99) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Sat, 3 Nov 2018 18:52:14 +0100 Received: from lvlogina.cadence.com (10.165.176.102) by maileu3.global.cadence.com (10.160.88.99) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Sat, 3 Nov 2018 18:52:14 +0100 Received: from lvlogina.cadence.com (localhost.localdomain [127.0.0.1]) by lvlogina.cadence.com (8.14.4/8.14.4) with ESMTP id wA3Hq9C6006324; Sat, 3 Nov 2018 17:52:09 GMT Received: (from pawell@localhost) by lvlogina.cadence.com (8.14.4/8.14.4/Submit) id wA3Hq944006322; Sat, 3 Nov 2018 17:52:09 GMT From: Pawel Laszczak To: CC: , , , , , , , , Subject: [RFC PATCH v1 01/14] usb:cdns3: add pci to platform driver wrapper. Date: Sat, 3 Nov 2018 17:51:14 +0000 Message-ID: <1541267487-3664-2-git-send-email-pawell@cadence.com> X-Mailer: git-send-email 1.7.11.2 In-Reply-To: <1541267487-3664-1-git-send-email-pawell@cadence.com> References: <1541267487-3664-1-git-send-email-pawell@cadence.com> MIME-Version: 1.0 Content-Type: text/plain X-OrganizationHeadersPreserved: maileu3.global.cadence.com X-OrganizationHeadersPreserved: mailrm1.global.cadence.com X-OrganizationHeadersPreserved: mailrm1.global.cadence.com X-OrganizationHeadersPreserved: mailrm1.global.cadence.com X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:158.140.1.28;IPV:CAL;SCL:-1;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(39860400002)(396003)(346002)(136003)(376002)(2980300002)(36092001)(199004)(189003)(2351001)(5660300001)(4326008)(16586007)(107886003)(246002)(2616005)(356004)(86362001)(446003)(11346002)(6666004)(106466001)(26005)(8936002)(8676002)(87636003)(316002)(42186006)(105596002)(217873002)(186003)(478600001)(7636002)(305945005)(54906003)(4720700003)(2906002)(36756003)(47776003)(426003)(336012)(50226002)(6916009)(51416003)(76176011)(48376002)(26826003)(126002)(486006)(50466002)(476003);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR07MB4103;H:sjmaillnx2.cadence.com;FPR:;SPF:SoftFail;LANG:en;PTR:corp.cadence.com;A:1;MX:1; X-Microsoft-Exchange-Diagnostics: 1;DM3NAM05FT039;1:oyVMZbXzSuzYoByRLl1gh1fCkkPYhNw8G61mqakFsArgHOTOf5idm15CuZ2R8rzXLX7LwuDxh9ajVIJjZvcKI47ww6l0wMTnO97+2YwYqlv/dh/2oCMRRVo7uyt1m9LY X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8bda561f-dd08-4184-0d0f-08d641b7468d X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:(7020095)(4652040)(8989299)(5600074)(711020)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060);SRVR:DM5PR07MB4103; X-Microsoft-Exchange-Diagnostics: 1;DM5PR07MB4103;3:GJvcWTPxEvlkzk/N01ikFTAv8OC3yQ2lhrloPWPDkf9SheNjgq4NtAfpmGE2NApHfDPmGC7fiFtgnkKOgvkLH/PWlDxLjEyasNZ9sAaiU/CnfPFMcfM/YjxsBlQdyR4DiqXxz4t7kA87cx4k7Vv8XFiK0nNOrIIzyW4CrzHRKEZE+E25L08kH8i5imZEis3OR8O+N1v9m+t0rOd7zIKt88pBKjrD7nBSGjRvJxFjQsd04UBlNb2UaEo1xqC/IvOItvXwwYNVFOGLhB19EDIHX6YdbvhubgpnTxS0JOBRd5wefx8dwEphX9t05ammedU26JYz4S65Yv6z6IA1bhh68Xp66mHpw1TDjSzJG9xYXKM=;25:ftIZu63dDq0aA7/MV1k8loMLNv7IHPcyxJ9R+L5aaqY5eBkppTkyW9tiT9XwOGcwdyIp+n6E73GEXYk3EN89BGvnOvrgPzSmWPoXv1s8gaDX52xFCeF6dsuEWPG2gBAb592fq88+TvIyJ4xqtzC2ulwFKx+r9fll906OIBq6NNT9F6ghSpxL89e2tc1Ep2vuWo86msluGOmeXLVoazzDJZXtzRzdmoet9NGvujhlxqPDFXHwRlqQYsj2pt3TQKFEig39rLC85x6iYdY3JgB05D9OJNttK1+Rhl6LDq/Luax8ewmt4xQEeb+DlCwnwmO/Iz1zGrFMox6dOWJQI7y60A== X-MS-TrafficTypeDiagnostic: DM5PR07MB4103: X-Microsoft-Exchange-Diagnostics: 1;DM5PR07MB4103;31:4M64QUyol32ZiYT96lWe1f9t/eJb99UEoB+rY5ZAcQz8tUP0tUl9CkFP5FR8b4BR+rv09MWo79cIbC2OeS8OUyy5ePdk0CtdLxJdkW2rFyn/+eRovYA8gN9LwS01amePMzVpf7lOPSJU4f1d9BGMf5VbugbTX1U6bDwyZTnmQnYKEOozSyCbg2LUoOYwNfcMuyqo6DXrnLMoYqH+Ia8OV2QZCccOgjQTI8avv89TwzM=;20:m1aRJVBi7iFJqe8mGm9iiez/Scw/zaZyotDN0jllFsrl7d2Rv1FjWaN+7JUrx/7J2DOWNkBG+iaTDGSd5OfYZt2B3cTP+tDB5grg4RptiDqMvQ82WgR51Hex8YHUrtiAKIat1zeFHPcV23y5gtJN0+zRJYmpXOdDymI7YVqKzqAow4SeUYQluXpaAtWjOaO/bt7166GrJJjjnvBlHkfQEQYIX9I5jg+GlSAX/GrhsAHxJvrruA9nZ6CZFiONAqYSjc1er01X8xgmz7ev2W8Avo0CxPjiwRn1akh2hT33SaFqCKq5QqGQwHCg6QLZ5nhoYCPSKBnE50baQQ6KYejXdtXIueYDBo566iKPmJ7Rd9QVqDzRVQ2v1EJ1jUN5yR44cjSSevFdIhps+X/NCV6hkg61zT8gk4+OywcsZuWIusaGd4wpjsf8Jl03vUEKAyHdA1l+ji8GA0iEFzE/qD8ztVUZCUSYULS1QWUUhB5MPXah7T44Lnld+A/p6pR0C5l2 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(72806322054110); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(93003095)(3231382)(944501410)(52105095)(148016)(149066)(150057)(6041310)(20161123564045)(20161123562045)(20161123558120)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051)(76991095);SRVR:DM5PR07MB4103;BCL:0;PCL:0;RULEID:;SRVR:DM5PR07MB4103; X-Microsoft-Exchange-Diagnostics: 1;DM5PR07MB4103;4:UhHgDCSucnOZ6rlzSKspKIi2oGKVi3xkXYqbnxRSl+i+qmx8d2ouGOjveVSs4x2/k9pakPhYAaJbCnDY5Ku+f1rsgK2amLOKFJCkmnvVCXcuX4yIpR6kgv2b9KfZpziWAq55Mqww5tVHCqPCpUkiiU9nWUaH291wNKmklzmyo/64u5s2azoIPZSZM2bMUm7Zb2ysbO03cq8DPwGral1OYrh/VJ05pOKwddFJgcOcvcPTPb1z12dJZXCNgTw9B8eZJQD+Z7ESdSik7iJItmDeIXCW5O4LgreorXx7dQGuKH/6kSAA/COisE5fQK2nZFaR X-Forefront-PRVS: 08457955C4 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM5PR07MB4103;23:wPzHTCkIQdkyVgSxkH1KhTE3nCOeH67i583CyaW/f?= =?us-ascii?Q?6e5qqr4DZ7l4RsWtcZ6/O5+BNIs0kb5UDg7z14fC5IrkQxNAoK1JnlYls76e?= =?us-ascii?Q?ZTbQ/k/iMWlUOJdrqqBjhv4MSbIDrU1WjjRLJE5TfmL5ADhX/V1sqKXXxiup?= =?us-ascii?Q?fchbybvVAPG9RtosZYs5iJDtCkct8rjta/Se7Po4f7CUX+U0I98/srclFYCU?= =?us-ascii?Q?hh+xDWwb1vPu/qoRxQSUY7j3ANDJGaH1Wt+u4XA1gW4OdpxyTHtPQYwQlvHB?= =?us-ascii?Q?JCmBfYoa5tWRZ4HVyfDaPJiXgjkhlOJPUuMdk8H89svluwRFZT4WLGo4Qg3f?= =?us-ascii?Q?kkxGuuAtFf03J96dttTfYB/RDTUFRDURYxxOwZT2jg5uQoYdXX6Cxv6LDhYJ?= =?us-ascii?Q?YZADV1nTOcFB9lqDbSb0NfyDXeDTjOFiOBasQ63b4f/0Sm95rPZx7I4PMKUZ?= =?us-ascii?Q?j3Ho4DBZcF9NNaIVU4a8zSRl1W7L6cfooP0vAWb17Mmbum/a1C4r7Gf9KnFB?= =?us-ascii?Q?9ETdt/+G0I0X+Z+dQvFMx4/jdUjKhg9fy+B1WJ5Q3b2N3s34DugljdTcTvwF?= =?us-ascii?Q?+/LE2eZMBB8vDSF2FofwHDMCepcxGGBziB5EMJDwfVStHJcYJYQyxKKn6VXH?= =?us-ascii?Q?b0ONyanQ/gOH6cZG7NNIE66CWKe3WcqQpLSt8u4aZq/7L5hFleM8DRM+tEHQ?= =?us-ascii?Q?O8TEQ2gq9EWVjl6IBExB9TZ4vmEVOLRpe610kBMl/QopI6TH31Wo5ZHfp7Io?= =?us-ascii?Q?REGILQSOBlmLQu1ycvQyvaXxVlyAavPZvIFq0neEsxLGtLK+VYhHWzrp8cIX?= =?us-ascii?Q?eUUdrV+fssD/pyg/a5tWJ7BAPC+v58kkKIzyQddZ3pjDqAh3iM36Tb/vCUaw?= =?us-ascii?Q?meYj1eOPIml3fBAaQG0VV/WHpWR9EfDR5nCxgIzpLuTOzSJbKuytLVwPI3Fq?= =?us-ascii?Q?by0Cc4Zer3jb9nqyJ83/09WxL6bQJ7+J0RlnI/yxe5s97PmSKUmVEyENnpUw?= =?us-ascii?Q?o7T/2876Ce4W2wcvsRIgXTCS5XJXp31WRotpGBQ0Cn7omL3ysxhdSCjf0MY7?= =?us-ascii?Q?KDXK/dl8+kM/Y/7takd20be+vUJdjD0Fry1m2uKEaarUdJ2dw18YF/NyviI8?= =?us-ascii?Q?OfOWItH22ZYv1lPK7nNxIsr15Pl2Mju?= X-Microsoft-Antispam-Message-Info: 4HwVFdpXzccvoRb/pTf0JPovE8mApMkBjFt+pSDqSd47h2I1jvpCza4OxgpdCXulXdA9VOXrBad27Z7cLz41ptv7XXq8zuL97k3I1a9Nt2CZCCTpLZORlxyr1ILydS4Zu8hHzahtVFL1nVqMVXXzf8JYGjrqzWVWeaFd/t7hd7FMG0cQFDVN+YFEQlZWEyKTDtYS4mV98znIKvlVKQZJ9SsNEASCWoL+E63O5VAOUrqa+ccUQdAGiYQLD1UZFTk7DnxBVWip0oo6Ks3z1LLRv3F2L9HYzkBzbGPJlf6Z88Pep3Jg0San70cAoPGAM/FFFlx7xj4YQscn+8fsPil3u7G1KlVT/dZ/b245qp+vxd4= X-Microsoft-Exchange-Diagnostics: 1;DM5PR07MB4103;6:HaklAfVEBiqioXGpnEjAQ0C9R/5fYLiSE6T2PIhNZKYtIuT3He9t+AzvPhAIWB5OmaskgXiGI+RnomhKqyYWeklqwF1NudLIKSkIRY6VuB4OhwoxLDD7ywBe1nXalTBW4iBM4QzM3V8HTF0sxNzbqXkaZ+ZI3JfS2eO6IF+7hCrvu2tvfawtEbxxQLjMCnONlBwMd1cQ86rVigl8mcBU6WrUmjwMGKTWnLPjP5y50+wSAXNZ4sykwm1B66VOO27SbXyFcokzvSY+e4lZ+mGVkjnQ6dGzYZxH0ShgPnp96Mx7XJ0fEXfmahXMhlGI5EkOyrFU8oyyOad9xBJkUsSTrTyYRc9+8FIkmD4r40HBQsxg7KG2MgvZhnNwBE9Zn3uEpHwmD9PhtwF1uABJ4RuF0RK9NgkAr4CqsEKlxgSCvSOEsVRGU6zcGFJBp7JIpSfIq6fkaOoJkF36qagqKl3G9g==;5:C2na7jmNfL3V7f1PkH9WMVpMQv+kOyeI23u4RpewdRtHVONezfiZMcDicqWQ21fKDjr1we6GFApeYmTF4ueOkQpRqUOEqgK/WUGYo/7gfdt/1GAmMm8PXjBnPJwZMfFrKcSo0ahPSz9uBqEKGCTb6oAAuEHMcK898EotHT/kYIk=;7:h25nA7VWBTeJoJZ3HKZMUMWkMggAQ1ap4r/Gc9H3VicZRuL2VioHJeLl/FkFVx+ElDabFxuC5gLg4QQjiTe/ine0FvDj5ZKkTFP+VfAjsRFCwsBOQ0qMFdXx8Vl4jxmSPjqXJ6DwkuWME5MD9Qgqqg== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM5PR07MB4103;20:54+zmjMYBSdk62cNWnuir0FixrEq2Zw9SMqeMS+rCKxmuM4sOHXNfm/soaWxHCrp4C96N8YwjY39mY8MwUbR+RsL6SlSK2hnP2U2mt+SWWUpkjEZtdifkaOfQVC7lwZ2ECQJlZB1PThCsgPABVKf4RxIeack4tXv4AUyLSIuDYsxwTvTX5onNtUomrU2YefIQgehR8RtsfcoM6P2VF2CVUw7dBBtmuAqptsZ5YxH/wAtvQAQBR3G4dti3Yypxwfb X-OriginatorOrg: cadence.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2018 18:07:53.3910 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8bda561f-dd08-4184-0d0f-08d641b7468d X-MS-Exchange-CrossTenant-Id: d36035c5-6ce6-4662-a3dc-e762e61ae4c9 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=d36035c5-6ce6-4662-a3dc-e762e61ae4c9;Ip=[158.140.1.28];Helo=[sjmaillnx2.cadence.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR07MB4103 X-Proofpoint-SPF-Result: pass X-Proofpoint-SPF-Record: v=spf1 a:mx-sanjose2.Cadence.COM a:mx-sanjose4.Cadence.COM a:mx-sanjose5.Cadence.COM include:mktomail.com include:spf-0014ca01.pphosted.com include:spf.protection.outlook.com include:auth.msgapp.com include:spf.mandrillapp.com ~all X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-11-03_10:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_check_notspam policy=outbound_check score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=946 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1807170000 definitions=main-1811030171 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Patch adds PCI specific glue drivier that creaties and registers in system cdns-usb3 platform device. Thanks to that we will be able to use the cdns-usb3 platform driver for USBSS-DEV controller build on PCI board Signed-off-by: Pawel Laszczak --- drivers/usb/Kconfig | 2 + drivers/usb/Makefile | 2 + drivers/usb/cdns3/Kconfig | 24 +++++ drivers/usb/cdns3/Makefile | 3 + drivers/usb/cdns3/cdns3-pci-wrap.c | 162 +++++++++++++++++++++++++++++ 5 files changed, 193 insertions(+) create mode 100644 drivers/usb/cdns3/Kconfig create mode 100644 drivers/usb/cdns3/Makefile create mode 100644 drivers/usb/cdns3/cdns3-pci-wrap.c diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig index 987fc5ba6321..5f9334019d04 100644 --- a/drivers/usb/Kconfig +++ b/drivers/usb/Kconfig @@ -112,6 +112,8 @@ source "drivers/usb/usbip/Kconfig" endif +source "drivers/usb/cdns3/Kconfig" + source "drivers/usb/mtu3/Kconfig" source "drivers/usb/musb/Kconfig" diff --git a/drivers/usb/Makefile b/drivers/usb/Makefile index 7d1b8c82b208..82093a60ea2c 100644 --- a/drivers/usb/Makefile +++ b/drivers/usb/Makefile @@ -8,6 +8,8 @@ obj-$(CONFIG_USB) += core/ obj-$(CONFIG_USB_SUPPORT) += phy/ +obj-$(CONFIG_USB_CDNS3) += cdns3/ + obj-$(CONFIG_USB_DWC3) += dwc3/ obj-$(CONFIG_USB_DWC2) += dwc2/ obj-$(CONFIG_USB_ISP1760) += isp1760/ diff --git a/drivers/usb/cdns3/Kconfig b/drivers/usb/cdns3/Kconfig new file mode 100644 index 000000000000..888458372adb --- /dev/null +++ b/drivers/usb/cdns3/Kconfig @@ -0,0 +1,24 @@ +config USB_CDNS3 + tristate "Cadence USB3 Dual-Role Controller" + depends on ((USB_XHCI_HCD && USB_GADGET) || (USB_XHCI_HCD && !USB_GADGET) || (!USB_XHCI_HCD && USB_GADGET)) && HAS_DMA + help + Say Y here if your system has a cadence USB3 dual-role controller. + It supports: dual-role switch Host-only, and Peripheral-only. + + If you choose to build this driver is a dynamically linked + module, the module will be called cdns3.ko. + +if USB_CDNS3 + +config USB_CDNS3_PCI_WRAP + tristate "PCIe-based Platforms" + depends on USB_PCI && ACPI + default USB_CDNS3 + help + If you're using the USBSS Core IP with a PCIe, please say + 'Y' or 'M' here. + + If you choose to build this driver as module it will + be dynamically linked and module will be called cdns3-pci.ko + +endif diff --git a/drivers/usb/cdns3/Makefile b/drivers/usb/cdns3/Makefile new file mode 100644 index 000000000000..dcdd62003c6a --- /dev/null +++ b/drivers/usb/cdns3/Makefile @@ -0,0 +1,3 @@ +obj-$(CONFIG_USB_CDNS3_PCI_WRAP) += cdns3-pci.o + +cdns3-pci-y := cdns3-pci-wrap.o diff --git a/drivers/usb/cdns3/cdns3-pci-wrap.c b/drivers/usb/cdns3/cdns3-pci-wrap.c new file mode 100644 index 000000000000..6c229ab6dffb --- /dev/null +++ b/drivers/usb/cdns3/cdns3-pci-wrap.c @@ -0,0 +1,162 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Cadence USBSS PCI Glue driver + * + * Copyright (C) 2018 Cadence. + * + * Author: Pawel Laszczak + */ + +#include +#include +#include +#include +#include +#include + +struct cdns3_wrap { + struct platform_device *plat_dev; + struct pci_dev *hg_dev; + struct resource dev_res[4]; +}; + +struct cdns3_wrap wrap; + +#define RES_IRQ_ID 0 +#define RES_HOST_ID 1 +#define RES_DEV_ID 2 +#define RES_DRD_ID 3 + +#define PCI_BAR_HOST 0 +#define PCI_BAR_DEV 2 +#define PCI_BAR_OTG 4 + +#define PCI_DEV_FN_HOST_DEVICE 0 +#define PCI_DEV_FN_OTG 1 + +#define PCI_DRIVER_NAME "cdns3-pci-usbss" +#define PLAT_DRIVER_NAME "cdns-usb3" + +#define CDNS_VENDOR_ID 0x17cd +#define CDNS_DEVICE_ID 0x0100 + +/** + * cdns3_pci_probe - Probe function for Cadence USB wrapper driver + * @pdev: platform device object + * @id: pci device id + * + * Returns 0 on success otherwise negative errno + */ +static int cdns3_pci_probe(struct pci_dev *pdev, + const struct pci_device_id *id) +{ + struct platform_device_info plat_info; + struct cdns3_wrap *wrap; + struct resource *res; + int err; + + /* + * for GADGET/HOST PCI (devfn) function number is 0, + * for OTG PCI (devfn) function number is 1 + */ + if (!id || pdev->devfn != PCI_DEV_FN_HOST_DEVICE) + return -EINVAL; + + err = pcim_enable_device(pdev); + if (err) { + dev_err(&pdev->dev, "Enabling PCI device has failed %d\n", err); + return err; + } + + pci_set_master(pdev); + wrap = devm_kzalloc(&pdev->dev, sizeof(*wrap), GFP_KERNEL); + if (!wrap) { + dev_err(&pdev->dev, "Failed to load PCI module\n"); + return -ENOMEM; + } + + /* function 0: host(BAR_0) + device(BAR_1) + otg(BAR_2)). */ + memset(wrap->dev_res, 0x00, + sizeof(struct resource) * ARRAY_SIZE(wrap->dev_res)); + dev_info(&pdev->dev, "Initialize Device resources\n"); + res = wrap->dev_res; + +#if IS_ENABLED(CONFIG_USB_CDNS3_GADGET) + res[RES_DEV_ID].start = pci_resource_start(pdev, PCI_BAR_DEV); + res[RES_DEV_ID].end = pci_resource_end(pdev, PCI_BAR_DEV); + res[RES_DEV_ID].name = "cdns3-dev-regs"; + res[RES_DEV_ID].flags = IORESOURCE_MEM; + dev_info(&pdev->dev, "USBSS-DEV physical base addr: %pa\n", + &res[RES_DEV_ID].start); + +#endif + +#if IS_ENABLED(CONFIG_USB_CDNS3_HOST) + res[RES_HOST_ID].start = pci_resource_start(pdev, PCI_BAR_HOST); + res[RES_HOST_ID].end = pci_resource_end(pdev, PCI_BAR_HOST); + res[RES_HOST_ID].name = "cdns3-xhci-regs"; + res[RES_HOST_ID].flags = IORESOURCE_MEM; + dev_info(&pdev->dev, "USBSS-XHCI physical base addr: %pa\n", + &res[RES_HOST_ID].start); +#endif + + res[RES_DRD_ID].start = pci_resource_start(pdev, PCI_BAR_OTG); + res[RES_DRD_ID].end = pci_resource_end(pdev, PCI_BAR_OTG); + res[RES_DRD_ID].name = "cdns3-otg"; + res[RES_DRD_ID].flags = IORESOURCE_MEM; + dev_info(&pdev->dev, "USBSS-DRD physical base addr: %pa\n", + &res[RES_DRD_ID].start); + + /* Interrupt common for both device and XHCI */ + wrap->dev_res[RES_IRQ_ID].start = pdev->irq; + wrap->dev_res[RES_IRQ_ID].name = "cdns3-irq"; + wrap->dev_res[RES_IRQ_ID].flags = IORESOURCE_IRQ; + + /* set up platform device info */ + memset(&plat_info, 0, sizeof(plat_info)); + plat_info.parent = &pdev->dev; + plat_info.fwnode = pdev->dev.fwnode; + plat_info.name = PLAT_DRIVER_NAME; + plat_info.id = pdev->devfn; + plat_info.res = wrap->dev_res; + plat_info.num_res = ARRAY_SIZE(wrap->dev_res); + plat_info.dma_mask = pdev->dma_mask; + + /* register platform device */ + wrap->plat_dev = platform_device_register_full(&plat_info); + if (IS_ERR(wrap->plat_dev)) { + err = PTR_ERR(wrap->plat_dev); + return err; + } + + pci_set_drvdata(pdev, wrap); + + return err; +} + +void cdns3_pci_remove(struct pci_dev *pdev) +{ + struct cdns3_wrap *wrap = (struct cdns3_wrap *)pci_get_drvdata(pdev); + + platform_device_unregister(wrap->plat_dev); +} + +static const struct pci_device_id cdns3_pci_ids[] = { + { PCI_DEVICE(CDNS_VENDOR_ID, CDNS_DEVICE_ID), }, + { 0, } +}; + +static struct pci_driver cdns3_pci_driver = { + .name = PCI_DRIVER_NAME, + .id_table = cdns3_pci_ids, + .probe = cdns3_pci_probe, + .remove = cdns3_pci_remove, +}; + +module_pci_driver(cdns3_pci_driver); +MODULE_DEVICE_TABLE(pci, cdns3_pci_ids); + +MODULE_AUTHOR("Pawel Laszczak "); +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("Cadence USBSS PCI wrapperr"); + -- 2.17.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [RFC,v1,01/14] usb:cdns3: add pci to platform driver wrapper. From: Pawel Laszczak Message-Id: <1541267487-3664-2-git-send-email-pawell@cadence.com> Date: Sat, 3 Nov 2018 17:51:14 +0000 To: gregkh@linuxfoundation.org Cc: linux-usb@vger.kernel.org, rogerq@ti.com, linux-kernel@vger.kernel.org, adouglas@cadence.com, jbergsagel@ti.com, peter.chen@nxp.com, pjez@cadence.com, kurahul@cadence.com, pawell@cadence.com List-ID: UGF0Y2ggYWRkcyBQQ0kgc3BlY2lmaWMgZ2x1ZSBkcml2aWVyIHRoYXQgY3JlYXRpZXMgYW5kIHJl Z2lzdGVycyBpbgpzeXN0ZW0gY2Rucy11c2IzIHBsYXRmb3JtIGRldmljZS4gVGhhbmtzIHRvIHRo YXQgd2Ugd2lsbCBiZSBhYmxlIHRvIHVzZQp0aGUgY2Rucy11c2IzIHBsYXRmb3JtIGRyaXZlciBm b3IgVVNCU1MtREVWIGNvbnRyb2xsZXIKYnVpbGQgb24gUENJIGJvYXJkCgpTaWduZWQtb2ZmLWJ5 OiBQYXdlbCBMYXN6Y3phayA8cGF3ZWxsQGNhZGVuY2UuY29tPgotLS0KIGRyaXZlcnMvdXNiL0tj b25maWcgICAgICAgICAgICAgICAgfCAgIDIgKwogZHJpdmVycy91c2IvTWFrZWZpbGUgICAgICAg ICAgICAgICB8ICAgMiArCiBkcml2ZXJzL3VzYi9jZG5zMy9LY29uZmlnICAgICAgICAgIHwgIDI0 ICsrKysrCiBkcml2ZXJzL3VzYi9jZG5zMy9NYWtlZmlsZSAgICAgICAgIHwgICAzICsKIGRyaXZl cnMvdXNiL2NkbnMzL2NkbnMzLXBjaS13cmFwLmMgfCAxNjIgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgMTkzIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL3VzYi9jZG5zMy9LY29uZmlnCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy91c2IvY2RuczMvTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3VzYi9j ZG5zMy9jZG5zMy1wY2ktd3JhcC5jCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvS2NvbmZpZyBi L2RyaXZlcnMvdXNiL0tjb25maWcKaW5kZXggOTg3ZmM1YmE2MzIxLi41ZjkzMzQwMTlkMDQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL0tjb25maWcKKysrIGIvZHJpdmVycy91c2IvS2NvbmZpZwpA QCAtMTEyLDYgKzExMiw4IEBAIHNvdXJjZSAiZHJpdmVycy91c2IvdXNiaXAvS2NvbmZpZyIKIAog ZW5kaWYKIAorc291cmNlICJkcml2ZXJzL3VzYi9jZG5zMy9LY29uZmlnIgorCiBzb3VyY2UgImRy aXZlcnMvdXNiL210dTMvS2NvbmZpZyIKIAogc291cmNlICJkcml2ZXJzL3VzYi9tdXNiL0tjb25m aWciCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9NYWtlZmlsZSBiL2RyaXZlcnMvdXNiL01ha2Vm aWxlCmluZGV4IDdkMWI4YzgyYjIwOC4uODIwOTNhNjBlYTJjIDEwMDY0NAotLS0gYS9kcml2ZXJz L3VzYi9NYWtlZmlsZQorKysgYi9kcml2ZXJzL3VzYi9NYWtlZmlsZQpAQCAtOCw2ICs4LDggQEAK IG9iai0kKENPTkZJR19VU0IpCQkrPSBjb3JlLwogb2JqLSQoQ09ORklHX1VTQl9TVVBQT1JUKQkr PSBwaHkvCiAKK29iai0kKENPTkZJR19VU0JfQ0ROUzMpCQkrPSBjZG5zMy8KKwogb2JqLSQoQ09O RklHX1VTQl9EV0MzKQkJKz0gZHdjMy8KIG9iai0kKENPTkZJR19VU0JfRFdDMikJCSs9IGR3YzIv CiBvYmotJChDT05GSUdfVVNCX0lTUDE3NjApCSs9IGlzcDE3NjAvCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3VzYi9jZG5zMy9LY29uZmlnIGIvZHJpdmVycy91c2IvY2RuczMvS2NvbmZpZwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjg4ODQ1ODM3MmFkYgotLS0gL2Rldi9u dWxsCisrKyBiL2RyaXZlcnMvdXNiL2NkbnMzL0tjb25maWcKQEAgLTAsMCArMSwyNCBAQAorY29u ZmlnIFVTQl9DRE5TMworCXRyaXN0YXRlICJDYWRlbmNlIFVTQjMgRHVhbC1Sb2xlIENvbnRyb2xs ZXIiCisJZGVwZW5kcyBvbiAoKFVTQl9YSENJX0hDRCAmJiBVU0JfR0FER0VUKSB8fCAoVVNCX1hI Q0lfSENEICYmICFVU0JfR0FER0VUKSB8fCAoIVVTQl9YSENJX0hDRCAmJiBVU0JfR0FER0VUKSkg JiYgSEFTX0RNQQorCWhlbHAKKwkgIFNheSBZIGhlcmUgaWYgeW91ciBzeXN0ZW0gaGFzIGEgY2Fk ZW5jZSBVU0IzIGR1YWwtcm9sZSBjb250cm9sbGVyLgorCSAgSXQgc3VwcG9ydHM6IGR1YWwtcm9s ZSBzd2l0Y2ggSG9zdC1vbmx5LCBhbmQgUGVyaXBoZXJhbC1vbmx5LgorCisJICBJZiB5b3UgY2hv b3NlIHRvIGJ1aWxkIHRoaXMgZHJpdmVyIGlzIGEgZHluYW1pY2FsbHkgbGlua2VkCisJICBtb2R1 bGUsIHRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgY2RuczMua28uCisKK2lmIFVTQl9DRE5TMwor Citjb25maWcgVVNCX0NETlMzX1BDSV9XUkFQCisJdHJpc3RhdGUgIlBDSWUtYmFzZWQgUGxhdGZv cm1zIgorCWRlcGVuZHMgb24gVVNCX1BDSSAmJiBBQ1BJCisJZGVmYXVsdCBVU0JfQ0ROUzMKKwlo ZWxwCisJICBJZiB5b3UncmUgdXNpbmcgdGhlIFVTQlNTIENvcmUgSVAgd2l0aCBhIFBDSWUsIHBs ZWFzZSBzYXkKKwkgICdZJyBvciAnTScgaGVyZS4KKworCSAgSWYgeW91IGNob29zZSB0byBidWls ZCB0aGlzIGRyaXZlciBhcyBtb2R1bGUgaXQgd2lsbAorCSAgYmUgZHluYW1pY2FsbHkgbGlua2Vk IGFuZCBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgY2RuczMtcGNpLmtvCisKK2VuZGlmCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3VzYi9jZG5zMy9NYWtlZmlsZSBiL2RyaXZlcnMvdXNiL2NkbnMzL01ha2Vm aWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZGNkZDYyMDAzYzZh Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy91c2IvY2RuczMvTWFrZWZpbGUKQEAgLTAsMCAr MSwzIEBACitvYmotJChDT05GSUdfVVNCX0NETlMzX1BDSV9XUkFQKQkrPSBjZG5zMy1wY2kubwor CitjZG5zMy1wY2kteQkJIAkJOj0gY2RuczMtcGNpLXdyYXAubwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy91c2IvY2RuczMvY2RuczMtcGNpLXdyYXAuYyBiL2RyaXZlcnMvdXNiL2NkbnMzL2NkbnMzLXBj aS13cmFwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42YzIyOWFi NmRmZmIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9jZG5zMy9jZG5zMy1wY2ktd3Jh cC5jCkBAIC0wLDAgKzEsMTYyIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIu MAorLyoKKyAqIENhZGVuY2UgVVNCU1MgUENJIEdsdWUgZHJpdmVyCisgKgorICogQ29weXJpZ2h0 IChDKSAyMDE4IENhZGVuY2UuCisgKgorICogQXV0aG9yOiBQYXdlbCBMYXN6Y3phayA8cGF3ZWxs QGNhZGVuY2UuY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRl IDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51 eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorI2lu Y2x1ZGUgPGxpbnV4L3NsYWIuaD4KKworc3RydWN0IGNkbnMzX3dyYXAgeworCXN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBsYXRfZGV2OworCXN0cnVjdCBwY2lfZGV2ICpoZ19kZXY7CisJc3RydWN0 IHJlc291cmNlIGRldl9yZXNbNF07Cit9OworCitzdHJ1Y3QgY2RuczNfd3JhcCB3cmFwOworCisj ZGVmaW5lIFJFU19JUlFfSUQJCTAKKyNkZWZpbmUgUkVTX0hPU1RfSUQJCTEKKyNkZWZpbmUgUkVT X0RFVl9JRAkJMgorI2RlZmluZSBSRVNfRFJEX0lECQkzCisKKyNkZWZpbmUgUENJX0JBUl9IT1NU CQkwCisjZGVmaW5lIFBDSV9CQVJfREVWCQkyCisjZGVmaW5lIFBDSV9CQVJfT1RHCQk0CisKKyNk ZWZpbmUgUENJX0RFVl9GTl9IT1NUX0RFVklDRQkwCisjZGVmaW5lIFBDSV9ERVZfRk5fT1RHCQkx CisKKyNkZWZpbmUgUENJX0RSSVZFUl9OQU1FCQkiY2RuczMtcGNpLXVzYnNzIgorI2RlZmluZSBQ TEFUX0RSSVZFUl9OQU1FCSJjZG5zLXVzYjMiCisKKyNkZWZpbmUgQ0ROU19WRU5ET1JfSUQgMHgx N2NkCisjZGVmaW5lIENETlNfREVWSUNFX0lEIDB4MDEwMAorCisvKioKKyAqIGNkbnMzX3BjaV9w cm9iZSAtIFByb2JlIGZ1bmN0aW9uIGZvciBDYWRlbmNlIFVTQiB3cmFwcGVyIGRyaXZlcgorICog QHBkZXY6IHBsYXRmb3JtIGRldmljZSBvYmplY3QKKyAqIEBpZDogcGNpIGRldmljZSBpZAorICoK KyAqIFJldHVybnMgMCBvbiBzdWNjZXNzIG90aGVyd2lzZSBuZWdhdGl2ZSBlcnJubworICovCitz dGF0aWMgaW50IGNkbnMzX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwKKwkJCSAgIGNv bnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkKK3sKKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl X2luZm8gcGxhdF9pbmZvOworCXN0cnVjdCBjZG5zM193cmFwICp3cmFwOworCXN0cnVjdCByZXNv dXJjZSAqcmVzOworCWludCBlcnI7CisKKwkvKgorCSAqIGZvciBHQURHRVQvSE9TVCBQQ0kgKGRl dmZuKSBmdW5jdGlvbiBudW1iZXIgaXMgMCwKKwkgKiBmb3IgT1RHIFBDSSAoZGV2Zm4pIGZ1bmN0 aW9uIG51bWJlciBpcyAxCisJICovCisJaWYgKCFpZCB8fCBwZGV2LT5kZXZmbiAhPSBQQ0lfREVW X0ZOX0hPU1RfREVWSUNFKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWVyciA9IHBjaW1fZW5hYmxl X2RldmljZShwZGV2KTsKKwlpZiAoZXJyKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgIkVuYWJs aW5nIFBDSSBkZXZpY2UgaGFzIGZhaWxlZCAlZFxuIiwgZXJyKTsKKwkJcmV0dXJuIGVycjsKKwl9 CisKKwlwY2lfc2V0X21hc3RlcihwZGV2KTsKKwl3cmFwID0gZGV2bV9remFsbG9jKCZwZGV2LT5k ZXYsIHNpemVvZigqd3JhcCksIEdGUF9LRVJORUwpOworCWlmICghd3JhcCkgeworCQlkZXZfZXJy KCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gbG9hZCBQQ0kgbW9kdWxlXG4iKTsKKwkJcmV0dXJuIC1F Tk9NRU07CisJfQorCisJLyogZnVuY3Rpb24gMDogaG9zdChCQVJfMCkgKyBkZXZpY2UoQkFSXzEp ICsgb3RnKEJBUl8yKSkuICovCisJbWVtc2V0KHdyYXAtPmRldl9yZXMsIDB4MDAsCisJICAgICAg IHNpemVvZihzdHJ1Y3QgcmVzb3VyY2UpICogQVJSQVlfU0laRSh3cmFwLT5kZXZfcmVzKSk7CisJ ZGV2X2luZm8oJnBkZXYtPmRldiwgIkluaXRpYWxpemUgRGV2aWNlIHJlc291cmNlc1xuIik7CisJ cmVzID0gd3JhcC0+ZGV2X3JlczsKKworI2lmIElTX0VOQUJMRUQoQ09ORklHX1VTQl9DRE5TM19H QURHRVQpCisJcmVzW1JFU19ERVZfSURdLnN0YXJ0ID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBkZXYs IFBDSV9CQVJfREVWKTsKKwlyZXNbUkVTX0RFVl9JRF0uZW5kID0gICBwY2lfcmVzb3VyY2VfZW5k KHBkZXYsIFBDSV9CQVJfREVWKTsKKwlyZXNbUkVTX0RFVl9JRF0ubmFtZSA9ICJjZG5zMy1kZXYt cmVncyI7CisJcmVzW1JFU19ERVZfSURdLmZsYWdzID0gSU9SRVNPVVJDRV9NRU07CisJZGV2X2lu Zm8oJnBkZXYtPmRldiwgIlVTQlNTLURFViBwaHlzaWNhbCBiYXNlIGFkZHI6ICVwYVxuIiwKKwkJ ICZyZXNbUkVTX0RFVl9JRF0uc3RhcnQpOworCisjZW5kaWYKKworI2lmIElTX0VOQUJMRUQoQ09O RklHX1VTQl9DRE5TM19IT1NUKQorCXJlc1tSRVNfSE9TVF9JRF0uc3RhcnQgPSBwY2lfcmVzb3Vy Y2Vfc3RhcnQocGRldiwgUENJX0JBUl9IT1NUKTsKKwlyZXNbUkVTX0hPU1RfSURdLmVuZCA9IHBj aV9yZXNvdXJjZV9lbmQocGRldiwgUENJX0JBUl9IT1NUKTsKKwlyZXNbUkVTX0hPU1RfSURdLm5h bWUgPSAiY2RuczMteGhjaS1yZWdzIjsKKwlyZXNbUkVTX0hPU1RfSURdLmZsYWdzID0gSU9SRVNP VVJDRV9NRU07CisJZGV2X2luZm8oJnBkZXYtPmRldiwgIlVTQlNTLVhIQ0kgcGh5c2ljYWwgYmFz ZSBhZGRyOiAlcGFcbiIsCisJCSAmcmVzW1JFU19IT1NUX0lEXS5zdGFydCk7CisjZW5kaWYKKwor CXJlc1tSRVNfRFJEX0lEXS5zdGFydCA9IHBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCBQQ0lfQkFS X09URyk7CisJcmVzW1JFU19EUkRfSURdLmVuZCA9ICAgcGNpX3Jlc291cmNlX2VuZChwZGV2LCBQ Q0lfQkFSX09URyk7CisJcmVzW1JFU19EUkRfSURdLm5hbWUgPSAiY2RuczMtb3RnIjsKKwlyZXNb UkVTX0RSRF9JRF0uZmxhZ3MgPSBJT1JFU09VUkNFX01FTTsKKwlkZXZfaW5mbygmcGRldi0+ZGV2 LCAiVVNCU1MtRFJEIHBoeXNpY2FsIGJhc2UgYWRkcjogJXBhXG4iLAorCQkgJnJlc1tSRVNfRFJE X0lEXS5zdGFydCk7CisKKwkvKiBJbnRlcnJ1cHQgY29tbW9uIGZvciBib3RoIGRldmljZSBhbmQg WEhDSSAqLworCXdyYXAtPmRldl9yZXNbUkVTX0lSUV9JRF0uc3RhcnQgPSBwZGV2LT5pcnE7CisJ d3JhcC0+ZGV2X3Jlc1tSRVNfSVJRX0lEXS5uYW1lID0gImNkbnMzLWlycSI7CisJd3JhcC0+ZGV2 X3Jlc1tSRVNfSVJRX0lEXS5mbGFncyA9IElPUkVTT1VSQ0VfSVJROworCisJLyogc2V0IHVwIHBs YXRmb3JtIGRldmljZSBpbmZvICovCisJbWVtc2V0KCZwbGF0X2luZm8sIDAsIHNpemVvZihwbGF0 X2luZm8pKTsKKwlwbGF0X2luZm8ucGFyZW50ID0gJnBkZXYtPmRldjsKKwlwbGF0X2luZm8uZndu b2RlID0gcGRldi0+ZGV2LmZ3bm9kZTsKKwlwbGF0X2luZm8ubmFtZSA9IFBMQVRfRFJJVkVSX05B TUU7CisJcGxhdF9pbmZvLmlkID0gcGRldi0+ZGV2Zm47CisJcGxhdF9pbmZvLnJlcyA9IHdyYXAt PmRldl9yZXM7CisJcGxhdF9pbmZvLm51bV9yZXMgPSBBUlJBWV9TSVpFKHdyYXAtPmRldl9yZXMp OworCXBsYXRfaW5mby5kbWFfbWFzayA9IHBkZXYtPmRtYV9tYXNrOworCisJLyogcmVnaXN0ZXIg cGxhdGZvcm0gZGV2aWNlICovCisJd3JhcC0+cGxhdF9kZXYgPSBwbGF0Zm9ybV9kZXZpY2VfcmVn aXN0ZXJfZnVsbCgmcGxhdF9pbmZvKTsKKwlpZiAoSVNfRVJSKHdyYXAtPnBsYXRfZGV2KSkgewor CQllcnIgPSBQVFJfRVJSKHdyYXAtPnBsYXRfZGV2KTsKKwkJcmV0dXJuIGVycjsKKwl9CisKKwlw Y2lfc2V0X2RydmRhdGEocGRldiwgd3JhcCk7CisKKwlyZXR1cm4gZXJyOworfQorCit2b2lkIGNk bnMzX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCit7CisJc3RydWN0IGNkbnMzX3dy YXAgKndyYXAgPSAoc3RydWN0IGNkbnMzX3dyYXAgKilwY2lfZ2V0X2RydmRhdGEocGRldik7CisK KwlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3Rlcih3cmFwLT5wbGF0X2Rldik7Cit9CisKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBjZG5zM19wY2lfaWRzW10gPSB7CisJeyBQQ0lf REVWSUNFKENETlNfVkVORE9SX0lELCBDRE5TX0RFVklDRV9JRCksIH0sCisJeyAwLCB9Cit9Owor CitzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgY2RuczNfcGNpX2RyaXZlciA9IHsKKwkubmFtZSA9 IFBDSV9EUklWRVJfTkFNRSwKKwkuaWRfdGFibGUgPSBjZG5zM19wY2lfaWRzLAorCS5wcm9iZSA9 IGNkbnMzX3BjaV9wcm9iZSwKKwkucmVtb3ZlID0gY2RuczNfcGNpX3JlbW92ZSwKK307CisKK21v ZHVsZV9wY2lfZHJpdmVyKGNkbnMzX3BjaV9kcml2ZXIpOworTU9EVUxFX0RFVklDRV9UQUJMRShw Y2ksIGNkbnMzX3BjaV9pZHMpOworCitNT0RVTEVfQVVUSE9SKCJQYXdlbCBMYXN6Y3phayA8cGF3 ZWxsQGNhZGVuY2UuY29tPiIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOworTU9EVUxFX0RF U0NSSVBUSU9OKCJDYWRlbmNlIFVTQlNTIFBDSSB3cmFwcGVyciIpOworCg==