struct fimc_is_group *child_group;
struct devicemgr_sensor_tag_data *tag_data;
u32 stream;
- int i;
switch (type) {
case FIMC_IS_DEVICE_SENSOR:
/* Only in case of OTF case, used tasklet. */
if (sensor->ischain && child_group) {
- for (i = 0; i < TAG_DATA_MAX; i++) {
- tag_data = &devicemgr->sensor_tag_data[stream][i];
- tasklet_init(&devicemgr->tasklet_sensor_tag[stream][i],
- tasklet_sensor_tag, (unsigned long)tag_data);
- }
+ tag_data = &devicemgr->sensor_tag_data[stream];
+ tasklet_init(&devicemgr->tasklet_sensor_tag[stream],
+ tasklet_sensor_tag, (unsigned long)tag_data);
}
}
break;
struct fimc_is_device_sensor *sensor;
struct fimc_is_group *child_group;
u32 stream;
- int i;
switch (type) {
case FIMC_IS_DEVICE_SENSOR:
stream = group->instance;
if (sensor->ischain && child_group)
- for (i = 0; i < TAG_DATA_MAX; i++)
- tasklet_kill(&devicemgr->tasklet_sensor_tag[stream][i]);
+ tasklet_kill(&devicemgr->tasklet_sensor_tag[stream]);
}
if (!test_bit(FIMC_IS_SENSOR_STAND_ALONE, &sensor->state) && sensor->ischain) {
struct fimc_is_devicemgr *devicemgr;
struct devicemgr_sensor_tag_data *tag_data;
u32 stream;
- u32 index;
switch (type) {
case FIMC_IS_DEVICE_SENSOR:
devicemgr = group->device->devicemgr;
stream = group->instance;
- index = devicemgr->tasklet_index[stream]++ % TAG_DATA_MAX;
- tag_data = &devicemgr->sensor_tag_data[stream][index];
+ tag_data = &devicemgr->sensor_tag_data[stream];
tag_data->fcount = fcount;
tag_data->devicemgr = devicemgr;
tag_data->group = &devicemgr->sensor[stream]->group_sensor;
tag_data->stream = stream;
if (IS_ENABLED(CHAIN_USE_VC_TASKLET)) {
- mgrdbgs(1, " DEVICE TASKLET(%d) schedule\n", group->device, group,
- frame, index);
- tasklet_schedule(&devicemgr->tasklet_sensor_tag[stream][index]);
+ mgrdbgs(1, " DEVICE TASKLET schedule\n", group->device, group, frame);
+ tasklet_schedule(&devicemgr->tasklet_sensor_tag[stream]);
} else {
tasklet_sensor_tag((unsigned long)tag_data);
}
#include "fimc-is-device-ischain.h"
#include "fimc-is-device-sensor.h"
-#define TAG_DATA_MAX 8
-
#ifdef CONFIG_USE_SENSOR_GROUP
#define GET_DEVICE_TYPE_BY_GRP(group_id) \
({enum fimc_is_device_type type; \
struct fimc_is_devicemgr {
struct fimc_is_device_sensor *sensor[FIMC_IS_STREAM_COUNT];
struct fimc_is_device_ischain *ischain[FIMC_IS_STREAM_COUNT];
- u32 tasklet_index[FIMC_IS_STREAM_COUNT];
- struct tasklet_struct tasklet_sensor_tag[FIMC_IS_STREAM_COUNT][TAG_DATA_MAX];
- struct devicemgr_sensor_tag_data sensor_tag_data[FIMC_IS_STREAM_COUNT][TAG_DATA_MAX];
+ struct tasklet_struct tasklet_sensor_tag[FIMC_IS_STREAM_COUNT];
+ struct devicemgr_sensor_tag_data sensor_tag_data[FIMC_IS_STREAM_COUNT];
};
struct fimc_is_group *get_ischain_leader_group(struct fimc_is_device_ischain *device);