Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp356244imm; Tue, 9 Oct 2018 19:46:44 -0700 (PDT) X-Google-Smtp-Source: ACcGV60hMf6nvJarkPnooaQ4tHqyALIPr6tfcTo0/5rIV0U2XmmGT3bYa85K0jR7YlTKoybWE04N X-Received: by 2002:a63:4454:: with SMTP id t20-v6mr27586142pgk.102.1539139604358; Tue, 09 Oct 2018 19:46:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539139604; cv=none; d=google.com; s=arc-20160816; b=tirLpfTiw+w8m3ZQYDY8M5gqkLQQbFDX78mbMYcYZSK1q6oMJksLKM9T+XFd6wr9cn W8ugfN/pyDgvpj/gTh+PMGFJQeylU4uNx6buKGuGkbr1cUwpQjh1QdE7vPdXjo39ba8E njtDZRuzHdb2XymdnnxdKGEbyz2R9WYBrumCzfJLRoHWxfOlq9hT40KFlida8Za3vS8g 0wVKyUKneeCELeJ9T0U/pPrwRQYssnCT3R1EGyKWg7oEqGQdFyxfJFb8RnqZVi/Sdk56 Z5yiHDIUvkmiLTB87MNyZ6/FjbvJ4Qouq2EvXr/FhvieKqYC8pFS9J0KXYELoaS3advN Fz4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature; bh=P/Sho3JimvBd+HdzjYQQ7EgIOkz14mUaOsYtQlmE5TQ=; b=u07MrXrUEx6UVAxLStf7aOpa4GHQ1AlBmm8CiwaQ7tS6d2acxa4H2iG2K4hK4P59zc SRM90BTYgBgdYefuoaxbxakRHNlElwYCyNAfpKwGHjSVLKo4BkyaMxxJB38HrN56Wdzq Umu4Ji1EKCQjZP1WPDT/barJKGi1Z9u/vL2HAjJRu+fTu0okr2nfbZK3Mtw7vAFmWx3d IjB0h9jibDPZkcH7l3vb76EmHN5Cg64x0o3Gq1kwR+AffUc7vW/Qu+2WeO/S1qkVDL/J H8HdpPECA7r59or1wiwHF9aLNaxm6j3tWDGLgFwGKGYDtxp5rKGiFY/gRz6VskIZMcHn X7Ig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ciel9o+t; 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=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x11-v6si22152502plv.434.2018.10.09.19.46.29; Tue, 09 Oct 2018 19:46:44 -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=@linaro.org header.s=google header.b=ciel9o+t; 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=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727226AbeJJJev (ORCPT + 99 others); Wed, 10 Oct 2018 05:34:51 -0400 Received: from mail-lf1-f51.google.com ([209.85.167.51]:40886 "EHLO mail-lf1-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727193AbeJJJev (ORCPT ); Wed, 10 Oct 2018 05:34:51 -0400 Received: by mail-lf1-f51.google.com with SMTP id t22-v6so2774246lfb.7 for ; Tue, 09 Oct 2018 19:14:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=P/Sho3JimvBd+HdzjYQQ7EgIOkz14mUaOsYtQlmE5TQ=; b=ciel9o+tGb+dAx+CweXfwJzOd3gyaQ8RHgcvwndZ2/axzXNh7UreHAL2CH6NHje1Rn aZKussyjP6JIOsP8y2vgDjkdZaFp+c7O6+iZfQbBtTxLxHkevHiCS/vV39Q2Lz4A0aGb k6WQmU1q7wM6CfgnyxQtEJPpr1kb5frJqL6uI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=P/Sho3JimvBd+HdzjYQQ7EgIOkz14mUaOsYtQlmE5TQ=; b=PhYEnbZ76zg8bhjlehF6q/g4z001DlMrIPnFJ+o4lE6LUdZZU2mLy/4DPJBGQv9usC R1wuJVngCr6XNJ7xui+XZXrXaB8HaBzu1PcW5hO4KbasWrz8p9eoYThmG7lWzc8QHRyR 8zu3ka14RpyV3KbGqndAsQuzkqkh6+UVUZTawicbsxfdfJ8/HSFWmfTtdHFosBn5jI4A OEUQPvRF1YIgAkHQRFytHJgZoXRrUS0w/ss4oOJTA2561OUTDUa39v7Aw7hBYskd5xmb lOQRL592m8TLdKaE6PdSyH/kqWiGm3ARaVf9t+TtUEmBZmJ6dAjaS0ZQhA8ubNLwC6Zh 1IcQ== X-Gm-Message-State: ABuFfojlFVGcqhyv5nCqer+HE8enU4d1m9vekPWdGXU2q79xEgZrFDQk 5HI+H83MYv7ObP5JN81IHjrfE9lUkO+eFrzv6gmKZw== X-Received: by 2002:a19:1941:: with SMTP id 62-v6mr15119371lfz.99.1539137696528; Tue, 09 Oct 2018 19:14:56 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a2e:95d7:0:0:0:0:0 with HTTP; Tue, 9 Oct 2018 19:14:56 -0700 (PDT) In-Reply-To: <931be52e-fa7e-72f8-0e5f-9a8a006d6ccd@gmail.com> References: <9bf6236e-83af-7156-b26b-7d88ece2d81e@gmail.com> <7051613e-f2db-260f-85d7-d40278fd11cb@gmail.com> <931be52e-fa7e-72f8-0e5f-9a8a006d6ccd@gmail.com> From: Baolin Wang Date: Wed, 10 Oct 2018 10:14:56 +0800 Message-ID: Subject: Re: [PATCH v14 1/2] leds: core: Introduce LED pattern trigger To: Jacek Anaszewski Cc: Pavel Machek , rteysseyre@gmail.com, Bjorn Andersson , Mark Brown , Linux LED Subsystem , LKML Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Jacek, On 10 October 2018 at 02:37, Jacek Anaszewski wrote: > Hi Baolin, > > On 10/09/2018 02:01 PM, Baolin Wang wrote: >> Hi Jacek and Pavel, >> >> On 5 October 2018 at 04:00, Jacek Anaszewski wrote: >>> Hi Baolin, >>> >>> On 10/03/2018 03:21 AM, Baolin Wang wrote: >>>> Hi Jacek, >>>> >>>> On 3 October 2018 at 04:25, Jacek Anaszewski wrote: >>>>> Hi Baolin, >>>>> >>>>> Thank you for the v14. We'll probably need v15, though :-) >>>>> >>>>> I added the comments in the code below. >>>>> >>>>> On 10/02/2018 05:43 PM, Baolin Wang wrote: >>>>>> This patch adds one new led trigger that LED device can configure >>>>>> the software or hardware pattern and trigger it. >>>>>> >>>>>> Consumers can write 'pattern' file to enable the software pattern >>>>>> which alters the brightness for the specified duration with one >>>>>> software timer. >>>>>> >>>>>> Moreover consumers can write 'hw_pattern' file to enable the hardware >>>>>> pattern for some LED controllers which can autonomously control >>>>>> brightness over time, according to some preprogrammed hardware >>>>>> patterns. >>>>>> >>>>>> Signed-off-by: Raphael Teysseyre >>>>>> Signed-off-by: Baolin Wang >>>>>> --- >>>>>> Changes from v13: >>>>>> - Add duration validation for gradual dimming. >>>>>> - Coding style optimization. >>>>>> >>>>>> Changes from v12: >>>>>> - Add gradual dimming support for software pattern. >>>>>> >>>>>> Changes from v11: >>>>>> - Change -1 means repeat indefinitely. >>>>>> >>>>>> Changes from v10: >>>>>> - Change 'int' to 'u32' for delta_t field. >>>>>> >>>>>> Changes from v9: >>>>>> - None. >>>>>> >>>>>> Changes from v8: >>>>>> - None. >>>>>> >>>>>> Changes from v7: >>>>>> - Move the SC27XX hardware patterns description into its own ABI file. >>>>>> >>>>>> Changes from v6: >>>>>> - Improve commit message. >>>>>> - Optimize the description of the hw_pattern file. >>>>>> - Simplify some logics. >>>>>> >>>>>> Changes from v5: >>>>>> - Add one 'hw_pattern' file for hardware patterns. >>>>>> >>>>>> Changes from v4: >>>>>> - Change the repeat file to return the originally written number. >>>>>> - Improve comments. >>>>>> - Fix some build warnings. >>>>>> >>>>>> Changes from v3: >>>>>> - Reset pattern number to 0 if user provides incorrect pattern string. >>>>>> - Support one pattern. >>>>>> >>>>>> Changes from v2: >>>>>> - Remove hardware_pattern boolen. >>>>>> - Chnage the pattern string format. >>>>>> >>>>>> Changes from v1: >>>>>> - Use ATTRIBUTE_GROUPS() to define attributes. >>>>>> - Introduce hardware_pattern flag to determine if software pattern >>>>>> or hardware pattern. >>>>>> - Re-implement pattern_trig_store_pattern() function. >>>>>> - Remove pattern_get() interface. >>>>>> - Improve comments. >>>>>> - Other small optimization. >>>>>> --- >>>>>> .../ABI/testing/sysfs-class-led-trigger-pattern | 76 ++++ >>>>>> drivers/leds/trigger/Kconfig | 7 + >>>>>> drivers/leds/trigger/Makefile | 1 + >>>>>> drivers/leds/trigger/ledtrig-pattern.c | 431 +++++++++++++++++++++ >>>>>> include/linux/leds.h | 15 + >>>>>> 5 files changed, 530 insertions(+) >>>>>> create mode 100644 Documentation/ABI/testing/sysfs-class-led-trigger-pattern >>>>>> create mode 100644 drivers/leds/trigger/ledtrig-pattern.c >>>>>> >>>>>> diff --git a/Documentation/ABI/testing/sysfs-class-led-trigger-pattern b/Documentation/ABI/testing/sysfs-class-led-trigger-pattern >>>>>> new file mode 100644 >>>>>> index 0000000..22d7af7 >>>>>> --- /dev/null >>>>>> +++ b/Documentation/ABI/testing/sysfs-class-led-trigger-pattern >>>>>> @@ -0,0 +1,76 @@ >>>>>> +What: /sys/class/leds//pattern >>>>>> +Date: September 2018 >>>>>> +KernelVersion: 4.20 >>>>>> +Description: >>>>>> + Specify a software pattern for the LED, that supports altering >>>>>> + the brightness for the specified duration with one software >>>>>> + timer. It can do gradual dimming and constant brightness. >>>>>> + >>>>>> + The pattern is given by a series of tuples, of brightness and >>>>>> + duration (ms). The LED is expected to traverse the series and >>>>>> + each brightness value for the specified duration. Duration of >>>>>> + 0 means brightness should immediately change to new value. >>>>>> + >>>>>> + 1. When doing gradual dimming, the led brightness will be updated >>>>>> + every 50 milliseconds, so the duration of each step should not >>>>>> + less than 50 milliseconds. >>>>> >>>>> I'd like to avoid this constraint. Lowest supported delta_t should be 1. >>>>> >>>>> We should only prevent entering dimming mode if current delta_t >>>>> is lower than UPDATE_INTERVAL. >>>> >>>> I do not think so. If the pattern format is used for dimming and the >>>> delta_t is lower than UPDATE_INTERVAL, we should return errors. Since >>>> in this case, we can not change to constant mode. >>> >>> I'll play with the code at weekend and will let you know my findings. >> >> Thanks Jacek. Do you have any more suggestion? > > Sorry to say, but I had really busy weekend and failed to carve out > time for looking into that. It's queued up with the highest priority > on my todo list of things needing more than five minutes of attention. Ah, okay, no hurry :) >> BTW, we have not get a consensus about adding one 'dimming_interval' >> file to set the dimming interval instead of fixed 50 ms. >> Pavel, I want to hear your suggestion before I submit new patch set? Thanks. > > I think that this feature belongs to the "nice to have" category, > and lack of it will not prevent us from merging the patch set. OK. Thanks. -- Baolin Wang Best Regards