From: kernel test robot <lkp@intel.com>
To: Corentin Labbe <clabbe@baylibre.com>,
mchehab@kernel.org, hverkuil@xs4all.nl,
gregkh@linuxfoundation.org
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
linux-kernel@vger.kernel.org, linux-media@vger.kernel.org,
linux-staging@lists.linux.dev, mjpeg-users@lists.sourceforge.net,
Corentin Labbe <clabbe@baylibre.com>
Subject: Re: [PATCH v2 04/10] staging: media: zoran: add debugfs
Date: Thu, 14 Oct 2021 19:18:44 +0800 [thread overview]
Message-ID: <202110141919.L3xLDIIE-lkp@intel.com> (raw)
In-Reply-To: <20211013185812.590931-5-clabbe@baylibre.com>
[-- Attachment #1: Type: text/plain, Size: 21047 bytes --]
Hi Corentin,
I love your patch! Perhaps something to improve:
[auto build test WARNING on staging/staging-testing]
url: https://github.com/0day-ci/linux/commits/Corentin-Labbe/staging-media-zoran-fusion-in-one-module/20211014-025945
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 6ac113f741a7674e4268eea3eb13972732d83571
config: x86_64-randconfig-a016-20211014 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 6c76d0101193aa4eb891a6954ff047eda2f9cf71)
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
# https://github.com/0day-ci/linux/commit/74fc116256f23b2c65d0c813f1d90b617ce9c97d
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Corentin-Labbe/staging-media-zoran-fusion-in-one-module/20211014-025945
git checkout 74fc116256f23b2c65d0c813f1d90b617ce9c97d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
drivers/staging/media/zoran/zoran_card.c:948:31: error: no member named 'dbgfs_dir' in 'struct zoran'
debugfs_remove_recursive(zr->dbgfs_dir);
~~ ^
>> drivers/staging/media/zoran/zoran_card.c:1141:46: warning: implicit conversion from 'unsigned long long' to 'unsigned int' changes value from 18446744073709551615 to 4294967295 [-Wconstant-conversion]
vb2_dma_contig_set_max_seg_size(&pdev->dev, DMA_BIT_MASK(32));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:76:40: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^~~~~
1 warning and 1 error generated.
vim +1141 drivers/staging/media/zoran/zoran_card.c
74fc116256f23b Corentin Labbe 2021-10-13 1088
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1089 /*
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1090 * Scan for a Buz card (actually for the PCI controller ZR36057),
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1091 * request the irq and map the io memory
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1092 */
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1093 static int zoran_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1094 {
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1095 unsigned char latency, need_latency;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1096 struct zoran *zr;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1097 int result;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1098 struct videocodec_master *master_vfe = NULL;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1099 struct videocodec_master *master_codec = NULL;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1100 int card_num;
d61c7451fcb712 Corentin Labbe 2020-09-25 1101 const char *codec_name, *vfe_name;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1102 unsigned int nr;
d4ae3689226e56 Corentin Labbe 2020-09-25 1103 int err;
d4ae3689226e56 Corentin Labbe 2020-09-25 1104
26edeeecea59d6 Corentin Labbe 2021-10-13 1105 pci_info(pdev, "Zoran MJPEG board driver version %s\n", ZORAN_VERSION);
26edeeecea59d6 Corentin Labbe 2021-10-13 1106
26edeeecea59d6 Corentin Labbe 2021-10-13 1107 /* check the parameters we have been given, adjust if necessary */
26edeeecea59d6 Corentin Labbe 2021-10-13 1108 if (v4l_nbufs < 2)
26edeeecea59d6 Corentin Labbe 2021-10-13 1109 v4l_nbufs = 2;
26edeeecea59d6 Corentin Labbe 2021-10-13 1110 if (v4l_nbufs > VIDEO_MAX_FRAME)
26edeeecea59d6 Corentin Labbe 2021-10-13 1111 v4l_nbufs = VIDEO_MAX_FRAME;
26edeeecea59d6 Corentin Labbe 2021-10-13 1112 /* The user specifies the in KB, we want them in byte (and page aligned) */
26edeeecea59d6 Corentin Labbe 2021-10-13 1113 v4l_bufsize = PAGE_ALIGN(v4l_bufsize * 1024);
26edeeecea59d6 Corentin Labbe 2021-10-13 1114 if (v4l_bufsize < 32768)
26edeeecea59d6 Corentin Labbe 2021-10-13 1115 v4l_bufsize = 32768;
26edeeecea59d6 Corentin Labbe 2021-10-13 1116 /* 2 MB is arbitrary but sufficient for the maximum possible images */
26edeeecea59d6 Corentin Labbe 2021-10-13 1117 if (v4l_bufsize > 2048 * 1024)
26edeeecea59d6 Corentin Labbe 2021-10-13 1118 v4l_bufsize = 2048 * 1024;
26edeeecea59d6 Corentin Labbe 2021-10-13 1119 if (jpg_nbufs < 4)
26edeeecea59d6 Corentin Labbe 2021-10-13 1120 jpg_nbufs = 4;
26edeeecea59d6 Corentin Labbe 2021-10-13 1121 if (jpg_nbufs > BUZ_MAX_FRAME)
26edeeecea59d6 Corentin Labbe 2021-10-13 1122 jpg_nbufs = BUZ_MAX_FRAME;
26edeeecea59d6 Corentin Labbe 2021-10-13 1123 jpg_bufsize = PAGE_ALIGN(jpg_bufsize * 1024);
26edeeecea59d6 Corentin Labbe 2021-10-13 1124 if (jpg_bufsize < 8192)
26edeeecea59d6 Corentin Labbe 2021-10-13 1125 jpg_bufsize = 8192;
26edeeecea59d6 Corentin Labbe 2021-10-13 1126 if (jpg_bufsize > (512 * 1024))
26edeeecea59d6 Corentin Labbe 2021-10-13 1127 jpg_bufsize = 512 * 1024;
26edeeecea59d6 Corentin Labbe 2021-10-13 1128 /* Use parameter for vidmem or try to find a video card */
26edeeecea59d6 Corentin Labbe 2021-10-13 1129 if (vidmem)
26edeeecea59d6 Corentin Labbe 2021-10-13 1130 pci_info(pdev, "%s: Using supplied video memory base address @ 0x%lx\n",
26edeeecea59d6 Corentin Labbe 2021-10-13 1131 ZORAN_NAME, vidmem);
26edeeecea59d6 Corentin Labbe 2021-10-13 1132
26edeeecea59d6 Corentin Labbe 2021-10-13 1133 /* some mainboards might not do PCI-PCI data transfer well */
26edeeecea59d6 Corentin Labbe 2021-10-13 1134 if (pci_pci_problems & (PCIPCI_FAIL | PCIAGP_FAIL | PCIPCI_ALIMAGIK))
26edeeecea59d6 Corentin Labbe 2021-10-13 1135 pci_warn(pdev, "%s: chipset does not support reliable PCI-PCI DMA\n",
26edeeecea59d6 Corentin Labbe 2021-10-13 1136 ZORAN_NAME);
26edeeecea59d6 Corentin Labbe 2021-10-13 1137
d4ae3689226e56 Corentin Labbe 2020-09-25 1138 err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
d4ae3689226e56 Corentin Labbe 2020-09-25 1139 if (err)
d4ae3689226e56 Corentin Labbe 2020-09-25 1140 return -ENODEV;
d4ae3689226e56 Corentin Labbe 2020-09-25 @1141 vb2_dma_contig_set_max_seg_size(&pdev->dev, DMA_BIT_MASK(32));
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1142
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1143 nr = zoran_num++;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1144 if (nr >= BUZ_MAX) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1145 pci_err(pdev, "driver limited to %d card(s) maximum\n", BUZ_MAX);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1146 return -ENOENT;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1147 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1148
6d1d9ba2c4396f Corentin Labbe 2020-09-25 1149 zr = devm_kzalloc(&pdev->dev, sizeof(*zr), GFP_KERNEL);
5e195bbddabdd9 Corentin Labbe 2020-09-25 1150 if (!zr)
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1151 return -ENOMEM;
5e195bbddabdd9 Corentin Labbe 2020-09-25 1152
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1153 zr->v4l2_dev.notify = zoran_subdev_notify;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1154 if (v4l2_device_register(&pdev->dev, &zr->v4l2_dev))
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1155 goto zr_free_mem;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1156 zr->pci_dev = pdev;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1157 zr->id = nr;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1158 snprintf(ZR_DEVNAME(zr), sizeof(ZR_DEVNAME(zr)), "MJPEG[%u]", zr->id);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1159 if (v4l2_ctrl_handler_init(&zr->hdl, 10))
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1160 goto zr_unreg;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1161 zr->v4l2_dev.ctrl_handler = &zr->hdl;
8cb356d4eaae11 Corentin Labbe 2020-09-25 1162 v4l2_ctrl_new_std(&zr->hdl, &zoran_video_ctrl_ops,
8cb356d4eaae11 Corentin Labbe 2020-09-25 1163 V4L2_CID_JPEG_COMPRESSION_QUALITY, 0,
8cb356d4eaae11 Corentin Labbe 2020-09-25 1164 100, 1, 50);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1165 spin_lock_init(&zr->spinlock);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1166 mutex_init(&zr->lock);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1167 if (pci_enable_device(pdev))
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1168 goto zr_unreg;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1169 zr->revision = zr->pci_dev->revision;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1170
9bb2720293a04f Corentin Labbe 2020-09-25 1171 pci_info(zr->pci_dev, "Zoran ZR360%c7 (rev %d), irq: %d, memory: 0x%08llx\n",
9bb2720293a04f Corentin Labbe 2020-09-25 1172 zr->revision < 2 ? '5' : '6', zr->revision,
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1173 zr->pci_dev->irq, (uint64_t)pci_resource_start(zr->pci_dev, 0));
9bb2720293a04f Corentin Labbe 2020-09-25 1174 if (zr->revision >= 2)
9bb2720293a04f Corentin Labbe 2020-09-25 1175 pci_info(zr->pci_dev, "Subsystem vendor=0x%04x id=0x%04x\n",
9bb2720293a04f Corentin Labbe 2020-09-25 1176 zr->pci_dev->subsystem_vendor, zr->pci_dev->subsystem_device);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1177
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1178 /* Use auto-detected card type? */
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1179 if (card[nr] == -1) {
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1180 if (zr->revision < 2) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1181 pci_err(pdev, "No card type specified, please use the card=X module parameter\n");
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1182 pci_err(pdev, "It is not possible to auto-detect ZR36057 based cards\n");
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1183 goto zr_unreg;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1184 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1185
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1186 card_num = ent->driver_data;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1187 if (card_num >= NUM_CARDS) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1188 pci_err(pdev, "Unknown card, try specifying card=X module parameter\n");
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1189 goto zr_unreg;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1190 }
daae1da762c1e3 Corentin Labbe 2020-09-25 1191 pci_info(zr->pci_dev, "%s() - card %s detected\n", __func__, zoran_cards[card_num].name);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1192 } else {
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1193 card_num = card[nr];
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1194 if (card_num >= NUM_CARDS || card_num < 0) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1195 pci_err(pdev, "User specified card type %d out of range (0 .. %d)\n",
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1196 card_num, NUM_CARDS - 1);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1197 goto zr_unreg;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1198 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1199 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1200
5e195bbddabdd9 Corentin Labbe 2020-09-25 1201 /*
5e195bbddabdd9 Corentin Labbe 2020-09-25 1202 * even though we make this a non pointer and thus
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1203 * theoretically allow for making changes to this struct
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1204 * on a per-individual card basis at runtime, this is
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1205 * strongly discouraged. This structure is intended to
5e195bbddabdd9 Corentin Labbe 2020-09-25 1206 * keep general card information, no settings or anything
5e195bbddabdd9 Corentin Labbe 2020-09-25 1207 */
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1208 zr->card = zoran_cards[card_num];
5e195bbddabdd9 Corentin Labbe 2020-09-25 1209 snprintf(ZR_DEVNAME(zr), sizeof(ZR_DEVNAME(zr)), "%s[%u]",
5e195bbddabdd9 Corentin Labbe 2020-09-25 1210 zr->card.name, zr->id);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1211
845556fd8027b8 Corentin Labbe 2020-09-25 1212 err = pci_request_regions(pdev, ZR_DEVNAME(zr));
845556fd8027b8 Corentin Labbe 2020-09-25 1213 if (err)
845556fd8027b8 Corentin Labbe 2020-09-25 1214 goto zr_unreg;
845556fd8027b8 Corentin Labbe 2020-09-25 1215
e83bf68b5827e0 Corentin Labbe 2020-09-25 1216 zr->zr36057_mem = devm_ioremap(&pdev->dev, pci_resource_start(pdev, 0), pci_resource_len(pdev, 0));
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1217 if (!zr->zr36057_mem) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1218 pci_err(pdev, "%s() - ioremap failed\n", __func__);
845556fd8027b8 Corentin Labbe 2020-09-25 1219 goto zr_pci_release;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1220 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1221
ce72671d5d2d93 Corentin Labbe 2020-09-25 1222 result = pci_request_irq(pdev, 0, zoran_irq, NULL, zr, ZR_DEVNAME(zr));
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1223 if (result < 0) {
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1224 if (result == -EINVAL) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1225 pci_err(pdev, "%s - bad IRQ number or handler\n", __func__);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1226 } else if (result == -EBUSY) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1227 pci_err(pdev, "%s - IRQ %d busy, change your PnP config in BIOS\n",
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1228 __func__, zr->pci_dev->irq);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1229 } else {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1230 pci_err(pdev, "%s - cannot assign IRQ, error code %d\n", __func__, result);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1231 }
e83bf68b5827e0 Corentin Labbe 2020-09-25 1232 goto zr_pci_release;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1233 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1234
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1235 /* set PCI latency timer */
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1236 pci_read_config_byte(zr->pci_dev, PCI_LATENCY_TIMER,
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1237 &latency);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1238 need_latency = zr->revision > 1 ? 32 : 48;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1239 if (latency != need_latency) {
9bb2720293a04f Corentin Labbe 2020-09-25 1240 pci_info(zr->pci_dev, "Changing PCI latency from %d to %d\n", latency, need_latency);
5e195bbddabdd9 Corentin Labbe 2020-09-25 1241 pci_write_config_byte(zr->pci_dev, PCI_LATENCY_TIMER, need_latency);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1242 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1243
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1244 zr36057_restart(zr);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1245 /* i2c */
9bb2720293a04f Corentin Labbe 2020-09-25 1246 pci_info(zr->pci_dev, "Initializing i2c bus...\n");
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1247
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1248 if (zoran_register_i2c(zr) < 0) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1249 pci_err(pdev, "%s - can't initialize i2c bus\n", __func__);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1250 goto zr_free_irq;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1251 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1252
5e195bbddabdd9 Corentin Labbe 2020-09-25 1253 zr->decoder = v4l2_i2c_new_subdev(&zr->v4l2_dev, &zr->i2c_adapter,
5e195bbddabdd9 Corentin Labbe 2020-09-25 1254 zr->card.i2c_decoder, 0,
5e195bbddabdd9 Corentin Labbe 2020-09-25 1255 zr->card.addrs_decoder);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1256
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1257 if (zr->card.i2c_encoder)
5e195bbddabdd9 Corentin Labbe 2020-09-25 1258 zr->encoder = v4l2_i2c_new_subdev(&zr->v4l2_dev, &zr->i2c_adapter,
5e195bbddabdd9 Corentin Labbe 2020-09-25 1259 zr->card.i2c_encoder, 0,
5e195bbddabdd9 Corentin Labbe 2020-09-25 1260 zr->card.addrs_encoder);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1261
9bb2720293a04f Corentin Labbe 2020-09-25 1262 pci_info(zr->pci_dev, "Initializing videocodec bus...\n");
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1263
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1264 if (zr->card.video_codec) {
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1265 codec_name = codecid_to_modulename(zr->card.video_codec);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1266 if (codec_name) {
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1267 result = request_module(codec_name);
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1268 if (result)
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1269 pci_err(pdev, "failed to load modules %s: %d\n", codec_name, result);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1270 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1271 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1272 if (zr->card.video_vfe) {
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1273 vfe_name = codecid_to_modulename(zr->card.video_vfe);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1274 if (vfe_name) {
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1275 result = request_module(vfe_name);
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1276 if (result < 0)
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1277 pci_err(pdev, "failed to load modules %s: %d\n", vfe_name, result);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1278 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1279 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1280
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1281 /* reset JPEG codec */
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1282 jpeg_codec_sleep(zr, 1);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1283 jpeg_codec_reset(zr);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1284 /* video bus enabled */
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1285 /* display codec revision */
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1286 if (zr->card.video_codec != 0) {
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1287 master_codec = zoran_setup_videocodec(zr, zr->card.video_codec);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1288 if (!master_codec)
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1289 goto zr_unreg_i2c;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1290 zr->codec = videocodec_attach(master_codec);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1291 if (!zr->codec) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1292 pci_err(pdev, "%s - no codec found\n", __func__);
4bae5db2f28d64 Corentin Labbe 2020-09-25 1293 goto zr_unreg_i2c;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1294 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1295 if (zr->codec->type != zr->card.video_codec) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1296 pci_err(pdev, "%s - wrong codec\n", __func__);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1297 goto zr_detach_codec;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1298 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1299 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1300 if (zr->card.video_vfe != 0) {
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1301 master_vfe = zoran_setup_videocodec(zr, zr->card.video_vfe);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1302 if (!master_vfe)
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1303 goto zr_detach_codec;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1304 zr->vfe = videocodec_attach(master_vfe);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1305 if (!zr->vfe) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1306 pci_err(pdev, "%s - no VFE found\n", __func__);
4bae5db2f28d64 Corentin Labbe 2020-09-25 1307 goto zr_detach_codec;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1308 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1309 if (zr->vfe->type != zr->card.video_vfe) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1310 pci_err(pdev, "%s = wrong VFE\n", __func__);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1311 goto zr_detach_vfe;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1312 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1313 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1314
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1315 /* take care of Natoma chipset and a revision 1 zr36057 */
83f89a8bcbc3c5 Corentin Labbe 2020-09-25 1316 if ((pci_pci_problems & PCIPCI_NATOMA) && zr->revision <= 1)
9bb2720293a04f Corentin Labbe 2020-09-25 1317 pci_info(zr->pci_dev, "ZR36057/Natoma bug, max. buffer size is 128K\n");
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1318
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1319 if (zr36057_init(zr) < 0)
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1320 goto zr_detach_vfe;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1321
b564cb6e0bd587 Corentin Labbe 2020-09-25 1322 zr->map_mode = ZORAN_MAP_MODE_RAW;
b564cb6e0bd587 Corentin Labbe 2020-09-25 1323
---
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: 40477 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v2 04/10] staging: media: zoran: add debugfs
Date: Thu, 14 Oct 2021 19:18:44 +0800 [thread overview]
Message-ID: <202110141919.L3xLDIIE-lkp@intel.com> (raw)
In-Reply-To: <20211013185812.590931-5-clabbe@baylibre.com>
[-- Attachment #1: Type: text/plain, Size: 21325 bytes --]
Hi Corentin,
I love your patch! Perhaps something to improve:
[auto build test WARNING on staging/staging-testing]
url: https://github.com/0day-ci/linux/commits/Corentin-Labbe/staging-media-zoran-fusion-in-one-module/20211014-025945
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 6ac113f741a7674e4268eea3eb13972732d83571
config: x86_64-randconfig-a016-20211014 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 6c76d0101193aa4eb891a6954ff047eda2f9cf71)
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
# https://github.com/0day-ci/linux/commit/74fc116256f23b2c65d0c813f1d90b617ce9c97d
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Corentin-Labbe/staging-media-zoran-fusion-in-one-module/20211014-025945
git checkout 74fc116256f23b2c65d0c813f1d90b617ce9c97d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
drivers/staging/media/zoran/zoran_card.c:948:31: error: no member named 'dbgfs_dir' in 'struct zoran'
debugfs_remove_recursive(zr->dbgfs_dir);
~~ ^
>> drivers/staging/media/zoran/zoran_card.c:1141:46: warning: implicit conversion from 'unsigned long long' to 'unsigned int' changes value from 18446744073709551615 to 4294967295 [-Wconstant-conversion]
vb2_dma_contig_set_max_seg_size(&pdev->dev, DMA_BIT_MASK(32));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:76:40: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^~~~~
1 warning and 1 error generated.
vim +1141 drivers/staging/media/zoran/zoran_card.c
74fc116256f23b Corentin Labbe 2021-10-13 1088
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1089 /*
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1090 * Scan for a Buz card (actually for the PCI controller ZR36057),
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1091 * request the irq and map the io memory
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1092 */
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1093 static int zoran_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1094 {
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1095 unsigned char latency, need_latency;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1096 struct zoran *zr;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1097 int result;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1098 struct videocodec_master *master_vfe = NULL;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1099 struct videocodec_master *master_codec = NULL;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1100 int card_num;
d61c7451fcb712 Corentin Labbe 2020-09-25 1101 const char *codec_name, *vfe_name;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1102 unsigned int nr;
d4ae3689226e56 Corentin Labbe 2020-09-25 1103 int err;
d4ae3689226e56 Corentin Labbe 2020-09-25 1104
26edeeecea59d6 Corentin Labbe 2021-10-13 1105 pci_info(pdev, "Zoran MJPEG board driver version %s\n", ZORAN_VERSION);
26edeeecea59d6 Corentin Labbe 2021-10-13 1106
26edeeecea59d6 Corentin Labbe 2021-10-13 1107 /* check the parameters we have been given, adjust if necessary */
26edeeecea59d6 Corentin Labbe 2021-10-13 1108 if (v4l_nbufs < 2)
26edeeecea59d6 Corentin Labbe 2021-10-13 1109 v4l_nbufs = 2;
26edeeecea59d6 Corentin Labbe 2021-10-13 1110 if (v4l_nbufs > VIDEO_MAX_FRAME)
26edeeecea59d6 Corentin Labbe 2021-10-13 1111 v4l_nbufs = VIDEO_MAX_FRAME;
26edeeecea59d6 Corentin Labbe 2021-10-13 1112 /* The user specifies the in KB, we want them in byte (and page aligned) */
26edeeecea59d6 Corentin Labbe 2021-10-13 1113 v4l_bufsize = PAGE_ALIGN(v4l_bufsize * 1024);
26edeeecea59d6 Corentin Labbe 2021-10-13 1114 if (v4l_bufsize < 32768)
26edeeecea59d6 Corentin Labbe 2021-10-13 1115 v4l_bufsize = 32768;
26edeeecea59d6 Corentin Labbe 2021-10-13 1116 /* 2 MB is arbitrary but sufficient for the maximum possible images */
26edeeecea59d6 Corentin Labbe 2021-10-13 1117 if (v4l_bufsize > 2048 * 1024)
26edeeecea59d6 Corentin Labbe 2021-10-13 1118 v4l_bufsize = 2048 * 1024;
26edeeecea59d6 Corentin Labbe 2021-10-13 1119 if (jpg_nbufs < 4)
26edeeecea59d6 Corentin Labbe 2021-10-13 1120 jpg_nbufs = 4;
26edeeecea59d6 Corentin Labbe 2021-10-13 1121 if (jpg_nbufs > BUZ_MAX_FRAME)
26edeeecea59d6 Corentin Labbe 2021-10-13 1122 jpg_nbufs = BUZ_MAX_FRAME;
26edeeecea59d6 Corentin Labbe 2021-10-13 1123 jpg_bufsize = PAGE_ALIGN(jpg_bufsize * 1024);
26edeeecea59d6 Corentin Labbe 2021-10-13 1124 if (jpg_bufsize < 8192)
26edeeecea59d6 Corentin Labbe 2021-10-13 1125 jpg_bufsize = 8192;
26edeeecea59d6 Corentin Labbe 2021-10-13 1126 if (jpg_bufsize > (512 * 1024))
26edeeecea59d6 Corentin Labbe 2021-10-13 1127 jpg_bufsize = 512 * 1024;
26edeeecea59d6 Corentin Labbe 2021-10-13 1128 /* Use parameter for vidmem or try to find a video card */
26edeeecea59d6 Corentin Labbe 2021-10-13 1129 if (vidmem)
26edeeecea59d6 Corentin Labbe 2021-10-13 1130 pci_info(pdev, "%s: Using supplied video memory base address @ 0x%lx\n",
26edeeecea59d6 Corentin Labbe 2021-10-13 1131 ZORAN_NAME, vidmem);
26edeeecea59d6 Corentin Labbe 2021-10-13 1132
26edeeecea59d6 Corentin Labbe 2021-10-13 1133 /* some mainboards might not do PCI-PCI data transfer well */
26edeeecea59d6 Corentin Labbe 2021-10-13 1134 if (pci_pci_problems & (PCIPCI_FAIL | PCIAGP_FAIL | PCIPCI_ALIMAGIK))
26edeeecea59d6 Corentin Labbe 2021-10-13 1135 pci_warn(pdev, "%s: chipset does not support reliable PCI-PCI DMA\n",
26edeeecea59d6 Corentin Labbe 2021-10-13 1136 ZORAN_NAME);
26edeeecea59d6 Corentin Labbe 2021-10-13 1137
d4ae3689226e56 Corentin Labbe 2020-09-25 1138 err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
d4ae3689226e56 Corentin Labbe 2020-09-25 1139 if (err)
d4ae3689226e56 Corentin Labbe 2020-09-25 1140 return -ENODEV;
d4ae3689226e56 Corentin Labbe 2020-09-25 @1141 vb2_dma_contig_set_max_seg_size(&pdev->dev, DMA_BIT_MASK(32));
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1142
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1143 nr = zoran_num++;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1144 if (nr >= BUZ_MAX) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1145 pci_err(pdev, "driver limited to %d card(s) maximum\n", BUZ_MAX);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1146 return -ENOENT;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1147 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1148
6d1d9ba2c4396f Corentin Labbe 2020-09-25 1149 zr = devm_kzalloc(&pdev->dev, sizeof(*zr), GFP_KERNEL);
5e195bbddabdd9 Corentin Labbe 2020-09-25 1150 if (!zr)
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1151 return -ENOMEM;
5e195bbddabdd9 Corentin Labbe 2020-09-25 1152
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1153 zr->v4l2_dev.notify = zoran_subdev_notify;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1154 if (v4l2_device_register(&pdev->dev, &zr->v4l2_dev))
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1155 goto zr_free_mem;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1156 zr->pci_dev = pdev;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1157 zr->id = nr;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1158 snprintf(ZR_DEVNAME(zr), sizeof(ZR_DEVNAME(zr)), "MJPEG[%u]", zr->id);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1159 if (v4l2_ctrl_handler_init(&zr->hdl, 10))
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1160 goto zr_unreg;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1161 zr->v4l2_dev.ctrl_handler = &zr->hdl;
8cb356d4eaae11 Corentin Labbe 2020-09-25 1162 v4l2_ctrl_new_std(&zr->hdl, &zoran_video_ctrl_ops,
8cb356d4eaae11 Corentin Labbe 2020-09-25 1163 V4L2_CID_JPEG_COMPRESSION_QUALITY, 0,
8cb356d4eaae11 Corentin Labbe 2020-09-25 1164 100, 1, 50);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1165 spin_lock_init(&zr->spinlock);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1166 mutex_init(&zr->lock);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1167 if (pci_enable_device(pdev))
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1168 goto zr_unreg;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1169 zr->revision = zr->pci_dev->revision;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1170
9bb2720293a04f Corentin Labbe 2020-09-25 1171 pci_info(zr->pci_dev, "Zoran ZR360%c7 (rev %d), irq: %d, memory: 0x%08llx\n",
9bb2720293a04f Corentin Labbe 2020-09-25 1172 zr->revision < 2 ? '5' : '6', zr->revision,
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1173 zr->pci_dev->irq, (uint64_t)pci_resource_start(zr->pci_dev, 0));
9bb2720293a04f Corentin Labbe 2020-09-25 1174 if (zr->revision >= 2)
9bb2720293a04f Corentin Labbe 2020-09-25 1175 pci_info(zr->pci_dev, "Subsystem vendor=0x%04x id=0x%04x\n",
9bb2720293a04f Corentin Labbe 2020-09-25 1176 zr->pci_dev->subsystem_vendor, zr->pci_dev->subsystem_device);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1177
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1178 /* Use auto-detected card type? */
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1179 if (card[nr] == -1) {
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1180 if (zr->revision < 2) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1181 pci_err(pdev, "No card type specified, please use the card=X module parameter\n");
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1182 pci_err(pdev, "It is not possible to auto-detect ZR36057 based cards\n");
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1183 goto zr_unreg;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1184 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1185
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1186 card_num = ent->driver_data;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1187 if (card_num >= NUM_CARDS) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1188 pci_err(pdev, "Unknown card, try specifying card=X module parameter\n");
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1189 goto zr_unreg;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1190 }
daae1da762c1e3 Corentin Labbe 2020-09-25 1191 pci_info(zr->pci_dev, "%s() - card %s detected\n", __func__, zoran_cards[card_num].name);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1192 } else {
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1193 card_num = card[nr];
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1194 if (card_num >= NUM_CARDS || card_num < 0) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1195 pci_err(pdev, "User specified card type %d out of range (0 .. %d)\n",
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1196 card_num, NUM_CARDS - 1);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1197 goto zr_unreg;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1198 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1199 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1200
5e195bbddabdd9 Corentin Labbe 2020-09-25 1201 /*
5e195bbddabdd9 Corentin Labbe 2020-09-25 1202 * even though we make this a non pointer and thus
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1203 * theoretically allow for making changes to this struct
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1204 * on a per-individual card basis@runtime, this is
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1205 * strongly discouraged. This structure is intended to
5e195bbddabdd9 Corentin Labbe 2020-09-25 1206 * keep general card information, no settings or anything
5e195bbddabdd9 Corentin Labbe 2020-09-25 1207 */
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1208 zr->card = zoran_cards[card_num];
5e195bbddabdd9 Corentin Labbe 2020-09-25 1209 snprintf(ZR_DEVNAME(zr), sizeof(ZR_DEVNAME(zr)), "%s[%u]",
5e195bbddabdd9 Corentin Labbe 2020-09-25 1210 zr->card.name, zr->id);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1211
845556fd8027b8 Corentin Labbe 2020-09-25 1212 err = pci_request_regions(pdev, ZR_DEVNAME(zr));
845556fd8027b8 Corentin Labbe 2020-09-25 1213 if (err)
845556fd8027b8 Corentin Labbe 2020-09-25 1214 goto zr_unreg;
845556fd8027b8 Corentin Labbe 2020-09-25 1215
e83bf68b5827e0 Corentin Labbe 2020-09-25 1216 zr->zr36057_mem = devm_ioremap(&pdev->dev, pci_resource_start(pdev, 0), pci_resource_len(pdev, 0));
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1217 if (!zr->zr36057_mem) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1218 pci_err(pdev, "%s() - ioremap failed\n", __func__);
845556fd8027b8 Corentin Labbe 2020-09-25 1219 goto zr_pci_release;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1220 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1221
ce72671d5d2d93 Corentin Labbe 2020-09-25 1222 result = pci_request_irq(pdev, 0, zoran_irq, NULL, zr, ZR_DEVNAME(zr));
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1223 if (result < 0) {
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1224 if (result == -EINVAL) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1225 pci_err(pdev, "%s - bad IRQ number or handler\n", __func__);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1226 } else if (result == -EBUSY) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1227 pci_err(pdev, "%s - IRQ %d busy, change your PnP config in BIOS\n",
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1228 __func__, zr->pci_dev->irq);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1229 } else {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1230 pci_err(pdev, "%s - cannot assign IRQ, error code %d\n", __func__, result);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1231 }
e83bf68b5827e0 Corentin Labbe 2020-09-25 1232 goto zr_pci_release;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1233 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1234
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1235 /* set PCI latency timer */
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1236 pci_read_config_byte(zr->pci_dev, PCI_LATENCY_TIMER,
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1237 &latency);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1238 need_latency = zr->revision > 1 ? 32 : 48;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1239 if (latency != need_latency) {
9bb2720293a04f Corentin Labbe 2020-09-25 1240 pci_info(zr->pci_dev, "Changing PCI latency from %d to %d\n", latency, need_latency);
5e195bbddabdd9 Corentin Labbe 2020-09-25 1241 pci_write_config_byte(zr->pci_dev, PCI_LATENCY_TIMER, need_latency);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1242 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1243
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1244 zr36057_restart(zr);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1245 /* i2c */
9bb2720293a04f Corentin Labbe 2020-09-25 1246 pci_info(zr->pci_dev, "Initializing i2c bus...\n");
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1247
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1248 if (zoran_register_i2c(zr) < 0) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1249 pci_err(pdev, "%s - can't initialize i2c bus\n", __func__);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1250 goto zr_free_irq;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1251 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1252
5e195bbddabdd9 Corentin Labbe 2020-09-25 1253 zr->decoder = v4l2_i2c_new_subdev(&zr->v4l2_dev, &zr->i2c_adapter,
5e195bbddabdd9 Corentin Labbe 2020-09-25 1254 zr->card.i2c_decoder, 0,
5e195bbddabdd9 Corentin Labbe 2020-09-25 1255 zr->card.addrs_decoder);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1256
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1257 if (zr->card.i2c_encoder)
5e195bbddabdd9 Corentin Labbe 2020-09-25 1258 zr->encoder = v4l2_i2c_new_subdev(&zr->v4l2_dev, &zr->i2c_adapter,
5e195bbddabdd9 Corentin Labbe 2020-09-25 1259 zr->card.i2c_encoder, 0,
5e195bbddabdd9 Corentin Labbe 2020-09-25 1260 zr->card.addrs_encoder);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1261
9bb2720293a04f Corentin Labbe 2020-09-25 1262 pci_info(zr->pci_dev, "Initializing videocodec bus...\n");
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1263
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1264 if (zr->card.video_codec) {
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1265 codec_name = codecid_to_modulename(zr->card.video_codec);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1266 if (codec_name) {
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1267 result = request_module(codec_name);
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1268 if (result)
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1269 pci_err(pdev, "failed to load modules %s: %d\n", codec_name, result);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1270 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1271 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1272 if (zr->card.video_vfe) {
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1273 vfe_name = codecid_to_modulename(zr->card.video_vfe);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1274 if (vfe_name) {
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1275 result = request_module(vfe_name);
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1276 if (result < 0)
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1277 pci_err(pdev, "failed to load modules %s: %d\n", vfe_name, result);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1278 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1279 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1280
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1281 /* reset JPEG codec */
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1282 jpeg_codec_sleep(zr, 1);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1283 jpeg_codec_reset(zr);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1284 /* video bus enabled */
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1285 /* display codec revision */
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1286 if (zr->card.video_codec != 0) {
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1287 master_codec = zoran_setup_videocodec(zr, zr->card.video_codec);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1288 if (!master_codec)
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1289 goto zr_unreg_i2c;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1290 zr->codec = videocodec_attach(master_codec);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1291 if (!zr->codec) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1292 pci_err(pdev, "%s - no codec found\n", __func__);
4bae5db2f28d64 Corentin Labbe 2020-09-25 1293 goto zr_unreg_i2c;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1294 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1295 if (zr->codec->type != zr->card.video_codec) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1296 pci_err(pdev, "%s - wrong codec\n", __func__);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1297 goto zr_detach_codec;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1298 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1299 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1300 if (zr->card.video_vfe != 0) {
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1301 master_vfe = zoran_setup_videocodec(zr, zr->card.video_vfe);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1302 if (!master_vfe)
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1303 goto zr_detach_codec;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1304 zr->vfe = videocodec_attach(master_vfe);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1305 if (!zr->vfe) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1306 pci_err(pdev, "%s - no VFE found\n", __func__);
4bae5db2f28d64 Corentin Labbe 2020-09-25 1307 goto zr_detach_codec;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1308 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1309 if (zr->vfe->type != zr->card.video_vfe) {
b7c3b2bb9db412 Corentin Labbe 2020-09-25 1310 pci_err(pdev, "%s = wrong VFE\n", __func__);
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1311 goto zr_detach_vfe;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1312 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1313 }
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1314
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1315 /* take care of Natoma chipset and a revision 1 zr36057 */
83f89a8bcbc3c5 Corentin Labbe 2020-09-25 1316 if ((pci_pci_problems & PCIPCI_NATOMA) && zr->revision <= 1)
9bb2720293a04f Corentin Labbe 2020-09-25 1317 pci_info(zr->pci_dev, "ZR36057/Natoma bug, max. buffer size is 128K\n");
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1318
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1319 if (zr36057_init(zr) < 0)
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1320 goto zr_detach_vfe;
61c3b19f7b9eb7 Corentin Labbe 2020-09-25 1321
b564cb6e0bd587 Corentin Labbe 2020-09-25 1322 zr->map_mode = ZORAN_MAP_MODE_RAW;
b564cb6e0bd587 Corentin Labbe 2020-09-25 1323
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 40477 bytes --]
next prev parent reply other threads:[~2021-10-14 11:19 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-13 18:58 [PATCH v2 00/10] staging: media: zoran: fusion in one module Corentin Labbe
2021-10-13 18:58 ` [PATCH v2 01/10] staging: media: zoran: move module parameter checks to zoran_probe Corentin Labbe
2021-10-13 18:58 ` [PATCH v2 02/10] staging: media: zoran: use module_pci_driver Corentin Labbe
2021-10-13 18:58 ` [PATCH v2 03/10] staging: media: zoran: rename debug module parameter Corentin Labbe
2021-10-13 18:58 ` [PATCH v2 04/10] staging: media: zoran: add debugfs Corentin Labbe
2021-10-14 7:37 ` Dan Carpenter
2021-10-17 20:05 ` LABBE Corentin
2021-11-02 17:40 ` Dan Carpenter
2021-11-02 21:29 ` LABBE Corentin
2021-10-14 11:18 ` kernel test robot [this message]
2021-10-14 11:18 ` kernel test robot
2021-10-13 18:58 ` [PATCH v2 05/10] staging: media: zoran: videocode: remove procfs Corentin Labbe
2021-10-13 18:58 ` [PATCH v2 06/10] staging: media: zoran: fusion all modules Corentin Labbe
2021-10-14 7:56 ` Dan Carpenter
2021-10-14 8:01 ` Dan Carpenter
2021-10-17 19:57 ` LABBE Corentin
2021-10-13 18:58 ` [PATCH v2 07/10] staging: media: zoran: remove vidmem Corentin Labbe
2021-10-13 18:58 ` [PATCH v2 08/10] staging: media: zoran: move videodev alloc Corentin Labbe
2021-10-13 18:58 ` [PATCH v2 09/10] staging: media: zoran: move config select on primary kconfig Corentin Labbe
2021-10-13 18:58 ` [PATCH v2 10/10] staging: media: zoran: introduce zoran_i2c_init Corentin Labbe
2021-10-18 9:55 ` [PATCH v2 00/10] staging: media: zoran: fusion in one module Hans Verkuil
2021-10-25 14:06 ` LABBE Corentin
2021-10-25 12:45 ` Hans Verkuil
2021-10-25 14:21 ` LABBE Corentin
2021-10-25 15:13 ` Hans Verkuil
2021-10-25 18:25 ` LABBE Corentin
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=202110141919.L3xLDIIE-lkp@intel.com \
--to=lkp@intel.com \
--cc=clabbe@baylibre.com \
--cc=gregkh@linuxfoundation.org \
--cc=hverkuil@xs4all.nl \
--cc=kbuild-all@lists.01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-staging@lists.linux.dev \
--cc=llvm@lists.linux.dev \
--cc=mchehab@kernel.org \
--cc=mjpeg-users@lists.sourceforge.net \
/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.