All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Biwen Li <biwen.li@oss.nxp.com>,
	leoyang.li@nxp.com, alexandre.belloni@bootlin.com,
	anson.huang@nxp.com, aisheng.dong@nxp.com
Cc: kbuild-all@lists.01.org, clang-built-linux@googlegroups.com,
	linux-kernel@vger.kernel.org, jiafei.pan@nxp.com,
	linux-rtc@vger.kernel.org, Biwen Li <biwen.li@nxp.com>
Subject: Re: [PATCH] rtc: pcf2127: clear the flag TSF1 before enabling interrupt generation
Date: Tue, 1 Dec 2020 18:20:42 +0800	[thread overview]
Message-ID: <202012011857.keglNpcP-lkp@intel.com> (raw)
In-Reply-To: <20201201084746.20135-1-biwen.li@oss.nxp.com>

[-- Attachment #1: Type: text/plain, Size: 8469 bytes --]

Hi Biwen,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on abelloni/rtc-next]
[also build test WARNING on v5.10-rc6 next-20201130]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Biwen-Li/rtc-pcf2127-clear-the-flag-TSF1-before-enabling-interrupt-generation/20201201-165409
base:   https://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux.git rtc-next
config: mips-randconfig-r023-20201201 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project ac40a2d8f16b8a8c68fc811d67f647740e965cb8)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install mips cross compiling tool for clang build
        # apt-get install binutils-mips-linux-gnu
        # https://github.com/0day-ci/linux/commit/54db60db88e4fd3ab6ac26f9a5b4768316347f95
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Biwen-Li/rtc-pcf2127-clear-the-flag-TSF1-before-enabling-interrupt-generation/20201201-165409
        git checkout 54db60db88e4fd3ab6ac26f9a5b4768316347f95
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/rtc/rtc-pcf2127.c:629:16: warning: operator has lower precedence than '|'; '|' will be evaluated first
   has_nvmem (PCF2127_BIT_WD_CTL_CD0) : (0) |
   ~~~~~~~~~ ^
   drivers/rtc/rtc-pcf2127.c:629:16: note: place parentheses around the '|' expression to silence this warning
   has_nvmem (PCF2127_BIT_WD_CTL_CD0) : (0) |
   ~~~~~~~~~ ^
   drivers/rtc/rtc-pcf2127.c:629:16: note: place parentheses around the expression to evaluate it first
   has_nvmem (PCF2127_BIT_WD_CTL_CD0) : (0) |
   ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fatal error: error in backend: Nested variants found in inline asm string: ' .set push
   .set mips64r2
   .if ( 0x00 ) != -1)) 0x00 ) != -1)) : ($( static struct ftrace_branch_data __attribute__((__aligned__(4))) __attribute__((__section__("_ftrace_branch"))) __if_trace = $( .func = __func__, .file = "arch/mips/include/asm/bitops.h", .line = 105, $); 0x00 ) != -1)) : $))) ) && ( 0 ); .set push; .set mips64r2; .rept 1; sync 0x00; .endr; .set pop; .else; ; .endif
   1: ll $0, $1
   or $0, $2
   sc $0, $1
   beqz $0, 1b
   .set pop
   '
   clang-12: error: clang frontend command failed with exit code 70 (use -v to see invocation)
   clang version 12.0.0 (git://gitmirror/llvm_project ac40a2d8f16b8a8c68fc811d67f647740e965cb8)
   Target: mips-unknown-linux-gnu
   Thread model: posix
   InstalledDir: /opt/cross/clang-ac40a2d8f1/bin
   clang-12: note: diagnostic msg:
   Makefile arch drivers include kernel scripts source usr

vim +629 drivers/rtc/rtc-pcf2127.c

   560	
   561	static int pcf2127_probe(struct device *dev, struct regmap *regmap,
   562				 int alarm_irq, const char *name, bool has_nvmem)
   563	{
   564		struct pcf2127 *pcf2127;
   565		int ret = 0;
   566	
   567		dev_dbg(dev, "%s\n", __func__);
   568	
   569		pcf2127 = devm_kzalloc(dev, sizeof(*pcf2127), GFP_KERNEL);
   570		if (!pcf2127)
   571			return -ENOMEM;
   572	
   573		pcf2127->regmap = regmap;
   574	
   575		dev_set_drvdata(dev, pcf2127);
   576	
   577		pcf2127->rtc = devm_rtc_allocate_device(dev);
   578		if (IS_ERR(pcf2127->rtc))
   579			return PTR_ERR(pcf2127->rtc);
   580	
   581		pcf2127->rtc->ops = &pcf2127_rtc_ops;
   582		pcf2127->rtc->range_min = RTC_TIMESTAMP_BEGIN_2000;
   583		pcf2127->rtc->range_max = RTC_TIMESTAMP_END_2099;
   584		pcf2127->rtc->set_start_time = true; /* Sets actual start to 1970 */
   585		pcf2127->rtc->uie_unsupported = 1;
   586	
   587		if (alarm_irq > 0) {
   588			ret = devm_request_threaded_irq(dev, alarm_irq, NULL,
   589							pcf2127_rtc_irq,
   590							IRQF_TRIGGER_LOW | IRQF_ONESHOT,
   591							dev_name(dev), dev);
   592			if (ret) {
   593				dev_err(dev, "failed to request alarm irq\n");
   594				return ret;
   595			}
   596		}
   597	
   598		if (alarm_irq > 0 || device_property_read_bool(dev, "wakeup-source")) {
   599			device_init_wakeup(dev, true);
   600			pcf2127->rtc->ops = &pcf2127_rtc_alrm_ops;
   601		}
   602	
   603		if (has_nvmem) {
   604			struct nvmem_config nvmem_cfg = {
   605				.priv = pcf2127,
   606				.reg_read = pcf2127_nvmem_read,
   607				.reg_write = pcf2127_nvmem_write,
   608				.size = 512,
   609			};
   610	
   611			ret = devm_rtc_nvmem_register(pcf2127->rtc, &nvmem_cfg);
   612		}
   613	
   614		/*
   615		 * Watchdog timer enabled and reset pin /RST activated when timed out.
   616		 * Select 1Hz clock source for watchdog timer.
   617		 * Note: Countdown timer disabled and not available.
   618		 * For pca2129, pcf2129, only bit[7] is for Symbol WD_CD
   619		 * of register watchdg_tim_ctl. The bit[6] is labeled
   620		 * as T. Bits labeled as T must always be written with
   621		 * logic 0.
   622		 */
   623		ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_WD_CTL,
   624					 PCF2127_BIT_WD_CTL_CD1 |
   625					 PCF2127_BIT_WD_CTL_CD0 |
   626					 PCF2127_BIT_WD_CTL_TF1 |
   627					 PCF2127_BIT_WD_CTL_TF0,
   628					 PCF2127_BIT_WD_CTL_CD1 |
 > 629					 has_nvmem ? (PCF2127_BIT_WD_CTL_CD0) : (0) |
   630					 PCF2127_BIT_WD_CTL_TF1);
   631		if (ret) {
   632			dev_err(dev, "%s: watchdog config (wd_ctl) failed\n", __func__);
   633			return ret;
   634		}
   635	
   636		pcf2127_watchdog_init(dev, pcf2127);
   637	
   638		/*
   639		 * Disable battery low/switch-over timestamp and interrupts.
   640		 * Clear battery interrupt flags which can block new trigger events.
   641		 * Note: This is the default chip behaviour but added to ensure
   642		 * correct tamper timestamp and interrupt function.
   643		 */
   644		ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_CTRL3,
   645					 PCF2127_BIT_CTRL3_BTSE |
   646					 PCF2127_BIT_CTRL3_BIE |
   647					 PCF2127_BIT_CTRL3_BLIE, 0);
   648		if (ret) {
   649			dev_err(dev, "%s: interrupt config (ctrl3) failed\n",
   650				__func__);
   651			return ret;
   652		}
   653	
   654		/*
   655		 * Enable timestamp function and store timestamp of first trigger
   656		 * event until TSF1 and TFS2 interrupt flags are cleared.
   657		 */
   658		ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_TS_CTRL,
   659					 PCF2127_BIT_TS_CTRL_TSOFF |
   660					 PCF2127_BIT_TS_CTRL_TSM,
   661					 PCF2127_BIT_TS_CTRL_TSM);
   662		if (ret) {
   663			dev_err(dev, "%s: tamper detection config (ts_ctrl) failed\n",
   664				__func__);
   665			return ret;
   666		}
   667	
   668		/*
   669		 * Clear TSF1 field of ctrl1 register to clear interrupt
   670		 * before enabling interrupt generation when
   671		 * timestamp flag set. Unless the flag TSF1 won't
   672		 * be cleared and the interrupt(INT pin) is
   673		 * triggered continueously.
   674		 */
   675		ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_CTRL1,
   676					 PCF2127_BIT_CTRL1_TSF1,
   677					 0);
   678		if (ret) {
   679			dev_err(dev, "%s:  control and status register 1 (ctrl1) failed, ret = 0x%x\n",
   680				__func__, ret);
   681			return ret;
   682		}
   683		/*
   684		 * Enable interrupt generation when TSF1 or TSF2 timestamp flags
   685		 * are set. Interrupt signal is an open-drain output and can be
   686		 * left floating if unused.
   687		 */
   688		ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_CTRL2,
   689					 PCF2127_BIT_CTRL2_TSIE,
   690					 PCF2127_BIT_CTRL2_TSIE);
   691		if (ret) {
   692			dev_err(dev, "%s: tamper detection config (ctrl2) failed\n",
   693				__func__);
   694			return ret;
   695		}
   696	
   697		ret = rtc_add_group(pcf2127->rtc, &pcf2127_attr_group);
   698		if (ret) {
   699			dev_err(dev, "%s: tamper sysfs registering failed\n",
   700				__func__);
   701			return ret;
   702		}
   703	
   704		return devm_rtc_register_device(pcf2127->rtc);
   705	}
   706	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 24405 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH] rtc: pcf2127: clear the flag TSF1 before enabling interrupt generation
