The ODD can be enabled for ZPODD if the following three conditions are satisfied: 1 The ODD supports device attention; 2 The platform can runtime power off the ODD through ACPI; 3 The ODD is either slot type or drawer type. For such ODDs, zpodd_init is called and a new structure is allocated for it to store ZPODD related stuffs. And the zpodd_dev_enabled function is used to test if ZPODD is currently enabled for this ODD. A new config CONFIG_SATA_ZPODD is added to selectively build ZPODD code.
Showing the changes to include/uapi (1 of 8 files). Show all
Unified · Split
| @@ -908,5 +908,39 @@ struct mode_page_header { · 907 unmodified lines | |||
| 908 | __be16 desc_length; | 908 | __be16 desc_length; |
| 909 | }; | 909 | }; |
| 910 | 910 | ||
| 911 | /* removable medium feature descriptor */ | ||
| 912 | struct rm_feature_desc { | ||
| 913 | __be16 feature_code; | ||
| 914 | #if defined(__BIG_ENDIAN_BITFIELD) | ||
| 915 | __u8 reserved1:2; | ||
| 916 | __u8 feature_version:4; | ||
| 917 | __u8 persistent:1; | ||
| 918 | __u8 curr:1; | ||
| 919 | #elif defined(__LITTLE_ENDIAN_BITFIELD) | ||
| 920 | __u8 curr:1; | ||
| 921 | __u8 persistent:1; | ||
| 922 | __u8 feature_version:4; | ||
| 923 | __u8 reserved1:2; | ||
| 924 | #endif | ||
| 925 | __u8 add_len; | ||
| 926 | #if defined(__BIG_ENDIAN_BITFIELD) | ||
| 927 | __u8 mech_type:3; | ||
| 928 | __u8 load:1; | ||
| 929 | __u8 eject:1; | ||
| 930 | __u8 pvnt_jmpr:1; | ||
| 931 | __u8 dbml:1; | ||
| 932 | __u8 lock:1; | ||
| 933 | #elif defined(__LITTLE_ENDIAN_BITFIELD) | ||
| 934 | __u8 lock:1; | ||
| 935 | __u8 dbml:1; | ||
| 936 | __u8 pvnt_jmpr:1; | ||
| 937 | __u8 eject:1; | ||
| 938 | __u8 load:1; | ||
| 939 | __u8 mech_type:3; | ||
| 940 | #endif | ||
| 941 | __u8 reserved2; | ||
| 942 | __u8 reserved3; | ||
| 943 | __u8 reserved4; | ||
| 944 | }; | ||
| 911 | 945 | ||
| 912 | #endif /* _UAPI_LINUX_CDROM_H */ | 946 | #endif /* _UAPI_LINUX_CDROM_H */ |