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 75544CCF9E3 for ; Fri, 7 Nov 2025 20:45:11 +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:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=P3YW1+agbB9Z7ADXl0RJ9xibS1sjbATtsscLVMQ5EmU=; b=MNREk7c3HdlqG99XkQOGlsVGDZ jlPMNINa9e2c5HwHWp2G05v70xREWv+9Eu30E0xBffDuvOlgkaPIFHYwMCICP2J289Pn8bCNOpVEL q9GmIOeqEIdHYM+uu6Rinb7R9W8m1C8dqIhD0Emnq7UiDBeWXEo9QNO2Gv8vhc0uwB+MnMqEsuuhe +1sUWJAt39EbrVX2o2UIC7LljtF9CtXs0kP5S+w0FULT8FQZp0x+IN/T5pMAE926+mtJGqK5lYW4+ GkDi54ophTkfY7uI1me8n6/MCtSuuzsRWMkm/0bbAb/ZcSTNJGXu83IvsP4B1aOSLLRLa9sWkH/MC IS77U42w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vHTKT-0000000101L-1Cp8; Fri, 07 Nov 2025 20:45:05 +0000 Received: from mail-francesouthazlp170110003.outbound.protection.outlook.com ([2a01:111:f403:c207::3] helo=MRWPR03CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vHTKQ-00000000zx9-1ih2 for linux-arm-kernel@lists.infradead.org; Fri, 07 Nov 2025 20:45:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LYOxeXaT5DAUQ6YO9jSSObgZMsNldnzqlfx5RuPo2XTcX1jmHVpeOYtNVyk6jmBmBhHNkSQbcRt6FdtXg+dh3r94ANzkcsgvwWCJOCOkGZJcY4SNv4uV0EzjprtrSvk96X89zoXlrgaN18sPICugLwwDTaDTPIVDxWpiB2W+lCy3poNxf9FeXN+7AIjV6NZgbOJmQumvj3JPgEhZ/wstazKNYwALyRF/DLTJtsPU/F3a9X9x1odQxR34O/6hbFx4hA9G4jtp2JRxXB2TQe86WVujrhAwL9/6JvZLSgYZ3Xm5JxZuLRud36wkIPMLaTw2GA7gN7OPUtWvNW8V9YW8/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=P3YW1+agbB9Z7ADXl0RJ9xibS1sjbATtsscLVMQ5EmU=; b=ONx68/kAhhV2OJEGIlV0WiFc5JIX9v/8DPnJ0DE2+OD2WRcx/g/mqJ9PUKNnKUefxGS7hZKoEQ/VKYJ4Y75/S3qMiW/xlhsmlMjFoLWUOuMLHn2ud+1C4TGUkGxOFgRkGoleOckSLqEeOVSA7gyRrPsjh8Vlv/2nyz6pNU8q/d9JXgrCmd3E2EyorxTvTppie11lRExy908TC/lQc10K1GfXAe7yELB1s59jEe1QZriVUCIVvFN46mk+xeMpRRcL9LEJnXvsKz+7nKwqsYxpgVfLAPzyh+gZ2RporxouRRmcwZE4ped/bAS3rZxOongU3T2rhUkDGk/wk5v9jCzRQg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=P3YW1+agbB9Z7ADXl0RJ9xibS1sjbATtsscLVMQ5EmU=; b=ANxGoV1mosJo9LR2/6oXSMCGxRM6drNac2yO0fGHLxFozk0HHpe12cHzJBhnO3S0baW1IoWajhx42S9ooOlX3K6DnPqVbVoOi3hlHgyuQDJoR9fPcPKHuxHaRsTF7u0bLODwBd+gdgMWFD/tk8xJW7LKWeibOJMnUCkFMQfY0eHoEOZfXPd1/M7XqIaQ0YiEfWk4JUXNjvO4uL+HAtS+caN8OZDGgtXHAlVaOdxil4kE/4VYUvER/FAz02bl96kq87MmJVU28s9Bd5m13yRs7fa0d92rLJxSWp6dZkj1fgNj7TwcnC+Fcp61vqnSOx97STlUmyNyMbysPZlwWjLRIQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by GV2PR04MB12021.eurprd04.prod.outlook.com (2603:10a6:150:301::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Fri, 7 Nov 2025 20:45:00 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::55ef:fa41:b021:b5dd]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::55ef:fa41:b021:b5dd%4]) with mapi id 15.20.9298.012; Fri, 7 Nov 2025 20:45:00 +0000 From: Frank Li Date: Fri, 07 Nov 2025 15:44:34 -0500 Subject: [PATCH 3/6] media: staging: media: imx6-mipi-csi2: use devm_clk_bulk_get_all() to fetch clocks Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20251107-stage-csi2-cleanup-v1-3-5d42535243ac@nxp.com> References: <20251107-stage-csi2-cleanup-v1-0-5d42535243ac@nxp.com> In-Reply-To: <20251107-stage-csi2-cleanup-v1-0-5d42535243ac@nxp.com> To: Steve Longerbeam , Philipp Zabel , Mauro Carvalho Chehab , Greg Kroah-Hartman , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: imx@lists.linux.dev, linux-media@vger.kernel.org, linux-staging@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1762548279; l=3997; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=R7ovjweknMT1smYhNfW+CkGH+ciRJsLBhqOQFmBU/7A=; b=dlhqvFkSFRyho+L3huwEMNvdPuL7wWdlrpWjRFQUuPmhxWCcctAG61wv6Sr4IrnW7UY2h7vjX uhHMnKLwvnlAW+IHA7Lg9wIsbvFILRdYkQ7KtlZ43n6N/4TvjKIai6p X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0332.namprd03.prod.outlook.com (2603:10b6:a03:39c::7) To PAXSPRMB0053.eurprd04.prod.outlook.com (2603:10a6:102:23f::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB9PR04MB9626:EE_|GV2PR04MB12021:EE_ X-MS-Office365-Filtering-Correlation-Id: e9a1e571-bbe2-44a4-e19c-08de1e3e84e2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|19092799006|52116014|7416014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?N0pod3hsSGdnQjJqOGdTbHNhMGk0ZUFmclpXUC9GSHpZWkZqQmtDRzNpa1JC?= =?utf-8?B?NGI1RzdrL2NoR0ZuU3R0UHFRSE9IZU9xaHBidkhOTWVQbjg5aEV4SUZaSmh3?= =?utf-8?B?dlUxR0dRcWVKcGo4b0hSbnpTSjBCWitRWWJ3cTgrWWIxRnVoeDNwcGQxbGp4?= =?utf-8?B?RWRhNHdyQ0VqOE9ON25vU2NZT0g4Uk1HNXRSNzc0VmpOV24vbWZGSU0vTlpv?= =?utf-8?B?Z2VBTm5rTEZRSHBjNjh3WVI4YjJacjZ5WUprZE9GZnhvamFBZys2VHlYNTBZ?= =?utf-8?B?N1RGYnFuZGJ3aEozcW5zcHlVeVErcXIwbUNCSmhWY3kvTytxaVEwWk05d1hT?= =?utf-8?B?ZVNQU2JNb2VvVGNMQy96T2NyZ25XODNnVVZQbXhTQjNXK2p4K21OWmlQTXZ5?= =?utf-8?B?U2pCVWJ0Qm04Z2JkM1F0dmFKRnB3OTg1VFduV3NuaDZjTHJtbDdlT0p2VXV1?= =?utf-8?B?UUFvZU1LZncxTGo3Lyt6emxaandEM0JXMndYVVYvcTB5RDdoUW9kWWt3YVJs?= =?utf-8?B?UU5jL0ZGNzV5Y29TR2ZmVGozZXlSNVZDZkZRT2h1Q2tYcHNDbHM0UEpFMXpk?= =?utf-8?B?TmlLc2NrVWxuYktEYWVHTlQzajc0N29mS0lYSjJiSkdJTFhJT1RrQURxemdr?= =?utf-8?B?R0xXYWFIc29peTBIWGJZWHJ6UFlWaytjajJtcHdKeTNmc0JXRlRMc3V2Risy?= =?utf-8?B?U1AybGMzb3ZnaC9EVTV5ejZqaXdaaThiOEN4L2xLdldUVlM0d3Bodm00V01Z?= =?utf-8?B?dDdlNi9XMlUvd25weTQ2R01zeWxjaExmK0FmUEg0dGVQMzYrV0FsWnRtLzVQ?= =?utf-8?B?SHd1MFMvV3dwLzQ4UDlTSmN1VnhWOENKeCtoL3Z0RlhpeTd4TFVqNmQ5VHlw?= =?utf-8?B?RkloOWlmdlYxTis5eFdWN2taWUR0WWJUUktTYkdya2JtUytrYnBBNTduaGpo?= =?utf-8?B?NkpaL0xOSWV6K3F1NlR5c2NWRkQ3aFRRTnZBZUFMZ20yMDZNTTdzaU9pd1I2?= =?utf-8?B?cTBBR3I3bTBVM1BTTUtvVkZreHZvM25LWldpMEh6b2I1aUwydGh5aEJiVkJm?= =?utf-8?B?anJxb1FlTkd2SGlnU2c4bW01OHJjM3hHdTZZaklrVjlhdGFaaTNabEUrdjBE?= =?utf-8?B?Zlc3bUZpeEExcHVHYjkvOCs5T1BtakRMOHNwLzQzblQ0VElkUG1GYlgxc2Nr?= =?utf-8?B?RDJqaHRVZHQ1OWEwTjNyU0F2QU52K0NTbWpwMXJ4N3dEcit6SUI5NTBkTXNU?= =?utf-8?B?U2MwQnh1YUkweDVhZjhQWGVkWG5qZnhacWQ3dGZ2YjRjSDBwWWdCMjFKV0o0?= =?utf-8?B?dytTUTR2RnNMdWIwS0MyOXU2RHFxcEtmS1dnSG5xbGp5ZTRXak5wRkUvaG9w?= =?utf-8?B?Uy9nb3ZmcjJlVVFYelRMUDBGbkpJMkJZY0hab2NGelltbHk4UWhXTzFNYmpT?= =?utf-8?B?SXcyNE50c1RpVGhOZWJwSUZHVHUzLzRrcUpxdzZ0VXd0OFJQZzU3MEhDaGtJ?= =?utf-8?B?VytaaWJMRStYWnE5VDVFQ2RKcHZkcFViWEJuWGl1TWxHRWh2OU1pbFJkTGtm?= =?utf-8?B?T2VmS05qdEt3T2YyK0p2VHNGWEhTdk4zbGM0ejdia21FS0h0YVE2TGgwaTM5?= =?utf-8?B?UDBGRVhkUHpZY2Rmd1poV3o4TGlWQ09IdDFsL2dsL2JCY0ZtNzhpc1dWOVBR?= =?utf-8?B?ZncxeStyUXRhZVUwSlNFT2JDa2I3QU82NWlxeXdYMFdYVkIvTTB6amhpd3Q3?= =?utf-8?B?bkRsTC85Wm1mYXM5aXVEWlBVODJWUXNMQWZWYnY5MHdId25sczNVTkNCR1Rs?= =?utf-8?B?VUVDd3VoUjl3b2dLdEgyQXZTTU5kSVpLSHhzKzNELzVNa3U1OXRlL3R6Tk96?= =?utf-8?B?TXpsRjh5VFhWdHZ0SGFrR2xpNzJhems2OGlKb3UvWi8rNGdqNmpweU1KdS9E?= =?utf-8?B?NUVKeURXTVVuOXlnZ29PQkZKcFN5ai9wN0FTYUpkSFkrRFluUjRCL2JiUVdF?= =?utf-8?B?bVpYc2JCd2ptY2RRN3UyQU1rRXJ5ZGE5SUdBMXk5Sms2cnd6NkcwSWd6ZWlR?= =?utf-8?Q?UpXErC?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(19092799006)(52116014)(7416014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?M1lnR0NFRjdFWXgvQ295aVFQaXkrKytYNlJwZ2FDMnFyNG5oci9ncmdNdXRF?= =?utf-8?B?MzRSZVcwWlhOd1pJQi8reFZIeTUwL01iaDQzWHAwbmpGbXBMajNKY09XTlNq?= =?utf-8?B?b1k0dnorS20reE42dTBBeHZnMUEwSlVzZUg3dVRMVWpzc1ovSE1MSWYvYXRN?= =?utf-8?B?RVdKSGFaSExMdC8zNVFlMFB3ZEhEMlJTZnRSS0FsMTI5YlJiVVlzMnhndU02?= =?utf-8?B?VnVzTzRRMWExbElHNGNFbG4zeDFHb0F4K3ZadVdycm05K2N1ajh4cHVxcm85?= =?utf-8?B?dmRVMTRBYk80ai9ncVdwRUpqeXEyaTViTjNJcW9YamhEaFVXQzlOcXJGc0s0?= =?utf-8?B?amJMaS9uTVdscjBYQTFpUzRnN2h2Y1FJWU1WTGxvQzZIY2Q0Mm1zbnVnZXBT?= =?utf-8?B?QmpnNkNtaVFPS3dkNmFVMy9kRVpKUlo0RUcxbTRTOUtqTEoxSFMzU2ExeDBH?= =?utf-8?B?NmVpcXFseDhaVFFzS29nMTVnWjQ5Wk1JLzNzUkNseVdYdWNWN1NjU3lTdW1M?= =?utf-8?B?bU5UYmNJSlJrRk4xRVdjMnkwWHlnU2U1Sjhmdy92YU9BUGpNckpKdnFsbW9l?= =?utf-8?B?VFZScFJTc29zN0VOdGV3RVJUUURENnlQVExjR01qWk54TlNFQmlKWnRhV1pu?= =?utf-8?B?WS9zc1R6b2VIcGQrQWtsclBTSTRRb1V4dGx4UU1UM1Z2V2ZFY2RRMzk3blZN?= =?utf-8?B?aGZhL1FBd1htYUpyV0NORzhJS2QvOHRPaXFSV3NwNlRtYmJ2YWl0NXdPSmJH?= =?utf-8?B?MlJab1doT2U0NmZZc2RzV2RSa3NjUitUUklyTS83Rng0b3paVEdoYU5YRUFs?= =?utf-8?B?Z3RtSjMwNEZGSTl2d0RodW5VL2Zld2xWSHhtYk1EWWl2b0lyUy9QMnZIbVBt?= =?utf-8?B?TUQyZDhzNmRmODFPZTNhT1VOSXdDN2hQNTNNZVJ1dldWOU1TdlJ2OVV4V0Va?= =?utf-8?B?SFJFYkhaVnErc0NjdWlEaUhGakYrZ2ZrWW5ydkMrNHpCczNRVlk3VWlQTFlx?= =?utf-8?B?eHZ4aUU1ZisxaDJ2OVk0R2JHc05laVNuSHJycXlEN0NPaTJxaG5MNVFjQUtx?= =?utf-8?B?M1pPQytlR050TytmVFc1VlJuVFQ4emJvaUdzRlRKUDEvZkdHYUxGYjNPNVlx?= =?utf-8?B?eDV4MDRqanJCRVNIWlVCTmZOKzBRbHNtNHNmM25xQ05laGZFTWdqSDRFdlNS?= =?utf-8?B?bEk1d1l6bVNTZ3piV1JQMUkwbTlLWjRENnVXKzZKYnFDYXh3V3ZnNFh4bCtZ?= =?utf-8?B?RitNbzc0SDBKU3QwNTJxZCtZc1lybklEOXlGUUNjcG9tMWYvc3pjMnZiMlEx?= =?utf-8?B?VktSSlJZWDBYWGF4MkJYZjgxWnJOeVhkcktmTHhaeEh5MEs0djhjNTFxNlAr?= =?utf-8?B?Yk1HT0pYVDFQNm1hb2RUY0h3blA5UU9mMWg3UEdwa1NGWE5ZSGNDZ0hPeFlH?= =?utf-8?B?SUxycnZKVGRjV2NRN1hJK0prNjg4TnZ5dHBYR1NYS2JJWVdyZ2gvaUhRL3JK?= =?utf-8?B?N0FUZjhqSFllVUF1YUhvV3pab1VmOE5FelRCWWw2d1EwaFpJSExIUTlITEkw?= =?utf-8?B?Mi96SThLNHJyQVpmZ0lBUUV4NkNJMkhFWFVXOEVNUzRhaUZ2cWJCR0xJNTVK?= =?utf-8?B?bFhmbjBGZW5xMTdvenROL1M5Q0xUWlgrTUMvbjhJTGdwaTVlL3g1ZVVza3JC?= =?utf-8?B?QlhZYjFGaG1ndkxkZWxRTUl2S1BWV3F2UVIrUjBVaVBqT2NPbzJQSmlpZ1hI?= =?utf-8?B?NHlTTDUvQUdSME5lMkt3a1dhOVdFcUxTaDY0c3NwOGd2U0pRc2haa05hNEpD?= =?utf-8?B?d3JLYkNBbG9iNE00R0Z1cUQrMjJIWkdxeGlRVzJUTHFvcDRycDE3dExycUNV?= =?utf-8?B?dTV6eDFreTZxWlFWQ3JvVkZBZlV6RlZHMU0xdlZPUXp0K1R5L001UzVkMzNP?= =?utf-8?B?aUNPZE9kRys4VDhweEhGS2UrRzJyckwrYUNMdjZYRWNFdmQ5YWR6TXhFUjRr?= =?utf-8?B?MHoxTk9nS2hrWFY0V2ZTdXkrcy9UUUhidVh2L0pQYmpzcmhLNWVkZmx0cDBP?= =?utf-8?B?OXBjc0w5ZysvZmFDUmQxd200ek5KTTVMWDlpZEpvQXE0OVhRNWQyeVVHMUVz?= =?utf-8?Q?v6IU=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e9a1e571-bbe2-44a4-e19c-08de1e3e84e2 X-MS-Exchange-CrossTenant-AuthSource: PAXSPRMB0053.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2025 20:45:00.5667 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: cYoF0gLUu26BEk6bYELGA/HnxshWgeRZAJXNtHELWyGY72OO8IeNwUQvCeEQOJshdOBYpMNOGMTqQjrRZ5nksA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR04MB12021 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251107_124502_457075_7E5DED78 X-CRM114-Status: GOOD ( 15.29 ) 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 Use devm_clk_bulk_get_all_enabled() helper to simplify clock handling. Defer all clock prepare and enable to csi2_start(), which previous only enable pix clock here. Do that safely because there are not register access before csi2_start(). Signed-off-by: Frank Li --- drivers/staging/media/imx/imx6-mipi-csi2.c | 52 ++++++------------------------ 1 file changed, 9 insertions(+), 43 deletions(-) diff --git a/drivers/staging/media/imx/imx6-mipi-csi2.c b/drivers/staging/media/imx/imx6-mipi-csi2.c index eba9a650030f5e380aa900b94728ad375171c6a5..32ddcef7ec8535a44e121754bb621c0d2e226369 100644 --- a/drivers/staging/media/imx/imx6-mipi-csi2.c +++ b/drivers/staging/media/imx/imx6-mipi-csi2.c @@ -39,11 +39,11 @@ struct csi2_dev { struct v4l2_subdev sd; struct v4l2_async_notifier notifier; struct media_pad pad[CSI2_NUM_PADS]; - struct clk *dphy_clk; - struct clk *pllref_clk; - struct clk *pix_clk; /* what is this? */ void __iomem *base; + struct clk_bulk_data *clks; + int num_clks; + struct v4l2_subdev *remote; unsigned int remote_pad; unsigned short data_lanes; @@ -343,7 +343,7 @@ static int csi2_start(struct csi2_dev *csi2) unsigned int lanes; int ret; - ret = clk_prepare_enable(csi2->pix_clk); + ret = clk_bulk_prepare_enable(csi2->num_clks, csi2->clks); if (ret) return ret; @@ -390,7 +390,7 @@ static int csi2_start(struct csi2_dev *csi2) err_assert_reset: csi2_enable(csi2, false); err_disable_clk: - clk_disable_unprepare(csi2->pix_clk); + clk_bulk_disable_unprepare(csi2->num_clks, csi2->clks); return ret; } @@ -401,7 +401,7 @@ static void csi2_stop(struct csi2_dev *csi2) v4l2_subdev_call(csi2->src_sd, video, post_streamoff); csi2_enable(csi2, false); - clk_disable_unprepare(csi2->pix_clk); + clk_bulk_disable_unprepare(csi2->num_clks, csi2->clks); } /* @@ -761,24 +761,6 @@ static int csi2_probe(struct platform_device *pdev) if (ret) return ret; - csi2->pllref_clk = devm_clk_get(&pdev->dev, "ref"); - if (IS_ERR(csi2->pllref_clk)) { - v4l2_err(&csi2->sd, "failed to get pll reference clock\n"); - return PTR_ERR(csi2->pllref_clk); - } - - csi2->dphy_clk = devm_clk_get(&pdev->dev, "dphy"); - if (IS_ERR(csi2->dphy_clk)) { - v4l2_err(&csi2->sd, "failed to get dphy clock\n"); - return PTR_ERR(csi2->dphy_clk); - } - - csi2->pix_clk = devm_clk_get(&pdev->dev, "pix"); - if (IS_ERR(csi2->pix_clk)) { - v4l2_err(&csi2->sd, "failed to get pixel clock\n"); - return PTR_ERR(csi2->pix_clk); - } - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) { v4l2_err(&csi2->sd, "failed to get platform resources\n"); @@ -791,19 +773,9 @@ static int csi2_probe(struct platform_device *pdev) mutex_init(&csi2->lock); - ret = clk_prepare_enable(csi2->pllref_clk); - if (ret) { - v4l2_err(&csi2->sd, "failed to enable pllref_clk\n"); - goto rmmutex; - } - - ret = clk_prepare_enable(csi2->dphy_clk); - if (ret) { - v4l2_err(&csi2->sd, "failed to enable dphy_clk\n"); - goto pllref_off; - } - - platform_set_drvdata(pdev, &csi2->sd); + csi2->num_clks = devm_clk_bulk_get_all(&pdev->dev, &csi2->clks); + if (csi2->num_clks < 0) + return dev_err_probe(&pdev->dev, csi2->num_clks, "Failed to get clocks\n"); ret = csi2_async_register(csi2); if (ret) @@ -812,10 +784,6 @@ static int csi2_probe(struct platform_device *pdev) return 0; clean_notifier: - clk_disable_unprepare(csi2->dphy_clk); -pllref_off: - clk_disable_unprepare(csi2->pllref_clk); -rmmutex: mutex_destroy(&csi2->lock); return ret; } @@ -826,8 +794,6 @@ static void csi2_remove(struct platform_device *pdev) struct csi2_dev *csi2 = sd_to_dev(sd); v4l2_async_unregister_subdev(sd); - clk_disable_unprepare(csi2->dphy_clk); - clk_disable_unprepare(csi2->pllref_clk); mutex_destroy(&csi2->lock); media_entity_cleanup(&sd->entity); } -- 2.34.1