Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp521834yba; Mon, 1 Apr 2019 11:00:16 -0700 (PDT) X-Google-Smtp-Source: APXvYqxgmTA4jb4mim9uSOwtPhk948WdP0HncTxqLr1T6ChwERDmmvD/nIJQ38HySYj++g+Zcs73 X-Received: by 2002:a63:475e:: with SMTP id w30mr35640297pgk.308.1554141616387; Mon, 01 Apr 2019 11:00:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554141616; cv=none; d=google.com; s=arc-20160816; b=iiS2sr6gOyLhxfjQJh9UZSQPdwX7sl3OFPrKBJ1933D7f+AlwMyFJMn1J8vcZv2y4z yJR+5hmQF9iFETinAg+0Q02xQPmI6TnBxCdXZJZYJ9ZVITtiv5mYilROZuRc7xh90WoS SCzbbjgu/2hb29UB5/VDCrof+x/wo4LsjrEViht15zOgUoRMaCsS+QgF7nt/+DBGpjr/ SmqqdD4unbJWL+ZG3xxmSx84PaWfqiWWhPHxZiSFDmnffcYMXukqssJh1eQ+BugVqH5n ZK1Q6Kem84Yfwvi/dyWHgZrDPM5sn9noDw89vvWc+o9hstud9roAcUPj2LY3o9u79zve KAAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=NIsstsLHXU9Ct92TAvs2WRZTq4h4a7o49yCQryjDdYI=; b=CiY9r+UiTp46vqNCuF3cuS1lRggNgej4npkr5R1W8XkbpzR8NY7epdEBPmuOioNvOe qWCWk6NyKWiDSKbxTacVQb/yyB8NZ1iPzCHDu9Y/h4IvXZwDytttpH8/Lz7jWvYGEPPc NXTTZxUN6hl0QXvxL8LgM2msuHEka0D/jqPl9FfKQN08Yk9hAbtfkr3O5PXEr+ssXuw2 1n1KD57FLm6IVm+BrIFXhMBT5Z21VsWZobZveiSUZLRRFGXA5NAqHr16iL3MpScnEo15 kPJsg2gQW45P/aV+vTohzpyKIQ3kdFs1rPcDvslKDh+ANY9ZxMTnJ6IDcNPPLAEmwY+l bLhw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@googlemail.com header.s=20161025 header.b=pCxXWN9I; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j143si5827925pfd.124.2019.04.01.11.00.01; Mon, 01 Apr 2019 11:00:16 -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=@googlemail.com header.s=20161025 header.b=pCxXWN9I; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731264AbfDAR6R (ORCPT + 99 others); Mon, 1 Apr 2019 13:58:17 -0400 Received: from mail-wr1-f67.google.com ([209.85.221.67]:32932 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729517AbfDAR6O (ORCPT ); Mon, 1 Apr 2019 13:58:14 -0400 Received: by mail-wr1-f67.google.com with SMTP id q1so13237387wrp.0; Mon, 01 Apr 2019 10:58:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=NIsstsLHXU9Ct92TAvs2WRZTq4h4a7o49yCQryjDdYI=; b=pCxXWN9ILOqUQtaaqVwVX5ZZudlFpiL+dAZgOHbxCj53xV2w03weIzp+0x4A8nWfP3 KswrVT0yhtRLQ1dZrR5gTlgRZROhWGRHrCPXoq/M2/hZfuAoUSvESF2/E6afh0W8M2mu fPj6GpuQjFGQHLBbzaT9i6+NNr5+hxsETFl9EELM2O3/yIwkrdR8oQZpmvOtlCrrPZcC +L5QaeayQ+3p/zz2WBQwLUOpFtLLJsRoHcC+riZ/I83EhVB9Tvxsy0F12GH1iIukuVbL arpQjyejBolL680NxtNvD43FaBY/5DIozGyRgO6C9ea6C6TEOVkh0JWOISK+v4mahtND LDUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=NIsstsLHXU9Ct92TAvs2WRZTq4h4a7o49yCQryjDdYI=; b=LcfdOZglfFwTSvAYNwKRrUJAOK5Z1JwypWBmN1Lnk1mkj0RR/VD+M8MT8tZZNauyzd DQPca3fLq8gJil7OtZK7QueZnR+ynMO2jqS1Gc5qR5yh8tQ30Q0W/2bxDa3AzZf1F0GQ mroHjp73hrTSWwLUPeboeyhZKIbUQBrMSy/8pqOg+njT2jTLL9NPAhoWvISvkXeUxkkG aG/dDdiTK4QZjPMcwT1F/ytqhGAmTB/PIr/etUsyLVHLDFy2uc0ko1JJ49CGVagBrpaV FGyi/mY3Er2K2nCL5Y92+0tMRxLsjVKaeqqFMJONMQrQUS2cVXHz+AofWrt6m2lw7NSi ZZDA== X-Gm-Message-State: APjAAAXaztcvBt+0MjgBXjc4MNT9/VxtraZPEZmtUyNdhX79wSPddZuK aEwfvRB2MKkwTpbkwuprk/k= X-Received: by 2002:adf:cf05:: with SMTP id o5mr5254195wrj.8.1554141492517; Mon, 01 Apr 2019 10:58:12 -0700 (PDT) Received: from blackbox.darklights.net (p200300DCD73A0800C9C8A7BE25478D36.dip0.t-ipconnect.de. [2003:dc:d73a:800:c9c8:a7be:2547:8d36]) by smtp.googlemail.com with ESMTPSA id s189sm16655340wmf.45.2019.04.01.10.58.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 01 Apr 2019 10:58:11 -0700 (PDT) From: Martin Blumenstingl To: thierry.reding@gmail.com, linux-pwm@vger.kernel.org, linux-amlogic@lists.infradead.org Cc: narmstrong@baylibre.com, jbrunet@baylibre.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, u.kleine-koenig@pengutronix.de, Martin Blumenstingl Subject: [PATCH v2 0/1] pwm: meson: fix scheduling while atomic issue Date: Mon, 1 Apr 2019 19:57:47 +0200 Message-Id: <20190401175748.5376-1-martin.blumenstingl@googlemail.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Back in January a "BUG: scheduling while atomic" error showed up during boot on my Meson8b Odroid-C1 (which uses a PWM regulator as CPU supply). The call trace comes down to: __mutex_lock clk_prepare_lock clk_core_get_rate meson_pwm_apply .. dev_pm_opp_set_rate .. Jerome has also seen the same problem but from pwm-leds (instead of a pwm-regulator). He posted a patch which replaces the spinlock with a mutex. That works. I believe we can optimize this by reducing the time where the lock is held - that also allows to keep the spin-lock. Analyzing this issue helped me understand the pwm-meson driver better. My plan is to send some cleanups after this single fix is merged. The goal of these cleanups is to re-use more of the goodies from the PWM core in the pwm-meson driver as well as to address issues spotted by Uwe Kleine-König (these issues violate the PWM API, but none of these result in breakage of the boards/.dts that we currently have). These follow-up patches can be found here: [1]. Dependencies: none Target version: please queue this for -fixes so it makes it's way into v5.1-rc (so we can get it backported from there, because this issue has existed since the pwm-meson driver was introduced). changes since v1 at [2]: - added comment about usage of the spinlock as suggested by Uwe Kleine-König (thank you) - collected Uwe Kleine-König's Reviewed-by [0] http://lists.infradead.org/pipermail/linux-amlogic/2019-January/009690.html [1] https://github.com/xdarklight/linux/commits/meson-pwm-for-5.2-v1 [2] https://patchwork.kernel.org/cover/10867757/ Martin Blumenstingl (1): pwm: meson: use the spin-lock only to protect register modifications drivers/pwm/pwm-meson.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) -- 2.21.0