Home
last modified time | relevance | path

Searched refs:sensor (Results 1 – 25 of 843) sorted by relevance

12345678910>>...34

/linux/drivers/media/i2c/ccs/
H A Dccs-core.c93 static int ccs_limit_ptr(struct ccs_sensor *sensor, unsigned int limit, in ccs_limit_ptr() argument
103 if (WARN_ON(!sensor->ccs_limits) || in ccs_limit_ptr()
108 *__ptr = sensor->ccs_limits + ccs_limit_offsets[limit].lim + offset; in ccs_limit_ptr()
113 void ccs_replace_limit(struct ccs_sensor *sensor, in ccs_replace_limit() argument
116 struct i2c_client *client = v4l2_get_subdevdata(&sensor->src->sd); in ccs_replace_limit()
121 ret = ccs_limit_ptr(sensor, limit, offset, &ptr); in ccs_replace_limit()
133 u32 ccs_get_limit(struct ccs_sensor *sensor, unsigned int limit, in ccs_get_limit() argument
140 ret = ccs_limit_ptr(sensor, limit, offset, &ptr); in ccs_get_limit()
159 return ccs_reg_conv(sensor, ccs_limits[limit].reg, val); in ccs_get_limit()
162 static int ccs_read_all_limits(struct ccs_sensor *sensor) in ccs_read_all_limits() argument
[all …]
H A Dccs-quirk.h41 int (*limits)(struct ccs_sensor *sensor);
42 int (*post_poweron)(struct ccs_sensor *sensor);
43 int (*pre_streamon)(struct ccs_sensor *sensor);
44 int (*post_streamoff)(struct ccs_sensor *sensor);
45 unsigned long (*pll_flags)(struct ccs_sensor *sensor);
46 int (*init)(struct ccs_sensor *sensor);
47 int (*reg_access)(struct ccs_sensor *sensor, bool write, u32 *reg,
65 #define ccs_call_quirk(sensor, _quirk, ...) \ argument
66 ((sensor)->minfo.quirk && \
67 (sensor)->minfo.quirk->_quirk ? \
[all …]
H A Dccs-reg-access.h24 int ccs_read_addr(struct ccs_sensor *sensor, u32 reg, u32 *val);
25 int ccs_read_addr_8only(struct ccs_sensor *sensor, u32 reg, u32 *val);
26 int ccs_read_addr_noconv(struct ccs_sensor *sensor, u32 reg, u32 *val);
27 int ccs_write_addr(struct ccs_sensor *sensor, u32 reg, u32 val);
28 int ccs_write_data_regs(struct ccs_sensor *sensor, struct ccs_reg *regs,
31 u32 ccs_reg_conv(struct ccs_sensor *sensor, u32 reg, u32 val);
33 #define ccs_read(sensor, reg_name, val) \ argument
34 ccs_read_addr(sensor, CCS_R_##reg_name, val)
36 #define ccs_write(sensor, reg_name, val) \ argument
37 ccs_write_addr(sensor, CCS_R_##reg_name, val)
/linux/drivers/thermal/st/
H A Dst_thermal.c24 static int st_thermal_alloc_regfields(struct st_thermal_sensor *sensor) in st_thermal_alloc_regfields() argument
26 struct device *dev = sensor->dev; in st_thermal_alloc_regfields()
27 struct regmap *regmap = sensor->regmap; in st_thermal_alloc_regfields()
28 const struct reg_field *reg_fields = sensor->cdata->reg_fields; in st_thermal_alloc_regfields()
30 sensor->dcorrect = devm_regmap_field_alloc(dev, regmap, in st_thermal_alloc_regfields()
33 sensor->overflow = devm_regmap_field_alloc(dev, regmap, in st_thermal_alloc_regfields()
36 sensor->temp_data = devm_regmap_field_alloc(dev, regmap, in st_thermal_alloc_regfields()
39 if (IS_ERR(sensor->dcorrect) || in st_thermal_alloc_regfields()
40 IS_ERR(sensor->overflow) || in st_thermal_alloc_regfields()
41 IS_ERR(sensor->temp_data)) { in st_thermal_alloc_regfields()
[all …]
/linux/drivers/media/pci/intel/
H A Dipu-bridge.c211 static int ipu_bridge_check_ivsc_dev(struct ipu_sensor *sensor, in ipu_bridge_check_ivsc_dev() argument
226 sensor->csi_dev = csi_dev; in ipu_bridge_check_ivsc_dev()
227 sensor->ivsc_adev = adev; in ipu_bridge_check_ivsc_dev()
327 int ipu_bridge_parse_ssdb(struct acpi_device *adev, struct ipu_sensor *sensor) in ipu_bridge_parse_ssdb() argument
346 sensor->link = ssdb.link; in ipu_bridge_parse_ssdb()
347 sensor->lanes = ssdb.lanes; in ipu_bridge_parse_ssdb()
348 sensor->mclkspeed = ssdb.mclkspeed; in ipu_bridge_parse_ssdb()
349 sensor->rotation = ipu_bridge_parse_rotation(adev, &ssdb); in ipu_bridge_parse_ssdb()
350 sensor->orientation = ipu_bridge_parse_orientation(adev); in ipu_bridge_parse_ssdb()
353 sensor->vcm_type = ipu_vcm_types[ssdb.vcmtype - 1]; in ipu_bridge_parse_ssdb()
[all …]
/linux/drivers/hwmon/
H A Dscpi-hwmon.c57 static void scpi_scale_reading(u64 *value, struct sensor_data *sensor) in scpi_scale_reading() argument
59 if (scpi_scale[sensor->info.class] != sensor->scale) { in scpi_scale_reading()
60 *value *= scpi_scale[sensor->info.class]; in scpi_scale_reading()
61 do_div(*value, sensor->scale); in scpi_scale_reading()
70 struct sensor_data *sensor = &scpi_sensors->data[zone->sensor_id]; in scpi_read_temp() local
74 ret = scpi_ops->sensor_get_value(sensor->info.sensor_id, &value); in scpi_read_temp()
78 scpi_scale_reading(&value, sensor); in scpi_read_temp()
90 struct sensor_data *sensor; in scpi_show_sensor() local
94 sensor = container_of(attr, struct sensor_data, dev_attr_input); in scpi_show_sensor()
96 ret = scpi_ops->sensor_get_value(sensor->info.sensor_id, &value); in scpi_show_sensor()
[all …]
H A Dcgbc-hwmon.c99 struct cgbc_hwmon_sensor *sensor = hwmon->sensors; in cgbc_hwmon_probe_sensors() local
113 sensor = hwmon->sensors; in cgbc_hwmon_probe_sensors()
134 sensor->type = hwmon_temp; in cgbc_hwmon_probe_sensors()
135 sensor->label = cgbc_hwmon_labels_temp[channel]; in cgbc_hwmon_probe_sensors()
142 sensor->type = cgbc_hwmon_labels_in[channel].type; in cgbc_hwmon_probe_sensors()
143 sensor->label = cgbc_hwmon_labels_in[channel].label; in cgbc_hwmon_probe_sensors()
146 sensor->type = hwmon_fan; in cgbc_hwmon_probe_sensors()
147 sensor->label = cgbc_hwmon_labels_fan[channel]; in cgbc_hwmon_probe_sensors()
154 sensor->active = FIELD_GET(CGBC_HWMON_ACTIVE_BIT, data[1]); in cgbc_hwmon_probe_sensors()
155 sensor->channel = channel; in cgbc_hwmon_probe_sensors()
[all …]
H A Dmacsmc-hwmon.c191 struct macsmc_hwmon_sensor *sensor, int scale, in macsmc_hwmon_read_key() argument
196 switch (sensor->info.type_code) { in macsmc_hwmon_read_key()
201 ret = macsmc_hwmon_read_f32_scaled(smc, sensor->macsmc_key, in macsmc_hwmon_read_key()
213 ret = macsmc_hwmon_read_ioft_scaled(smc, sensor->macsmc_key, in macsmc_hwmon_read_key()
257 struct macsmc_hwmon_sensor *sensor, long val) in macsmc_hwmon_write_key() argument
259 switch (sensor->info.type_code) { in macsmc_hwmon_write_key()
262 return macsmc_hwmon_write_f32(smc, sensor->macsmc_key, val); in macsmc_hwmon_write_key()
265 return apple_smc_write_u8(smc, sensor->macsmc_key, val); in macsmc_hwmon_write_key()
407 struct macsmc_hwmon_sensor *sensor; in macsmc_hwmon_is_visible() local
411 sensor = &hwmon->volt.sensors[channel]; in macsmc_hwmon_is_visible()
[all …]
/linux/drivers/iio/common/scmi_sensors/
H A Dscmi_iio.c44 struct scmi_iio_priv *sensor; in scmi_iio_sensor_update_cb() local
52 sensor = container_of(nb, struct scmi_iio_priv, sensor_update_nb); in scmi_iio_sensor_update_cb()
55 sensor->iio_buf[i] = sensor_update->readings[i].value; in scmi_iio_sensor_update_cb()
57 if (!sensor->sensor_info->timestamped) { in scmi_iio_sensor_update_cb()
71 tstamp_scale = sensor->sensor_info->tstamp_scale + 9; in scmi_iio_sensor_update_cb()
80 scmi_iio_dev = sensor->indio_dev; in scmi_iio_sensor_update_cb()
81 iio_push_to_buffers_with_timestamp(scmi_iio_dev, sensor->iio_buf, in scmi_iio_sensor_update_cb()
88 struct scmi_iio_priv *sensor = iio_priv(iio_dev); in scmi_iio_buffer_preenable() local
92 if (sensor->sensor_info->timestamped) in scmi_iio_buffer_preenable()
98 err = sensor->sensor_ops->config_set(sensor->ph, in scmi_iio_buffer_preenable()
[all …]
/linux/drivers/input/rmi4/
H A Drmi_f12.c30 struct rmi_2d_sensor sensor; member
67 struct rmi_2d_sensor *sensor = &f12->sensor; in rmi_f12_read_sensor_tuning() local
68 struct rmi_function *fn = sensor->fn; in rmi_f12_read_sensor_tuning()
103 sensor->max_x = (buf[offset + 1] << 8) | buf[offset]; in rmi_f12_read_sensor_tuning()
104 sensor->max_y = (buf[offset + 3] << 8) | buf[offset + 2]; in rmi_f12_read_sensor_tuning()
109 sensor->max_x, sensor->max_y); in rmi_f12_read_sensor_tuning()
144 sensor->x_mm = sensor->max_x / dpm_resolution; in rmi_f12_read_sensor_tuning()
145 sensor->y_mm = sensor->max_y / dpm_resolution; in rmi_f12_read_sensor_tuning()
157 sensor->x_mm = (pitch_x * rx_receivers) >> 12; in rmi_f12_read_sensor_tuning()
158 sensor->y_mm = (pitch_y * tx_receivers) >> 12; in rmi_f12_read_sensor_tuning()
[all …]
H A Drmi_f11.c533 struct rmi_2d_sensor sensor; member
550 struct rmi_2d_sensor *sensor = &f11->sensor; in rmi_f11_rel_pos_report() local
557 rmi_2d_sensor_rel_report(sensor, x, y); in rmi_f11_rel_pos_report()
561 struct rmi_2d_sensor *sensor, in rmi_f11_abs_pos_process() argument
585 rmi_2d_sensor_abs_process(sensor, obj, n_finger); in rmi_f11_abs_pos_process()
595 struct rmi_2d_sensor *sensor, int size) in rmi_f11_finger_handler() argument
602 int abs_size = sensor->nbr_fingers * RMI_F11_ABS_BYTES; in rmi_f11_finger_handler()
604 if (sensor->report_abs) { in rmi_f11_finger_handler()
608 abs_fingers = sensor->nbr_fingers; in rmi_f11_finger_handler()
619 rmi_f11_abs_pos_process(f11, sensor, &sensor->objs[i], in rmi_f11_finger_handler()
[all …]
/linux/drivers/iio/imu/st_lsm6dsx/
H A Dst_lsm6dsx_shub.c158 struct st_lsm6dsx_sensor *sensor; in st_lsm6dsx_shub_wait_complete() local
161 sensor = iio_priv(hw->iio_devs[ST_LSM6DSX_ID_ACC]); in st_lsm6dsx_shub_wait_complete()
162 odr = (hw->enable_mask & BIT(ST_LSM6DSX_ID_ACC)) ? sensor->odr : 12500; in st_lsm6dsx_shub_wait_complete()
242 static int st_lsm6dsx_shub_master_enable(struct st_lsm6dsx_sensor *sensor, in st_lsm6dsx_shub_master_enable() argument
246 struct st_lsm6dsx_hw *hw = sensor->hw; in st_lsm6dsx_shub_master_enable()
251 err = st_lsm6dsx_sensor_set_enable(sensor, enable); in st_lsm6dsx_shub_master_enable()
283 st_lsm6dsx_shub_read(struct st_lsm6dsx_sensor *sensor, u8 addr, in st_lsm6dsx_shub_read() argument
288 struct st_lsm6dsx_hw *hw = sensor->hw; in st_lsm6dsx_shub_read()
299 config[0] = (sensor->ext_info.addr << 1) | 1; in st_lsm6dsx_shub_read()
308 err = st_lsm6dsx_shub_master_enable(sensor, true); in st_lsm6dsx_shub_read()
[all …]
H A Dst_lsm6dsx_buffer.c106 st_lsm6dsx_get_decimator_val(struct st_lsm6dsx_sensor *sensor, u32 max_odr) in st_lsm6dsx_get_decimator_val() argument
109 u32 decimator = max_odr / sensor->hwfifo_odr_mHz; in st_lsm6dsx_get_decimator_val()
120 sensor->decimator = decimator; in st_lsm6dsx_get_decimator_val()
127 struct st_lsm6dsx_sensor *sensor; in st_lsm6dsx_get_max_min_odr() local
135 sensor = iio_priv(hw->iio_devs[i]); in st_lsm6dsx_get_max_min_odr()
137 if (!(hw->enable_mask & BIT(sensor->id))) in st_lsm6dsx_get_max_min_odr()
140 *max_odr = max(*max_odr, sensor->hwfifo_odr_mHz); in st_lsm6dsx_get_max_min_odr()
141 *min_odr = min(*min_odr, sensor->hwfifo_odr_mHz); in st_lsm6dsx_get_max_min_odr()
145 static u8 st_lsm6dsx_get_sip(struct st_lsm6dsx_sensor *sensor, u32 min_odr) in st_lsm6dsx_get_sip() argument
147 u8 sip = sensor->hwfifo_odr_mHz / min_odr; in st_lsm6dsx_get_sip()
[all …]
/linux/drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/
H A Dbase.c70 return nvkm_iccsense_poll_lane(rail->sensor->i2c, rail->sensor->addr, in nvkm_iccsense_ina2x9_read()
93 return nvkm_iccsense_poll_lane(rail->sensor->i2c, rail->sensor->addr, in nvkm_iccsense_ina3221_read()
101 struct nvkm_iccsense_sensor *sensor) in nvkm_iccsense_sensor_config() argument
104 nvkm_trace(subdev, "write config of extdev %i: 0x%04x\n", sensor->id, sensor->config); in nvkm_iccsense_sensor_config()
105 nv_wr16i2cr(sensor->i2c, sensor->addr, 0x00, sensor->config); in nvkm_iccsense_sensor_config()
134 struct nvkm_iccsense_sensor *sensor, *tmps; in nvkm_iccsense_dtor() local
137 list_for_each_entry_safe(sensor, tmps, &iccsense->sensors, head) { in nvkm_iccsense_dtor()
138 list_del(&sensor->head); in nvkm_iccsense_dtor()
139 kfree(sensor); in nvkm_iccsense_dtor()
157 struct nvkm_iccsense_sensor *sensor; in nvkm_iccsense_create_sensor() local
[all …]
/linux/drivers/thermal/qcom/
H A Dtsens-v0_1.c212 priv->sensor[0].slope = 2901; in init_8226()
213 priv->sensor[1].slope = 2846; in init_8226()
214 priv->sensor[2].slope = 3038; in init_8226()
215 priv->sensor[3].slope = 2955; in init_8226()
216 priv->sensor[4].slope = 2901; in init_8226()
217 priv->sensor[5].slope = 2846; in init_8226()
227 priv->sensor[i].slope = 3000; in init_8909()
229 priv->sensor[0].p1_calib_offset = 0; in init_8909()
230 priv->sensor[0].p2_calib_offset = 0; in init_8909()
231 priv->sensor[1].p1_calib_offset = -10; in init_8909()
[all …]
/linux/drivers/thermal/
H A Dthermal_mmio.c26 struct thermal_mmio *sensor = thermal_zone_device_priv(tz); in thermal_mmio_get_temperature() local
28 t = sensor->read_mmio(sensor->mmio_base) & sensor->mask; in thermal_mmio_get_temperature()
29 t *= sensor->factor; in thermal_mmio_get_temperature()
42 struct thermal_mmio *sensor; in thermal_mmio_probe() local
44 struct thermal_mmio *sensor); in thermal_mmio_probe()
49 sensor = devm_kzalloc(&pdev->dev, sizeof(*sensor), GFP_KERNEL); in thermal_mmio_probe()
50 if (!sensor) in thermal_mmio_probe()
53 sensor->mmio_base = devm_platform_get_and_ioremap_resource(pdev, 0, NULL); in thermal_mmio_probe()
54 if (IS_ERR(sensor->mmio_base)) in thermal_mmio_probe()
55 return PTR_ERR(sensor->mmio_base); in thermal_mmio_probe()
[all …]
H A Dimx_sc_thermal.c48 struct imx_sc_sensor *sensor = thermal_zone_device_priv(tz); in imx_sc_thermal_get_temp() local
51 msg.data.req.resource_id = sensor->resource_id; in imx_sc_thermal_get_temp()
74 struct imx_sc_sensor *sensor; in imx_sc_thermal_probe() local
88 sensor = devm_kzalloc(&pdev->dev, sizeof(*sensor), GFP_KERNEL); in imx_sc_thermal_probe()
89 if (!sensor) in imx_sc_thermal_probe()
92 sensor->resource_id = resource_id[i]; in imx_sc_thermal_probe()
94 sensor->tzd = devm_thermal_of_zone_register(&pdev->dev, sensor->resource_id, in imx_sc_thermal_probe()
95 sensor, &imx_sc_thermal_ops); in imx_sc_thermal_probe()
96 if (IS_ERR(sensor->tzd)) { in imx_sc_thermal_probe()
102 ret = PTR_ERR(sensor->tzd); in imx_sc_thermal_probe()
[all …]
/linux/drivers/iio/temperature/
H A Dltc2983.c192 container_of(_sensor, struct ltc2983_thermocouple, sensor)
195 container_of(_sensor, struct ltc2983_rtd, sensor)
198 container_of(_sensor, struct ltc2983_thermistor, sensor)
201 container_of(_sensor, struct ltc2983_diode, sensor)
204 container_of(_sensor, struct ltc2983_rsense, sensor)
207 container_of(_sensor, struct ltc2983_adc, sensor)
210 container_of(_sensor, struct ltc2983_temp, sensor)
245 const struct ltc2983_sensor *sensor);
262 struct ltc2983_sensor sensor; member
269 struct ltc2983_sensor sensor; member
[all …]
/linux/drivers/gpu/drm/nouveau/nvkm/subdev/therm/
H A Dg84.c56 struct nvbios_therm_sensor *sensor = &therm->bios_sensor; in g84_therm_program_alarms() local
61 spin_lock_irqsave(&therm->sensor.alarm_program_lock, flags); in g84_therm_program_alarms()
67 nvkm_wr32(device, 0x20484, sensor->thrs_shutdown.hysteresis); in g84_therm_program_alarms()
68 nvkm_wr32(device, 0x20480, sensor->thrs_shutdown.temp); in g84_therm_program_alarms()
71 nvkm_wr32(device, 0x204c4, sensor->thrs_fan_boost.temp); in g84_therm_program_alarms()
74 nvkm_wr32(device, 0x204c0, sensor->thrs_critical.temp); in g84_therm_program_alarms()
77 nvkm_wr32(device, 0x20414, sensor->thrs_down_clock.temp); in g84_therm_program_alarms()
78 spin_unlock_irqrestore(&therm->sensor.alarm_program_lock, flags); in g84_therm_program_alarms()
82 sensor->thrs_fan_boost.temp, in g84_therm_program_alarms()
83 sensor->thrs_fan_boost.hysteresis, in g84_therm_program_alarms()
[all …]
H A Dtemp.c62 therm->sensor.alarm_state[thrs] = st; in nvkm_therm_sensor_set_threshold_state()
70 return therm->sensor.alarm_state[thrs]; in nvkm_therm_sensor_get_threshold_state()
165 container_of(alarm, struct nvkm_therm, sensor.therm_poll_alarm); in alarm_timer_callback()
166 struct nvbios_therm_sensor *sensor = &therm->bios_sensor; in alarm_timer_callback() local
170 spin_lock_irqsave(&therm->sensor.alarm_program_lock, flags); in alarm_timer_callback()
172 nvkm_therm_threshold_hyst_polling(therm, &sensor->thrs_fan_boost, in alarm_timer_callback()
176 &sensor->thrs_down_clock, in alarm_timer_callback()
179 nvkm_therm_threshold_hyst_polling(therm, &sensor->thrs_critical, in alarm_timer_callback()
182 nvkm_therm_threshold_hyst_polling(therm, &sensor->thrs_shutdown, in alarm_timer_callback()
185 spin_unlock_irqrestore(&therm->sensor.alarm_program_lock, flags); in alarm_timer_callback()
[all …]
/linux/drivers/media/usb/gspca/
H A Dt613.c38 u8 sensor; member
513 all_gain_reg[7] = sensor_data[sd->sensor].reg80; in setawb_n_RGB()
535 switch (sd->sensor) { in setfreq()
569 const struct additional_sensor_data *sensor; in sd_init() local
587 sd->sensor = SENSOR_TAS5130A; in sd_init()
591 sd->sensor = SENSOR_LT168G; in sd_init()
595 sd->sensor = SENSOR_OTHER; in sd_init()
599 sd->sensor = SENSOR_OM6802; in sd_init()
606 if (sd->sensor == SENSOR_OM6802) { in sd_init()
631 sensor = &sensor_data[sd->sensor]; in sd_init()
[all …]
/linux/drivers/media/usb/gspca/m5602/
H A Dm5602_core.c116 if (!len || len > sd->sensor->i2c_regW) in m5602_read_sensor()
124 sd->sensor->i2c_slave_id); in m5602_read_sensor()
136 if (sd->sensor->i2c_regW == 1) { in m5602_read_sensor()
169 if (len > sd->sensor->i2c_regW || !len) in m5602_write_sensor()
175 buf[11] = sd->sensor->i2c_slave_id; in m5602_write_sensor()
220 sd->sensor = &po1030; in m5602_probe_sensor()
221 if (!sd->sensor->probe(sd)) in m5602_probe_sensor()
225 sd->sensor = &mt9m111; in m5602_probe_sensor()
226 if (!sd->sensor->probe(sd)) in m5602_probe_sensor()
230 sd->sensor = &s5k4aa; in m5602_probe_sensor()
[all …]
/linux/Documentation/hwmon/
H A Docc.rst16 sensor data from the processor and the system. The OCC can provide the raw
17 sensor data as well as perform thermal and power management on the system.
32 The OCC sensor ID is an integer that represents the unique identifier of the
33 sensor with respect to the OCC. For example, a temperature sensor for the third
34 DIMM slot in the system may have a sensor ID of 7. This mapping is unavailable
35 to the device driver, which must therefore export the sensor ID as-is.
37 Some entries are only present with certain OCC sensor versions or only on
42 OCC sensor ID.
44 [with temperature sensor version 1]
50 [with temperature sensor version >= 2]
[all …]
/linux/drivers/iio/chemical/
H A DKconfig9 tristate "Aosong AGS02MA TVOC sensor driver"
14 Organic Compounds) sensor.
29 * pH SM sensor
30 * EC SM sensor
31 * ORP SM sensor
34 module will be called atlas-ph-sensor.
45 module will be called atlas-ezo-sensor.
48 tristate "Bosch Sensortec BME680 sensor driver"
56 Say yes here to build support for Bosch Sensortec BME680 sensor with
73 tristate "AMS CCS811 VOC sensor"
[all …]
/linux/Documentation/driver-api/media/drivers/
H A Dsh_mobile_ceu_camera.rst11 sensor scales: horizontal and vertical scales, configured by the sensor driver
57 (1) to (2) - sensor cropped left or top
58 (2) to (2') - sensor cropped width or height
59 (3) to (3') - sensor scale
62 (5) to (5') - reverse sensor scale applied to CEU cropped width or height
63 (2) to (5) - reverse sensor scale applied to CEU cropped left or top
72 1. Calculate current sensor scales:
76 2. Calculate "effective" input crop (sensor subwindow) - CEU crop scaled back at
77 current sensor scales onto input window - this is user S_CROP:
86 4. Calculate sensor output window by applying combined scales to real input
[all …]

12345678910>>...34