diff --git a/api/current.txt b/api/current.txt index bbd5bbec43053..b8f1324f02a2b 100644 --- a/api/current.txt +++ b/api/current.txt @@ -15812,6 +15812,7 @@ package android.hardware.camera2 { field public static final android.hardware.camera2.CameraCharacteristics.Key INFO_SUPPORTED_HARDWARE_LEVEL; field public static final android.hardware.camera2.CameraCharacteristics.Key INFO_VERSION; field public static final android.hardware.camera2.CameraCharacteristics.Key JPEG_AVAILABLE_THUMBNAIL_SIZES; + field public static final android.hardware.camera2.CameraCharacteristics.Key LENS_DISTORTION; field public static final android.hardware.camera2.CameraCharacteristics.Key LENS_FACING; field public static final android.hardware.camera2.CameraCharacteristics.Key LENS_INFO_AVAILABLE_APERTURES; field public static final android.hardware.camera2.CameraCharacteristics.Key LENS_INFO_AVAILABLE_FILTER_DENSITIES; @@ -15824,7 +15825,7 @@ package android.hardware.camera2 { field public static final android.hardware.camera2.CameraCharacteristics.Key LENS_POSE_REFERENCE; field public static final android.hardware.camera2.CameraCharacteristics.Key LENS_POSE_ROTATION; field public static final android.hardware.camera2.CameraCharacteristics.Key LENS_POSE_TRANSLATION; - field public static final android.hardware.camera2.CameraCharacteristics.Key LENS_RADIAL_DISTORTION; + field public static final deprecated android.hardware.camera2.CameraCharacteristics.Key LENS_RADIAL_DISTORTION; field public static final android.hardware.camera2.CameraCharacteristics.Key LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE; field public static final android.hardware.camera2.CameraCharacteristics.Key NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES; field public static final android.hardware.camera2.CameraCharacteristics.Key REPROCESS_MAX_CAPTURE_STALL; @@ -16282,6 +16283,7 @@ package android.hardware.camera2 { field public static final android.hardware.camera2.CaptureResult.Key JPEG_THUMBNAIL_QUALITY; field public static final android.hardware.camera2.CaptureResult.Key JPEG_THUMBNAIL_SIZE; field public static final android.hardware.camera2.CaptureResult.Key LENS_APERTURE; + field public static final android.hardware.camera2.CaptureResult.Key LENS_DISTORTION; field public static final android.hardware.camera2.CaptureResult.Key LENS_FILTER_DENSITY; field public static final android.hardware.camera2.CaptureResult.Key LENS_FOCAL_LENGTH; field public static final android.hardware.camera2.CaptureResult.Key LENS_FOCUS_DISTANCE; @@ -16290,7 +16292,7 @@ package android.hardware.camera2 { field public static final android.hardware.camera2.CaptureResult.Key LENS_OPTICAL_STABILIZATION_MODE; field public static final android.hardware.camera2.CaptureResult.Key LENS_POSE_ROTATION; field public static final android.hardware.camera2.CaptureResult.Key LENS_POSE_TRANSLATION; - field public static final android.hardware.camera2.CaptureResult.Key LENS_RADIAL_DISTORTION; + field public static final deprecated android.hardware.camera2.CaptureResult.Key LENS_RADIAL_DISTORTION; field public static final android.hardware.camera2.CaptureResult.Key LENS_STATE; field public static final android.hardware.camera2.CaptureResult.Key NOISE_REDUCTION_MODE; field public static final android.hardware.camera2.CaptureResult.Key REPROCESS_EFFECTIVE_EXPOSURE_FACTOR; diff --git a/core/java/android/hardware/camera2/CameraCharacteristics.java b/core/java/android/hardware/camera2/CameraCharacteristics.java index d5b052e485c4e..390b83fe10cfd 100644 --- a/core/java/android/hardware/camera2/CameraCharacteristics.java +++ b/core/java/android/hardware/camera2/CameraCharacteristics.java @@ -1242,7 +1242,7 @@ public final class CameraCharacteristics extends CameraMetadata(0.03, 0, 0).

*

To transform a pixel coordinates between two cameras facing the same direction, first - * the source camera {@link CameraCharacteristics#LENS_RADIAL_DISTORTION android.lens.radialDistortion} must be corrected for. Then the source + * the source camera {@link CameraCharacteristics#LENS_DISTORTION android.lens.distortion} must be corrected for. Then the source * camera {@link CameraCharacteristics#LENS_INTRINSIC_CALIBRATION android.lens.intrinsicCalibration} needs to be applied, followed by the * {@link CameraCharacteristics#LENS_POSE_ROTATION android.lens.poseRotation} of the source camera, the translation of the source camera * relative to the destination camera, the {@link CameraCharacteristics#LENS_POSE_ROTATION android.lens.poseRotation} of the destination @@ -1256,10 +1256,10 @@ public final class CameraCharacteristics extends CameraMetadataUnits: Meters

*

Optional - This value may be {@code null} on some devices.

* + * @see CameraCharacteristics#LENS_DISTORTION * @see CameraCharacteristics#LENS_INTRINSIC_CALIBRATION * @see CameraCharacteristics#LENS_POSE_REFERENCE * @see CameraCharacteristics#LENS_POSE_ROTATION - * @see CameraCharacteristics#LENS_RADIAL_DISTORTION */ @PublicKey public static final Key LENS_POSE_TRANSLATION = @@ -1305,7 +1305,7 @@ public final class CameraCharacteristics extends CameraMetadata(0,0) is the top-left of the * preCorrectionActiveArraySize rectangle. Once the pose and * intrinsic calibration transforms have been applied to a - * world point, then the {@link CameraCharacteristics#LENS_RADIAL_DISTORTION android.lens.radialDistortion} + * world point, then the {@link CameraCharacteristics#LENS_DISTORTION android.lens.distortion} * transform needs to be applied, and the result adjusted to * be in the {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE android.sensor.info.activeArraySize} coordinate * system (where (0, 0) is the top-left of the @@ -1318,9 +1318,9 @@ public final class CameraCharacteristics extends CameraMetadata *

Optional - This value may be {@code null} on some devices.

* + * @see CameraCharacteristics#LENS_DISTORTION * @see CameraCharacteristics#LENS_POSE_ROTATION * @see CameraCharacteristics#LENS_POSE_TRANSLATION - * @see CameraCharacteristics#LENS_RADIAL_DISTORTION * @see CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE * @see CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE */ @@ -1362,7 +1362,14 @@ public final class CameraCharacteristics extends CameraMetadataOptional - This value may be {@code null} on some devices.

* * @see CameraCharacteristics#LENS_INTRINSIC_CALIBRATION + * @deprecated + *

This field was inconsistently defined in terms of its + * normalization. Use {@link CameraCharacteristics#LENS_DISTORTION android.lens.distortion} instead.

+ * + * @see CameraCharacteristics#LENS_DISTORTION + */ + @Deprecated @PublicKey public static final Key LENS_RADIAL_DISTORTION = new Key("android.lens.radialDistortion", float[].class); @@ -1386,6 +1393,46 @@ public final class CameraCharacteristics extends CameraMetadata LENS_POSE_REFERENCE = new Key("android.lens.poseReference", int.class); + /** + *

The correction coefficients to correct for this camera device's + * radial and tangential lens distortion.

+ *

Replaces the deprecated {@link CameraCharacteristics#LENS_RADIAL_DISTORTION android.lens.radialDistortion} field, which was + * inconsistently defined.

+ *

Three radial distortion coefficients [kappa_1, kappa_2, + * kappa_3] and two tangential distortion coefficients + * [kappa_4, kappa_5] that can be used to correct the + * lens's geometric distortion with the mapping equations:

+ *
 x_c = x_i * ( 1 + kappa_1 * r^2 + kappa_2 * r^4 + kappa_3 * r^6 ) +
+     *        kappa_4 * (2 * x_i * y_i) + kappa_5 * ( r^2 + 2 * x_i^2 )
+     *  y_c = y_i * ( 1 + kappa_1 * r^2 + kappa_2 * r^4 + kappa_3 * r^6 ) +
+     *        kappa_5 * (2 * x_i * y_i) + kappa_4 * ( r^2 + 2 * y_i^2 )
+     * 
+ *

Here, [x_c, y_c] are the coordinates to sample in the + * input image that correspond to the pixel values in the + * corrected image at the coordinate [x_i, y_i]:

+ *
 correctedImage(x_i, y_i) = sample_at(x_c, y_c, inputImage)
+     * 
+ *

The pixel coordinates are defined in a coordinate system + * related to the {@link CameraCharacteristics#LENS_INTRINSIC_CALIBRATION android.lens.intrinsicCalibration} + * calibration fields; see that entry for details of the mapping stages. + * Both [x_i, y_i] and [x_c, y_c] + * have (0,0) at the lens optical center [c_x, c_y], and + * the range of the coordinates depends on the focal length + * terms of the intrinsic calibration.

+ *

Finally, r represents the radial distance from the + * optical center, r^2 = x_i^2 + y_i^2.

+ *

The distortion model used is the Brown-Conrady model.

+ *

Units: + * Unitless coefficients.

+ *

Optional - This value may be {@code null} on some devices.

+ * + * @see CameraCharacteristics#LENS_INTRINSIC_CALIBRATION + * @see CameraCharacteristics#LENS_RADIAL_DISTORTION + */ + @PublicKey + public static final Key LENS_DISTORTION = + new Key("android.lens.distortion", float[].class); + /** *

List of noise reduction modes for {@link CaptureRequest#NOISE_REDUCTION_MODE android.noiseReduction.mode} that are supported * by this camera device.

@@ -1418,6 +1465,8 @@ public final class CameraCharacteristics extends CameraMetadata *

Optional - This value may be {@code null} on some devices.

* @deprecated + *

Not used in HALv3 or newer; replaced by better partials mechanism

+ * @hide */ @Deprecated @@ -1808,6 +1857,8 @@ public final class CameraCharacteristics extends CameraMetadataWhen set to YUV_420_888, application can access the YUV420 data directly.

*

Optional - This value may be {@code null} on some devices.

* @deprecated + *

Not used in HALv3 or newer

+ * @hide */ @Deprecated @@ -1828,6 +1879,8 @@ public final class CameraCharacteristics extends CameraMetadata *

Optional - This value may be {@code null} on some devices.

* @deprecated + *

Not used in HALv3 or newer

+ * @hide */ @Deprecated @@ -1844,6 +1897,8 @@ public final class CameraCharacteristics extends CameraMetadataNot used in HALv3 or newer

+ * @hide */ @Deprecated @@ -1883,6 +1938,8 @@ public final class CameraCharacteristics extends CameraMetadataUnits: Nanoseconds

*

Optional - This value may be {@code null} on some devices.

* @deprecated + *

Not used in HALv3 or newer

+ * @hide */ @Deprecated @@ -1905,6 +1962,8 @@ public final class CameraCharacteristics extends CameraMetadata *

Optional - This value may be {@code null} on some devices.

* @deprecated + *

Not used in HALv3 or newer

+ * @hide */ @Deprecated @@ -2544,7 +2603,7 @@ public final class CameraCharacteristics extends CameraMetadata *

The currently supported fields that correct for geometric distortion are:

*
    - *
  1. {@link CameraCharacteristics#LENS_RADIAL_DISTORTION android.lens.radialDistortion}.
  2. + *
  3. {@link CameraCharacteristics#LENS_DISTORTION android.lens.distortion}.
  4. *
*

If all of the geometric distortion fields are no-ops, this rectangle will be the same * as the post-distortion-corrected rectangle given in @@ -2557,7 +2616,7 @@ public final class CameraCharacteristics extends CameraMetadataUnits: Pixel coordinates on the image sensor

*

This key is available on all devices.

* - * @see CameraCharacteristics#LENS_RADIAL_DISTORTION + * @see CameraCharacteristics#LENS_DISTORTION * @see CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE * @see CameraCharacteristics#SENSOR_INFO_PIXEL_ARRAY_SIZE * @see CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE diff --git a/core/java/android/hardware/camera2/CameraMetadata.java b/core/java/android/hardware/camera2/CameraMetadata.java index 14c2865cf3e36..7669c018acd15 100644 --- a/core/java/android/hardware/camera2/CameraMetadata.java +++ b/core/java/android/hardware/camera2/CameraMetadata.java @@ -684,7 +684,7 @@ public abstract class CameraMetadata { *
  • {@link CameraCharacteristics#LENS_POSE_TRANSLATION android.lens.poseTranslation}
  • *
  • {@link CameraCharacteristics#LENS_POSE_ROTATION android.lens.poseRotation}
  • *
  • {@link CameraCharacteristics#LENS_INTRINSIC_CALIBRATION android.lens.intrinsicCalibration}
  • - *
  • {@link CameraCharacteristics#LENS_RADIAL_DISTORTION android.lens.radialDistortion}
  • + *
  • {@link CameraCharacteristics#LENS_DISTORTION android.lens.distortion}
  • * * *
  • The {@link CameraCharacteristics#DEPTH_DEPTH_IS_EXCLUSIVE android.depth.depthIsExclusive} entry is listed by this device.
  • @@ -702,12 +702,12 @@ public abstract class CameraMetadata { * rate, including depth stall time.

    * * @see CameraCharacteristics#DEPTH_DEPTH_IS_EXCLUSIVE + * @see CameraCharacteristics#LENS_DISTORTION * @see CameraCharacteristics#LENS_FACING * @see CameraCharacteristics#LENS_INTRINSIC_CALIBRATION * @see CameraCharacteristics#LENS_POSE_REFERENCE * @see CameraCharacteristics#LENS_POSE_ROTATION * @see CameraCharacteristics#LENS_POSE_TRANSLATION - * @see CameraCharacteristics#LENS_RADIAL_DISTORTION * @see CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES */ public static final int REQUEST_AVAILABLE_CAPABILITIES_DEPTH_OUTPUT = 8; @@ -826,7 +826,7 @@ public abstract class CameraMetadata { *
  • {@link CameraCharacteristics#LENS_POSE_ROTATION android.lens.poseRotation}
  • *
  • {@link CameraCharacteristics#LENS_POSE_TRANSLATION android.lens.poseTranslation}
  • *
  • {@link CameraCharacteristics#LENS_INTRINSIC_CALIBRATION android.lens.intrinsicCalibration}
  • - *
  • {@link CameraCharacteristics#LENS_RADIAL_DISTORTION android.lens.radialDistortion}
  • + *
  • {@link CameraCharacteristics#LENS_DISTORTION android.lens.distortion}
  • * * *
  • The SENSOR_INFO_TIMESTAMP_SOURCE of the logical device and physical devices must be @@ -852,11 +852,11 @@ public abstract class CameraMetadata { * not slow down the frame rate of the capture, as long as the minimum frame duration * of the physical and logical streams are the same.

    * + * @see CameraCharacteristics#LENS_DISTORTION * @see CameraCharacteristics#LENS_INTRINSIC_CALIBRATION * @see CameraCharacteristics#LENS_POSE_REFERENCE * @see CameraCharacteristics#LENS_POSE_ROTATION * @see CameraCharacteristics#LENS_POSE_TRANSLATION - * @see CameraCharacteristics#LENS_RADIAL_DISTORTION * @see CameraCharacteristics#LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE * @see CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES */ diff --git a/core/java/android/hardware/camera2/CaptureRequest.java b/core/java/android/hardware/camera2/CaptureRequest.java index d7c55645e20c2..b0cbec71dfe6a 100644 --- a/core/java/android/hardware/camera2/CaptureRequest.java +++ b/core/java/android/hardware/camera2/CaptureRequest.java @@ -2791,8 +2791,10 @@ public final class CaptureRequest extends CameraMetadata> *
  • {@link #STATISTICS_OIS_DATA_MODE_ON ON}
  • *

    *

    Available values for this device:
    - * android.Statistics.info.availableOisDataModes

    + * {@link CameraCharacteristics#STATISTICS_INFO_AVAILABLE_OIS_DATA_MODES android.statistics.info.availableOisDataModes}

    *

    Optional - This value may be {@code null} on some devices.

    + * + * @see CameraCharacteristics#STATISTICS_INFO_AVAILABLE_OIS_DATA_MODES * @see #STATISTICS_OIS_DATA_MODE_OFF * @see #STATISTICS_OIS_DATA_MODE_ON */ diff --git a/core/java/android/hardware/camera2/CaptureResult.java b/core/java/android/hardware/camera2/CaptureResult.java index e84e48f8fbcb2..633194243512f 100644 --- a/core/java/android/hardware/camera2/CaptureResult.java +++ b/core/java/android/hardware/camera2/CaptureResult.java @@ -2783,7 +2783,7 @@ public class CaptureResult extends CameraMetadata> { * from the main sensor along the +X axis (to the right from the user's perspective) will * report (0.03, 0, 0).

    *

    To transform a pixel coordinates between two cameras facing the same direction, first - * the source camera {@link CameraCharacteristics#LENS_RADIAL_DISTORTION android.lens.radialDistortion} must be corrected for. Then the source + * the source camera {@link CameraCharacteristics#LENS_DISTORTION android.lens.distortion} must be corrected for. Then the source * camera {@link CameraCharacteristics#LENS_INTRINSIC_CALIBRATION android.lens.intrinsicCalibration} needs to be applied, followed by the * {@link CameraCharacteristics#LENS_POSE_ROTATION android.lens.poseRotation} of the source camera, the translation of the source camera * relative to the destination camera, the {@link CameraCharacteristics#LENS_POSE_ROTATION android.lens.poseRotation} of the destination @@ -2797,10 +2797,10 @@ public class CaptureResult extends CameraMetadata> { *

    Units: Meters

    *

    Optional - This value may be {@code null} on some devices.

    * + * @see CameraCharacteristics#LENS_DISTORTION * @see CameraCharacteristics#LENS_INTRINSIC_CALIBRATION * @see CameraCharacteristics#LENS_POSE_REFERENCE * @see CameraCharacteristics#LENS_POSE_ROTATION - * @see CameraCharacteristics#LENS_RADIAL_DISTORTION */ @PublicKey public static final Key LENS_POSE_TRANSLATION = @@ -2846,7 +2846,7 @@ public class CaptureResult extends CameraMetadata> { * where (0,0) is the top-left of the * preCorrectionActiveArraySize rectangle. Once the pose and * intrinsic calibration transforms have been applied to a - * world point, then the {@link CameraCharacteristics#LENS_RADIAL_DISTORTION android.lens.radialDistortion} + * world point, then the {@link CameraCharacteristics#LENS_DISTORTION android.lens.distortion} * transform needs to be applied, and the result adjusted to * be in the {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE android.sensor.info.activeArraySize} coordinate * system (where (0, 0) is the top-left of the @@ -2859,9 +2859,9 @@ public class CaptureResult extends CameraMetadata> { * coordinate system.

    *

    Optional - This value may be {@code null} on some devices.

    * + * @see CameraCharacteristics#LENS_DISTORTION * @see CameraCharacteristics#LENS_POSE_ROTATION * @see CameraCharacteristics#LENS_POSE_TRANSLATION - * @see CameraCharacteristics#LENS_RADIAL_DISTORTION * @see CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE * @see CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE */ @@ -2903,11 +2903,58 @@ public class CaptureResult extends CameraMetadata> { *

    Optional - This value may be {@code null} on some devices.

    * * @see CameraCharacteristics#LENS_INTRINSIC_CALIBRATION + * @deprecated + *

    This field was inconsistently defined in terms of its + * normalization. Use {@link CameraCharacteristics#LENS_DISTORTION android.lens.distortion} instead.

    + * + * @see CameraCharacteristics#LENS_DISTORTION + */ + @Deprecated @PublicKey public static final Key LENS_RADIAL_DISTORTION = new Key("android.lens.radialDistortion", float[].class); + /** + *

    The correction coefficients to correct for this camera device's + * radial and tangential lens distortion.

    + *

    Replaces the deprecated {@link CameraCharacteristics#LENS_RADIAL_DISTORTION android.lens.radialDistortion} field, which was + * inconsistently defined.

    + *

    Three radial distortion coefficients [kappa_1, kappa_2, + * kappa_3] and two tangential distortion coefficients + * [kappa_4, kappa_5] that can be used to correct the + * lens's geometric distortion with the mapping equations:

    + *
     x_c = x_i * ( 1 + kappa_1 * r^2 + kappa_2 * r^4 + kappa_3 * r^6 ) +
    +     *        kappa_4 * (2 * x_i * y_i) + kappa_5 * ( r^2 + 2 * x_i^2 )
    +     *  y_c = y_i * ( 1 + kappa_1 * r^2 + kappa_2 * r^4 + kappa_3 * r^6 ) +
    +     *        kappa_5 * (2 * x_i * y_i) + kappa_4 * ( r^2 + 2 * y_i^2 )
    +     * 
    + *

    Here, [x_c, y_c] are the coordinates to sample in the + * input image that correspond to the pixel values in the + * corrected image at the coordinate [x_i, y_i]:

    + *
     correctedImage(x_i, y_i) = sample_at(x_c, y_c, inputImage)
    +     * 
    + *

    The pixel coordinates are defined in a coordinate system + * related to the {@link CameraCharacteristics#LENS_INTRINSIC_CALIBRATION android.lens.intrinsicCalibration} + * calibration fields; see that entry for details of the mapping stages. + * Both [x_i, y_i] and [x_c, y_c] + * have (0,0) at the lens optical center [c_x, c_y], and + * the range of the coordinates depends on the focal length + * terms of the intrinsic calibration.

    + *

    Finally, r represents the radial distance from the + * optical center, r^2 = x_i^2 + y_i^2.

    + *

    The distortion model used is the Brown-Conrady model.

    + *

    Units: + * Unitless coefficients.

    + *

    Optional - This value may be {@code null} on some devices.

    + * + * @see CameraCharacteristics#LENS_INTRINSIC_CALIBRATION + * @see CameraCharacteristics#LENS_RADIAL_DISTORTION + */ + @PublicKey + public static final Key LENS_DISTORTION = + new Key("android.lens.distortion", float[].class); + /** *

    Mode of operation for the noise reduction algorithm.

    *

    The noise reduction algorithm attempts to improve image quality by removing @@ -2981,6 +3028,8 @@ public class CaptureResult extends CameraMetadata> { * Optional. Default value is FINAL.

    *

    Optional - This value may be {@code null} on some devices.

    * @deprecated + *

    Not used in HALv3 or newer

    + * @hide */ @Deprecated @@ -2997,6 +3046,8 @@ public class CaptureResult extends CameraMetadata> { * > 0

    *

    Optional - This value may be {@code null} on some devices.

    * @deprecated + *

    Not used in HALv3 or newer

    + * @hide */ @Deprecated @@ -3777,6 +3828,8 @@ public class CaptureResult extends CameraMetadata> { * * @see CaptureRequest#COLOR_CORRECTION_GAINS * @deprecated + *

    Never fully implemented or specified; do not use

    + * @hide */ @Deprecated @@ -3801,6 +3854,8 @@ public class CaptureResult extends CameraMetadata> { * regardless of the android.control.* current values.

    *

    Optional - This value may be {@code null} on some devices.

    * @deprecated + *

    Never fully implemented or specified; do not use

    + * @hide */ @Deprecated @@ -3919,8 +3974,10 @@ public class CaptureResult extends CameraMetadata> { *
  • {@link #STATISTICS_OIS_DATA_MODE_ON ON}
  • *

    *

    Available values for this device:
    - * android.Statistics.info.availableOisDataModes

    + * {@link CameraCharacteristics#STATISTICS_INFO_AVAILABLE_OIS_DATA_MODES android.statistics.info.availableOisDataModes}

    *

    Optional - This value may be {@code null} on some devices.

    + * + * @see CameraCharacteristics#STATISTICS_INFO_AVAILABLE_OIS_DATA_MODES * @see #STATISTICS_OIS_DATA_MODE_OFF * @see #STATISTICS_OIS_DATA_MODE_ON */