Ejemplo n.º 1
0
static int
i2c_put_byte(struct nouveau_i2c_port *port, u8 byte)
{
    int i, ret;
    for (i = 7; i >= 0; i--) {
        ret = i2c_bitw(port, !!(byte & (1 << i)));
        if (ret < 0)
            return ret;
    }

    ret = i2c_bitr(port);
    if (ret == 1) /* nack */
        ret = -EIO;
    return ret;
}
Ejemplo n.º 2
0
Archivo: bit.c Proyecto: 020gzh/linux
static int
nvkm_i2c_put_byte(struct nvkm_i2c_bus *bus, u8 byte)
{
	int i, ret;
	for (i = 7; i >= 0; i--) {
		ret = i2c_bitw(bus, !!(byte & (1 << i)));
		if (ret < 0)
			return ret;
	}

	ret = i2c_bitr(bus);
	if (ret == 1) /* nack */
		ret = -EIO;
	return ret;
}
Ejemplo n.º 3
0
static int
i2c_get_byte(struct nouveau_i2c_port *port, u8 *byte, bool last)
{
    int i, bit;

    *byte = 0;
    for (i = 7; i >= 0; i--) {
        bit = i2c_bitr(port);
        if (bit < 0)
            return bit;
        *byte |= bit << i;
    }

    return i2c_bitw(port, last ? 1 : 0);
}
Ejemplo n.º 4
0
Archivo: bit.c Proyecto: 020gzh/linux
static int
nvkm_i2c_get_byte(struct nvkm_i2c_bus *bus, u8 *byte, bool last)
{
	int i, bit;

	*byte = 0;
	for (i = 7; i >= 0; i--) {
		bit = i2c_bitr(bus);
		if (bit < 0)
			return bit;
		*byte |= bit << i;
	}

	return i2c_bitw(bus, last ? 1 : 0);
}