From: kernel test robot <yujie.liu@intel.com>
To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Cc: <llvm@lists.linux.dev>, <kbuild-all@lists.01.org>,
<linux@roeck-us.net>, <linux-usb@vger.kernel.org>,
<linux-arm-msm@vger.kernel.org>, <devicetree@vger.kernel.org>
Subject: Re: [RESEND PATCH v2 7/7] usb: typec: qcom: Add a pm8150b TCPM driver
Date: Fri, 5 Nov 2021 13:45:04 +0800 [thread overview]
Message-ID: <87094b86-c5c2-ed2e-344a-c70bae4c5bc5@intel.com> (raw)
In-Reply-To: <202110301822.cMPH2aH0-lkp@intel.com>
[-- Attachment #1: Type: text/plain, Size: 13623 bytes --]
Hi Bryan,
Thanks for your patch! Perhaps something to improve:
[auto build test WARNING on usb/usb-testing]
[also build test WARNING on robh/for-next linus/master v5.15-rc7 next-20211029]
[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/Bryan-O-Donoghue/Add-pm8150b-TPCM-driver/20211029-010406
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
config: riscv-randconfig-c006-20211028 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 5db7568a6a1fcb408eb8988abdaff2a225a8eb72)
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 riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
# https://github.com/0day-ci/linux/commit/fe4e9d995058581a4428c9c5c91e848eab3beef5
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Bryan-O-Donoghue/Add-pm8150b-TPCM-driver/20211029-010406
git checkout fe4e9d995058581a4428c9c5c91e848eab3beef5
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv clang-analyzer
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
clang-analyzer warnings: (new ones prefixed by >>)
>> drivers/usb/typec/tcpm/qcom/qcom_pmic_tcpm_typec.c:214:2: warning: Value stored to 'debounced' is never read [clang-analyzer-deadcode.DeadStores]
debounced = !!(misc & TYPEC_DEBOUNCE_DONE);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/usb/typec/tcpm/qcom/qcom_pmic_tcpm_typec.c:308:2: warning: Value stored to 'orientation' is never read [clang-analyzer-deadcode.DeadStores]
orientation = !!(misc & CC_ORIENTATION);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/debounced +214 drivers/usb/typec/tcpm/qcom/qcom_pmic_tcpm_typec.c
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 199 int qcom_pmic_tcpm_typec_get_cc(struct pmic_typec *pmic_typec,
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 200 enum typec_cc_status *cc1,
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 201 enum typec_cc_status *cc2)
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 202 {
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 203 struct device *dev = pmic_typec->dev;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 204 unsigned int misc, val;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 205 bool attached, debounced;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 206 int ret = 0;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 207
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 208 ret = regmap_read(pmic_typec->regmap,
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 209 pmic_typec->base + TYPEC_MISC_STATUS_REG, &misc);
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 210 if (ret)
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 211 goto done;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 212
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 213 attached = !!(misc & CC_ATTACHED);
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 @214 debounced = !!(misc & TYPEC_DEBOUNCE_DONE);
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 215
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 216 if (pmic_typec->debouncing_cc) {
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 217 ret = -EBUSY;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 218 goto done;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 219 }
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 220
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 221 *cc1 = TYPEC_CC_OPEN;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 222 *cc2 = TYPEC_CC_OPEN;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 223
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 224 if (!(attached))
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 225 goto done;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 226
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 227 if (misc & SNK_SRC_MODE) {
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 228 ret = regmap_read(pmic_typec->regmap,
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 229 pmic_typec->base + TYPEC_SRC_STATUS_REG,
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 230 &val);
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 231 if (ret)
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 232 goto done;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 233 switch (val & DETECTED_SRC_TYPE_MASK) {
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 234 case SRC_RD_OPEN:
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 235 val = TYPEC_CC_RD;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 236 break;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 237 case SRC_RD_RA_VCONN:
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 238 val = TYPEC_CC_RD;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 239 *cc1 = TYPEC_CC_RA;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 240 *cc2 = TYPEC_CC_RA;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 241 break;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 242 default:
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 243 dev_warn(dev, "unexpected src status %.2x\n", val);
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 244 val = TYPEC_CC_RD;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 245 break;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 246 }
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 247 } else {
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 248 ret = regmap_read(pmic_typec->regmap,
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 249 pmic_typec->base + TYPEC_SNK_STATUS_REG,
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 250 &val);
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 251 if (ret)
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 252 goto done;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 253 switch (val & DETECTED_SNK_TYPE_MASK) {
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 254 case SNK_RP_STD:
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 255 val = TYPEC_CC_RP_DEF;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 256 break;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 257 case SNK_RP_1P5:
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 258 val = TYPEC_CC_RP_1_5;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 259 break;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 260 case SNK_RP_3P0:
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 261 val = TYPEC_CC_RP_3_0;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 262 break;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 263 default:
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 264 dev_warn(dev, "unexpected snk status %.2x\n", val);
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 265 val = TYPEC_CC_RP_DEF;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 266 break;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 267 }
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 268 val = TYPEC_CC_RP_DEF;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 269 }
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 270
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 271 if (misc & CC_ORIENTATION)
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 272 *cc2 = val;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 273 else
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 274 *cc1 = val;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 275
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 276 done:
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 277 dev_dbg(dev, "get_cc: misc 0x%08x cc1 0x%08x %s cc2 0x%08x %s attached %d cc=%s\n",
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 278 misc, *cc1, cc_to_name(*cc1), *cc2, cc_to_name(*cc2), !!(misc & CC_ATTACHED),
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 279 misc_to_cc(misc));
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 280
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 281 return ret;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 282 }
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 283
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 284 static void qcom_pmic_set_cc_debounce(struct pmic_typec *pmic_typec)
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 285 {
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 286 pmic_typec->debouncing_cc = true;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 287 schedule_delayed_work(&pmic_typec->cc_debounce_dwork,
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 288 msecs_to_jiffies(2));
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 289 }
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 290
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 291 int qcom_pmic_tcpm_typec_set_cc(struct pmic_typec *pmic_typec,
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 292 enum typec_cc_status cc)
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 293 {
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 294 struct device *dev = pmic_typec->dev;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 295 unsigned int mode, currsrc;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 296 unsigned int orientation, misc;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 297 unsigned long flags;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 298 int ret;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 299
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 300 spin_lock_irqsave(&pmic_typec->lock, flags);
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 301
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 302 ret = regmap_read(pmic_typec->regmap,
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 303 pmic_typec->base + TYPEC_MISC_STATUS_REG,
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 304 &misc);
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 305 if (ret)
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 306 goto done;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 307
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 @308 orientation = !!(misc & CC_ORIENTATION);
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 309
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 310 mode = EN_SRC_ONLY;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 311
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 312 switch (cc) {
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 313 case TYPEC_CC_OPEN:
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 314 currsrc = TYPEC_SRC_RP_SEL_80UA;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 315 break;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 316 case TYPEC_CC_RP_DEF:
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 317 currsrc = TYPEC_SRC_RP_SEL_80UA;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 318 break;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 319 case TYPEC_CC_RP_1_5:
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 320 currsrc = TYPEC_SRC_RP_SEL_180UA;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 321 break;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 322 case TYPEC_CC_RP_3_0:
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 323 currsrc = TYPEC_SRC_RP_SEL_330UA;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 324 break;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 325 case TYPEC_CC_RD:
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 326 currsrc = TYPEC_SRC_RP_SEL_80UA;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 327 mode = EN_SNK_ONLY;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 328 break;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 329 default:
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 330 dev_warn(dev, "unexpected set_cc %d\n", cc);
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 331 ret = -EINVAL;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 332 goto done;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 333 }
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 334
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 335 if (mode == EN_SRC_ONLY) {
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 336 ret = regmap_write(pmic_typec->regmap,
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 337 pmic_typec->base + TYPEC_CURRSRC_CFG_REG,
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 338 currsrc);
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 339 if (ret)
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 340 goto done;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 341 }
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 342
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 343 pmic_typec->cc = cc;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 344 qcom_pmic_set_cc_debounce(pmic_typec);
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 345 ret = 0;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 346
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 347 done:
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 348 spin_unlock_irqrestore(&pmic_typec->lock, flags);
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 349
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 350 dev_dbg(dev, "set_cc: currsrc=%x %s mode %s debounce %d attached %d cc=%s\n",
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 351 currsrc, rp_sel_to_name(currsrc),
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 352 mode == EN_SRC_ONLY ? "EN_SRC_ONLY" : "EN_SNK_ONLY",
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 353 pmic_typec->debouncing_cc, !!(misc & CC_ATTACHED),
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 354 misc_to_cc(misc));
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 355
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 356 return ret;
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 357 }
fe4e9d99505858 Bryan O'Donoghue 2021-10-28 358
---
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: 36135 bytes --]
next parent reply other threads:[~2021-11-05 5:45 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <202110301822.cMPH2aH0-lkp@intel.com>
2021-11-05 5:45 ` kernel test robot [this message]
2021-10-28 16:49 [RESEND PATCH v2 0/7] Add pm8150b TPCM driver Bryan O'Donoghue
2021-10-28 16:49 ` [RESEND PATCH v2 7/7] usb: typec: qcom: Add a pm8150b TCPM driver Bryan O'Donoghue
2021-10-29 16:40 ` 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=87094b86-c5c2-ed2e-344a-c70bae4c5bc5@intel.com \
--to=yujie.liu@intel.com \
--cc=bryan.odonoghue@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=kbuild-all@lists.01.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=llvm@lists.linux.dev \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox