From: kernel test robot <lkp@intel.com>
To: Fenglin Wu <fenglin.wu@oss.qualcomm.com>,
linux-arm-msm@vger.kernel.org, Lee Jones <lee@kernel.org>,
Pavel Machek <pavel@kernel.org>,
Bjorn Andersson <andersson@kernel.org>,
Marijn Suijten <marijn.suijten@somainline.org>,
Anjelique Melendez <quic_amelende@quicinc.com>,
Guru Das Srinagesh <linux@gurudas.dev>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
David Collins <david.collins@oss.qualcomm.com>,
Subbaraman Narayanamurthy
<subbaraman.narayanamurthy@oss.qualcomm.com>,
Kamal Wadhwa <kamal.wadhwa@oss.qualcomm.com>,
kernel@oss.qualcomm.com, linux-leds@vger.kernel.org,
linux-kernel@vger.kernel.org,
Fenglin Wu <fenglin.wu@oss.qualcomm.com>
Subject: Re: [PATCH v3] leds: rgb: leds-qcom-lpg: Fix LED color balancing in HW pattern mode
Date: Mon, 29 Jun 2026 23:05:03 +0800 [thread overview]
Message-ID: <202606292317.3IsR1hhQ-lkp@intel.com> (raw)
In-Reply-To: <20260629-lpg-rgb-color-balance-fix-v3-1-17796a06d799@oss.qualcomm.com>
Hi Fenglin,
kernel test robot noticed the following build errors:
[auto build test ERROR on 1795fd2dbe84ef4d393b69a0b2a3b371f810bde5]
url: https://github.com/intel-lab-lkp/linux/commits/Fenglin-Wu/leds-rgb-leds-qcom-lpg-Fix-LED-color-balancing-in-HW-pattern-mode/20260629-180250
base: 1795fd2dbe84ef4d393b69a0b2a3b371f810bde5
patch link: https://lore.kernel.org/r/20260629-lpg-rgb-color-balance-fix-v3-1-17796a06d799%40oss.qualcomm.com
patch subject: [PATCH v3] leds: rgb: leds-qcom-lpg: Fix LED color balancing in HW pattern mode
config: hexagon-allmodconfig (https://download.01.org/0day-ci/archive/20260629/202606292317.3IsR1hhQ-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 6cc609bb250b21b47fc7d394b4019101e9983597)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260629/202606292317.3IsR1hhQ-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202606292317.3IsR1hhQ-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/leds/rgb/leds-qcom-lpg.c:1203:3: error: cannot jump from this goto statement to its label
1203 | goto free_pattern;
| ^
drivers/leds/rgb/leds-qcom-lpg.c:1216:2: note: jump bypasses initialization of variable with __attribute__((cleanup))
1216 | guard(mutex)(&lpg->lock);
| ^
include/linux/cleanup.h:422:2: note: expanded from macro 'guard'
422 | CLASS(_name, __UNIQUE_ID(guard))
| ^
include/linux/cleanup.h:303:3: note: expanded from macro 'CLASS'
303 | class_##_name##_constructor
| ^
<scratch space>:39:1: note: expanded from here
39 | class_mutex_constructor
| ^
note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/compiler_types.h:16:23: note: expanded from macro '__PASTE'
16 | #define __PASTE(a, b) ___PASTE(a, b)
| ^
include/linux/compiler_types.h:15:24: note: expanded from macro '___PASTE'
15 | #define ___PASTE(a, b) a##b
| ^
<scratch space>:45:1: note: expanded from here
45 | __UNIQUE_ID_unlock_324
| ^
drivers/leds/rgb/leds-qcom-lpg.c:1216:2: note: jump bypasses initialization of variable with __attribute__((cleanup))
include/linux/cleanup.h:422:15: note: expanded from macro 'guard'
422 | CLASS(_name, __UNIQUE_ID(guard))
| ^
include/linux/compiler.h:165:2: note: expanded from macro '__UNIQUE_ID'
165 | __PASTE(__UNIQUE_ID_, \
| ^
include/linux/compiler_types.h:16:23: note: expanded from macro '__PASTE'
16 | #define __PASTE(a, b) ___PASTE(a, b)
| ^
include/linux/compiler_types.h:15:24: note: expanded from macro '___PASTE'
15 | #define ___PASTE(a, b) a##b
| ^
<scratch space>:33:1: note: expanded from here
33 | __UNIQUE_ID_guard_323
| ^
1 error generated.
vim +1203 drivers/leds/rgb/leds-qcom-lpg.c
1177
1178 static int lpg_pattern_mc_set(struct led_classdev *cdev,
1179 struct led_pattern *led_pattern, u32 len,
1180 int repeat)
1181 {
1182 struct led_classdev_mc *mc = lcdev_to_mccdev(cdev);
1183 struct lpg_led *led = container_of(mc, struct lpg_led, mcdev);
1184 struct lpg *lpg = led->lpg;
1185 struct lpg_channel *chan;
1186 struct lpg_pattern pattern;
1187 unsigned int triled_mask = 0;
1188 unsigned int lo_idx;
1189 unsigned int hi_idx;
1190 unsigned int scale;
1191 unsigned int i, j;
1192 int ret;
1193
1194 ret = lpg_prepare_pattern(lpg, led_pattern, len, repeat, &pattern);
1195 if (ret < 0)
1196 return ret;
1197
1198 /* Allocate buffer for the per-channel scaled pattern copy */
1199 struct led_pattern *scaled __free(kfree) =
1200 kmalloc_array(pattern.len, sizeof(*scaled), GFP_KERNEL);
1201 if (!scaled) {
1202 ret = -ENOMEM;
> 1203 goto free_pattern;
1204 }
1205
1206 for (i = 0; i < led->num_channels; i++)
1207 triled_mask |= led->channels[i]->triled_mask;
1208 triled_set(lpg, triled_mask, 0);
1209
1210 led_mc_calc_color_components(mc, LED_FULL);
1211
1212 /*
1213 * Each channel gets its own LUT block scaled by subled_info[i].brightness
1214 * so the pattern respects the configured colour balance.
1215 */
1216 guard(mutex)(&lpg->lock);
1217
1218 for (i = 0; i < led->num_channels; i++) {
1219 chan = led->channels[i];
1220 scale = mc->subled_info[i].brightness;
1221
1222 for (j = 0; j < pattern.len; j++) {
1223 scaled[j].brightness = DIV_ROUND_CLOSEST(
1224 (u32)pattern.data[j].brightness * scale, LED_FULL);
1225 scaled[j].delta_t = pattern.data[j].delta_t;
1226 }
1227
1228 if (lpg->lut_base)
1229 ret = lpg_lut_store(lpg, scaled, pattern.len, &lo_idx, &hi_idx);
1230 else
1231 ret = lpg_lut_store_sdam(lpg, scaled, pattern.len, &lo_idx, &hi_idx);
1232
1233 if (ret < 0) {
1234 /* Free LUT slots already allocated for previous channels */
1235 while (i-- > 0) {
1236 chan = led->channels[i];
1237 lpg_lut_free(lpg, chan->pattern_lo_idx, chan->pattern_hi_idx);
1238 chan->pattern_lo_idx = 0;
1239 chan->pattern_hi_idx = 0;
1240 }
1241
1242 goto free_pattern;
1243 }
1244
1245 chan->ramp_tick_ms = pattern.delta_t;
1246 chan->ramp_ping_pong = pattern.ping_pong;
1247 chan->ramp_oneshot = repeat != -1;
1248 chan->ramp_lo_pause_ms = pattern.lo_pause;
1249 chan->ramp_hi_pause_ms = pattern.hi_pause;
1250 chan->pattern_lo_idx = lo_idx;
1251 chan->pattern_hi_idx = hi_idx;
1252 }
1253
1254 free_pattern:
1255 kfree(pattern.data);
1256 if (ret < 0)
1257 return ret;
1258
1259 lpg_brightness_set(led, cdev, mc->subled_info);
1260
1261 return 0;
1262 }
1263
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
prev parent reply other threads:[~2026-06-29 15:05 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-29 9:51 [PATCH v3] leds: rgb: leds-qcom-lpg: Fix LED color balancing in HW pattern mode Fenglin Wu
2026-06-29 10:01 ` sashiko-bot
2026-06-29 15:05 ` kernel test robot [this message]
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=202606292317.3IsR1hhQ-lkp@intel.com \
--to=lkp@intel.com \
--cc=andersson@kernel.org \
--cc=david.collins@oss.qualcomm.com \
--cc=fenglin.wu@oss.qualcomm.com \
--cc=kamal.wadhwa@oss.qualcomm.com \
--cc=kernel@oss.qualcomm.com \
--cc=lee@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=linux@gurudas.dev \
--cc=llvm@lists.linux.dev \
--cc=marijn.suijten@somainline.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=pavel@kernel.org \
--cc=quic_amelende@quicinc.com \
--cc=subbaraman.narayanamurthy@oss.qualcomm.com \
/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