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

Commit 977e6b9f authored by Tejun Heo's avatar Tejun Heo Committed by Jeff Garzik
Browse files

[PATCH] libata: update ata_do_simple_cmd()



* the function has always returned AC_ERR_* masks not -errno but its
  return type was int.  Make return type unsigned int.

* don't print error message automatically.  it's the caller's
  responsibility.

* add header comment

Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent e58eb583
Loading
Loading
Loading
Loading
+43 −14
Original line number Original line Diff line number Diff line
@@ -1131,14 +1131,23 @@ unsigned ata_exec_internal(struct ata_device *dev,
	return err_mask;
	return err_mask;
}
}


/*
/**
 * Execute a 'simple' command, that only consists of the opcode 'cmd' itself,
 *	ata_do_simple_cmd - execute simple internal command
 * without filling any other registers
 *	@dev: Device to which the command is sent
 *	@cmd: Opcode to execute
 *
 *	Execute a 'simple' command, that only consists of the opcode
 *	'cmd' itself, without filling any other registers
 *
 *	LOCKING:
 *	Kernel thread context (may sleep).
 *
 *	RETURNS:
 *	Zero on success, AC_ERR_* mask on failure
 */
 */
static int ata_do_simple_cmd(struct ata_device *dev, u8 cmd)
static unsigned int ata_do_simple_cmd(struct ata_device *dev, u8 cmd)
{
{
	struct ata_taskfile tf;
	struct ata_taskfile tf;
	int err;


	ata_tf_init(dev, &tf);
	ata_tf_init(dev, &tf);


@@ -1146,12 +1155,7 @@ static int ata_do_simple_cmd(struct ata_device *dev, u8 cmd)
	tf.flags |= ATA_TFLAG_DEVICE;
	tf.flags |= ATA_TFLAG_DEVICE;
	tf.protocol = ATA_PROT_NODATA;
	tf.protocol = ATA_PROT_NODATA;


	err = ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0);
	return ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0);
	if (err)
		ata_dev_printk(dev, KERN_ERR, "%s: ata command failed: %d\n",
			       __FUNCTION__, err);

	return err;
}
}


/**
/**
@@ -4971,6 +4975,7 @@ int ata_port_offline(struct ata_port *ap)


static int ata_flush_cache(struct ata_device *dev)
static int ata_flush_cache(struct ata_device *dev)
{
{
	unsigned int err_mask;
	u8 cmd;
	u8 cmd;


	if (!ata_try_flush_cache(dev))
	if (!ata_try_flush_cache(dev))
@@ -4981,17 +4986,41 @@ static int ata_flush_cache(struct ata_device *dev)
	else
	else
		cmd = ATA_CMD_FLUSH;
		cmd = ATA_CMD_FLUSH;


	return ata_do_simple_cmd(dev, cmd);
	err_mask = ata_do_simple_cmd(dev, cmd);
	if (err_mask) {
		ata_dev_printk(dev, KERN_ERR, "failed to flush cache\n");
		return -EIO;
	}

	return 0;
}
}


static int ata_standby_drive(struct ata_device *dev)
static int ata_standby_drive(struct ata_device *dev)
{
{
	return ata_do_simple_cmd(dev, ATA_CMD_STANDBYNOW1);
	unsigned int err_mask;

	err_mask = ata_do_simple_cmd(dev, ATA_CMD_STANDBYNOW1);
	if (err_mask) {
		ata_dev_printk(dev, KERN_ERR, "failed to standby drive "
			       "(err_mask=0x%x)\n", err_mask);
		return -EIO;
	}

	return 0;
}
}


static int ata_start_drive(struct ata_device *dev)
static int ata_start_drive(struct ata_device *dev)
{
{
	return ata_do_simple_cmd(dev, ATA_CMD_IDLEIMMEDIATE);
	unsigned int err_mask;

	err_mask = ata_do_simple_cmd(dev, ATA_CMD_IDLEIMMEDIATE);
	if (err_mask) {
		ata_dev_printk(dev, KERN_ERR, "failed to start drive "
			       "(err_mask=0x%x)\n", err_mask);
		return -EIO;
	}

	return 0;
}
}


/**
/**