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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A3A89C433F5 for ; Tue, 24 May 2022 14:35:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3FF898D0006; Tue, 24 May 2022 10:35:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3AE558D0002; Tue, 24 May 2022 10:35:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 24D418D0006; Tue, 24 May 2022 10:35:13 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 141BC8D0002 for ; Tue, 24 May 2022 10:35:13 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay12.hostedemail.com (Postfix) with ESMTP id E26E31213C3 for ; Tue, 24 May 2022 14:35:12 +0000 (UTC) X-FDA: 79500884106.05.828CAB8 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf04.hostedemail.com (Postfix) with ESMTP id 703F04002E for ; Tue, 24 May 2022 14:34:56 +0000 (UTC) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24OCxZ6C018828; Tue, 24 May 2022 14:35:09 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : content-type : mime-version; s=corp-2021-07-09; bh=PchnnsqbNLqwYTeGwx5CDbywI44elU4MA5RGvA6rRT0=; b=FsUWjKXzsvxHr6Rv3nP1/BuVO258pGdAl8DjhZ6USjMH57qJpqqZZ/Zq6LBgbmz4ZkwE CnOhky4eKPyGA2a+GOodtTMwZmyN0YffMam+2A6xiVGLW8/Pe+EWLdVL6IWG5SWnFUJv MLyTSuKN0ZUj9xOmoH/himxSkMSSGqGKidzi6tI9flkwmcJ9vawfvP9/SFNDjILYubSd vlYr6Upu4EBlqpDvIzlN1/EnKHNvVTUupQj44jSCgP7KHP9Znn7ePJCfqJBG+8rBWEmt bJt7R86VVyDSTvpAftEuLtAZd5P4+9HJ+aOywNFnG2r5mscTFbONuronH8wSgEkjs+TD 2w== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g6pp06k5h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 24 May 2022 14:35:09 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24OEU4hO007855; Tue, 24 May 2022 14:35:08 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2175.outbound.protection.outlook.com [104.47.56.175]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3g6ph2f42c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 24 May 2022 14:35:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jXK7xEO7aVmFMQHrnSTLuNHkE0fcQR3eGAvnUlf2Aj1yzwktsZtfq2rbzgCu+B+JaCOuplKnR/m1deisLZRTp61CcvVKvCxwzobtZjYs8TJP/wS7mZ299wklQ9iU285Qu16rNJcvaDVnm7Sk8BX5EHaq0WF+E5YuAAP7e/dVjAXDqdpoxABCceMiI+Ls64cXr+qQ4ZfBdzloyEmWuLDXAS/KlQ+n2WxXKzgzmFWXoU4ow5/aRbrt6UI45BbAZlkGXwSoT8MyvQLBgzeJJ6G8YJNTVsMOeMjQjgaLeSyay1r7q7d90CHrIkKqy1XuZc20qJKxAH7HN+dwdDxLguTnYA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=PchnnsqbNLqwYTeGwx5CDbywI44elU4MA5RGvA6rRT0=; b=PZGGQFHxrh+jGFb3YFEpjQwEzU2gk4leKGV81VM9Gg4ICVnTgkRYLtOZqZkHY9g2baXRle4qCaHivna8fxWobeB8UrGijHqcWWHgxbY6bQ7G6F6Ej4UguL4wj33+AsdOXKp4nx83CXO9MT380p112nfqXaTsa3ilcsUYPJHQ3zKyNJ6nVtkIvnTIDaAZvx5suMEdUTizJCz81+DklfzfLUWs1bPJKueeBMPV4rm7v/Ns+NeRcNsdzMcob6OzHfFBcMkGHREvXS673GQm6zyb77BlKNTPXEHKqBdtfVOP9um6sTtLehDcbCLRO5f0rZMZvk0eWmZ0xd98XqxQLHdxfw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PchnnsqbNLqwYTeGwx5CDbywI44elU4MA5RGvA6rRT0=; b=deQXFixzNdh/ixHg+CirmsR0lH57v5nlHFj8tVnI/XH/aoI2odYYqUTbdrQUDy7ks6cvlEeMbUSWagLE4Q/180AHGuShBipkdZlFGcvP5Zzv+XbbYaxKTq3sfkn3vMtaPvXGROD+zpcFsX+RHPXNb7ocRMMoChcA0udiQeVcQOg= Received: from MWHPR1001MB2365.namprd10.prod.outlook.com (2603:10b6:301:2d::28) by MN2PR10MB3599.namprd10.prod.outlook.com (2603:10b6:208:113::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Tue, 24 May 2022 14:35:05 +0000 Received: from MWHPR1001MB2365.namprd10.prod.outlook.com ([fe80::86f:81ba:9951:5a7e]) by MWHPR1001MB2365.namprd10.prod.outlook.com ([fe80::86f:81ba:9951:5a7e%2]) with mapi id 15.20.5273.023; Tue, 24 May 2022 14:35:05 +0000 Date: Tue, 24 May 2022 17:34:47 +0300 From: Dan Carpenter To: kbuild@lists.01.org, Keerthy Cc: lkp@intel.com, kbuild-all@lists.01.org, Linux Memory Management List , Daniel Lezcano Subject: [linux-next:master 12341/13934] drivers/thermal/k3_j72xx_bandgap.c:521 k3_j72xx_bandgap_probe() warn: possible memory leak of 'ref_table' Message-ID: <202205241527.HnmfEBAn-lkp@intel.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.9.4 (2018-02-28) X-ClientProxiedBy: JNAP275CA0057.ZAFP275.PROD.OUTLOOK.COM (2603:1086:0:4f::9) To MWHPR1001MB2365.namprd10.prod.outlook.com (2603:10b6:301:2d::28) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 26dfd0e7-1ead-419b-49fb-08da3d92984e X-MS-TrafficTypeDiagnostic: MN2PR10MB3599:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jzbzkPBaSQ7Db4cEzu8lkpIVrnERLgaQBdhEuFs6y5tb6YejawSAYZ2EiRpm3n7Ig+UId5tbVmoUwYCjQn8NL4NbsFZj9wcCb9LZhwAStF1nS+O1NMjaoFRTJaRg8VX5+/4/CNKeG8STCfqQg5x8TBwdJJzo866L8hznVQcrpNO9jxrjWD1u8QAutLl1jn2oucdqmvs3U8BAs1qMNoTcWepiY6bUglFiIVCAF3dFucL9/0fb/wGx25xJYwSQztIlRfssOPfrz9iOO2Q9G40sebvUU4fq7qGOmGLRDl2MfEW+iRu8ISZKlKxIjkUGhjxuGo5zgqoRsGrOLS4aHoAf2z8mSdyqE+icSDChRGR0SRyl7LNErK99hRLAXixuLX7VD57z9MKsLW3iB2Di4CKzznB2DFQXAi9fKqhQVUsmBldro3sRw1aJxLUcAcTch14LA9UaJowsPR51vpcoQcbW3H/tlzLg3j57y/vIInpgSlcBe/4Pczg5vllQcuoOU9ZSdtaHvgBImawfJQAqNN+ePt0GhR3bQHMCljS0cktQI0Bo94J0aY0/2LgqAE/GJ7wjrz8L7CPbyL3Ie7z0R2evLwT9BGRRp9t4IyW5oKhaDPP0jyCwxtP9bV7vj6gKUTxeR1tXEVu/iQ3dLKReewOyqypIf7DmdyoJGInutjlNBs6/W2KhQifiO/MhcsZ1u4rlqE87Xmm76fZ9XzoFK51ZErFO6vPdXL2CAUtNT8SWEQx4pqgkPXocrg1E4kUwFp3NkRkmSLpjVahgsqO4Twd3kAAhALq/RCdhEJgm7V4prvyljds3O2xpiIPxi/RrKG8/mfENsB0qEvTM9kZHwEMh1g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR1001MB2365.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(2906002)(6486002)(26005)(6512007)(9686003)(36756003)(6916009)(66556008)(66476007)(316002)(38350700002)(54906003)(966005)(4326008)(38100700002)(8936002)(52116002)(186003)(30864003)(5660300002)(6506007)(508600001)(44832011)(1076003)(86362001)(83380400001)(8676002)(66946007)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?LPBgFDKQisLiVfS5HvsSDvUkIIUIQESMuGBhBDJN3K70PLm0uNI6Gn4sjkjH?= =?us-ascii?Q?uEDbpkAKUhiekpfEE0RbILJYMN+6FmXldJ63Ly73rEgV2zb1nRp9d18ioXg2?= =?us-ascii?Q?XhmShV14dR65SNcI2k5dw2P4e8XfgsW5iAXJEjKP+UXpsHY2zJ4ux23m/5n/?= =?us-ascii?Q?ki9zS0x0AARVvUlU4KwAKMm1svdPVuYcpBrA9YMdNlWO3ipMlVrioJstPtPB?= =?us-ascii?Q?ST0Hs5MmQo7LGS/H89XilaD2VLVXXQOvSPc/HibjfmFxOHYChuZDkiaqZ0MV?= =?us-ascii?Q?kVeBi+qcaHw0AG0c30xU5zZLm1A8IqdmfL3jlEd6T9Mh7A9AI9Nryv0FD9/U?= =?us-ascii?Q?b/EAIC2t5cWS0i4yeuO8jwagDBI2/6aTlQwOB0jm6ijoUZdO6lz2+M1xScYj?= =?us-ascii?Q?44I/GbpkwZqacM/L3usEF/auUFNeXyan5+yJkDVl3CHpa9IpjJ4b7cuioUpi?= =?us-ascii?Q?jPVoyPKvDZdnp7CE+0JetYxF04AtuGoUZNoR/MGjLQyx0zYwYP/Kpap4x5MY?= =?us-ascii?Q?HVkW16E5sQp6d4zTeTdM25zr3hjxqqcVqT7fkG7mX7u24TkiFyqC4bZUXUoW?= =?us-ascii?Q?kFP+g+Nskvj3p84yOt4YvyHk5seIM0VyB8osdwNz9Yx2mBPhblMMKutosaH3?= =?us-ascii?Q?GhqTIL8Jzca6x6XZZjRoSA5mhlbwR7yUobogM+ywu9bN4FX4O5RIJAeDQl2W?= =?us-ascii?Q?8yyrFRwZHHM1ywzdq073uClJEcx9BegqgMDHJokzJLqChP8OGM0TL60umveb?= =?us-ascii?Q?5kW69Evx4et9kDl6sOJUBhsIw/zN1ApnjO2DR9UBDHrUZmVGuq7Vg0xyq+je?= =?us-ascii?Q?nwBkwz4Uww6Pvtbpg5TuZlwbIEZkpmgyetLTvL+62qpMIfXqGQpwP4Nt55ID?= =?us-ascii?Q?3sVOA7WqpwEwWBZZcbi57kpUccixIOnwfAXHQzSyBd9kczHmF+3GfAqZobxl?= =?us-ascii?Q?Z9xf7iIi+F9yByHh57Kuf5cyYPdhYsNI6LPALHjjcVd/zmp776pK6FRRzwH7?= =?us-ascii?Q?hrXFQ1dolT0gXu9Y0f8npn6l5hfl9g/6+8Sq0jyz5smsXsD782og6fNMC8pw?= =?us-ascii?Q?6gOMZmYoHlaEWA29rOkD5/l6UC8WSDWCERWQJHc/nAl4VYajaoxfzDCDb2hO?= =?us-ascii?Q?6a5/bFM1n86DoaG0yREMaar5XpS23uvjY3BSC0Y5w6EMRw57dJCkyNzAY3Hf?= =?us-ascii?Q?3+nn86VZ944S3pPA/bMuRYL7kFILxjoQLIvaH90HCub8r3Hru6B2whWgiV4Z?= =?us-ascii?Q?kKBvKh5tHczY5hgimUGM/LlvT9vJlHJSoH9BD51x9ifE0lRhGO/QrmsYgBsy?= =?us-ascii?Q?7rphvH3o4UI5hQbw+KCOLLIfxaPrkJ9fbevGNWrDRjRdKqhCbfrLxyI3Z8bg?= =?us-ascii?Q?OKccp34yG/6WF5DjyD3noKd/JZ8TVg+waPcPTv/AZeN7MDwLGwJ0shFM6PXt?= =?us-ascii?Q?n0C1H4nz0NjPxCJabmQnGsx2jYKmqQVK3ZIdutRsJT3qHpJMH28iZI89vtK2?= =?us-ascii?Q?j72iydgkNVgX80LapYwjdzgEys5e4UXSUsDLRlD5a6gvY+CTSbLLr+h91zoR?= =?us-ascii?Q?0foXcwiH+l0JFf34M5XGmMRS12uk3lsBopzQad2atfMGqZNrfwmEdWAHqZMy?= =?us-ascii?Q?+52Wl/nond+5O0BtyyP3CHq2L5hbyC3iCgNlRJCir4FMU7ONtIGCJDX4XiHr?= =?us-ascii?Q?I4aabE3s6/ZQy+ej4GC0Kx+5tAwhcBzc1w+ywc3gJlZnzfy7scGeQeQuFQ8A?= =?us-ascii?Q?kqGKkAk9bTjbZkDkUE944X8h9CUU0o0=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 26dfd0e7-1ead-419b-49fb-08da3d92984e X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2365.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2022 14:35:05.7696 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: BhlrCd8aIiBTI/nsdF1fkLuc574TbTCySV6vONpOhxJGatCi3PHtjV+yOobz7d4sHgQYjbmzXCzh03qkb53Awj+lDJGfkw3qcLRQGtwLrT4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3599 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.874 definitions=2022-05-24_05:2022-05-23,2022-05-24 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 bulkscore=0 mlxscore=0 mlxlogscore=999 suspectscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205240074 X-Proofpoint-ORIG-GUID: _fcyhZILW80tOCM3WbaflWQzbRTpEdo7 X-Proofpoint-GUID: _fcyhZILW80tOCM3WbaflWQzbRTpEdo7 X-Rspam-User: X-Rspamd-Queue-Id: 703F04002E X-Stat-Signature: sn46zihkbcscd87jgpe5b5pe3rgtspr6 Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=FsUWjKXz; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=deQXFixz; dmarc=pass (policy=none) header.from=oracle.com; spf=none (imf04.hostedemail.com: domain of dan.carpenter@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=dan.carpenter@oracle.com X-Rspamd-Server: rspam04 X-HE-Tag: 1653402896-268061 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: cc63e8e92cb872081f249ea16e6c460642f3e4fb commit: ffcb2fc86eb7ebc9f5524525fb57e1cccfbd1fc0 [12341/13934] thermal: k3_j72xx_bandgap: Add the bandgap driver support config: openrisc-randconfig-m031-20220523 (https://download.01.org/0day-ci/archive/20220524/202205241527.HnmfEBAn-lkp@intel.com/config) compiler: or1k-linux-gcc (GCC) 11.3.0 If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot Reported-by: Dan Carpenter smatch warnings: drivers/thermal/k3_j72xx_bandgap.c:521 k3_j72xx_bandgap_probe() warn: possible memory leak of 'ref_table' vim +/ref_table +521 drivers/thermal/k3_j72xx_bandgap.c ffcb2fc86eb7eb Keerthy 2022-05-17 355 static int k3_j72xx_bandgap_probe(struct platform_device *pdev) ffcb2fc86eb7eb Keerthy 2022-05-17 356 { ffcb2fc86eb7eb Keerthy 2022-05-17 357 int ret = 0, cnt, val, id; ffcb2fc86eb7eb Keerthy 2022-05-17 358 int high_max, low_temp; ffcb2fc86eb7eb Keerthy 2022-05-17 359 struct resource *res; ffcb2fc86eb7eb Keerthy 2022-05-17 360 struct device *dev = &pdev->dev; ffcb2fc86eb7eb Keerthy 2022-05-17 361 struct k3_j72xx_bandgap *bgp; ffcb2fc86eb7eb Keerthy 2022-05-17 362 struct k3_thermal_data *data; ffcb2fc86eb7eb Keerthy 2022-05-17 363 int workaround_needed = 0; ffcb2fc86eb7eb Keerthy 2022-05-17 364 const struct k3_j72xx_bandgap_data *driver_data; ffcb2fc86eb7eb Keerthy 2022-05-17 365 struct thermal_zone_device *ti_thermal; ffcb2fc86eb7eb Keerthy 2022-05-17 366 int *ref_table; ffcb2fc86eb7eb Keerthy 2022-05-17 367 struct err_values err_vals; ffcb2fc86eb7eb Keerthy 2022-05-17 368 ffcb2fc86eb7eb Keerthy 2022-05-17 369 const s64 golden_factors[] = { ffcb2fc86eb7eb Keerthy 2022-05-17 370 -490019999999999936, ffcb2fc86eb7eb Keerthy 2022-05-17 371 3251200000000000, ffcb2fc86eb7eb Keerthy 2022-05-17 372 -1705800000000, ffcb2fc86eb7eb Keerthy 2022-05-17 373 603730000, ffcb2fc86eb7eb Keerthy 2022-05-17 374 -92627, ffcb2fc86eb7eb Keerthy 2022-05-17 375 }; ffcb2fc86eb7eb Keerthy 2022-05-17 376 ffcb2fc86eb7eb Keerthy 2022-05-17 377 const s64 pvt_wa_factors[] = { ffcb2fc86eb7eb Keerthy 2022-05-17 378 -415230000000000000, ffcb2fc86eb7eb Keerthy 2022-05-17 379 3126600000000000, ffcb2fc86eb7eb Keerthy 2022-05-17 380 -1157800000000, ffcb2fc86eb7eb Keerthy 2022-05-17 381 }; ffcb2fc86eb7eb Keerthy 2022-05-17 382 ffcb2fc86eb7eb Keerthy 2022-05-17 383 bgp = devm_kzalloc(&pdev->dev, sizeof(*bgp), GFP_KERNEL); ffcb2fc86eb7eb Keerthy 2022-05-17 384 if (!bgp) ffcb2fc86eb7eb Keerthy 2022-05-17 385 return -ENOMEM; ffcb2fc86eb7eb Keerthy 2022-05-17 386 ffcb2fc86eb7eb Keerthy 2022-05-17 387 bgp->dev = dev; ffcb2fc86eb7eb Keerthy 2022-05-17 388 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); ffcb2fc86eb7eb Keerthy 2022-05-17 389 bgp->base = devm_ioremap_resource(dev, res); ffcb2fc86eb7eb Keerthy 2022-05-17 390 if (IS_ERR(bgp->base)) ffcb2fc86eb7eb Keerthy 2022-05-17 391 return PTR_ERR(bgp->base); ffcb2fc86eb7eb Keerthy 2022-05-17 392 ffcb2fc86eb7eb Keerthy 2022-05-17 393 res = platform_get_resource(pdev, IORESOURCE_MEM, 1); ffcb2fc86eb7eb Keerthy 2022-05-17 394 bgp->cfg2_base = devm_ioremap_resource(dev, res); ffcb2fc86eb7eb Keerthy 2022-05-17 395 if (IS_ERR(bgp->cfg2_base)) ffcb2fc86eb7eb Keerthy 2022-05-17 396 return PTR_ERR(bgp->cfg2_base); ffcb2fc86eb7eb Keerthy 2022-05-17 397 ffcb2fc86eb7eb Keerthy 2022-05-17 398 res = platform_get_resource(pdev, IORESOURCE_MEM, 2); ffcb2fc86eb7eb Keerthy 2022-05-17 399 bgp->fuse_base = devm_ioremap_resource(dev, res); ffcb2fc86eb7eb Keerthy 2022-05-17 400 if (IS_ERR(bgp->fuse_base)) ffcb2fc86eb7eb Keerthy 2022-05-17 401 return PTR_ERR(bgp->fuse_base); ffcb2fc86eb7eb Keerthy 2022-05-17 402 ffcb2fc86eb7eb Keerthy 2022-05-17 403 driver_data = of_device_get_match_data(dev); ffcb2fc86eb7eb Keerthy 2022-05-17 404 if (driver_data) ffcb2fc86eb7eb Keerthy 2022-05-17 405 workaround_needed = driver_data->has_errata_i2128; ffcb2fc86eb7eb Keerthy 2022-05-17 406 ffcb2fc86eb7eb Keerthy 2022-05-17 407 pm_runtime_enable(dev); ffcb2fc86eb7eb Keerthy 2022-05-17 408 ret = pm_runtime_get_sync(dev); ffcb2fc86eb7eb Keerthy 2022-05-17 409 if (ret < 0) { ffcb2fc86eb7eb Keerthy 2022-05-17 410 pm_runtime_put_noidle(dev); ffcb2fc86eb7eb Keerthy 2022-05-17 411 pm_runtime_disable(dev); ffcb2fc86eb7eb Keerthy 2022-05-17 412 return ret; ffcb2fc86eb7eb Keerthy 2022-05-17 413 } ffcb2fc86eb7eb Keerthy 2022-05-17 414 ffcb2fc86eb7eb Keerthy 2022-05-17 415 /* Get the sensor count in the VTM */ ffcb2fc86eb7eb Keerthy 2022-05-17 416 val = readl(bgp->base + K3_VTM_DEVINFO_PWR0_OFFSET); ffcb2fc86eb7eb Keerthy 2022-05-17 417 cnt = val & K3_VTM_DEVINFO_PWR0_TEMPSENS_CT_MASK; ffcb2fc86eb7eb Keerthy 2022-05-17 418 cnt >>= __ffs(K3_VTM_DEVINFO_PWR0_TEMPSENS_CT_MASK); ffcb2fc86eb7eb Keerthy 2022-05-17 419 ffcb2fc86eb7eb Keerthy 2022-05-17 420 data = devm_kcalloc(bgp->dev, cnt, sizeof(*data), GFP_KERNEL); ffcb2fc86eb7eb Keerthy 2022-05-17 421 if (!data) { ffcb2fc86eb7eb Keerthy 2022-05-17 422 ret = -ENOMEM; ffcb2fc86eb7eb Keerthy 2022-05-17 423 goto err_alloc; ffcb2fc86eb7eb Keerthy 2022-05-17 424 } ffcb2fc86eb7eb Keerthy 2022-05-17 425 ffcb2fc86eb7eb Keerthy 2022-05-17 426 ref_table = kzalloc(sizeof(*ref_table) * TABLE_SIZE, GFP_KERNEL); ffcb2fc86eb7eb Keerthy 2022-05-17 427 if (!ref_table) { ffcb2fc86eb7eb Keerthy 2022-05-17 428 ret = -ENOMEM; ffcb2fc86eb7eb Keerthy 2022-05-17 429 goto err_alloc; ffcb2fc86eb7eb Keerthy 2022-05-17 430 } ffcb2fc86eb7eb Keerthy 2022-05-17 431 ffcb2fc86eb7eb Keerthy 2022-05-17 432 derived_table = devm_kzalloc(bgp->dev, sizeof(*derived_table) * TABLE_SIZE, ffcb2fc86eb7eb Keerthy 2022-05-17 433 GFP_KERNEL); ffcb2fc86eb7eb Keerthy 2022-05-17 434 if (!derived_table) { ffcb2fc86eb7eb Keerthy 2022-05-17 435 ret = -ENOMEM; ffcb2fc86eb7eb Keerthy 2022-05-17 436 goto err_alloc; ffcb2fc86eb7eb Keerthy 2022-05-17 437 } ffcb2fc86eb7eb Keerthy 2022-05-17 438 ffcb2fc86eb7eb Keerthy 2022-05-17 439 /* Workaround not needed if bit30/bit31 is set even for J721e */ ffcb2fc86eb7eb Keerthy 2022-05-17 440 if (workaround_needed && (readl(bgp->fuse_base + 0x0) & 0xc0000000) == 0xc0000000) ffcb2fc86eb7eb Keerthy 2022-05-17 441 workaround_needed = false; ffcb2fc86eb7eb Keerthy 2022-05-17 442 ffcb2fc86eb7eb Keerthy 2022-05-17 443 dev_dbg(bgp->dev, "Work around %sneeded\n", ffcb2fc86eb7eb Keerthy 2022-05-17 444 workaround_needed ? "not " : ""); ffcb2fc86eb7eb Keerthy 2022-05-17 445 ffcb2fc86eb7eb Keerthy 2022-05-17 446 if (!workaround_needed) ffcb2fc86eb7eb Keerthy 2022-05-17 447 init_table(5, ref_table, golden_factors); ffcb2fc86eb7eb Keerthy 2022-05-17 448 else ffcb2fc86eb7eb Keerthy 2022-05-17 449 init_table(3, ref_table, pvt_wa_factors); ffcb2fc86eb7eb Keerthy 2022-05-17 450 ffcb2fc86eb7eb Keerthy 2022-05-17 451 /* Register the thermal sensors */ ffcb2fc86eb7eb Keerthy 2022-05-17 452 for (id = 0; id < cnt; id++) { ffcb2fc86eb7eb Keerthy 2022-05-17 453 data[id].bgp = bgp; ffcb2fc86eb7eb Keerthy 2022-05-17 454 data[id].ctrl_offset = K3_VTM_TMPSENS0_CTRL_OFFSET + id * 0x20; ffcb2fc86eb7eb Keerthy 2022-05-17 455 data[id].stat_offset = data[id].ctrl_offset + ffcb2fc86eb7eb Keerthy 2022-05-17 456 K3_VTM_TMPSENS_STAT_OFFSET; ffcb2fc86eb7eb Keerthy 2022-05-17 457 ffcb2fc86eb7eb Keerthy 2022-05-17 458 if (workaround_needed) { ffcb2fc86eb7eb Keerthy 2022-05-17 459 /* ref adc values for -40C, 30C & 125C respectively */ ffcb2fc86eb7eb Keerthy 2022-05-17 460 err_vals.refs[0] = MINUS40CREF; ffcb2fc86eb7eb Keerthy 2022-05-17 461 err_vals.refs[1] = PLUS30CREF; ffcb2fc86eb7eb Keerthy 2022-05-17 462 err_vals.refs[2] = PLUS125CREF; ffcb2fc86eb7eb Keerthy 2022-05-17 463 err_vals.refs[3] = PLUS150CREF; ffcb2fc86eb7eb Keerthy 2022-05-17 464 get_efuse_values(id, &data[id], err_vals.errs, bgp); ffcb2fc86eb7eb Keerthy 2022-05-17 465 } ffcb2fc86eb7eb Keerthy 2022-05-17 466 ffcb2fc86eb7eb Keerthy 2022-05-17 467 if (id == 0 && workaround_needed) ffcb2fc86eb7eb Keerthy 2022-05-17 468 prep_lookup_table(&err_vals, ref_table); ffcb2fc86eb7eb Keerthy 2022-05-17 469 else if (id == 0 && !workaround_needed) ffcb2fc86eb7eb Keerthy 2022-05-17 470 memcpy(derived_table, ref_table, TABLE_SIZE * 4); ffcb2fc86eb7eb Keerthy 2022-05-17 471 ffcb2fc86eb7eb Keerthy 2022-05-17 472 val = readl(data[id].bgp->cfg2_base + data[id].ctrl_offset); ffcb2fc86eb7eb Keerthy 2022-05-17 473 val |= (K3_VTM_TMPSENS_CTRL_MAXT_OUTRG_EN | ffcb2fc86eb7eb Keerthy 2022-05-17 474 K3_VTM_TMPSENS_CTRL_SOC | ffcb2fc86eb7eb Keerthy 2022-05-17 475 K3_VTM_TMPSENS_CTRL_CLRZ | BIT(4)); ffcb2fc86eb7eb Keerthy 2022-05-17 476 writel(val, data[id].bgp->cfg2_base + data[id].ctrl_offset); ffcb2fc86eb7eb Keerthy 2022-05-17 477 ffcb2fc86eb7eb Keerthy 2022-05-17 478 bgp->ts_data[id] = &data[id]; ffcb2fc86eb7eb Keerthy 2022-05-17 479 ti_thermal = ffcb2fc86eb7eb Keerthy 2022-05-17 480 devm_thermal_zone_of_sensor_register(bgp->dev, id, ffcb2fc86eb7eb Keerthy 2022-05-17 481 &data[id], ffcb2fc86eb7eb Keerthy 2022-05-17 482 &k3_of_thermal_ops); ffcb2fc86eb7eb Keerthy 2022-05-17 483 if (IS_ERR(ti_thermal)) { ffcb2fc86eb7eb Keerthy 2022-05-17 484 dev_err(bgp->dev, "thermal zone device is NULL\n"); ffcb2fc86eb7eb Keerthy 2022-05-17 485 ret = PTR_ERR(ti_thermal); ffcb2fc86eb7eb Keerthy 2022-05-17 486 goto err_alloc; ffcb2fc86eb7eb Keerthy 2022-05-17 487 } ffcb2fc86eb7eb Keerthy 2022-05-17 488 } ffcb2fc86eb7eb Keerthy 2022-05-17 489 ffcb2fc86eb7eb Keerthy 2022-05-17 490 /* ffcb2fc86eb7eb Keerthy 2022-05-17 491 * Program TSHUT thresholds ffcb2fc86eb7eb Keerthy 2022-05-17 492 * Step 1: set the thresholds to ~123C and 105C WKUP_VTM_MISC_CTRL2 ffcb2fc86eb7eb Keerthy 2022-05-17 493 * Step 2: WKUP_VTM_TMPSENS_CTRL_j set the MAXT_OUTRG_EN bit ffcb2fc86eb7eb Keerthy 2022-05-17 494 * This is already taken care as per of init ffcb2fc86eb7eb Keerthy 2022-05-17 495 * Step 3: WKUP_VTM_MISC_CTRL set the ANYMAXT_OUTRG_ALERT_EN bit ffcb2fc86eb7eb Keerthy 2022-05-17 496 */ ffcb2fc86eb7eb Keerthy 2022-05-17 497 high_max = k3_j72xx_bandgap_temp_to_adc_code(MAX_TEMP); ffcb2fc86eb7eb Keerthy 2022-05-17 498 low_temp = k3_j72xx_bandgap_temp_to_adc_code(COOL_DOWN_TEMP); ffcb2fc86eb7eb Keerthy 2022-05-17 499 ffcb2fc86eb7eb Keerthy 2022-05-17 500 writel((low_temp << 16) | high_max, data[0].bgp->cfg2_base + ffcb2fc86eb7eb Keerthy 2022-05-17 501 K3_VTM_MISC_CTRL2_OFFSET); ffcb2fc86eb7eb Keerthy 2022-05-17 502 mdelay(100); ffcb2fc86eb7eb Keerthy 2022-05-17 503 writel(K3_VTM_ANYMAXT_OUTRG_ALERT_EN, data[0].bgp->cfg2_base + ffcb2fc86eb7eb Keerthy 2022-05-17 504 K3_VTM_MISC_CTRL_OFFSET); ffcb2fc86eb7eb Keerthy 2022-05-17 505 ffcb2fc86eb7eb Keerthy 2022-05-17 506 platform_set_drvdata(pdev, bgp); ffcb2fc86eb7eb Keerthy 2022-05-17 507 ffcb2fc86eb7eb Keerthy 2022-05-17 508 print_look_up_table(dev, ref_table); ffcb2fc86eb7eb Keerthy 2022-05-17 509 /* ffcb2fc86eb7eb Keerthy 2022-05-17 510 * Now that the derived_table has the appropriate look up values ffcb2fc86eb7eb Keerthy 2022-05-17 511 * Free up the ref_table ffcb2fc86eb7eb Keerthy 2022-05-17 512 */ ffcb2fc86eb7eb Keerthy 2022-05-17 513 kfree(ref_table); ffcb2fc86eb7eb Keerthy 2022-05-17 514 ffcb2fc86eb7eb Keerthy 2022-05-17 515 return 0; ffcb2fc86eb7eb Keerthy 2022-05-17 516 ffcb2fc86eb7eb Keerthy 2022-05-17 517 err_alloc: ffcb2fc86eb7eb Keerthy 2022-05-17 518 pm_runtime_put_sync(&pdev->dev); ffcb2fc86eb7eb Keerthy 2022-05-17 519 pm_runtime_disable(&pdev->dev); ffcb2fc86eb7eb Keerthy 2022-05-17 520 ffcb2fc86eb7eb Keerthy 2022-05-17 @521 return ret; kfree(ref_table) is leaked. ffcb2fc86eb7eb Keerthy 2022-05-17 522 } -- 0-DAY CI Kernel Test Service https://01.org/lkp