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/linux (1 of 8 files). Show all
Unified · Split
| @@ -908,5 +908,39 @@ struct mode_page_header { · 907 unmodified lines | ||
| 908 | 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 | 946 | #endif /* _UAPI_LINUX_CDROM_H */ |