Date: Tue, 01 Dec 2020 18:20:42 +0800	[thread overview]
Message-ID: <202012011857.keglNpcP-lkp@intel.com> (raw)
In-Reply-To: <20201201084746.20135-1-biwen.li@oss.nxp.com>

[-- Attachment #1: Type: text/plain, Size: 8681 bytes --]

Hi Biwen,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on abelloni/rtc-next]
[also build test WARNING on v5.10-rc6 next-20201130]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Biwen-Li/rtc-pcf2127-clear-the-flag-TSF1-before-enabling-interrupt-generation/20201201-165409
base:   https://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux.git rtc-next
config: mips-randconfig-r023-20201201 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project ac40a2d8f16b8a8c68fc811d67f647740e965cb8)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install mips cross compiling tool for clang build
        # apt-get install binutils-mips-linux-gnu
        # https://github.com/0day-ci/linux/commit/54db60db88e4fd3ab6ac26f9a5b4768316347f95
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Biwen-Li/rtc-pcf2127-clear-the-flag-TSF1-before-enabling-interrupt-generation/20201201-165409
        git checkout 54db60db88e4fd3ab6ac26f9a5b4768316347f95
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/rtc/rtc-pcf2127.c:629:16: warning: operator has lower precedence than '|'; '|' will be evaluated first
   has_nvmem (PCF2127_BIT_WD_CTL_CD0) : (0) |
   ~~~~~~~~~ ^
   drivers/rtc/rtc-pcf2127.c:629:16: note: place parentheses around the '|' expression to silence this warning
   has_nvmem (PCF2127_BIT_WD_CTL_CD0) : (0) |
   ~~~~~~~~~ ^
   drivers/rtc/rtc-pcf2127.c:629:16: note: place parentheses around the expression to evaluate it first
   has_nvmem (PCF2127_BIT_WD_CTL_CD0) : (0) |
   ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fatal error: error in backend: Nested variants found in inline asm string: ' .set push
   .set mips64r2
   .if ( 0x00 ) != -1)) 0x00 ) != -1)) : ($( static struct ftrace_branch_data __attribute__((__aligned__(4))) __attribute__((__section__("_ftrace_branch"))) __if_trace = $( .func = __func__, .file = "arch/mips/include/asm/bitops.h", .line = 105, $); 0x00 ) != -1)) : $))) ) && ( 0 ); .set push; .set mips64r2; .rept 1; sync 0x00; .endr; .set pop; .else; ; .endif
   1: ll $0, $1
   or $0, $2
   sc $0, $1
   beqz $0, 1b
   .set pop
   '
   clang-12: error: clang frontend command failed with exit code 70 (use -v to see invocation)
   clang version 12.0.0 (git://gitmirror/llvm_project ac40a2d8f16b8a8c68fc811d67f647740e965cb8)
   Target: mips-unknown-linux-gnu
   Thread model: posix
   InstalledDir: /opt/cross/clang-ac40a2d8f1/bin
   clang-12: note: diagnostic msg:
   Makefile arch drivers include kernel scripts source usr

vim +629 drivers/rtc/rtc-pcf2127.c

   560	
   561	static int pcf2127_probe(struct device *dev, struct regmap *regmap,
   562				 int alarm_irq, const char *name, bool has_nvmem)
   563	{
   564		struct pcf2127 *pcf2127;
   565		int ret = 0;
   566	
   567		dev_dbg(dev, "%s\n", __func__);
   568	
   569		pcf2127 = devm_kzalloc(dev, sizeof(*pcf2127), GFP_KERNEL);
   570		if (!pcf2127)
   571			return -ENOMEM;
   572	
   573		pcf2127->regmap = regmap;
   574	
   575		dev_set_drvdata(dev, pcf2127);
   576	
   577		pcf2127->rtc = devm_rtc_allocate_device(dev);
   578		if (IS_ERR(pcf2127->rtc))
   579			return PTR_ERR(pcf2127->rtc);
   580	
   581		pcf2127->rtc->ops = &pcf2127_rtc_ops;
   582		pcf2127->rtc->range_min = RTC_TIMESTAMP_BEGIN_2000;
   583		pcf2127->rtc->range_max = RTC_TIMESTAMP_END_2099;
   584		pcf2127->rtc->set_start_time = true; /* Sets actual start to 1970 */
   585		pcf2127->rtc->uie_unsupported = 1;
   586	
   587		if (alarm_irq > 0) {
   588			ret = devm_request_threaded_irq(dev, alarm_irq, NULL,
   589							pcf2127_rtc_irq,
   590							IRQF_TRIGGER_LOW | IRQF_ONESHOT,
   591							dev_name(dev), dev);
   592			if (ret) {
   593				dev_err(dev, "failed to request alarm irq\n");
   594				return ret;
   595			}
   596		}
   597	
   598		if (alarm_irq > 0 || device_property_read_bool(dev, "wakeup-source")) {
   599			device_init_wakeup(dev, true);
   600			pcf2127->rtc->ops = &pcf2127_rtc_alrm_ops;
   601		}
   602	
   603		if (has_nvmem) {
   604			struct nvmem_config nvmem_cfg = {
   605				.priv = pcf2127,
   606				.reg_read = pcf2127_nvmem_read,
   607				.reg_write = pcf2127_nvmem_write,
   608				.size = 512,
   609			};
   610	
   611			ret = devm_rtc_nvmem_register(pcf2127->rtc, &nvmem_cfg);
   612		}
   613	
   614		/*
   615		 * Watchdog timer enabled and reset pin /RST activated when timed out.
   616		 * Select 1Hz clock source for watchdog timer.
   617		 * Note: Countdown timer disabled and not available.
   618		 * For pca2129, pcf2129, only bit[7] is for Symbol WD_CD
   619		 * of register watchdg_tim_ctl. The bit[6] is labeled
   620		 * as T. Bits labeled as T must always be written with
   621		 * logic 0.
   622		 */
   623		ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_WD_CTL,
   624					 PCF2127_BIT_WD_CTL_CD1 |
   625					 PCF2127_BIT_WD_CTL_CD0 |
   626					 PCF2127_BIT_WD_CTL_TF1 |
   627					 PCF2127_BIT_WD_CTL_TF0,
   628					 PCF2127_BIT_WD_CTL_CD1 |
 > 629					 has_nvmem ? (PCF2127_BIT_WD_CTL_CD0) : (0) |
   630					 PCF2127_BIT_WD_CTL_TF1);
   631		if (ret) {
   632			dev_err(dev, "%s: watchdog config (wd_ctl) failed\n", __func__);
   633			return ret;
   634		}
   635	
   636		pcf2127_watchdog_init(dev, pcf2127);
   637	
   638		/*
   639		 * Disable battery low/switch-over timestamp and interrupts.
   640		 * Clear battery interrupt flags which can block new trigger events.
   641		 * Note: This is the default chip behaviour but added to ensure
   642		 * correct tamper timestamp and interrupt function.
   643		 */
   644		ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_CTRL3,
   645					 PCF2127_BIT_CTRL3_BTSE |
   646					 PCF2127_BIT_CTRL3_BIE |
   647					 PCF2127_BIT_CTRL3_BLIE, 0);
   648		if (ret) {
   649			dev_err(dev, "%s: interrupt config (ctrl3) failed\n",
   650				__func__);
   651			return ret;
   652		}
   653	
   654		/*
   655		 * Enable timestamp function and store timestamp of first trigger
   656		 * event until TSF1 and TFS2 interrupt flags are cleared.
   657		 */
   658		ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_TS_CTRL,
   659					 PCF2127_BIT_TS_CTRL_TSOFF |
   660					 PCF2127_BIT_TS_CTRL_TSM,
   661					 PCF2127_BIT_TS_CTRL_TSM);
   662		if (ret) {
   663			dev_err(dev, "%s: tamper detection config (ts_ctrl) failed\n",
   664				__func__);
   665			return ret;
   666		}
   667	
   668		/*
   669		 * Clear TSF1 field of ctrl1 register to clear interrupt
   670		 * before enabling interrupt generation when
   671		 * timestamp flag set. Unless the flag TSF1 won't
   672		 * be cleared and the interrupt(INT pin) is
   673		 * triggered continueously.
   674		 */
   675		ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_CTRL1,
   676					 PCF2127_BIT_CTRL1_TSF1,
   677					 0);
   678		if (ret) {
   679			dev_err(dev, "%s:  control and status register 1 (ctrl1) failed, ret = 0x%x\n",
   680				__func__, ret);
   681			return ret;
   682		}
   683		/*
   684		 * Enable interrupt generation when TSF1 or TSF2 timestamp flags
   685		 * are set. Interrupt signal is an open-drain output and can be
   686		 * left floating if unused.
   687		 */
   688		ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_CTRL2,
   689					 PCF2127_BIT_CTRL2_TSIE,
   690					 PCF2127_BIT_CTRL2_TSIE);
   691		if (ret) {
   692			dev_err(dev, "%s: tamper detection config (ctrl2) failed\n",
   693				__func__);
   694			return ret;
   695		}
   696	
   697		ret = rtc_add_group(pcf2127->rtc, &pcf2127_attr_group);
   698		if (ret) {
   699			dev_err(dev, "%s: tamper sysfs registering failed\n",
   700				__func__);
   701			return ret;
   702		}
   703	
   704		return devm_rtc_register_device(pcf2127->rtc);
   705	}
   706	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 24405 bytes --]

  reply	other threads:[~2020-12-01 10:22 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-01  8:47 [PATCH] rtc: pcf2127: clear the flag TSF1 before enabling interrupt generation Biwen Li
2020-12-01 10:20 ` kernel test robot [this message]
2020-12-01 10:20   ` kernel test robot
2020-12-01 11:02 ` Alexandre Belloni
2020-12-02  2:14   ` Biwen Li (OSS)
2020-12-02 17:10 ` kernel test robot
2020-12-02 17:10   ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202012011857.keglNpcP-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=aisheng.dong@nxp.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=anson.huang@nxp.com \
    --cc=biwen.li@nxp.com \
    --cc=biwen.li@oss.nxp.com \
    --cc=clang-built-linux@googlegroups.com \
    --cc=jiafei.pan@nxp.com \
    --cc=kbuild-all@lists.01.org \
    --cc=leoyang.li@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rtc@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.