コード例 #1
0
static int dio200_subdev_8254_set_gate_src(struct comedi_device *dev,
        struct comedi_subdevice *s,
        unsigned int counter_number,
        unsigned int gate_src)
{
    const struct dio200_board *board = dev->board_ptr;
    struct dio200_subdev_8254 *subpriv = s->private;
    unsigned char byte;

    if (!board->has_clk_gat_sce)
        return -1;
    if (counter_number > 2)
        return -1;
    if (gate_src > (board->is_pcie ? 31 : 7))
        return -1;

    subpriv->gate_src[counter_number] = gate_src;
    byte = gat_sce(subpriv->which, counter_number, gate_src);
    dio200_write8(dev, subpriv->gat_sce_ofs, byte);

    return 0;
}
コード例 #2
0
/*
 * Set gate source for an '8254' counter subdevice channel.
 */
static int
dio200_subdev_8254_set_gate_src(struct comedi_device *dev,
				struct comedi_subdevice *s,
				unsigned int counter_number,
				unsigned int gate_src)
{
	const struct dio200_layout *layout = dio200_dev_layout(dev);
	struct dio200_subdev_8254 *subpriv = s->private;
	unsigned char byte;

	if (!layout->has_clk_gat_sce)
		return -1;
	if (counter_number > 2)
		return -1;
	if (gate_src > (layout->has_enhancements ? 31 : 7))
		return -1;

	subpriv->gate_src[counter_number] = gate_src;
	byte = gat_sce(subpriv->which, counter_number, gate_src);
	dio200_write8(dev, subpriv->gat_sce_ofs, byte);

	return 0;
}