X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=drivers%2Fw1%2Fw1_io.c;h=442bd8bbd4a5dcbed086cae48fed1350ba9e31b6;hb=cdb80f630be5cbc23d82331f24dc4704f75b64f4;hp=5139c25ca96288474cf976cf5577be12c6d6d30b;hpb=08cc36cbd1ee7d86422713bb21551eed1326b894;p=linux-2.6-omap-h63xx.git diff --git a/drivers/w1/w1_io.c b/drivers/w1/w1_io.c index 5139c25ca96..442bd8bbd4a 100644 --- a/drivers/w1/w1_io.c +++ b/drivers/w1/w1_io.c @@ -238,7 +238,6 @@ EXPORT_SYMBOL_GPL(w1_read_8); * @param dev the master device * @param buf pointer to the data to write * @param len the number of bytes to write - * @return the byte read */ void w1_write_block(struct w1_master *dev, const u8 *buf, int len) { @@ -255,6 +254,31 @@ void w1_write_block(struct w1_master *dev, const u8 *buf, int len) } EXPORT_SYMBOL_GPL(w1_write_block); +/** + * Touches a series of bytes. + * + * @param dev the master device + * @param buf pointer to the data to write + * @param len the number of bytes to write + */ +void w1_touch_block(struct w1_master *dev, u8 *buf, int len) +{ + int i, j; + u8 tmp; + + for (i = 0; i < len; ++i) { + tmp = 0; + for (j = 0; j < 8; ++j) { + if (j == 7) + w1_pre_write(dev); + tmp |= w1_touch_bit(dev, (buf[i] >> j) & 0x1) << j; + } + + buf[i] = tmp; + } +} +EXPORT_SYMBOL_GPL(w1_touch_block); + /** * Reads a series of bytes. *