From: kernel test robot <lkp@intel.com>
To: Wesley Cheng <wcheng@codeaurora.org>,
heikki.krogerus@linux.intel.com, gregkh@linuxfoundation.org,
mark.rutland@arm.com, robh+dt@kernel.org, agross@kernel.org,
bjorn.andersson@linaro.org
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
linux-usb@vger.kernel.org
Subject: Re: [PATCH 1/3] usb: typec: Add QCOM PMIC typec detection driver
Date: Wed, 10 Jun 2020 09:25:34 +0800 [thread overview]
Message-ID: <202006100937.st7V5Pyj%lkp@intel.com> (raw)
In-Reply-To: <20200609205851.30113-2-wcheng@codeaurora.org>
[-- Attachment #1: Type: text/plain, Size: 7277 bytes --]
Hi Wesley,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on usb/usb-testing]
[also build test ERROR on robh/for-next v5.7 next-20200609]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Wesley-Cheng/Introduce-PMIC-based-USB-type-C-detection/20200610-050045
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
config: arm-allyesconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
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
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All error/warnings (new ones prefixed by >>, old ones prefixed by <<):
>> drivers/usb/typec/qcom-pmic-typec.c:86:6: warning: no previous prototype for 'qcom_pmic_typec_bh_work' [-Wmissing-prototypes]
86 | void qcom_pmic_typec_bh_work(struct work_struct *w)
| ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/usb/typec/qcom-pmic-typec.c:116:13: warning: no previous prototype for 'qcom_pmic_typec_interrupt' [-Wmissing-prototypes]
116 | irqreturn_t qcom_pmic_typec_interrupt(int irq, void *_qcom_usb)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/usb/typec/qcom-pmic-typec.c:7:
drivers/usb/typec/qcom-pmic-typec.c: In function 'qcom_pmic_typec_typec_hw_init':
>> include/linux/build_bug.h:16:51: error: negative width in bit-field '<anonymous>'
16 | #define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
| ^
include/linux/regmap.h:84:36: note: in definition of macro 'regmap_update_bits'
84 | regmap_update_bits_base(map, reg, mask, val, NULL, false, false)
| ^~~~
include/linux/bits.h:25:3: note: in expansion of macro 'BUILD_BUG_ON_ZERO'
25 | (BUILD_BUG_ON_ZERO(__builtin_choose_expr( | ^~~~~~~~~~~~~~~~~
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~~~~~~~~~~~
>> drivers/usb/typec/qcom-pmic-typec.c:48:34: note: in expansion of macro 'GENMASK'
48 | #define TYPEC_INTR_EN_CFG_1_MASK GENMASK(0, 7)
| ^~~~~~~
>> drivers/usb/typec/qcom-pmic-typec.c:132:7: note: in expansion of macro 'TYPEC_INTR_EN_CFG_1_MASK'
132 | TYPEC_INTR_EN_CFG_1_MASK, 0);
| ^~~~~~~~~~~~~~~~~~~~~~~~
vim +/qcom_pmic_typec_bh_work +86 drivers/usb/typec/qcom-pmic-typec.c
31
32 #define TYPEC_BASE 0x1500
33 #define TYPEC_MISC_STATUS (TYPEC_BASE + 0xb)
34 #define CC_ATTACHED BIT(0)
35 #define CC_ORIENTATION BIT(1)
36 #define SNK_SRC_MODE BIT(6)
37 #define TYPEC_MODE_CFG (TYPEC_BASE + 0x44)
38 #define TYPEC_DISABLE_CMD BIT(0)
39 #define EN_SNK_ONLY BIT(1)
40 #define EN_SRC_ONLY BIT(2)
41 #define EN_TRY_SNK BIT(4)
42 #define TYPEC_VCONN_CONTROL (TYPEC_BASE + 0x46)
43 #define VCONN_EN_SRC BIT(0)
44 #define VCONN_EN_VAL BIT(1)
45 #define TYPEC_EXIT_STATE_CFG (TYPEC_BASE + 0x50)
46 #define SEL_SRC_UPPER_REF BIT(2)
47 #define TYPEC_INTR_EN_CFG_1 (TYPEC_BASE + 0x5e)
> 48 #define TYPEC_INTR_EN_CFG_1_MASK GENMASK(0, 7)
49
50 struct qcom_pmic_typec {
51 struct device *dev;
52 struct fwnode_handle *fwnode;
53 struct regmap *regmap;
54 struct work_struct bh_work;
55
56 struct typec_capability *cap;
57 struct typec_port *port;
58 struct usb_role_switch *role_sw;
59
60 struct regulator_desc usb_vbus_rdesc;
61 struct regulator_dev *usb_vbus_reg;
62 };
63
64 static int qcom_pmic_typec_vbus_enable(struct qcom_pmic_typec *qcom_usb)
65 {
66 int rc;
67
68 rc = regmap_update_bits(qcom_usb->regmap, CMD_OTG, OTG_EN, OTG_EN);
69 if (rc)
70 dev_err(qcom_usb->dev, "failed to update OTG_CTL\n");
71
72 return rc;
73 }
74
75 static int qcom_pmic_typec_vbus_disable(struct qcom_pmic_typec *qcom_usb)
76 {
77 int rc;
78
79 rc = regmap_update_bits(qcom_usb->regmap, CMD_OTG, OTG_EN, 0);
80 if (rc)
81 dev_err(qcom_usb->dev, "failed to update OTG_CTL\n");
82
83 return rc;
84 }
85
> 86 void qcom_pmic_typec_bh_work(struct work_struct *w)
87 {
88 struct qcom_pmic_typec *qcom_usb = container_of(w,
89 struct qcom_pmic_typec,
90 bh_work);
91 enum typec_orientation orientation;
92 enum usb_role role;
93 unsigned int stat;
94
95 regmap_read(qcom_usb->regmap, TYPEC_MISC_STATUS, &stat);
96
97 if (stat & CC_ATTACHED) {
98 orientation = ((stat & CC_ORIENTATION) >> 1) ?
99 TYPEC_ORIENTATION_REVERSE :
100 TYPEC_ORIENTATION_NORMAL;
101 typec_set_orientation(qcom_usb->port, orientation);
102
103 role = (stat & SNK_SRC_MODE) ? USB_ROLE_HOST : USB_ROLE_DEVICE;
104 if (role == USB_ROLE_HOST)
105 qcom_pmic_typec_vbus_enable(qcom_usb);
106 else
107 qcom_pmic_typec_vbus_disable(qcom_usb);
108
109 usb_role_switch_set_role(qcom_usb->role_sw, role);
110 } else {
111 usb_role_switch_set_role(qcom_usb->role_sw, USB_ROLE_NONE);
112 qcom_pmic_typec_vbus_disable(qcom_usb);
113 }
114 }
115
> 116 irqreturn_t qcom_pmic_typec_interrupt(int irq, void *_qcom_usb)
117 {
118 struct qcom_pmic_typec *qcom_usb = _qcom_usb;
119
120 queue_work(system_power_efficient_wq, &qcom_usb->bh_work);
121
122 return IRQ_HANDLED;
123 }
124
125 static void qcom_pmic_typec_typec_hw_init(struct qcom_pmic_typec *qcom_usb)
126 {
127 u8 mode;
128
129 regmap_update_bits(qcom_usb->regmap, TYPE_C_CFG_REG, BC12_START_ON_CC,
130 0);
131 regmap_update_bits(qcom_usb->regmap, TYPEC_INTR_EN_CFG_1,
> 132 TYPEC_INTR_EN_CFG_1_MASK, 0);
133
134 if (qcom_usb->cap->type != TYPEC_PORT_DRP)
135 mode = (qcom_usb->cap->type == TYPEC_PORT_SNK) ?
136 EN_SNK_ONLY : EN_SRC_ONLY;
137 else
138 mode = EN_TRY_SNK;
139 regmap_update_bits(qcom_usb->regmap, TYPEC_MODE_CFG,
140 EN_SNK_ONLY | EN_TRY_SNK | EN_SRC_ONLY, mode);
141
142 regmap_update_bits(qcom_usb->regmap, TYPEC_VCONN_CONTROL,
143 VCONN_EN_SRC | VCONN_EN_VAL, VCONN_EN_SRC);
144 regmap_update_bits(qcom_usb->regmap, TYPEC_VCONN_CONTROL,
145 VCONN_EN_SRC | VCONN_EN_VAL, VCONN_EN_SRC);
146 regmap_update_bits(qcom_usb->regmap, TYPEC_EXIT_STATE_CFG,
147 SEL_SRC_UPPER_REF, SEL_SRC_UPPER_REF);
148 regmap_update_bits(qcom_usb->regmap, OTG_CFG, OTG_EN_SRC_CFG,
149 OTG_EN_SRC_CFG);
150 }
151
---
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: 74956 bytes --]
next prev parent reply other threads:[~2020-06-10 2:38 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-09 20:58 [PATCH 0/3] Introduce PMIC based USB type C detection Wesley Cheng
2020-06-09 20:58 ` [PATCH 1/3] usb: typec: Add QCOM PMIC typec detection driver Wesley Cheng
2020-06-09 21:20 ` Randy Dunlap
2020-06-12 4:15 ` Wesley Cheng
2020-06-10 1:20 ` Jack Pham
2020-06-10 19:37 ` Bjorn Andersson
2020-06-12 4:19 ` Wesley Cheng
2020-06-10 1:25 ` kernel test robot [this message]
2020-06-10 2:27 ` Jun Li
2020-06-12 4:17 ` Wesley Cheng
2020-06-09 20:58 ` [PATCH 2/3] dt-bindings: usb: Add Qualcomm PMIC type C controller dt-binding Wesley Cheng
2020-06-09 20:58 ` [PATCH 3/3] arm64: boot: dts: qcom: pm8150b: Add node for USB type C block Wesley Cheng
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=202006100937.st7V5Pyj%lkp@intel.com \
--to=lkp@intel.com \
--cc=agross@kernel.org \
--cc=bjorn.andersson@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=heikki.krogerus@linux.intel.com \
--cc=kbuild-all@lists.01.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=robh+dt@kernel.org \
--cc=wcheng@codeaurora.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).