Exemplo n.º 1
0
static int dev_init(struct fp_img_dev *dev, unsigned long driver_data)
{
	/* TODO check that device has endpoints we're using */
	int r;
	struct aesX660_dev *aesdev;

	r = libusb_claim_interface(dev->udev, 0);
	if (r < 0) {
		fp_err("could not claim interface 0");
		return r;
	}

	dev->priv = aesdev = g_malloc0(sizeof(struct aesX660_dev));
	aesdev->buffer = g_malloc0(AES1660_FRAME_SIZE + AESX660_HEADER_SIZE);
	aesdev->init_seqs[0] = aes1660_init_1;
	aesdev->init_seqs_len[0] = array_n_elements(aes1660_init_1);
	aesdev->init_seqs[1] = aes1660_init_2;
	aesdev->init_seqs_len[1] = array_n_elements(aes1660_init_2);
	aesdev->start_imaging_cmd = (unsigned char *)aes1660_start_imaging_cmd;
	aesdev->start_imaging_cmd_len = sizeof(aes1660_start_imaging_cmd);
	aesdev->frame_width = FRAME_WIDTH;
	aesdev->extra_img_flags = FP_IMG_PARTIAL; 

	fpi_imgdev_open_complete(dev, 0);
	return 0;
}
Exemplo n.º 2
0
static int dev_init(struct fp_img_dev *dev, unsigned long driver_data)
{
	/* TODO check that device has endpoints we're using */
	int r;
	struct upektc_dev *upekdev;

	r = libusb_claim_interface(dev->udev, 0);
	if (r < 0) {
		fp_err("could not claim interface 0: %s", libusb_error_name(r));
		return r;
	}

	dev->priv = upekdev = g_malloc0(sizeof(struct upektc_dev));
	switch (driver_data) {
	case UPEKTC_2015:
		upekdev->ep_in = UPEKTC_EP_IN;
		upekdev->ep_out = UPEKTC_EP_OUT;
		upekdev->setup_commands = upektc_setup_commands;
		upekdev->setup_commands_len = array_n_elements(upektc_setup_commands);
		upekdev->sum_threshold = UPEKTC_SUM_THRESHOLD;
		break;
	case UPEKTC_3001:
		upekdev->ep_in = UPEKET_EP_IN;
		upekdev->ep_out = UPEKET_EP_OUT;
		upekdev->setup_commands = upeket_setup_commands;
		upekdev->setup_commands_len = array_n_elements(upeket_setup_commands);
		upekdev->sum_threshold = UPEKET_SUM_THRESHOLD;
		break;
	default:
		fp_err("Device variant %d is not known\n", driver_data);
		g_free(upekdev);
		dev->priv = NULL;
		return -ENODEV;
		break;
	}
	fpi_imgdev_open_complete(dev, 0);
	return 0;
}
Exemplo n.º 3
0
static int dev_init(struct fp_img_dev *dev, unsigned long driver_data)
{
	/* TODO check that device has endpoints we're using */
	int r;
	struct aesX660_dev *aesdev;

	r = libusb_claim_interface(dev->udev, 0);
	if (r < 0) {
		fp_err("could not claim interface 0");
		return r;
	}

	dev->priv = aesdev = g_malloc0(sizeof(struct aesX660_dev));
	if (!aesdev)
		return -ENOMEM;

	aesdev->buffer = g_malloc0(AES2660_FRAME_SIZE + AESX660_HEADER_SIZE);
	if (!aesdev->buffer) {
		g_free(aesdev);
		dev->priv = NULL;
		return -ENOMEM;
	}

	/* No scaling for AES2660 */
	aesdev->h_scale_factor = 1;
	aesdev->init_seqs[0] = aes2660_init_1;
	aesdev->init_seqs_len[0] = array_n_elements(aes2660_init_1);
	aesdev->init_seqs[1] = aes2660_init_2;
	aesdev->init_seqs_len[1] = array_n_elements(aes2660_init_2);
	aesdev->start_imaging_cmd = (unsigned char *)aes2660_start_imaging_cmd;
	aesdev->start_imaging_cmd_len = sizeof(aes2660_start_imaging_cmd);
	aesdev->frame_width = FRAME_WIDTH;

	fpi_imgdev_open_complete(dev, 0);
	return 0;
}