i2c: stu300: use xfer_atomic callback to bail out early
Use the new callback to reject atomic transfers. Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
This commit is contained in:
parent
3d11a12ece
commit
252fa60e70
|
@ -328,12 +328,6 @@ static int stu300_start_and_await_event(struct stu300_dev *dev,
|
|||
{
|
||||
int ret;
|
||||
|
||||
if (unlikely(irqs_disabled())) {
|
||||
/* TODO: implement polling for this case if need be. */
|
||||
WARN(1, "irqs are disabled, cannot poll for event\n");
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
/* Lock command issue, fill in an event we wait for */
|
||||
spin_lock_irq(&dev->cmd_issue_lock);
|
||||
init_completion(&dev->cmd_complete);
|
||||
|
@ -380,13 +374,6 @@ static int stu300_await_event(struct stu300_dev *dev,
|
|||
{
|
||||
int ret;
|
||||
|
||||
if (unlikely(irqs_disabled())) {
|
||||
/* TODO: implement polling for this case if need be. */
|
||||
dev_err(&dev->pdev->dev, "irqs are disabled on this "
|
||||
"system!\n");
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
/* Is it already here? */
|
||||
spin_lock_irq(&dev->cmd_issue_lock);
|
||||
dev->cmd_err = STU300_ERROR_NONE;
|
||||
|
@ -846,6 +833,13 @@ static int stu300_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs,
|
|||
return num;
|
||||
}
|
||||
|
||||
static int stu300_xfer_todo(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
|
||||
{
|
||||
/* TODO: implement polling for this case if need be. */
|
||||
WARN(1, "%s: atomic transfers not implemented\n", dev_name(&adap->dev));
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static u32 stu300_func(struct i2c_adapter *adap)
|
||||
{
|
||||
/* This is the simplest thing you can think of... */
|
||||
|
@ -853,8 +847,9 @@ static u32 stu300_func(struct i2c_adapter *adap)
|
|||
}
|
||||
|
||||
static const struct i2c_algorithm stu300_algo = {
|
||||
.master_xfer = stu300_xfer,
|
||||
.functionality = stu300_func,
|
||||
.master_xfer = stu300_xfer,
|
||||
.master_xfer_atomic = stu300_xfer_todo,
|
||||
.functionality = stu300_func,
|
||||
};
|
||||
|
||||
static const struct i2c_adapter_quirks stu300_quirks = {
|
||||
|
|
Loading…
Reference in New Issue