/* Read a value from the @channel with the proper locking and sleep until either the read completes or we timeout awaiting the ADC core to get back to us.  */
static int s3c_hwmon_read_ch(struct device *dev, struct s3c_hwmon *hwmon, int channel)
/* Read a value from the @channel with the proper locking and sleep until either the read completes or we timeout awaiting the ADC core to get back to us.  */
static int s3c_hwmon_read_ch(struct device *dev, struct s3c_hwmon *hwmon, int channel)
{
	int ret;
	ret = down_interruptible(&hwmon->lock);
	if (ret < 0)
		return ret;
	dev_dbg(dev, "reading channel %d\n", channel);
	ret = s3c_adc_read(hwmon->client, channel);
	up(&hwmon->lock);
	return ret;
}