Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 31a3da41 authored by Marek Belisko's avatar Marek Belisko Committed by Greg Kroah-Hartman
Browse files

staging: olpc_dcon: Remove _strtoul() function.



olpc_dcon driver use self invented _strtoul  function
which make similar check like strict_strtoul just extend
for space checking at last string place. Normally access
to sys file looks echo 1024 > /sys/... so space could be considered
as error character and we could simplify code using just strict_strtoul
function instead self invented.

Signed-off-by: default avatarMarek Belisko <marek.belisko@open-nandra.com>
Signed-off-by: default avatarAndres Salomon <dilinger@queued.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 45bfe972
Loading
Loading
Loading
Loading
+22 −35
Original line number Diff line number Diff line
@@ -549,48 +549,33 @@ static ssize_t dcon_resumeline_show(struct device *dev,
	return sprintf(buf, "%d\n", resumeline);
}

static int _strtoul(const char *buf, int len, unsigned int *val)
{

	char *endp;
	unsigned int output = simple_strtoul(buf, &endp, 0);
	int size = endp - buf;

	if (*endp && isspace(*endp))
		size++;

	if (size != len)
		return -EINVAL;

	*val = output;
	return 0;
}

static ssize_t dcon_mono_store(struct device *dev,
	struct device_attribute *attr, const char *buf, size_t count)
{
	int enable_mono;
	int rc = -EINVAL;
	unsigned long enable_mono;
	int rc;

	if (_strtoul(buf, count, &enable_mono))
		return -EINVAL;
	rc = strict_strtoul(buf, 10, &enable_mono);
	if (rc)
		return rc;

	dcon_set_mono_mode(dev_get_drvdata(dev), enable_mono ? true : false);
	rc = count;

	return rc;
	return count;
}

static ssize_t dcon_freeze_store(struct device *dev,
	struct device_attribute *attr, const char *buf, size_t count)
{
	struct dcon_priv *dcon = dev_get_drvdata(dev);
	int output;
	unsigned long output;
	int ret;

	if (_strtoul(buf, count, &output))
		return -EINVAL;
	ret = strict_strtoul(buf, 10, &output);
	if (ret)
		return ret;

	printk(KERN_INFO "dcon_freeze_store: %d\n", output);
	printk(KERN_INFO "dcon_freeze_store: %lu\n", output);

	switch (output) {
	case 0:
@@ -612,26 +597,28 @@ static ssize_t dcon_freeze_store(struct device *dev,
static ssize_t dcon_resumeline_store(struct device *dev,
	struct device_attribute *attr, const char *buf, size_t count)
{
	int rl;
	int rc = -EINVAL;
	unsigned long rl;
	int rc;

	if (_strtoul(buf, count, &rl))
	rc = strict_strtoul(buf, 10, &rl);
	if (rc)
		return rc;

	resumeline = rl;
	dcon_write(dev_get_drvdata(dev), DCON_REG_SCAN_INT, resumeline);
	rc = count;

	return rc;
	return count;
}

static ssize_t dcon_sleep_store(struct device *dev,
	struct device_attribute *attr, const char *buf, size_t count)
{
	int output;
	unsigned long output;
	int ret;

	if (_strtoul(buf, count, &output))
		return -EINVAL;
	ret = strict_strtoul(buf, 10, &output);
	if (ret)
		return ret;

	dcon_sleep(dev_get_drvdata(dev), output ? true : false);
	return count;