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 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.