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=-15.4 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 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 72032C47094 for ; Thu, 10 Jun 2021 09:41:06 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 3CB96613E3 for ; Thu, 10 Jun 2021 09:41:06 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3CB96613E3 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=microchip.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-ID:In-Reply-To: References:Message-ID:Date:Subject:To:From:Reply-To:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=6EkpsLNd6pZm4paw4SlaPLg2/oTxbLqQBkTkWtkp2UU=; b=2YAXf7mujEhiwu Z6jNWOwLK9TH6KqQYWYPESBaF3OvggtQlRTs/PIDQ+eWTdH5bjsE78NYF7cIAIA6E32nNq3iVB99m pdF7uAiKlX4hTdEbWWrUaK1Rx+eA9jaVshG2fdqw8L3pP0hjet/JODBOHfIx++Ahygpa+24NfaQQ3 adwHa2S4P5CS38hAaFdHXuqsHa9TbaTUaGA0et7b3FoLJD11NbFJ+LMQsFf383ozASqWvc6Ts4XYC xfyIrpkMki4/ZgV4Ld/GiGDmE+v1HHBel5Yi5usV0pIp7nW7Q0oC10CB/gS+MewSrUPsfuqO/CG5X ElYVQWsMnXG7kEUOHCCA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lrH7t-000Dz0-Nq; Thu, 10 Jun 2021 09:37:28 +0000 Received: from esa.microchip.iphmx.com ([68.232.153.233]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lrGbn-0004kl-9N for linux-arm-kernel@lists.infradead.org; Thu, 10 Jun 2021 09:04:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1623315854; x=1654851854; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=rM7oXFMFwhJs0VGqdkXiV+MGAT1Jc7Z/xbOwBOWHPTg=; b=LxAqXEduNjwu4uuDHOE3M5iiNSDl9NvzyoFC4Nl8h1q0gQZ4JMU/k8Aa ozsNhW7exaR3x6r2YhoGUt/dlUCYjDHD0uKG5aJUfMZ0RpLWD8JjEugGN luK9jJIhxOnqSafUoRuSLpKPOBDcRPVsdKNvodwGIdGdRVWNnVGvxqpa4 Gj+ga6mqOd2c6kyiOnvar6JPjfZ50TLKwI8agNgO185OyyhBlpbBNAKHK 8aaiFF9tKEUi0SeMHGcnT4BYJRC67hEyiQihb4juaq7KhrAMqDyNSNB2o 4H87IXB2p/azV8mkVYaZ3nMorBppYCwZAqjWYgtQ9tV32HWR0MpgP5gNO g==; IronPort-SDR: NkzmMN0NN6C1z39KpZoYVBB7l/6uJG9UrYuE6xky6VzyJdxicdoY5fe50Kh73mjh9uv5DXF8dq 8Tkik4peBi/OjV0PMtEVYlcgSFVoKyW3Ao6Q5hXOWZSbQ/UOkDBuXdwcyg5fjK62t8oTupO6Zs tXDsb1sO9aeC7N5PAmvWJmv3hpXCoHiH8lOFgE2ZWx5ZuG/YRStfTfQtE4evjymUtQNFF/U+5N 7HI3M1ceJi6qXLy8nXt3lM28gyLqzq4NNmv4S5SBMYPHijCyMELybw/otTfA88y8muFFjaT3Q/ 4KY= X-IronPort-AV: E=Sophos;i="5.83,263,1616482800"; d="scan'208";a="124776339" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa3.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 10 Jun 2021 02:04:13 -0700 Received: from chn-vm-ex02.mchp-main.com (10.10.85.144) by chn-vm-ex04.mchp-main.com (10.10.85.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Thu, 10 Jun 2021 02:04:12 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2 via Frontend Transport; Thu, 10 Jun 2021 02:04:11 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nwJ2bTU40cIyBDh88z1n+Cucnkdfhlv38SPL/IwM7itKl+RzsWtpXgCt2HdPzK19UFZtiZGMjDuLlt/Kr5DKhE5w4Qc1BqdIwpRVmqxIwHczurqV2Dd2YtC8HpeFgo9Rh7gLXb6BmTtjlU8buSIV1nbwP3ppBM2rlSF1zzOxO7LKI0HXCLCJNhPw4c9mqvMQMG0+pNaKntRCqZxWDZAELddirS2xGBALBPvYE80GWkBRePVM0PmUBsdZmyx3vtR2dRF7e9yNi9waV/GPISIfTDWG3BPQTz+OoGQg/Pn+bMuzuHFbQodAsWIRaLu3czeooOCy6xz8upLABV2HV1BJDw== 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=rM7oXFMFwhJs0VGqdkXiV+MGAT1Jc7Z/xbOwBOWHPTg=; b=DAYtou20oWFIiyNUaBNG7R8TDm2NmaYKz+nzbG5jCRioeMCR8oCgX3H8PnSk3QQWPKDF9JYtitlZ1RMqcQEmw70tJ3FbDCqVfna7zTJdo0TsJCORk3YrZNaCEdSxUoyzSo9MFgReSWzpAHV0ONGZ8vd9TneQzyqyAw33dZRJf37ETHqJlnbT/sGryXsylrL5ZjT/ZgrlTMuU5Nh8ORJnNmSpp3Mreyow445uwEiE/C5HUnYvkwRNIH3cNYlrjoBvFs8WoYDPUvD9lc7B7DZx94EQ7ruTGJCNnNIIT+IxPdtwT15VJ03+siKV9HVemp+tJ2zn+VGOToVgpsms72yzgQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rM7oXFMFwhJs0VGqdkXiV+MGAT1Jc7Z/xbOwBOWHPTg=; b=Yj3jMdP1scQYeFk3Q0hRwC2AwhyVQdv7oMYWLoYZleXg7zH6cgqY/CQ8h4qwjFPA/H8D/CxKMNrQQDhenyp6W1FuH6P09p9vWwadEoTunzPvns6dcVgAl2Gt74uFzMmuh5+w2toMl1NXgpaWYPGq/QoYiX9PiS1r62GNOFGOcdg= Received: from BN9PR11MB5514.namprd11.prod.outlook.com (2603:10b6:408:103::7) by BN7PR11MB2737.namprd11.prod.outlook.com (2603:10b6:406:b0::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4195.23; Thu, 10 Jun 2021 09:04:07 +0000 Received: from BN9PR11MB5514.namprd11.prod.outlook.com ([fe80::1de9:8da4:2f63:fc9d]) by BN9PR11MB5514.namprd11.prod.outlook.com ([fe80::1de9:8da4:2f63:fc9d%4]) with mapi id 15.20.4219.022; Thu, 10 Jun 2021 09:04:07 +0000 From: To: , Subject: Re: [PATCH 08/25] media: atmel: properly get pm_runtime Thread-Topic: [PATCH 08/25] media: atmel: properly get pm_runtime Thread-Index: AQHXQZL+MGs0ijyAgUSZwiGLPkSbCarUy5mAgDhgXQA= Date: Thu, 10 Jun 2021 09:04:07 +0000 Message-ID: References: <975645970144b6c8401ab9bd1243619978a868a9.1620207353.git.mchehab+huawei@kernel.org> <20210505130835.000006b7@Huawei.com> In-Reply-To: <20210505130835.000006b7@Huawei.com> Accept-Language: en-US, ro-RO Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 authentication-results: Huawei.com; dkim=none (message not signed) header.d=none;Huawei.com; dmarc=none action=none header.from=microchip.com; x-originating-ip: [188.25.124.15] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9579b883-fbf5-45f7-44d2-08d92beeb40b x-ms-traffictypediagnostic: BN7PR11MB2737: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2512; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: /b/dvO23WwgPOQhux8Jbmbat50jvY7LyyU1s9pAIS8/9EHnVu/ohPpirL8TxJJzXQpzBwk6FBS+Zu6QwF103/S0HG+x9yC5cj9YYhSUIAbl1yIxBE3Ho67ixDtpdqJp49QOdrecKsx261Eq/Nhggf9vlU9bhzv6ysRtCVih6WwfkR0CK5O7UFPL9fYwReTaCXnoJTvDOPG5n4lNLB8hZe7XQBKSVIG0hGjJp4w+rfmo5JCXqhQDdhtBE43DAHNKGDqIfLLoagdxtDs+8Hynx9rCH2KCldUzfN+Ci0RF0zp3W0XU0cU6JskIHjgc9taMqL6N3ps34foxjeztoNVQeLOCmxazJguinqUkym7rmMZIX7ocl1igkGHkkcLimfLBi953qzr9t/LoM5hneF9C6K4LFXXHpkunpVIflfRUbiSapZhofihIccyZU1nmT8fygRkjFA1FiM0PxFkXkS5Kjm250nNL1UtBIcJbRH/0B5+ugHEED99o2piL9WAVQCNsumOh+NeX0swRWCRxtn/X0O1v1zaghuUMcPI6IyPPwIL+Rm3N5TFUCPuQWMoXCqB2T+XB5rBVsxpoxPmu0frKMZSF6DLM+USYWqFiWUDx8C+bCRGYJMgC4hUKop5jNHZZ6RqsZq4hvrw6fN9rTUluvTuQXLmCUEVfJ2l/txNr9oJtG/uJ5MEoUKA3/sGQTniVT x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN9PR11MB5514.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(346002)(136003)(39860400002)(376002)(396003)(478600001)(8676002)(2906002)(71200400001)(110136005)(316002)(54906003)(107886003)(76116006)(8936002)(91956017)(186003)(31696002)(26005)(66446008)(2616005)(66946007)(53546011)(5660300002)(66556008)(6506007)(64756008)(66476007)(6486002)(86362001)(36756003)(6512007)(122000001)(31686004)(4326008)(83380400001)(38100700002)(43740500002)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UXVNUGVwb3dBRXFTWTM3S0k2MjNRSUtzT2xxREdoOURmcm91WUVoTXJybG05?= =?utf-8?B?d3plcThrbUx0YjduWWxadndZSEMxODJ3YllzT2U0cGhGbUZCZFQ1ejhsTmU4?= =?utf-8?B?K05UbmVmcGQ4NHdIMVBwcml1NnRjMmxqdnI0Wnh2aXlqcXltbHh4OUZ1b3Jq?= =?utf-8?B?TkNPNWhYeUU2Z0gwSDlINEtRSkd4V3JueUZUVlkxbWZ3YmhiMXlRYktGYVV3?= =?utf-8?B?VGc3RG8yUnI5ZWNwVVFFeE4vMlBPTi9wT0xrbTJhSDB0eTlFeGhjczd4RWxp?= =?utf-8?B?V25vRHB3MGw1S0Fja2JWa0M3TWUyVnpMS2NpMHVGRWZVdDBOMU90cTV6M25H?= =?utf-8?B?OW5TenJTelduM3B3VDVwYk5hUFlQRU91ZHd4U2VNVUttd052Q2hiN3NlYVV4?= =?utf-8?B?UUhrRGxHRGthcFBXNTBNbjF1elZCNkE1QjlFQlBtMThwT05GZmFyRE90STcy?= =?utf-8?B?RlFCNFQybzIwQVlBeDh5YWVqeVlScTFQTkdZVWRQaExhWWpHTDFiWjE5bTlz?= =?utf-8?B?czVZTzhkU3FvZVNCYVE0SjJkNnVxcFNMQXpGcEJQM0R0T1ppb0RuRmJzam5H?= =?utf-8?B?d29YYm5RUTdqSTNyWnJlcmN3ek9obUs0YjBJeUd5RjFLV3dTOTV3WDAreUFS?= =?utf-8?B?aVpXY2pmS3c3RjJLeXdBM1N5UUFzblBmVXBuWG5NUEpWbS9tK21kS1ArMXpX?= =?utf-8?B?dHVvVktWWDE2VHhKeVplYm1TeEVwbDdnMVBtNytCVHYxNDVrNnRvSlRXTDdh?= =?utf-8?B?bE9mS0NHSHY4OXZTUURPcDFrV0drRThZTHZXaG9lYWg2SW5BdjdMOXBmZVN4?= =?utf-8?B?TXpxVnpWUVhjbEpDSmtZMjJLUjNkSkJQd0k5aTFJNXVvOWVDQ2FzWHh2amww?= =?utf-8?B?MWpLRzlVQkJWb241b2g2NUxSVVc2c2pkeFdHdnl3SUJZSExWZVRZNEFVQ0xJ?= =?utf-8?B?U1B2UktPL1pZaGp6MWpyZ0FIYXlXb1FHUXoxc3p6aGNUR1I5YkcrMm8rUkx1?= =?utf-8?B?NXdTRGNQVGg3TTFSd1h3Qk5VVGpZY1RQM3dlb3RMaEpNQzMxTVdJMS85RlBT?= =?utf-8?B?WjB2MzJxVjZReXdjak1SbHRCbEgwcXN4VnVMZVFQRGtJRnB0SDdzTXNWaUs5?= =?utf-8?B?a1huNnN6ZXJ0ZmVDWnlLa2hTTm9XWDM2YUE4ZUFQVENRc1lrcWJpMkZwWVR2?= =?utf-8?B?TFJzM3Fjc2tSbTNMcThhZm53cUlDRWdkYlZwc0xnT2QweWgzTVV0dXZxeG0r?= =?utf-8?B?anlIOUFPMGN6bk8vOVJwTEYxSnJDaHdHOHA0N3EzWG56SjUxbDFqc25HS1Q2?= =?utf-8?B?Yno5VFcrVzNROXV0aENUOVhJVEdBc2FrTjRIK1RhRXBLYnRla1RFM2ROcEVw?= =?utf-8?B?Y0NXV1dvYVRnM00xOGM0M1hzR3grdGlaUFpiWm9iTWwzUEdwWUt0dFVKRkZ1?= =?utf-8?B?cGhzUnJETVdNbUFqSzdUS1Bjc3o1OTJwWCsvREpQR0VXNlZ0WjBrcDN1UzBk?= =?utf-8?B?SFpiUzZCc25VUnRDdzBCTFdXV1dzUFZFMVkzNkVNZ1FESEx3Qm84ODhOQ09S?= =?utf-8?B?RXJTYkxNUFlTYmlkMnhHWVJrOVpxUkZwMDF5elhNRjlpQUVaV1VtWGs0ZEdI?= =?utf-8?B?L2VKQitSSHFsSWRINkNjM2UzSjJUY21xcE5lUGFnVkw1a29rTlFMN1FWdUl4?= =?utf-8?B?VjVxNG96YUpjYTZnelJUSG5sb0xwZ1BKc1B1Y1BraTFDS0ZXNHp3eWdXajU5?= =?utf-8?Q?yvbrDMSNyHCzlp7Bes=3D?= Content-ID: MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5514.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9579b883-fbf5-45f7-44d2-08d92beeb40b X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Jun 2021 09:04:07.1249 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: OisXy+pu2h8poUiHk3mNbTaXzFuuxBjf1s6gUrGYp6Tl24KfqftKAqVzfEu9LFno5GYaH65E9jG9M4VQU8f8C0+AyePuAIrDLYSlz+H/p+c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR11MB2737 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210610_020415_478801_C01B1885 X-CRM114-Status: GOOD ( 30.19 ) 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: , Cc: alexandre.belloni@bootlin.com, linux-kernel@vger.kernel.org, linuxarm@huawei.com, Ludovic.Desroches@microchip.com, mauro.chehab@huawei.com, mchehab@kernel.org, Claudiu.Beznea@microchip.com, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 5/5/21 3:08 PM, Jonathan Cameron wrote: > On Wed, 5 May 2021 11:41:58 +0200 > Mauro Carvalho Chehab wrote: > >> There are several issues in the way the atmel driver handles >> pm_runtime_get_sync(): >> >> - it doesn't check return codes; >> - it doesn't properly decrement the usage_count on all places; >> - it starts streaming even if pm_runtime_get_sync() fails. >> - while it tries to get pm_runtime at the clock enable logic, >> it doesn't check if the operation was suceeded. >> >> Replace all occurrences of it to use the new kAPI: >> pm_runtime_resume_and_get(), which ensures that, if the >> return code is not negative, the usage_count was incremented. >> >> With that, add additional checks when this is called, in order >> to ensure that errors will be properly addressed. >> >> Signed-off-by: Mauro Carvalho Chehab > > Hi Mauro, I don't know media enough to know what is the right answer > but in some of this series, a failure in > pm_runtime_resume_and_get() leads to a bunch of buffer cleanup > (patch 22 being an example) and in others return happens without doing > that cleanup. > > It might be both are safe, or I'm missing something else, but I'm > certainly not confident enough to give any tags on this one as a result > of that mismatch. > >> --- >> drivers/media/platform/atmel/atmel-isc-base.c | 30 ++++++++++++++----- >> drivers/media/platform/atmel/atmel-isi.c | 19 +++++++++--- >> 2 files changed, 38 insertions(+), 11 deletions(-) >> >> diff --git a/drivers/media/platform/atmel/atmel-isc-base.c b/drivers/media/platform/atmel/atmel-isc-base.c >> index fe3ec8d0eaee..ce8e1351fa53 100644 >> --- a/drivers/media/platform/atmel/atmel-isc-base.c >> +++ b/drivers/media/platform/atmel/atmel-isc-base.c >> @@ -294,9 +294,13 @@ static int isc_wait_clk_stable(struct clk_hw *hw) >> static int isc_clk_prepare(struct clk_hw *hw) >> { >> struct isc_clk *isc_clk = to_isc_clk(hw); >> + int ret; >> >> - if (isc_clk->id == ISC_ISPCK) >> - pm_runtime_get_sync(isc_clk->dev); >> + if (isc_clk->id == ISC_ISPCK) { >> + ret = pm_runtime_resume_and_get(isc_clk->dev); >> + if (ret < 0) >> + return ret; >> + } Hi Mauro, With this patch, the ISC is broken on latest media tree. It looks like pm_runtime_resume_and_get for the ISC_ISPCK clock returns -ENOACCESS and thus, the probe of the driver fails: atmel-sama5d2-isc f0008000.isc: failed to enable ispck: -13 atmel-sama5d2-isc: probe of f0008000.isc failed with error -13 Could you point out how I could fix this ? Maybe the isc_clk->dev is not properly handled/initialized in some other part of the code ? Thanks ! Eugen >> >> return isc_wait_clk_stable(hw); >> } >> @@ -353,9 +357,13 @@ static int isc_clk_is_enabled(struct clk_hw *hw) >> { >> struct isc_clk *isc_clk = to_isc_clk(hw); >> u32 status; >> + int ret; >> >> - if (isc_clk->id == ISC_ISPCK) >> - pm_runtime_get_sync(isc_clk->dev); >> + if (isc_clk->id == ISC_ISPCK) { >> + ret = pm_runtime_resume_and_get(isc_clk->dev); >> + if (ret < 0) >> + return 0; >> + } >> >> regmap_read(isc_clk->regmap, ISC_CLKSR, &status); >> >> @@ -807,7 +815,12 @@ static int isc_start_streaming(struct vb2_queue *vq, unsigned int count) >> goto err_start_stream; >> } >> >> - pm_runtime_get_sync(isc->dev); >> + ret = pm_runtime_resume_and_get(isc->dev); >> + if (ret < 0) { >> + v4l2_err(&isc->v4l2_dev, "RPM resume failed in subdev %d\n", >> + ret); >> + goto err_pm_get; >> + } >> >> ret = isc_configure(isc); >> if (unlikely(ret)) >> @@ -838,7 +851,7 @@ static int isc_start_streaming(struct vb2_queue *vq, unsigned int count) >> >> err_configure: >> pm_runtime_put_sync(isc->dev); >> - >> +err_pm_get: >> v4l2_subdev_call(isc->current_subdev->sd, video, s_stream, 0); >> >> err_start_stream: >> @@ -1809,6 +1822,7 @@ static void isc_awb_work(struct work_struct *w) >> u32 baysel; >> unsigned long flags; >> u32 min, max; >> + int ret; >> >> /* streaming is not active anymore */ >> if (isc->stop) >> @@ -1831,7 +1845,9 @@ static void isc_awb_work(struct work_struct *w) >> ctrls->hist_id = hist_id; >> baysel = isc->config.sd_format->cfa_baycfg << ISC_HIS_CFG_BAYSEL_SHIFT; >> >> - pm_runtime_get_sync(isc->dev); >> + ret = pm_runtime_resume_and_get(isc->dev); >> + if (ret < 0) >> + return; >> >> /* >> * only update if we have all the required histograms and controls >> diff --git a/drivers/media/platform/atmel/atmel-isi.c b/drivers/media/platform/atmel/atmel-isi.c >> index e392b3efe363..5b1dd358f2e6 100644 >> --- a/drivers/media/platform/atmel/atmel-isi.c >> +++ b/drivers/media/platform/atmel/atmel-isi.c >> @@ -422,7 +422,9 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count) >> struct frame_buffer *buf, *node; >> int ret; >> >> - pm_runtime_get_sync(isi->dev); >> + ret = pm_runtime_resume_and_get(isi->dev); >> + if (ret < 0) >> + return ret; > This is the case I'm referring to above. > >> >> /* Enable stream on the sub device */ >> ret = v4l2_subdev_call(isi->entity.subdev, video, s_stream, 1); >> @@ -782,9 +784,10 @@ static int isi_enum_frameintervals(struct file *file, void *fh, >> return 0; >> } >> >> -static void isi_camera_set_bus_param(struct atmel_isi *isi) >> +static int isi_camera_set_bus_param(struct atmel_isi *isi) >> { >> u32 cfg1 = 0; >> + int ret; >> >> /* set bus param for ISI */ >> if (isi->pdata.hsync_act_low) >> @@ -801,12 +804,16 @@ static void isi_camera_set_bus_param(struct atmel_isi *isi) >> cfg1 |= ISI_CFG1_THMASK_BEATS_16; >> >> /* Enable PM and peripheral clock before operate isi registers */ >> - pm_runtime_get_sync(isi->dev); >> + ret = pm_runtime_resume_and_get(isi->dev); >> + if (ret < 0) >> + return ret; >> >> isi_writel(isi, ISI_CTRL, ISI_CTRL_DIS); >> isi_writel(isi, ISI_CFG1, cfg1); >> >> pm_runtime_put(isi->dev); >> + >> + return 0; >> } >> >> /* -----------------------------------------------------------------------*/ >> @@ -1085,7 +1092,11 @@ static int isi_graph_notify_complete(struct v4l2_async_notifier *notifier) >> dev_err(isi->dev, "No supported mediabus format found\n"); >> return ret; >> } >> - isi_camera_set_bus_param(isi); >> + ret = isi_camera_set_bus_param(isi); >> + if (ret) { >> + dev_err(isi->dev, "Can't wake up device\n"); >> + return ret; >> + } >> >> ret = isi_set_default_fmt(isi); >> if (ret) { > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel