diff options
Diffstat (limited to 'include/linux/ata.h')
| -rw-r--r-- | include/linux/ata.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/include/linux/ata.h b/include/linux/ata.h index 1ce19c1ef0e9..a26ebd25bac1 100644 --- a/include/linux/ata.h +++ b/include/linux/ata.h | |||
| @@ -667,6 +667,15 @@ static inline int ata_id_has_dword_io(const u16 *id) | |||
| 667 | return 0; | 667 | return 0; |
| 668 | } | 668 | } |
| 669 | 669 | ||
| 670 | static inline int ata_id_has_unload(const u16 *id) | ||
| 671 | { | ||
| 672 | if (ata_id_major_version(id) >= 7 && | ||
| 673 | (id[ATA_ID_CFSSE] & 0xC000) == 0x4000 && | ||
| 674 | id[ATA_ID_CFSSE] & (1 << 13)) | ||
| 675 | return 1; | ||
| 676 | return 0; | ||
| 677 | } | ||
| 678 | |||
| 670 | static inline int ata_id_current_chs_valid(const u16 *id) | 679 | static inline int ata_id_current_chs_valid(const u16 *id) |
| 671 | { | 680 | { |
| 672 | /* For ATA-1 devices, if the INITIALIZE DEVICE PARAMETERS command | 681 | /* For ATA-1 devices, if the INITIALIZE DEVICE PARAMETERS command |
| @@ -745,7 +754,7 @@ static inline int ata_ok(u8 status) | |||
| 745 | static inline int lba_28_ok(u64 block, u32 n_block) | 754 | static inline int lba_28_ok(u64 block, u32 n_block) |
| 746 | { | 755 | { |
| 747 | /* check the ending block number */ | 756 | /* check the ending block number */ |
| 748 | return ((block + n_block - 1) < ((u64)1 << 28)) && (n_block <= 256); | 757 | return ((block + n_block) < ((u64)1 << 28)) && (n_block <= 256); |
| 749 | } | 758 | } |
| 750 | 759 | ||
| 751 | static inline int lba_48_ok(u64 block, u32 n_block) | 760 | static inline int lba_48_ok(u64 block, u32 n_block) |
