picosec = simple_strtoul(buf, &endp, 10) * 1000; if (*endp == '.') { int mult = 100; do { endp++; if (!isdigit(*endp)) break; picosec += (*endp - '0') * mult; mult /= 10; } while (mult > 0); } 
retval = store_spi_transport_period_helper(cdev, buf, count, &period); 
store_spi_transport_period(struct class_device *cdev, const char *buf,			    size_t count){	struct scsi_target *starget = transport_class_to_starget(cdev);	struct Scsi_Host *shost = dev_to_shost(starget->dev.parent);	struct spi_internal *i = to_spi_internal(shost->transportt);	int j, picosec, period = -1;	char *endp;	picosec = simple_strtoul(buf, &endp, 10) * 1000;	if (*endp == '.') {		int mult = 100;		do {			endp++;			if (!isdigit(*endp))				break;			picosec += (*endp - '0') * mult;			mult /= 10;		} while (mult > 0);	}	for (j = 0; j <= SPI_STATIC_PPR; j++) {		if (ppr_to_ps[j] < picosec)			continue;		period = j;		break;	}	if (period == -1)		period = picosec / 4000;	if (period > 0xff)		period = 0xff;	i->f->set_period(starget, period);	return count;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/62a8612972eaea804e1e42c63ee403cd4e14cc35/scsi_transport_spi.c/clean/drivers/scsi/scsi_transport_spi.c