Exemple #1
0
static ssize_t
client_event_program_store(struct device *dev, struct device_attribute *attr,
                           const char *buf, size_t size)
{
    return get_string(to_client(dev),
                      &to_client(dev)->event_program,
                      NULL, buf, size);
}
Exemple #2
0
static ssize_t
client_flag_nogrow_store(struct device *dev, struct device_attribute *attr,
                         const char *buf, size_t size)
{
    if (to_client(dev)->enabled)
        return -EINVAL;
    return kstrtoint(buf, 0, &to_client(dev)->flag_nogrow) ? : size;
}
Exemple #3
0
static ssize_t
client_event_program_show(struct device *dev, struct device_attribute *attr,
                          char *buf)
{
    if (!to_client(dev)->event_program)
        return 0;

    return sprintf(buf, "%s\n", to_client(dev)->event_program);
}
Exemple #4
0
static ssize_t
client_filterpath_store(struct device *dev, struct device_attribute *attr,
                        const char *buf, size_t size)
{
    return get_string(to_client(dev),
                      &to_client(dev)->filterpath,
                      &to_client(dev)->filterpath_len,
                      buf, size);
}
Exemple #5
0
static ssize_t
client_filterpath_show(struct device *dev, struct device_attribute *attr,
                       char *buf)
{
    if (!to_client(dev)->filterpath)
        return 0;

    return sprintf(buf, "%s\n", to_client(dev)->filterpath);
}
Exemple #6
0
void	new_server_thread (int con, struct sockaddr_in *cliaddr, int *len)
{
	userT		*user = (userT *) malloc (sizeof (userT));

	user->fd = con;
	memcpy (&user->sin_addr, &cliaddr->sin_addr, sizeof (struct in_addr));

	if (getpeername (con, (struct sockaddr *) cliaddr, len) < 0)
	{
		// Couldn't determine remote peer name
		
		syslog (LOG_CRIT, "Couldn't determine remote peer address");
		return;
	} else
	{
		strncpy (user->peername, inet_ntoa (cliaddr->sin_addr), 
			MAX_ARPA_ADDR);
	}

	if (!to_client (user->fd, GREETING))
	{
		user->time = time(NULL);
		if (new_connection(user))
		{
			user->errors = 0;
			smunge (user);
		}
	}

	return ;
}
static int sensor_sr200_init(struct v4l2_subdev *subdev, u32 val)
{
	int ret = 0;
	u8 id;

	struct sr200_state *state = to_state(subdev);
	struct i2c_client *client = to_client(subdev);

	cam_info("%s : E \n", __func__);

	state->system_clock = 146 * 1000 * 1000;
	state->line_length_pck = 146 * 1000 * 1000;

#ifdef CONFIG_LOAD_FILE
	ret = sr200_regs_table_init();
	CHECK_ERR_MSG(ret, "[CONFIG_LOAD_FILE] init fail \n");
#endif

	sensor_sr200_apply_set(subdev, "sr200_Init_Reg", &sr200_regset_table.init);
	sensor_sr200_apply_set(subdev, "sr200_stop_stream", &sr200_regset_table.stop_stream);
	fimc_is_sr200_read8(client, 0x4, &id);

	state->initialized = 1;
	state->power_on =  SR200_HW_POWER_ON;
	state->runmode = RUNMODE_INIT;
	state->preview.update_frmsize = 1;

	cam_info("%s(id : %X) : X \n", __func__, id);

	return ret;
}
Exemple #8
0
static ssize_t
client_enable_store(struct device *dev, struct device_attribute *attr,
                    const char *buf, size_t size)
{
    struct l4fdx_client *client = to_client(dev);
    void *objmem;

    if (client->enabled)
        return -EINVAL;

    objmem = kmalloc(l4x_fdx_srv_objsize(), GFP_KERNEL);
    if (!objmem)
        return -ENOMEM;

    client->enabled = 1;

    INIT_WORK(&client->create_work, create_server);

    client->srv_obj = L4XV_FN(l4fdx_srv_obj,
                              l4x_fdx_srv_create_name(l4x_cpu_thread_get_cap(0),
                                      client->capname,
                                      &b_ops, client,
                                      objmem));

    if (IS_ERR(client->srv_obj)) {
        kfree(objmem);
        return PTR_ERR(client->srv_obj);
    }

    queue_work(khelper_wq, &client->create_work);

    return size;
}
static inline int sr200_get_exif_iso(struct v4l2_subdev *subdev, u16 *iso)
{
	struct i2c_client *client = to_client(subdev);
	int err = 0;
	u8 read_value = 0;
	unsigned short gain_value = 0;

	err = fimc_is_sr200_write8(client, 0x03, 0x20);
	CHECK_ERR_COND(err < 0, -ENODEV);
	fimc_is_sr200_read8(client, 0xb0, &read_value);

	gain_value = ((read_value * 100) / 32) + 50;
	cam_dbg("iso : gain_value=%d, read_value=%d\n", gain_value, read_value);

	if (gain_value < 114)
		*iso = 50;
	else if (gain_value < 214)
		*iso = 100;
	else if (gain_value < 264)
		*iso = 200;
	else if (gain_value < 752)
		*iso = 400;
	else
		*iso = 800;

	cam_dbg("ISO=%d\n", *iso);
	return 0;
}
static inline int sr200_get_exif_exptime(struct v4l2_subdev *subdev, u32 *exp_time)
{
	struct i2c_client *client = to_client(subdev);

	int err = 0;
	u8 read_value1 = 0;
	u8 read_value2 = 0;
	u8 read_value3 = 0;
	int OPCLK = 26000000;

	err = fimc_is_sr200_write8(client, 0x03, 0x20);
	CHECK_ERR_COND(err < 0, -ENODEV);

	fimc_is_sr200_read8(client, 0x80, &read_value1);
	fimc_is_sr200_read8(client, 0x81, &read_value2);
	fimc_is_sr200_read8(client, 0x82, &read_value3);

	cam_dbg("exposure time read_value %d, %d, %d\n",
		read_value1, read_value2, read_value3);

	if(read_value1 == 0 && read_value2 == 0 && read_value3 == 0)
	{
		*exp_time = 0;
		err = -EFAULT;
	} else {
		*exp_time = OPCLK / ((read_value1 << 19) + (read_value2 << 11) + (read_value3 << 3));
		cam_dbg("exposure time %u\n", *exp_time);
	}

	return err;
}
static int sr200_write_regs(struct v4l2_subdev *sd, const struct sensor_reg regs[], int size)
{
	int err = 0, i;
	struct i2c_client *client = to_client(sd);

	for (i = 0; i < size; i++) {
		err = fimc_is_sr200_write8(client, regs[i].addr, regs[i].data);
		CHECK_ERR_MSG(err, "register set failed\n");
	}

	return 0;
}
Exemple #12
0
static ssize_t
client_flag_nogrow_show(struct device *dev, struct device_attribute *attr,
                        char *buf)
{
    return sprintf(buf, "%d\n", to_client(dev)->flag_nogrow);
}
Exemple #13
0
static ssize_t
client_openflags_mask_show(struct device *dev, struct device_attribute *attr,
                           char *buf)
{
    return sprintf(buf, "0%o\n", to_client(dev)->openflags_mask);
}
Exemple #14
0
static ssize_t
client_enable_show(struct device *dev, struct device_attribute *attr,
                   char *buf)
{
    return sprintf(buf, "%u\n", to_client(dev)->enabled);
}
static int sr200_write_regs_from_sd(struct v4l2_subdev *sd, const char *name)
{
	char *start = NULL, *end = NULL, *reg = NULL, *temp_start = NULL;
	u8 addr = 0, value = 0;
	u8 data = 0;
	char data_buf[5] = {0, };
	u32 len = 0;
	int err = 0;
	struct i2c_client *client = to_client(sd);

	cam_info("%s : E, sr200_regs_table_size - %d\n", __func__, sr200_regs_table_size);

	addr = value = 0;

	*(data_buf + 4) = '\0';

	start = strnstr(sr200_regs_table, name, sr200_regs_table_size);
	CHECK_ERR_COND_MSG(start == NULL, -ENODATA, "start is NULL\n");

	end = strnstr(start, "};", sr200_regs_table_size);
	CHECK_ERR_COND_MSG(start == NULL, -ENODATA, "end is NULL\n");

	while (1) {
		len = end -start;
		temp_start = strnstr(start, "{", len);
		if (!temp_start || (temp_start > end)) {
			cam_info("write end of %s\n", name);
			break;
		}
		start = temp_start;

		len = end -start;
		/* Find Address */
		reg = strnstr(start, "0x", len);
		if (!reg || (reg > end)) {
			cam_info("write end of %s\n", name);
			break;
		}

		start = (reg + 4);

		/* Write Value to Address */
		memcpy(data_buf, reg, 4);

		err = kstrtou8(data_buf, 16, &data);
		CHECK_ERR_MSG(err, "kstrtou16 failed\n");

		addr = data;
		len = end -start;
		/* Find Data */
		reg = strnstr(start, "0x", len);
		if (!reg || (reg > end)) {
			cam_info("write end of %s\n", name);
			break;
		}

		/* Write Value to Address */
		memcpy(data_buf, reg, 4);

		err = kstrtou8(data_buf, 16, &data);
		CHECK_ERR_MSG(err, "kstrtou16 failed\n");

		value = data;

		err = fimc_is_sr200_write8(client, addr, value);
		CHECK_ERR_MSG(err, "register set failed\n");
	}

	cam_info("%s : X\n", __func__);

	return err;
}