From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5C61FECAAD3 for ; Wed, 7 Sep 2022 08:10:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E004B6B0072; Wed, 7 Sep 2022 04:10:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DB0106B0073; Wed, 7 Sep 2022 04:10:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C77AB8D0001; Wed, 7 Sep 2022 04:10:12 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id B854E6B0072 for ; Wed, 7 Sep 2022 04:10:12 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 9018EA109A for ; Wed, 7 Sep 2022 08:10:12 +0000 (UTC) X-FDA: 79884566664.23.2678EB0 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by imf27.hostedemail.com (Postfix) with ESMTP id D7DC3400B0 for ; Wed, 7 Sep 2022 08:10:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1662538210; x=1694074210; h=date:from:to:cc:subject:message-id:mime-version; bh=QpfmUg5NnYSnVZEAAw5b2+iwETFzPoZ2wITClRAt1O8=; b=P8IsZHd00oMCG8efxJz7oCz2QPDJUxdZyzRh0LRL9v4sUURyUKu2Y9g2 jMOyD383dtRSIhQ/NRqhVixCu3PqLNivcK/8NeF/KiRFFE1PwXA0uVWBS OEqk4UbiFDeltGAoFv33gIOe1z7y8+GGnrCU3OFCV/b4kEEeuQHNVmjoJ tiWyhueSo1S7G1had4CpK4+THg0VfdQW2xD2xbQEQvsNYCAoc9NJtbzvA kFkxWHSqo23o8Uh+AB0zVW+kh/+vnWfGguyLsINcQPX78PC3CRXbsF45B a7uam5xhURwmo+yGPI4mu6p7GlC0LL4OclTc827wR4HUXrTLBJ8psONfF g==; X-IronPort-AV: E=McAfee;i="6500,9779,10462"; a="277204151" X-IronPort-AV: E=Sophos;i="5.93,296,1654585200"; d="scan'208";a="277204151" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Sep 2022 01:10:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,296,1654585200"; d="scan'208";a="942796013" Received: from lkp-server02.sh.intel.com (HELO 95dfd251caa2) ([10.239.97.151]) by fmsmga005.fm.intel.com with ESMTP; 07 Sep 2022 01:10:08 -0700 Received: from kbuild by 95dfd251caa2 with local (Exim 4.96) (envelope-from ) id 1oVq8N-0006Jl-1q; Wed, 07 Sep 2022 08:10:07 +0000 Date: Wed, 7 Sep 2022 16:09:35 +0800 From: kernel test robot To: Igor Torrente Cc: kbuild-all@lists.01.org, Linux Memory Management List , Melissa Wen Subject: [linux-next:master 4880/5667] drivers/gpu/drm/vkms/vkms_formats.c:91:35: sparse: sparse: cast to restricted __le16 Message-ID: <202209071624.Tiz3qnm8-lkp@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=none ("invalid DKIM record") header.d=intel.com header.s=Intel header.b=P8IsZHd0; spf=pass (imf27.hostedemail.com: domain of lkp@intel.com designates 192.55.52.151 as permitted sender) smtp.mailfrom=lkp@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1662538212; a=rsa-sha256; cv=none; b=C4x+RG9uniPy9HHUoaR8Lpip3d6Wl2L1TfGRFIrO7Mb46wLk75K0EfUgwxCiAAlG9bAfwy /MvyU0UcHvIW0F8wmX+0j+MbcUyOBRZvsEMEC2KQyi0ck2zAHPZ+MIc0VCTrMrDK8XgtrU 4rYlakY5+yx2pxvrOiQSJvIceqW1vac= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1662538212; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=v2rJbcziGHMAhxXM6MU5IiAGhgMdyw3a4xlbOt6eKC0=; b=rPrVc46eoenfgiYJTE2hTPQHdEHuXRVYSY0JPCox/2eE/J2AQAuL3JU+HCBUH+67934lI9 xv7N8c2/EMOIi/rGRZ3zmhiU0KCfOBWD/7CUfdrvET0nTI5RXO6At5JZ16KRxSSe5suEz1 CBI5tu117jjWjAsG/UAo9nQT/rxdWg8= X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: D7DC3400B0 Authentication-Results: imf27.hostedemail.com; dkim=none ("invalid DKIM record") header.d=intel.com header.s=Intel header.b=P8IsZHd0; spf=pass (imf27.hostedemail.com: domain of lkp@intel.com designates 192.55.52.151 as permitted sender) smtp.mailfrom=lkp@intel.com; dmarc=pass (policy=none) header.from=intel.com X-Rspam-User: X-Stat-Signature: hoprq7r8z3czf9s4195ggm394jwu1isk X-HE-Tag: 1662538210-737634 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 840126e36e8ff272cb63158646433fa1324533d9 commit: 3675d8a1726337bd1e839a185e0a7ce0bc459b6b [4880/5667] drm: vkms: Adds XRGB_16161616 and ARGB_1616161616 formats config: csky-randconfig-s031-20220906 (https://download.01.org/0day-ci/archive/20220907/202209071624.Tiz3qnm8-lkp@intel.com/config) compiler: csky-linux-gcc (GCC) 12.1.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.4-39-gce1a6720-dirty # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=3675d8a1726337bd1e839a185e0a7ce0bc459b6b git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git fetch --no-tags linux-next master git checkout 3675d8a1726337bd1e839a185e0a7ce0bc459b6b # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=csky SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) >> drivers/gpu/drm/vkms/vkms_formats.c:91:35: sparse: sparse: cast to restricted __le16 drivers/gpu/drm/vkms/vkms_formats.c:92:35: sparse: sparse: cast to restricted __le16 drivers/gpu/drm/vkms/vkms_formats.c:93:35: sparse: sparse: cast to restricted __le16 drivers/gpu/drm/vkms/vkms_formats.c:94:35: sparse: sparse: cast to restricted __le16 drivers/gpu/drm/vkms/vkms_formats.c:109:35: sparse: sparse: cast to restricted __le16 drivers/gpu/drm/vkms/vkms_formats.c:110:35: sparse: sparse: cast to restricted __le16 drivers/gpu/drm/vkms/vkms_formats.c:111:35: sparse: sparse: cast to restricted __le16 >> drivers/gpu/drm/vkms/vkms_formats.c:177:31: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] @@ got restricted __le16 [usertype] @@ drivers/gpu/drm/vkms/vkms_formats.c:177:31: sparse: expected unsigned short [usertype] drivers/gpu/drm/vkms/vkms_formats.c:177:31: sparse: got restricted __le16 [usertype] drivers/gpu/drm/vkms/vkms_formats.c:178:31: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] @@ got restricted __le16 [usertype] @@ drivers/gpu/drm/vkms/vkms_formats.c:178:31: sparse: expected unsigned short [usertype] drivers/gpu/drm/vkms/vkms_formats.c:178:31: sparse: got restricted __le16 [usertype] drivers/gpu/drm/vkms/vkms_formats.c:179:31: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] @@ got restricted __le16 [usertype] @@ drivers/gpu/drm/vkms/vkms_formats.c:179:31: sparse: expected unsigned short [usertype] drivers/gpu/drm/vkms/vkms_formats.c:179:31: sparse: got restricted __le16 [usertype] drivers/gpu/drm/vkms/vkms_formats.c:180:31: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] @@ got restricted __le16 [usertype] @@ drivers/gpu/drm/vkms/vkms_formats.c:180:31: sparse: expected unsigned short [usertype] drivers/gpu/drm/vkms/vkms_formats.c:180:31: sparse: got restricted __le16 [usertype] drivers/gpu/drm/vkms/vkms_formats.c:195:31: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] @@ got restricted __le16 [usertype] @@ drivers/gpu/drm/vkms/vkms_formats.c:195:31: sparse: expected unsigned short [usertype] drivers/gpu/drm/vkms/vkms_formats.c:195:31: sparse: got restricted __le16 [usertype] drivers/gpu/drm/vkms/vkms_formats.c:196:31: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] @@ got restricted __le16 [usertype] @@ drivers/gpu/drm/vkms/vkms_formats.c:196:31: sparse: expected unsigned short [usertype] drivers/gpu/drm/vkms/vkms_formats.c:196:31: sparse: got restricted __le16 [usertype] drivers/gpu/drm/vkms/vkms_formats.c:197:31: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] @@ got restricted __le16 [usertype] @@ drivers/gpu/drm/vkms/vkms_formats.c:197:31: sparse: expected unsigned short [usertype] drivers/gpu/drm/vkms/vkms_formats.c:197:31: sparse: got restricted __le16 [usertype] vim +91 drivers/gpu/drm/vkms/vkms_formats.c 80 81 static void ARGB16161616_to_argb_u16(struct line_buffer *stage_buffer, 82 const struct vkms_frame_info *frame_info, 83 int y) 84 { 85 struct pixel_argb_u16 *out_pixels = stage_buffer->pixels; 86 u16 *src_pixels = get_packed_src_addr(frame_info, y); 87 int x_limit = min_t(size_t, drm_rect_width(&frame_info->dst), 88 stage_buffer->n_pixels); 89 90 for (size_t x = 0; x < x_limit; x++, src_pixels += 4) { > 91 out_pixels[x].a = le16_to_cpu(src_pixels[3]); 92 out_pixels[x].r = le16_to_cpu(src_pixels[2]); 93 out_pixels[x].g = le16_to_cpu(src_pixels[1]); 94 out_pixels[x].b = le16_to_cpu(src_pixels[0]); 95 } 96 } 97 98 static void XRGB16161616_to_argb_u16(struct line_buffer *stage_buffer, 99 const struct vkms_frame_info *frame_info, 100 int y) 101 { 102 struct pixel_argb_u16 *out_pixels = stage_buffer->pixels; 103 u16 *src_pixels = get_packed_src_addr(frame_info, y); 104 int x_limit = min_t(size_t, drm_rect_width(&frame_info->dst), 105 stage_buffer->n_pixels); 106 107 for (size_t x = 0; x < x_limit; x++, src_pixels += 4) { 108 out_pixels[x].a = (u16)0xffff; 109 out_pixels[x].r = le16_to_cpu(src_pixels[2]); 110 out_pixels[x].g = le16_to_cpu(src_pixels[1]); 111 out_pixels[x].b = le16_to_cpu(src_pixels[0]); 112 } 113 } 114 115 /* 116 * The following functions take an line of argb_u16 pixels from the 117 * src_buffer, convert them to a specific format, and store them in the 118 * destination. 119 * 120 * They are used in the `compose_active_planes` to convert and store a line 121 * from the src_buffer to the writeback buffer. 122 */ 123 static void argb_u16_to_ARGB8888(struct vkms_frame_info *frame_info, 124 const struct line_buffer *src_buffer, int y) 125 { 126 int x_dst = frame_info->dst.x1; 127 u8 *dst_pixels = packed_pixels_addr(frame_info, x_dst, y); 128 struct pixel_argb_u16 *in_pixels = src_buffer->pixels; 129 int x_limit = min_t(size_t, drm_rect_width(&frame_info->dst), 130 src_buffer->n_pixels); 131 132 for (size_t x = 0; x < x_limit; x++, dst_pixels += 4) { 133 /* 134 * This sequence below is important because the format's byte order is 135 * in little-endian. In the case of the ARGB8888 the memory is 136 * organized this way: 137 * 138 * | Addr | = blue channel 139 * | Addr + 1 | = green channel 140 * | Addr + 2 | = Red channel 141 * | Addr + 3 | = Alpha channel 142 */ 143 dst_pixels[3] = DIV_ROUND_CLOSEST(in_pixels[x].a, 257); 144 dst_pixels[2] = DIV_ROUND_CLOSEST(in_pixels[x].r, 257); 145 dst_pixels[1] = DIV_ROUND_CLOSEST(in_pixels[x].g, 257); 146 dst_pixels[0] = DIV_ROUND_CLOSEST(in_pixels[x].b, 257); 147 } 148 } 149 150 static void argb_u16_to_XRGB8888(struct vkms_frame_info *frame_info, 151 const struct line_buffer *src_buffer, int y) 152 { 153 int x_dst = frame_info->dst.x1; 154 u8 *dst_pixels = packed_pixels_addr(frame_info, x_dst, y); 155 struct pixel_argb_u16 *in_pixels = src_buffer->pixels; 156 int x_limit = min_t(size_t, drm_rect_width(&frame_info->dst), 157 src_buffer->n_pixels); 158 159 for (size_t x = 0; x < x_limit; x++, dst_pixels += 4) { 160 dst_pixels[3] = 0xff; 161 dst_pixels[2] = DIV_ROUND_CLOSEST(in_pixels[x].r, 257); 162 dst_pixels[1] = DIV_ROUND_CLOSEST(in_pixels[x].g, 257); 163 dst_pixels[0] = DIV_ROUND_CLOSEST(in_pixels[x].b, 257); 164 } 165 } 166 167 static void argb_u16_to_ARGB16161616(struct vkms_frame_info *frame_info, 168 const struct line_buffer *src_buffer, int y) 169 { 170 int x_dst = frame_info->dst.x1; 171 u16 *dst_pixels = packed_pixels_addr(frame_info, x_dst, y); 172 struct pixel_argb_u16 *in_pixels = src_buffer->pixels; 173 int x_limit = min_t(size_t, drm_rect_width(&frame_info->dst), 174 src_buffer->n_pixels); 175 176 for (size_t x = 0; x < x_limit; x++, dst_pixels += 4) { > 177 dst_pixels[3] = cpu_to_le16(in_pixels[x].a); 178 dst_pixels[2] = cpu_to_le16(in_pixels[x].r); 179 dst_pixels[1] = cpu_to_le16(in_pixels[x].g); 180 dst_pixels[0] = cpu_to_le16(in_pixels[x].b); 181 } 182 } 183 -- 0-DAY CI Kernel Test Service https://01.org/lkp