CC: [email protected] CC: [email protected] CC: [email protected] TO: Sakari Ailus <[email protected]> CC: Mauro Carvalho Chehab <[email protected]> CC: [email protected]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 923dcc5eb0c111eccd51cc7ce1658537e3c38b25 commit: b24cc2a18c50e4e315abc76a86b26b4c49652f79 media: smiapp: Rename as "ccs" date: 12 months ago :::::: branch date: 14 hours ago :::::: commit date: 12 months ago config: x86_64-randconfig-c007-20211119 (attached as .config) 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://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b24cc2a18c50e4e315abc76a86b26b4c49652f79 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout b24cc2a18c50e4e315abc76a86b26b4c49652f79 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 clang-analyzer If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) ^ drivers/nvdimm/security.c:530:9: note: Taking false branch } else if (i == OP_DISABLE) { ^ drivers/nvdimm/security.c:533:13: note: 'i' is not equal to OP_UPDATE } else if (i == OP_UPDATE || i == OP_MASTER_UPDATE) { ^ drivers/nvdimm/security.c:533:13: note: Left side of '||' is false drivers/nvdimm/security.c:533:31: note: 'i' is not equal to OP_MASTER_UPDATE } else if (i == OP_UPDATE || i == OP_MASTER_UPDATE) { ^ drivers/nvdimm/security.c:533:9: note: Taking false branch } else if (i == OP_UPDATE || i == OP_MASTER_UPDATE) { ^ drivers/nvdimm/security.c:537:13: note: 'i' is equal to OP_ERASE } else if (i == OP_ERASE || i == OP_MASTER_ERASE) { ^ drivers/nvdimm/security.c:537:27: note: Left side of '||' is true } else if (i == OP_ERASE || i == OP_MASTER_ERASE) { ^ drivers/nvdimm/security.c:538:3: note: Taking false branch dev_dbg(dev, "%s %u\n", ops[i].name, key); ^ include/linux/dev_printk.h:130:2: note: expanded from macro 'dev_dbg' if (0) \ ^ drivers/nvdimm/security.c:539:7: note: Assuming the condition is false if (atomic_read(&nvdimm->busy)) { ^ include/asm-generic/atomic-instrumented.h:30:21: note: expanded from macro 'atomic_read' #define atomic_read atomic_read ^ drivers/nvdimm/security.c:539:3: note: Taking false branch if (atomic_read(&nvdimm->busy)) { ^ drivers/nvdimm/security.c:543:36: note: 'i' is equal to OP_ERASE rc = security_erase(nvdimm, key, i == OP_ERASE ^ drivers/nvdimm/security.c:543:36: note: '?' condition is true drivers/nvdimm/security.c:543:8: note: 2nd function call argument is an uninitialized value rc = security_erase(nvdimm, key, i == OP_ERASE ^ ~~~ Suppressed 6 warnings (5 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. drivers/i3c/device.c:221:10: warning: The left operand of '&' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult] manuf = I3C_PID_MANUF_ID(devinfo.pid); ^ include/linux/i3c/device.h:79:40: note: expanded from macro 'I3C_PID_MANUF_ID' #define I3C_PID_MANUF_ID(pid) (((pid) & GENMASK_ULL(47, 33)) >> 33) ~~~ ^ drivers/i3c/device.c:219:2: note: Calling 'i3c_device_get_info' i3c_device_get_info(i3cdev, &devinfo); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/i3c/device.c:64:7: note: 'info' is non-null if (!info) ^~~~ drivers/i3c/device.c:64:2: note: Taking false branch if (!info) ^ drivers/i3c/device.c:68:6: note: Assuming field 'desc' is null if (dev->desc) ^~~~~~~~~ drivers/i3c/device.c:68:2: note: Taking false branch if (dev->desc) ^ drivers/i3c/device.c:71:1: note: Returning without writing to '->pid' } ^ drivers/i3c/device.c:219:2: note: Returning from 'i3c_device_get_info' i3c_device_get_info(i3cdev, &devinfo); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/i3c/device.c:221:10: note: The left operand of '&' is a garbage value manuf = I3C_PID_MANUF_ID(devinfo.pid); ^ include/linux/i3c/device.h:79:40: note: expanded from macro 'I3C_PID_MANUF_ID' #define I3C_PID_MANUF_ID(pid) (((pid) & GENMASK_ULL(47, 33)) >> 33) ~~~ ^ Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. drivers/i3c/master.c:555:32: warning: Value stored to 'master' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct i3c_master_controller *master = i3c_bus_to_i3c_master(i3cbus); ^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/i3c/master.c:555:32: note: Value stored to 'master' during its initialization is never read struct i3c_master_controller *master = i3c_bus_to_i3c_master(i3cbus); ^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. drivers/i3c/master/i3c-master-cdns.c:1245:2: warning: Value stored to 'prescl1' is never read [clang-analyzer-deadcode.DeadStores] prescl1 = PRESCL_CTRL1_OD_LOW(low); ^ drivers/i3c/master/i3c-master-cdns.c:1245:2: note: Value stored to 'prescl1' is never read Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 25 warnings generated. >> drivers/media/i2c/ccs/ccs-core.c:105:21: warning: Value stored to 'client' >> during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct i2c_client *client = v4l2_get_subdevdata(&sensor->src->sd); ^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/i2c/ccs/ccs-core.c:105:21: note: Value stored to 'client' during its initialization is never read struct i2c_client *client = v4l2_get_subdevdata(&sensor->src->sd); ^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/i2c/ccs/ccs-core.c:230:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct i2c_client *client = v4l2_get_subdevdata(&sensor->src->sd); ^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/i2c/ccs/ccs-core.c:230:21: note: Value stored to 'client' during its initialization is never read struct i2c_client *client = v4l2_get_subdevdata(&sensor->src->sd); ^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/media/i2c/ccs/ccs-core.c:288:4: warning: Value stored to 'which' is >> never read [clang-analyzer-deadcode.DeadStores] which = "columns"; ^ ~~~~~~~~~ drivers/media/i2c/ccs/ccs-core.c:288:4: note: Value stored to 'which' is never read which = "columns"; ^ ~~~~~~~~~ drivers/media/i2c/ccs/ccs-core.c:290:4: warning: Value stored to 'which' is never read [clang-analyzer-deadcode.DeadStores] which = "rows"; ^ ~~~~~~ drivers/media/i2c/ccs/ccs-core.c:290:4: note: Value stored to 'which' is never read which = "rows"; ^ ~~~~~~ >> drivers/media/i2c/ccs/ccs-core.c:294:4: warning: Value stored to 'what' is >> never read [clang-analyzer-deadcode.DeadStores] what = "embedded"; ^ ~~~~~~~~~~ drivers/media/i2c/ccs/ccs-core.c:294:4: note: Value stored to 'what' is never read what = "embedded"; ^ ~~~~~~~~~~ drivers/media/i2c/ccs/ccs-core.c:297:4: warning: Value stored to 'what' is never read [clang-analyzer-deadcode.DeadStores] what = "dummy"; ^ ~~~~~~~ drivers/media/i2c/ccs/ccs-core.c:297:4: note: Value stored to 'what' is never read what = "dummy"; ^ ~~~~~~~ drivers/media/i2c/ccs/ccs-core.c:300:4: warning: Value stored to 'what' is never read [clang-analyzer-deadcode.DeadStores] what = "black"; ^ ~~~~~~~ drivers/media/i2c/ccs/ccs-core.c:300:4: note: Value stored to 'what' is never read what = "black"; ^ ~~~~~~~ drivers/media/i2c/ccs/ccs-core.c:303:4: warning: Value stored to 'what' is never read [clang-analyzer-deadcode.DeadStores] what = "dark"; ^ ~~~~~~ drivers/media/i2c/ccs/ccs-core.c:303:4: note: Value stored to 'what' is never read what = "dark"; ^ ~~~~~~ drivers/media/i2c/ccs/ccs-core.c:306:4: warning: Value stored to 'what' is never read [clang-analyzer-deadcode.DeadStores] what = "visible"; ^ ~~~~~~~~~ drivers/media/i2c/ccs/ccs-core.c:306:4: note: Value stored to 'what' is never read what = "visible"; ^ ~~~~~~~~~ drivers/media/i2c/ccs/ccs-core.c:309:4: warning: Value stored to 'what' is never read [clang-analyzer-deadcode.DeadStores] what = "invalid"; ^ ~~~~~~~~~ drivers/media/i2c/ccs/ccs-core.c:309:4: note: Value stored to 'what' is never read what = "invalid"; ^ ~~~~~~~~~ drivers/media/i2c/ccs/ccs-core.c:513:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct i2c_client *client = v4l2_get_subdevdata(&sensor->src->sd); ^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/i2c/ccs/ccs-core.c:513:21: note: Value stored to 'client' during its initialization is never read struct i2c_client *client = v4l2_get_subdevdata(&sensor->src->sd); ^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/i2c/ccs/ccs-core.c:532:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct i2c_client *client = v4l2_get_subdevdata(&sensor->src->sd); ^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/i2c/ccs/ccs-core.c:532:21: note: Value stored to 'client' during its initialization is never read struct i2c_client *client = v4l2_get_subdevdata(&sensor->src->sd); ^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/i2c/ccs/ccs-core.c:1001:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct i2c_client *client = v4l2_get_subdevdata(&sensor->src->sd); ^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/i2c/ccs/ccs-core.c:1001:21: note: Value stored to 'client' during its initialization is never read struct i2c_client *client = v4l2_get_subdevdata(&sensor->src->sd); ^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/i2c/ccs/ccs-core.c:1797:23: warning: Dereference of undefined pointer value [clang-analyzer-core.NullDereference] *crops[CCS_PAD_SRC] = *comp; ^ drivers/media/i2c/ccs/ccs-core.c:2319:30: note: Left side of '&&' is false struct ccs_sensor *sensor = to_ccs_sensor(subdev); ^ drivers/media/i2c/ccs/ccs.h:276:3: note: expanded from macro 'to_ccs_sensor' (to_ccs_subdev(_sd)->sensor) ^ drivers/media/i2c/ccs/ccs.h:273:2: note: expanded from macro 'to_ccs_subdev' container_of(_sd, struct ccs_subdev, sd) ^ include/linux/kernel.h:853:61: note: expanded from macro 'container_of' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ drivers/media/i2c/ccs/ccs-core.c:2319:30: note: Taking false branch struct ccs_sensor *sensor = to_ccs_sensor(subdev); ^ drivers/media/i2c/ccs/ccs.h:276:3: note: expanded from macro 'to_ccs_sensor' (to_ccs_subdev(_sd)->sensor) ^ drivers/media/i2c/ccs/ccs.h:273:2: note: expanded from macro 'to_ccs_subdev' container_of(_sd, struct ccs_subdev, sd) ^ include/linux/kernel.h:853:2: note: expanded from macro 'container_of' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/compiler_types.h:315:2: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ include/linux/compiler_types.h:303:2: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^ include/linux/compiler_types.h:295:3: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^ drivers/media/i2c/ccs/ccs-core.c:2319:30: note: Loop condition is false. Exiting loop struct ccs_sensor *sensor = to_ccs_sensor(subdev); ^ drivers/media/i2c/ccs/ccs.h:276:3: note: expanded from macro 'to_ccs_sensor' (to_ccs_subdev(_sd)->sensor) ^ drivers/media/i2c/ccs/ccs.h:273:2: note: expanded from macro 'to_ccs_subdev' container_of(_sd, struct ccs_subdev, sd) ^ include/linux/kernel.h:853:2: note: expanded from macro 'container_of' vim +/client +105 drivers/media/i2c/ccs/ccs-core.c ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 101 161cc847370a92 drivers/media/i2c/smiapp/ccs-core.c Sakari Ailus 2020-02-11 102 void ccs_replace_limit(struct ccs_sensor *sensor, ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 103 unsigned int limit, unsigned int offset, u32 val) ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 104 { ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 @105 struct i2c_client *client = v4l2_get_subdevdata(&sensor->src->sd); ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 106 const struct ccs_limit *linfo; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 107 void *ptr; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 108 int ret; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 109 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 110 ret = ccs_limit_ptr(sensor, limit, offset, &ptr); ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 111 if (ret) ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 112 return; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 113 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 114 linfo = &ccs_limits[ccs_limit_offsets[limit].info]; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 115 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 116 dev_dbg(&client->dev, "quirk: 0x%8.8x \"%s\" %u = %d, 0x%x\n", ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 117 linfo->reg, linfo->name, offset, val, val); ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 118 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 119 ccs_assign_limit(ptr, ccs_reg_width(linfo->reg), val); ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 120 } ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 121 161cc847370a92 drivers/media/i2c/smiapp/ccs-core.c Sakari Ailus 2020-02-11 122 static u32 ccs_get_limit(struct ccs_sensor *sensor, ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 123 unsigned int limit, unsigned int offset) ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 124 { ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 125 void *ptr; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 126 int ret; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 127 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 128 ret = ccs_limit_ptr(sensor, limit, offset, &ptr); ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 129 if (ret) ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 130 return 0; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 131 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 132 switch (ccs_reg_width(ccs_limits[ccs_limit_offsets[limit].info].reg)) { ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 133 case sizeof(u8): ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 134 return *(u8 *)ptr; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 135 case sizeof(u16): ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 136 return *(u16 *)ptr; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 137 case sizeof(u32): ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 138 return *(u32 *)ptr; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 139 } ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 140 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 141 WARN_ON(1); ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 142 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 143 return 0; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 144 } ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 145 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 146 #define CCS_LIM(sensor, limit) \ ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 147 ccs_get_limit(sensor, CCS_L_##limit, 0) ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 148 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 149 #define CCS_LIM_AT(sensor, limit, offset) \ ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 150 ccs_get_limit(sensor, CCS_L_##limit, CCS_L_##limit##_OFFSET(offset)) ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 151 161cc847370a92 drivers/media/i2c/smiapp/ccs-core.c Sakari Ailus 2020-02-11 152 static int ccs_read_all_limits(struct ccs_sensor *sensor) ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 153 { ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 154 struct i2c_client *client = v4l2_get_subdevdata(&sensor->src->sd); ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 155 void *ptr, *alloc, *end; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 156 unsigned int i, l; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 157 int ret; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 158 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 159 kfree(sensor->ccs_limits); ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 160 sensor->ccs_limits = NULL; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 161 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 162 alloc = kzalloc(ccs_limit_offsets[CCS_L_LAST].lim, GFP_KERNEL); ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 163 if (!alloc) ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 164 return -ENOMEM; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 165 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 166 end = alloc + ccs_limit_offsets[CCS_L_LAST].lim; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 167 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 168 for (i = 0, l = 0, ptr = alloc; ccs_limits[i].size; i++) { ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 169 u32 reg = ccs_limits[i].reg; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 170 unsigned int width = ccs_reg_width(reg); ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 171 unsigned int j; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 172 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 173 if (l == CCS_L_LAST) { ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 174 dev_err(&client->dev, ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 175 "internal error --- end of limit array\n"); ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 176 ret = -EINVAL; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 177 goto out_err; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 178 } ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 179 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 180 for (j = 0; j < ccs_limits[i].size / width; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 181 j++, reg += width, ptr += width) { ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 182 u32 val; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 183 47ff2ff267ee4f drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-11 184 ret = ccs_read_addr(sensor, reg, &val); ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 185 if (ret) ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 186 goto out_err; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 187 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 188 if (ptr + width > end) { ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 189 dev_err(&client->dev, ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 190 "internal error --- no room for regs\n"); ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 191 ret = -EINVAL; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 192 goto out_err; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 193 } ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 194 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 195 ccs_assign_limit(ptr, width, val); ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 196 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 197 dev_dbg(&client->dev, "0x%8.8x \"%s\" = %u, 0x%x\n", ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 198 reg, ccs_limits[i].name, val, val); ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 199 } ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 200 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 201 if (ccs_limits[i].flags & CCS_L_FL_SAME_REG) ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 202 continue; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 203 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 204 l++; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 205 ptr = alloc + ccs_limit_offsets[l].lim; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 206 } ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 207 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 208 if (l != CCS_L_LAST) { ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 209 dev_err(&client->dev, ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 210 "internal error --- insufficient limits\n"); ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 211 ret = -EINVAL; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 212 goto out_err; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 213 } ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 214 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 215 sensor->ccs_limits = alloc; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 216 3e158e1f1ec2ac drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 217 if (CCS_LIM(sensor, SCALER_N_MIN) < 16) 3e158e1f1ec2ac drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 218 ccs_replace_limit(sensor, CCS_L_SCALER_N_MIN, 0, 16); 3e158e1f1ec2ac drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 219 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 220 return 0; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 221 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 222 out_err: ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 223 kfree(alloc); ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 224 ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 225 return ret; ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 226 } ca296a11156a00 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-06 227 161cc847370a92 drivers/media/i2c/smiapp/ccs-core.c Sakari Ailus 2020-02-11 228 static int ccs_read_frame_fmt(struct ccs_sensor *sensor) ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 229 { ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 230 struct i2c_client *client = v4l2_get_subdevdata(&sensor->src->sd); fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 231 u8 fmt_model_type, fmt_model_subtype, ncol_desc, nrow_desc; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 232 unsigned int i; 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 233 int pixel_count = 0; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 234 int line_count = 0; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 235 fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 236 fmt_model_type = CCS_LIM(sensor, FRAME_FORMAT_MODEL_TYPE); fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 237 fmt_model_subtype = CCS_LIM(sensor, FRAME_FORMAT_MODEL_SUBTYPE); ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 238 ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 239 ncol_desc = (fmt_model_subtype fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 240 & CCS_FRAME_FORMAT_MODEL_SUBTYPE_COLUMNS_MASK) fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 241 >> CCS_FRAME_FORMAT_MODEL_SUBTYPE_COLUMNS_SHIFT; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 242 nrow_desc = fmt_model_subtype fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 243 & CCS_FRAME_FORMAT_MODEL_SUBTYPE_ROWS_MASK; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 244 ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 245 dev_dbg(&client->dev, "format_model_type %s\n", fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 246 fmt_model_type == CCS_FRAME_FORMAT_MODEL_TYPE_2_BYTE ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 247 ? "2 byte" : fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 248 fmt_model_type == CCS_FRAME_FORMAT_MODEL_TYPE_4_BYTE ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 249 ? "4 byte" : "is simply bad"); ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 250 fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 251 dev_dbg(&client->dev, "%u column and %u row descriptors\n", fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 252 ncol_desc, nrow_desc); fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 253 ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 254 for (i = 0; i < ncol_desc + nrow_desc; i++) { ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 255 u32 desc; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 256 u32 pixelcode; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 257 u32 pixels; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 258 char *which; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 259 char *what; e43665a9d7b41b drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-07 260 u32 reg; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 261 fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 262 if (fmt_model_type == CCS_FRAME_FORMAT_MODEL_TYPE_2_BYTE) { fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 263 desc = CCS_LIM_AT(sensor, FRAME_FORMAT_DESCRIPTOR, i); ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 264 ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 265 pixelcode = ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 266 (desc fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 267 & CCS_FRAME_FORMAT_DESCRIPTOR_PCODE_MASK) fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 268 >> CCS_FRAME_FORMAT_DESCRIPTOR_PCODE_SHIFT; fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 269 pixels = desc & CCS_FRAME_FORMAT_DESCRIPTOR_PIXELS_MASK; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 270 } else if (fmt_model_type fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 271 == CCS_FRAME_FORMAT_MODEL_TYPE_4_BYTE) { fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 272 desc = CCS_LIM_AT(sensor, FRAME_FORMAT_DESCRIPTOR_4, i); ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 273 ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 274 pixelcode = ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 275 (desc fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 276 & CCS_FRAME_FORMAT_DESCRIPTOR_4_PCODE_MASK) fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 277 >> CCS_FRAME_FORMAT_DESCRIPTOR_4_PCODE_SHIFT; fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 278 pixels = desc & fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 279 CCS_FRAME_FORMAT_DESCRIPTOR_4_PIXELS_MASK; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 280 } else { ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 281 dev_dbg(&client->dev, ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 282 "invalid frame format model type %d\n", ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 283 fmt_model_type); ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 284 return -EINVAL; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 285 } ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 286 ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 287 if (i < ncol_desc) ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 @288 which = "columns"; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 289 else ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 290 which = "rows"; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 291 ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 292 switch (pixelcode) { fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 293 case CCS_FRAME_FORMAT_DESCRIPTOR_PCODE_EMBEDDED: ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 @294 what = "embedded"; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 295 break; fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 296 case CCS_FRAME_FORMAT_DESCRIPTOR_PCODE_DUMMY_PIXEL: ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 297 what = "dummy"; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 298 break; fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 299 case CCS_FRAME_FORMAT_DESCRIPTOR_PCODE_BLACK_PIXEL: ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 300 what = "black"; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 301 break; fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 302 case CCS_FRAME_FORMAT_DESCRIPTOR_PCODE_DARK_PIXEL: ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 303 what = "dark"; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 304 break; fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 305 case CCS_FRAME_FORMAT_DESCRIPTOR_PCODE_VISIBLE_PIXEL: ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 306 what = "visible"; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 307 break; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 308 default: ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 309 what = "invalid"; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 310 break; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 311 } ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 312 e43665a9d7b41b drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-07 313 dev_dbg(&client->dev, e43665a9d7b41b drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-07 314 "0x%8.8x %s pixels: %d %s (pixelcode %u)\n", reg, e43665a9d7b41b drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-07 315 what, pixels, which, pixelcode); ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 316 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 317 if (i < ncol_desc) { 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 318 if (pixelcode == fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 319 CCS_FRAME_FORMAT_DESCRIPTOR_PCODE_VISIBLE_PIXEL) 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 320 sensor->visible_pixel_start = pixel_count; 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 321 pixel_count += pixels; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 322 continue; 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 323 } ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 324 ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 325 /* Handle row descriptors */ 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 326 switch (pixelcode) { fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 327 case CCS_FRAME_FORMAT_DESCRIPTOR_PCODE_EMBEDDED: 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 328 if (sensor->embedded_end) 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 329 break; 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 330 sensor->embedded_start = line_count; 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 331 sensor->embedded_end = line_count + pixels; 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 332 break; fd9065812c7b45 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2020-02-10 333 case CCS_FRAME_FORMAT_DESCRIPTOR_PCODE_VISIBLE_PIXEL: 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 334 sensor->image_start = line_count; 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 335 break; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 336 } ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 337 line_count += pixels; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 338 } ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 339 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 340 if (sensor->embedded_end > sensor->image_start) { 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 341 dev_dbg(&client->dev, 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 342 "adjusting image start line to %u (was %u)\n", 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 343 sensor->embedded_end, sensor->image_start); 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 344 sensor->image_start = sensor->embedded_end; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 345 } ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 346 ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 347 dev_dbg(&client->dev, "embedded data from lines %d to %d\n", 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 348 sensor->embedded_start, sensor->embedded_end); 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 349 dev_dbg(&client->dev, "image data starts at line %d\n", 3fc34b7beb8947 drivers/media/i2c/smiapp/smiapp-core.c Sakari Ailus 2016-09-05 350 sensor->image_start); ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 351 ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 352 return 0; ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 353 } ccfc97bdb5ae8b drivers/media/video/smiapp/smiapp-core.c Sakari Ailus 2012-03-03 354 :::::: The code at line 105 was first introduced by commit :::::: ca296a11156a00cc2336ba5fbcbcf2c6c41755c5 media: smiapp: Read CCS limit values :::::: TO: Sakari Ailus <[email protected]> :::::: CC: Mauro Carvalho Chehab <[email protected]> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
