Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp1157928pxu; Mon, 23 Nov 2020 13:10:54 -0800 (PST) X-Google-Smtp-Source: ABdhPJzTrd0ify7OLWOR1rn9gFW69G3BOorXBTkEGlDoHuHr1DKnRHY3dmIDIlGkVM5e8il2Zi7a X-Received: by 2002:aa7:d493:: with SMTP id b19mr1006633edr.279.1606165854739; Mon, 23 Nov 2020 13:10:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1606165854; cv=none; d=google.com; s=arc-20160816; b=YUN/k+c5OrIY7SLXQZ0xOINxlpvz+BUD9BHZoxZry9FHevq8Gb/3l1Q1aq3kDw87Yq +qkAMVq4FoMo/i4sbIFQPgMVAcXq7oMf4RhdCXrcFatcLUhputWuoK7yKl9uMAVzjPtL smT2bhs9xF/r4uSM3ABfZI3XQJ4601IVQgnPRmtWDhJqOs2/e2A5uMqqVn2h++0qqS0F Zd6ec/untfmId7LJ3ng+M6BeFQ6EI2Amy1Oa/WP0qsR6zEKOqT6xMTNklSl2j5QnB+zm AjeDhkJJC2ZfO7CwFJMgtS3cehZpnKh/bfy9HkNNq2F98Oz47K6+SKp9qIM/pIdpx8GB N4wg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject:dkim-signature; bh=eCKQHOm6yrNlbYBkTUcKRxSyfXODx3SiT7JXRbFTfOs=; b=wPTYfUhPrF+BfLezyrN8M9KMKlkYF3fGK+5OKrBhg0/E4ZdgqHr6DE6t5Im2Fi6lQC hJXlo+ojEY284YCnU4Kt1dl9w7StKNs0EopwMlN738Ah8q6P0ypyswq+3LTKhsm5R8vP Wae7HTC8+b97bkVMyProTyeee20EA4ZM3yDcVNj86Ys3BDDY8yVYQ6Y4YIEmqBrEo/Ss HSeeU00dNQNzddHLO0hqE/rNLEpaOPo297dYLW6MW1PW5ggCZpEC6Palmc0MPdZjhF+i V2v/iz2BIm0A9ktKJ7+xnLYwC3D3iPD77xpzZVwpEzwF1OnSBCg+/SfJ+nXBDWTR3Qj6 8DRg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=oRVIARoj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id 63si1434018edc.144.2020.11.23.13.10.32; Mon, 23 Nov 2020 13:10:54 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=oRVIARoj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730211AbgKWVHE (ORCPT + 99 others); Mon, 23 Nov 2020 16:07:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51354 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729939AbgKWVHE (ORCPT ); Mon, 23 Nov 2020 16:07:04 -0500 Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 043C1C0613CF; Mon, 23 Nov 2020 13:07:02 -0800 (PST) Received: by mail-ed1-x541.google.com with SMTP id q16so18579020edv.10; Mon, 23 Nov 2020 13:07:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=eCKQHOm6yrNlbYBkTUcKRxSyfXODx3SiT7JXRbFTfOs=; b=oRVIARoj6Npne1uHahzkvz6Iqk4N8tWjy2k64IeeSHtjUbR4yhzBpFbv+vHgt0pydK 9vHFoChzqhHamWgIwWS30goFKdlRtHYiIzi9FhBMv79qwtnIgqDTuoqcPjXwclyFJCuD adVcwzpdR7pqc+qI6Je3aNEZvgD/H6BSmoa5xKIJ2KUF78k7KB5AtOUvbmLQ47gfb6UX 3qPJWbGKaAMCmcoM6X96KLdoNG5aTj/6MLIXqILy+m1PrMNwkqfvdSLzWADkQwMPnfCI oOGEkFfFtVWerj44JSXV5/mGRVi7VYJ8QZTLcGyQDxeexrO8cLhkU060Wj4OYkP7L+4E jUmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=eCKQHOm6yrNlbYBkTUcKRxSyfXODx3SiT7JXRbFTfOs=; b=ovnaWFzW5FXHww+G8vfePOFf7+mZwZsL7rdni5eF3AX4CJaCi/qsCmLk+gBrPqK9L2 5NMriHB2So3P7ulyXPIMsmG4GY6sgyeiVJH6evSknpYxW18/B38xnQeHnx5ozCoY+1Q7 9p1OdOnSXg7T1u98fenG/9CTRyqnd+5TfTw51+kh6jpU+2ea6ugnoV1gDMficGOfF4T0 heJ8QiwnYcacfBAPwhzGjwewgZZGwZr+ds6acWnbqr8sfAPoh40TP28Ld+85wRMkIHDz QSg+YJYigkfqpyW6PsRiG1NpquRID/Ceqvg3IrfTJLvN+CYUYucckyPVF8tPU/ZYvmCt 6/3w== X-Gm-Message-State: AOAM530UZpPhPwMA1G0OC/0zGfSq6q3bo14I4l9q6bf2XBcaereVsSZf CWnGlJk6m/NMHYKTDE7KfMYnCM/dF7Q= X-Received: by 2002:a05:6402:1358:: with SMTP id y24mr994373edw.291.1606165620724; Mon, 23 Nov 2020 13:07:00 -0800 (PST) Received: from ?IPv6:2a01:110f:b59:fd00:7836:e682:dddf:6361? ([2a01:110f:b59:fd00:7836:e682:dddf:6361]) by smtp.gmail.com with ESMTPSA id lz27sm5586999ejb.39.2020.11.23.13.06.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 23 Nov 2020 13:07:00 -0800 (PST) Subject: Re: [PATCH v7 1/5] leds: flash: Add flash registration with undefined CONFIG_LEDS_CLASS_FLASH To: Gene Chen Cc: Pavel Machek , Rob Herring , Matthias Brugger , Dan Murphy , Linux LED Subsystem , devicetree , linux-arm Mailing List , "moderated list:ARM/Mediatek SoC support" , Linux Kernel Mailing List , Gene Chen , Wilma.Wu@mediatek.com, shufan_lee@richtek.com, cy_huang@richtek.com, benjamin.chao@mediatek.com References: <1605696462-391-1-git-send-email-gene.chen.richtek@gmail.com> <1605696462-391-2-git-send-email-gene.chen.richtek@gmail.com> <3164b1ed-9e47-88cd-d492-ff5a9243e5ef@gmail.com> From: Jacek Anaszewski Message-ID: <5c4a5780-afec-fa7f-307e-b969192ec677@gmail.com> Date: Mon, 23 Nov 2020 22:06:57 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/23/20 4:20 AM, Gene Chen wrote: > Jacek Anaszewski 於 2020年11月20日 週五 上午6:29寫道: >> >> Hi Gene, >> >> On 11/18/20 11:47 AM, Gene Chen wrote: >>> From: Gene Chen >>> >>> Add flash registration with undefined CONFIG_LEDS_CLASS_FLASH >>> >>> Signed-off-by: Gene Chen >>> --- >>> include/linux/led-class-flash.h | 36 ++++++++++++++++++++++++++++++++++++ >>> 1 file changed, 36 insertions(+) >>> >>> diff --git a/include/linux/led-class-flash.h b/include/linux/led-class-flash.h >>> index 21a3358..4f56c28 100644 >>> --- a/include/linux/led-class-flash.h >>> +++ b/include/linux/led-class-flash.h >>> @@ -85,6 +85,7 @@ static inline struct led_classdev_flash *lcdev_to_flcdev( >>> return container_of(lcdev, struct led_classdev_flash, led_cdev); >>> } >>> >>> +#if IS_ENABLED(CONFIG_LEDS_CLASS_FLASH) >>> /** >>> * led_classdev_flash_register_ext - register a new object of LED class with >>> * init data and with support for flash LEDs >>> @@ -127,6 +128,41 @@ static inline int devm_led_classdev_flash_register(struct device *parent, >>> void devm_led_classdev_flash_unregister(struct device *parent, >>> struct led_classdev_flash *fled_cdev); >>> >>> +#else >>> + >>> +static inline int led_classdev_flash_register_ext(struct device *parent, >>> + struct led_classdev_flash *fled_cdev, >>> + struct led_init_data *init_data) >>> +{ >>> + return -EINVAL; >> >> s/-EINVAL/0/ >> >> The goal here is to assure that client will not fail when using no-op. >> >>> +} >>> + >>> +static inline int led_classdev_flash_register(struct device *parent, >>> + struct led_classdev_flash *fled_cdev) >>> +{ >>> + return led_classdev_flash_register_ext(parent, fled_cdev, NULL); >>> +} >> >> This function should be placed after #ifdef block because its >> shape is the same for both cases. >> >>> +static inline void led_classdev_flash_unregister(struct led_classdev_flash *fled_cdev) {}; >>> +static inline int devm_led_classdev_flash_register_ext(struct device *parent, >>> + struct led_classdev_flash *fled_cdev, >>> + struct led_init_data *init_data) >>> +{ >>> + return -EINVAL; >> >> /-EINVAL/0/ >> >> Please do the same fix in all no-ops in the led-class-multicolor.h, >> as we've discussed. >> > > I think return -EINVAL is correct, because I should register flash > light device if I define FLED in DTS node. I don't quite follow your logic here. No-op function's purpose is to simplify the code on the caller's side. Therefore it should report success. Please return 0 from it. -- Best regards, Jacek Anaszewski