mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-12 01:20:14 +00:00
staging: gpib: Return -EINTR on device clear
When the ATN (Attention) line is asserted during a read we get a NIUSB_ATN_STATE_ERROR during a read. For the controller to send a device clear it asserts ATN. Normally this is an error but in the case of a device clear it should be regarded as an interrupt. Return -EINTR when the Device Clear Active State (DCAS) is entered else signal an error with dev_dbg with status instead of just dev_err. Signed-off-by: Dave Penkler <dpenkler@gmail.com> Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
92a2b74a6b
commit
aaf2af1ed1
@ -697,8 +697,12 @@ static int ni_usb_read(struct gpib_board *board, u8 *buffer, size_t length,
|
||||
*/
|
||||
break;
|
||||
case NIUSB_ATN_STATE_ERROR:
|
||||
retval = -EIO;
|
||||
dev_err(&usb_dev->dev, "read when ATN set\n");
|
||||
if (status.ibsta & DCAS) {
|
||||
retval = -EINTR;
|
||||
} else {
|
||||
retval = -EIO;
|
||||
dev_dbg(&usb_dev->dev, "read when ATN set stat: 0x%06x\n", status.ibsta);
|
||||
}
|
||||
break;
|
||||
case NIUSB_ADDRESSING_ERROR:
|
||||
retval = -EIO;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user