2023-05-31 11:19:32

by Lu Hongfei

[permalink] [raw]
Subject: [PATCH] gpu: drm/panel: Optimize the workflow of s6d7aa0_lock

This patch optimized s6d7aa0_lock's workflow.
Once mipi_dsi_dcs_write_seq failed, s6d7aa0_lock return immediately
and no further actions will be taken.

Fixes: 6810bb390282 ("drm/panel: Add Samsung S6D7AA0 panel controller driver")

Signed-off-by: Lu Hongfei <[email protected]>
---
drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c | 30 ++++++++++++++-----
1 file changed, 22 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c b/drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c
index 102e1fc7ee38..f98df32d1c55
--- a/drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c
@@ -69,15 +69,29 @@ static int s6d7aa0_lock(struct s6d7aa0 *ctx, bool lock)
int ret = 0;

if (lock) {
- mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD1, 0xa5, 0xa5);
- mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD2, 0xa5, 0xa5);
- if (ctx->desc->use_passwd3)
- mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD3, 0x5a, 0x5a);
+ ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD1, 0xa5, 0xa5);
+ if (ret < 0)
+ return ret;
+ ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD2, 0xa5, 0xa5);
+ if (ret < 0)
+ return ret;
+ if (ctx->desc->use_passwd3) {
+ ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD3, 0x5a, 0x5a);
+ if (ret < 0)
+ return ret;
+ }
} else {
- mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD1, 0x5a, 0x5a);
- mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD2, 0x5a, 0x5a);
- if (ctx->desc->use_passwd3)
- mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD3, 0xa5, 0xa5);
+ ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD1, 0x5a, 0x5a);
+ if (ret < 0)
+ return ret;
+ ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD2, 0x5a, 0x5a);
+ if (ret < 0)
+ return ret;
+ if (ctx->desc->use_passwd3) {
+ ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD3, 0xa5, 0xa5);
+ if (ret < 0)
+ return ret;
+ }
}

return ret;
--
2.39.0



2023-05-31 12:05:21

by Neil Armstrong

[permalink] [raw]
Subject: Re: [PATCH] gpu: drm/panel: Optimize the workflow of s6d7aa0_lock

Hi,

On 31/05/2023 13:07, Lu Hongfei wrote:
> This patch optimized s6d7aa0_lock's workflow.
> Once mipi_dsi_dcs_write_seq failed, s6d7aa0_lock return immediately
> and no further actions will be taken.
>
> Fixes: 6810bb390282 ("drm/panel: Add Samsung S6D7AA0 panel controller driver")
>
> Signed-off-by: Lu Hongfei <[email protected]>
> ---
> drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c | 30 ++++++++++++++-----
> 1 file changed, 22 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c b/drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c
> index 102e1fc7ee38..f98df32d1c55
> --- a/drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c
> @@ -69,15 +69,29 @@ static int s6d7aa0_lock(struct s6d7aa0 *ctx, bool lock)
> int ret = 0;
>
> if (lock) {
> - mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD1, 0xa5, 0xa5);
> - mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD2, 0xa5, 0xa5);
> - if (ctx->desc->use_passwd3)
> - mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD3, 0x5a, 0x5a);
> + ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD1, 0xa5, 0xa5);
> + if (ret < 0)
> + return ret;

mipi_dsi_dcs_write_seq() is a macro that already calls "return ret" on error,
so this is wrong, and there's nothing wrong with the currently upstream driver.

Neil

> + ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD2, 0xa5, 0xa5);
> + if (ret < 0)
> + return ret;
> + if (ctx->desc->use_passwd3) {
> + ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD3, 0x5a, 0x5a);
> + if (ret < 0)
> + return ret;
> + }
> } else {
> - mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD1, 0x5a, 0x5a);
> - mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD2, 0x5a, 0x5a);
> - if (ctx->desc->use_passwd3)
> - mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD3, 0xa5, 0xa5);
> + ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD1, 0x5a, 0x5a);
> + if (ret < 0)
> + return ret;
> + ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD2, 0x5a, 0x5a);
> + if (ret < 0)
> + return ret;
> + if (ctx->desc->use_passwd3) {
> + ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD3, 0xa5, 0xa5);
> + if (ret < 0)
> + return ret;
> + }
> }
>
> return ret;


2023-06-01 15:21:29

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] gpu: drm/panel: Optimize the workflow of s6d7aa0_lock

Hi Lu,

kernel test robot noticed the following build errors:

[auto build test ERROR on drm-misc/drm-misc-next]
[also build test ERROR on next-20230601]
[cannot apply to linus/master v6.4-rc4]
[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#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Lu-Hongfei/gpu-drm-panel-Optimize-the-workflow-of-s6d7aa0_lock/20230531-190848
base: git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
patch link: https://lore.kernel.org/r/20230531110717.36896-1-luhongfei%40vivo.com
patch subject: [PATCH] gpu: drm/panel: Optimize the workflow of s6d7aa0_lock
config: powerpc-allmodconfig (https://download.01.org/0day-ci/archive/20230601/[email protected]/config)
compiler: powerpc-linux-gcc (GCC) 12.3.0
reproduce (this is a W=1 build):
mkdir -p ~/bin
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/e1ade7d20fb0efb9aa0b332d5ac5da2863f8e68e
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Lu-Hongfei/gpu-drm-panel-Optimize-the-workflow-of-s6d7aa0_lock/20230531-190848
git checkout e1ade7d20fb0efb9aa0b332d5ac5da2863f8e68e
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.3.0 ~/bin/make.cross W=1 O=build_dir ARCH=powerpc olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.3.0 ~/bin/make.cross W=1 O=build_dir ARCH=powerpc SHELL=/bin/bash drivers/gpu/drm/panel/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All errors (new ones prefixed by >>):

In file included from drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:17:
drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c: In function 's6d7aa0_lock':
>> include/drm/drm_mipi_dsi.h:326:9: error: expected expression before 'do'
326 | do { \
| ^~
drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:72:23: note: in expansion of macro 'mipi_dsi_dcs_write_seq'
72 | ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD1, 0xa5, 0xa5);
| ^~~~~~~~~~~~~~~~~~~~~~
>> include/drm/drm_mipi_dsi.h:326:9: error: expected expression before 'do'
326 | do { \
| ^~
drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:75:23: note: in expansion of macro 'mipi_dsi_dcs_write_seq'
75 | ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD2, 0xa5, 0xa5);
| ^~~~~~~~~~~~~~~~~~~~~~
>> include/drm/drm_mipi_dsi.h:326:9: error: expected expression before 'do'
326 | do { \
| ^~
drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:79:31: note: in expansion of macro 'mipi_dsi_dcs_write_seq'
79 | ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD3, 0x5a, 0x5a);
| ^~~~~~~~~~~~~~~~~~~~~~
>> include/drm/drm_mipi_dsi.h:326:9: error: expected expression before 'do'
326 | do { \
| ^~
drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:84:23: note: in expansion of macro 'mipi_dsi_dcs_write_seq'
84 | ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD1, 0x5a, 0x5a);
| ^~~~~~~~~~~~~~~~~~~~~~
>> include/drm/drm_mipi_dsi.h:326:9: error: expected expression before 'do'
326 | do { \
| ^~
drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:87:23: note: in expansion of macro 'mipi_dsi_dcs_write_seq'
87 | ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD2, 0x5a, 0x5a);
| ^~~~~~~~~~~~~~~~~~~~~~
>> include/drm/drm_mipi_dsi.h:326:9: error: expected expression before 'do'
326 | do { \
| ^~
drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:91:31: note: in expansion of macro 'mipi_dsi_dcs_write_seq'
91 | ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD3, 0xa5, 0xa5);
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:68:33: warning: unused variable 'dsi' [-Wunused-variable]
68 | struct mipi_dsi_device *dsi = ctx->dsi;
| ^~~


vim +/do +326 include/drm/drm_mipi_dsi.h

3d9a8fcf1c6a90 Thierry Reding 2014-08-05 268
960dd616f61c84 Thierry Reding 2014-07-21 269 ssize_t mipi_dsi_dcs_write_buffer(struct mipi_dsi_device *dsi,
960dd616f61c84 Thierry Reding 2014-07-21 270 const void *data, size_t len);
960dd616f61c84 Thierry Reding 2014-07-21 271 ssize_t mipi_dsi_dcs_write(struct mipi_dsi_device *dsi, u8 cmd,
960dd616f61c84 Thierry Reding 2014-07-21 272 const void *data, size_t len);
3c523d7d38a17b Thierry Reding 2014-07-21 273 ssize_t mipi_dsi_dcs_read(struct mipi_dsi_device *dsi, u8 cmd, void *data,
3c523d7d38a17b Thierry Reding 2014-07-21 274 size_t len);
083d573fd013c9 Thierry Reding 2014-08-05 275 int mipi_dsi_dcs_nop(struct mipi_dsi_device *dsi);
2f16b89737e24b Thierry Reding 2014-08-05 276 int mipi_dsi_dcs_soft_reset(struct mipi_dsi_device *dsi);
3d9a8fcf1c6a90 Thierry Reding 2014-08-05 277 int mipi_dsi_dcs_get_power_mode(struct mipi_dsi_device *dsi, u8 *mode);
5cc0af16fc08cf Thierry Reding 2014-08-05 278 int mipi_dsi_dcs_get_pixel_format(struct mipi_dsi_device *dsi, u8 *format);
42fe1e755d08b8 YoungJun Cho 2014-08-05 279 int mipi_dsi_dcs_enter_sleep_mode(struct mipi_dsi_device *dsi);
42fe1e755d08b8 YoungJun Cho 2014-08-05 280 int mipi_dsi_dcs_exit_sleep_mode(struct mipi_dsi_device *dsi);
42fe1e755d08b8 YoungJun Cho 2014-08-05 281 int mipi_dsi_dcs_set_display_off(struct mipi_dsi_device *dsi);
42fe1e755d08b8 YoungJun Cho 2014-08-05 282 int mipi_dsi_dcs_set_display_on(struct mipi_dsi_device *dsi);
3b46d4a0def157 Thierry Reding 2014-08-05 283 int mipi_dsi_dcs_set_column_address(struct mipi_dsi_device *dsi, u16 start,
3b46d4a0def157 Thierry Reding 2014-08-05 284 u16 end);
3b46d4a0def157 Thierry Reding 2014-08-05 285 int mipi_dsi_dcs_set_page_address(struct mipi_dsi_device *dsi, u16 start,
3b46d4a0def157 Thierry Reding 2014-08-05 286 u16 end);
42fe1e755d08b8 YoungJun Cho 2014-08-05 287 int mipi_dsi_dcs_set_tear_off(struct mipi_dsi_device *dsi);
42fe1e755d08b8 YoungJun Cho 2014-08-05 288 int mipi_dsi_dcs_set_tear_on(struct mipi_dsi_device *dsi,
42fe1e755d08b8 YoungJun Cho 2014-08-05 289 enum mipi_dsi_dcs_tear_mode mode);
5cc0af16fc08cf Thierry Reding 2014-08-05 290 int mipi_dsi_dcs_set_pixel_format(struct mipi_dsi_device *dsi, u8 format);
bbdcf516a6187d Thierry Reding 2016-08-24 291 int mipi_dsi_dcs_set_tear_scanline(struct mipi_dsi_device *dsi, u16 scanline);
1a9d759331b832 Vinay Simha BN 2016-07-31 292 int mipi_dsi_dcs_set_display_brightness(struct mipi_dsi_device *dsi,
1a9d759331b832 Vinay Simha BN 2016-07-31 293 u16 brightness);
1a9d759331b832 Vinay Simha BN 2016-07-31 294 int mipi_dsi_dcs_get_display_brightness(struct mipi_dsi_device *dsi,
1a9d759331b832 Vinay Simha BN 2016-07-31 295 u16 *brightness);
c9d27c6be518b4 Daniel Mentz 2023-01-16 296 int mipi_dsi_dcs_set_display_brightness_large(struct mipi_dsi_device *dsi,
c9d27c6be518b4 Daniel Mentz 2023-01-16 297 u16 brightness);
c9d27c6be518b4 Daniel Mentz 2023-01-16 298 int mipi_dsi_dcs_get_display_brightness_large(struct mipi_dsi_device *dsi,
c9d27c6be518b4 Daniel Mentz 2023-01-16 299 u16 *brightness);
068a0023396983 Andrzej Hajda 2013-12-04 300
a9015ce593204f Javier Martinez Canillas 2023-01-02 301 /**
a9015ce593204f Javier Martinez Canillas 2023-01-02 302 * mipi_dsi_generic_write_seq - transmit data using a generic write packet
a9015ce593204f Javier Martinez Canillas 2023-01-02 303 * @dsi: DSI peripheral device
a9015ce593204f Javier Martinez Canillas 2023-01-02 304 * @seq: buffer containing the payload
a9015ce593204f Javier Martinez Canillas 2023-01-02 305 */
a9015ce593204f Javier Martinez Canillas 2023-01-02 306 #define mipi_dsi_generic_write_seq(dsi, seq...) \
a9015ce593204f Javier Martinez Canillas 2023-01-02 307 do { \
a9015ce593204f Javier Martinez Canillas 2023-01-02 308 static const u8 d[] = { seq }; \
a9015ce593204f Javier Martinez Canillas 2023-01-02 309 struct device *dev = &dsi->dev; \
a9015ce593204f Javier Martinez Canillas 2023-01-02 310 int ret; \
a9015ce593204f Javier Martinez Canillas 2023-01-02 311 ret = mipi_dsi_generic_write(dsi, d, ARRAY_SIZE(d)); \
a9015ce593204f Javier Martinez Canillas 2023-01-02 312 if (ret < 0) { \
a9015ce593204f Javier Martinez Canillas 2023-01-02 313 dev_err_ratelimited(dev, "transmit data failed: %d\n", \
a9015ce593204f Javier Martinez Canillas 2023-01-02 314 ret); \
a9015ce593204f Javier Martinez Canillas 2023-01-02 315 return ret; \
a9015ce593204f Javier Martinez Canillas 2023-01-02 316 } \
a9015ce593204f Javier Martinez Canillas 2023-01-02 317 } while (0)
a9015ce593204f Javier Martinez Canillas 2023-01-02 318
2a9e9daf75231c Joel Selvaraj 2022-06-01 319 /**
2a9e9daf75231c Joel Selvaraj 2022-06-01 320 * mipi_dsi_dcs_write_seq - transmit a DCS command with payload
2a9e9daf75231c Joel Selvaraj 2022-06-01 321 * @dsi: DSI peripheral device
2a9e9daf75231c Joel Selvaraj 2022-06-01 322 * @cmd: Command
2a9e9daf75231c Joel Selvaraj 2022-06-01 323 * @seq: buffer containing data to be transmitted
2a9e9daf75231c Joel Selvaraj 2022-06-01 324 */
51d3c0e7dc3cf1 Javier Martinez Canillas 2023-01-02 325 #define mipi_dsi_dcs_write_seq(dsi, cmd, seq...) \
51d3c0e7dc3cf1 Javier Martinez Canillas 2023-01-02 @326 do { \
2a9e9daf75231c Joel Selvaraj 2022-06-01 327 static const u8 d[] = { cmd, seq }; \
2a9e9daf75231c Joel Selvaraj 2022-06-01 328 struct device *dev = &dsi->dev; \
2a9e9daf75231c Joel Selvaraj 2022-06-01 329 int ret; \
2a9e9daf75231c Joel Selvaraj 2022-06-01 330 ret = mipi_dsi_dcs_write_buffer(dsi, d, ARRAY_SIZE(d)); \
2a9e9daf75231c Joel Selvaraj 2022-06-01 331 if (ret < 0) { \
51d3c0e7dc3cf1 Javier Martinez Canillas 2023-01-02 332 dev_err_ratelimited( \
51d3c0e7dc3cf1 Javier Martinez Canillas 2023-01-02 333 dev, "sending command %#02x failed: %d\n", \
51d3c0e7dc3cf1 Javier Martinez Canillas 2023-01-02 334 cmd, ret); \
2a9e9daf75231c Joel Selvaraj 2022-06-01 335 return ret; \
2a9e9daf75231c Joel Selvaraj 2022-06-01 336 } \
2a9e9daf75231c Joel Selvaraj 2022-06-01 337 } while (0)
2a9e9daf75231c Joel Selvaraj 2022-06-01 338

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

2023-06-01 16:14:53

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] gpu: drm/panel: Optimize the workflow of s6d7aa0_lock

Hi Lu,

kernel test robot noticed the following build warnings:

[auto build test WARNING on drm-misc/drm-misc-next]
[also build test WARNING on next-20230601]
[cannot apply to linus/master v6.4-rc4]
[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#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Lu-Hongfei/gpu-drm-panel-Optimize-the-workflow-of-s6d7aa0_lock/20230531-190848
base: git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
patch link: https://lore.kernel.org/r/20230531110717.36896-1-luhongfei%40vivo.com
patch subject: [PATCH] gpu: drm/panel: Optimize the workflow of s6d7aa0_lock
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20230601/[email protected]/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build):
# https://github.com/intel-lab-lkp/linux/commit/e1ade7d20fb0efb9aa0b332d5ac5da2863f8e68e
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Lu-Hongfei/gpu-drm-panel-Optimize-the-workflow-of-s6d7aa0_lock/20230531-190848
git checkout e1ade7d20fb0efb9aa0b332d5ac5da2863f8e68e
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 O=build_dir ARCH=x86_64 olddefconfig
make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/gpu/drm/panel/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All warnings (new ones prefixed by >>):

In file included from drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:17:
drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c: In function 's6d7aa0_lock':
include/drm/drm_mipi_dsi.h:326:9: error: expected expression before 'do'
326 | do { \
| ^~
drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:72:23: note: in expansion of macro 'mipi_dsi_dcs_write_seq'
72 | ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD1, 0xa5, 0xa5);
| ^~~~~~~~~~~~~~~~~~~~~~
include/drm/drm_mipi_dsi.h:326:9: error: expected expression before 'do'
326 | do { \
| ^~
drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:75:23: note: in expansion of macro 'mipi_dsi_dcs_write_seq'
75 | ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD2, 0xa5, 0xa5);
| ^~~~~~~~~~~~~~~~~~~~~~
include/drm/drm_mipi_dsi.h:326:9: error: expected expression before 'do'
326 | do { \
| ^~
drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:79:31: note: in expansion of macro 'mipi_dsi_dcs_write_seq'
79 | ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD3, 0x5a, 0x5a);
| ^~~~~~~~~~~~~~~~~~~~~~
include/drm/drm_mipi_dsi.h:326:9: error: expected expression before 'do'
326 | do { \
| ^~
drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:84:23: note: in expansion of macro 'mipi_dsi_dcs_write_seq'
84 | ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD1, 0x5a, 0x5a);
| ^~~~~~~~~~~~~~~~~~~~~~
include/drm/drm_mipi_dsi.h:326:9: error: expected expression before 'do'
326 | do { \
| ^~
drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:87:23: note: in expansion of macro 'mipi_dsi_dcs_write_seq'
87 | ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD2, 0x5a, 0x5a);
| ^~~~~~~~~~~~~~~~~~~~~~
include/drm/drm_mipi_dsi.h:326:9: error: expected expression before 'do'
326 | do { \
| ^~
drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:91:31: note: in expansion of macro 'mipi_dsi_dcs_write_seq'
91 | ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD3, 0xa5, 0xa5);
| ^~~~~~~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c:68:33: warning: unused variable 'dsi' [-Wunused-variable]
68 | struct mipi_dsi_device *dsi = ctx->dsi;
| ^~~


vim +/dsi +68 drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c

6810bb390282bb Artur Weber 2023-05-19 65
6810bb390282bb Artur Weber 2023-05-19 66 static int s6d7aa0_lock(struct s6d7aa0 *ctx, bool lock)
6810bb390282bb Artur Weber 2023-05-19 67 {
6810bb390282bb Artur Weber 2023-05-19 @68 struct mipi_dsi_device *dsi = ctx->dsi;
6810bb390282bb Artur Weber 2023-05-19 69 int ret = 0;
6810bb390282bb Artur Weber 2023-05-19 70
6810bb390282bb Artur Weber 2023-05-19 71 if (lock) {
e1ade7d20fb0ef Lu Hongfei 2023-05-31 72 ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD1, 0xa5, 0xa5);
e1ade7d20fb0ef Lu Hongfei 2023-05-31 73 if (ret < 0)
e1ade7d20fb0ef Lu Hongfei 2023-05-31 74 return ret;
e1ade7d20fb0ef Lu Hongfei 2023-05-31 75 ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD2, 0xa5, 0xa5);
e1ade7d20fb0ef Lu Hongfei 2023-05-31 76 if (ret < 0)
e1ade7d20fb0ef Lu Hongfei 2023-05-31 77 return ret;
e1ade7d20fb0ef Lu Hongfei 2023-05-31 78 if (ctx->desc->use_passwd3) {
e1ade7d20fb0ef Lu Hongfei 2023-05-31 79 ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD3, 0x5a, 0x5a);
e1ade7d20fb0ef Lu Hongfei 2023-05-31 80 if (ret < 0)
e1ade7d20fb0ef Lu Hongfei 2023-05-31 81 return ret;
e1ade7d20fb0ef Lu Hongfei 2023-05-31 82 }
6810bb390282bb Artur Weber 2023-05-19 83 } else {
e1ade7d20fb0ef Lu Hongfei 2023-05-31 84 ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD1, 0x5a, 0x5a);
e1ade7d20fb0ef Lu Hongfei 2023-05-31 85 if (ret < 0)
e1ade7d20fb0ef Lu Hongfei 2023-05-31 86 return ret;
e1ade7d20fb0ef Lu Hongfei 2023-05-31 87 ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD2, 0x5a, 0x5a);
e1ade7d20fb0ef Lu Hongfei 2023-05-31 88 if (ret < 0)
e1ade7d20fb0ef Lu Hongfei 2023-05-31 89 return ret;
e1ade7d20fb0ef Lu Hongfei 2023-05-31 90 if (ctx->desc->use_passwd3) {
e1ade7d20fb0ef Lu Hongfei 2023-05-31 91 ret = mipi_dsi_dcs_write_seq(dsi, MCS_PASSWD3, 0xa5, 0xa5);
e1ade7d20fb0ef Lu Hongfei 2023-05-31 92 if (ret < 0)
e1ade7d20fb0ef Lu Hongfei 2023-05-31 93 return ret;
e1ade7d20fb0ef Lu Hongfei 2023-05-31 94 }
6810bb390282bb Artur Weber 2023-05-19 95 }
6810bb390282bb Artur Weber 2023-05-19 96
6810bb390282bb Artur Weber 2023-05-19 97 return ret;
6810bb390282bb Artur Weber 2023-05-19 98 }
6810bb390282bb Artur Weber 2023-05-19 99

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki