diff options
author | Christopher Ferris <cferris@google.com> | 2018-10-30 19:11:33 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-10-30 19:11:33 +0000 |
commit | 891b3600cb01d72b5c4b3202dbb420b65fbd050c (patch) | |
tree | 920904f3fc787874f857d2b7d5e9025ff79b0797 | |
parent | 908110cc62a46ad9ee7fe1e356061801d1140644 (diff) | |
parent | 78c33b393ca0729b0cfdd3f18bb17fd3f5894cab (diff) | |
download | strace-891b3600cb01d72b5c4b3202dbb420b65fbd050c.tar.gz |
Merge changes from topic "kernel419"android-wear-8.0.0_r2android-o-mr1-iot-release-smart-display-r9android-o-mr1-iot-release-smart-display-r8android-o-mr1-iot-release-smart-display-r5android-o-mr1-iot-release-smart-display-r40.1Jandroid-o-mr1-iot-release-smart-display-r4android-o-mr1-iot-release-smart-display-r39android-o-mr1-iot-release-smart-display-r30android-o-mr1-iot-release-smart-display-r22android-o-mr1-iot-release-smart-display-r14android-o-mr1-iot-release-smart-clock-r6android-o-mr1-iot-release-smart-clock-r2android-o-mr1-iot-release-smart-clock-fsiandroid-o-mr1-iot-release-smart-clock-fcsandroid-o-mr1-iot-release-cube_r2android-o-mr1-iot-release-cube-fsiandroid-o-mr1-iot-release-cube-fcsandroid-n-iot-release-ihome-igv1nougat-iot-release
* changes:
Regenerate headers after .in file change.
xlat: workaround V4L2_CID_USER_IMX_BASE Linux kernel ABI breakage
-rw-r--r-- | xlat/v4l2_control_id_bases.h | 23 | ||||
-rw-r--r-- | xlat/v4l2_control_id_bases.in | 17 |
2 files changed, 37 insertions, 3 deletions
diff --git a/xlat/v4l2_control_id_bases.h b/xlat/v4l2_control_id_bases.h index e668d941..60e9cb55 100644 --- a/xlat/v4l2_control_id_bases.h +++ b/xlat/v4l2_control_id_bases.h @@ -31,12 +31,16 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define V4L2_CID_USER_TI_VPE_BASE (V4L2_CID_BASE + 0x1050) #endif +#ifndef STRACE_WORKAROUND_FOR_V4L2_CID_USER_IMX_BASE +# define STRACE_WORKAROUND_FOR_V4L2_CID_USER_IMX_BASE +# undef V4L2_CID_USER_IMX_BASE +#endif #if defined(V4L2_CID_USER_IMX_BASE) || (defined(HAVE_DECL_V4L2_CID_USER_IMX_BASE) && HAVE_DECL_V4L2_CID_USER_IMX_BASE) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((V4L2_CID_USER_IMX_BASE) == ((V4L2_CID_BASE + 0x1090)), "V4L2_CID_USER_IMX_BASE != (V4L2_CID_BASE + 0x1090)"); +static_assert((V4L2_CID_USER_IMX_BASE) == ((V4L2_CID_BASE + 0x10b0)), "V4L2_CID_USER_IMX_BASE != (V4L2_CID_BASE + 0x10b0)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define V4L2_CID_USER_IMX_BASE (V4L2_CID_BASE + 0x1090) +# define V4L2_CID_USER_IMX_BASE (V4L2_CID_BASE + 0x10b0) #endif #if defined(V4L2_CID_MPEG_BASE) || (defined(HAVE_DECL_V4L2_CID_MPEG_BASE) && HAVE_DECL_V4L2_CID_MPEG_BASE) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE @@ -146,6 +150,21 @@ const struct xlat v4l2_control_id_bases[] = { XLAT(V4L2_CID_USER_MEYE_BASE), XLAT(V4L2_CID_USER_BTTV_BASE), XLAT(V4L2_CID_USER_TI_VPE_BASE), +#ifndef STRACE_WORKAROUND_FOR_V4L2_CID_USER_IMX_BASE +# define STRACE_WORKAROUND_FOR_V4L2_CID_USER_IMX_BASE +/* +* Linux kernel commit v4.18-rc2-106-g421860b9d47053badce4b247576fa48df9ab4c48 +* has changed the value of V4L2_CID_USER_IMX_BASE constant introduced +* by commit v4.13-rc1~141^2~121 because the old value was already used +* by V4L2_CID_USER_MAX217X_BASE. +* This is of course an ABI breakage that affects Linux kernels starting +* with 4.13 and up to 4.18, as well as their LTS derivatives. +* Since the imx driver didn't provide any public control ID definitions, +* it looks like the best way to handle this situation is to pretend that +* the old value of V4L2_CID_USER_IMX_BASE didn't exist. +*/ +# undef V4L2_CID_USER_IMX_BASE +#endif XLAT(V4L2_CID_USER_IMX_BASE), XLAT(V4L2_CID_MPEG_BASE), XLAT(V4L2_CID_MPEG_CX2341X_BASE), diff --git a/xlat/v4l2_control_id_bases.in b/xlat/v4l2_control_id_bases.in index a0359be9..f3fd9255 100644 --- a/xlat/v4l2_control_id_bases.in +++ b/xlat/v4l2_control_id_bases.in @@ -2,7 +2,22 @@ V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900) V4L2_CID_USER_MEYE_BASE (V4L2_CID_BASE + 0x1000) V4L2_CID_USER_BTTV_BASE (V4L2_CID_BASE + 0x1010) V4L2_CID_USER_TI_VPE_BASE (V4L2_CID_BASE + 0x1050) -V4L2_CID_USER_IMX_BASE (V4L2_CID_BASE + 0x1090) +#ifndef STRACE_WORKAROUND_FOR_V4L2_CID_USER_IMX_BASE +# define STRACE_WORKAROUND_FOR_V4L2_CID_USER_IMX_BASE +/* + * Linux kernel commit v4.18-rc2-106-g421860b9d47053badce4b247576fa48df9ab4c48 + * has changed the value of V4L2_CID_USER_IMX_BASE constant introduced + * by commit v4.13-rc1~141^2~121 because the old value was already used + * by V4L2_CID_USER_MAX217X_BASE. + * This is of course an ABI breakage that affects Linux kernels starting + * with 4.13 and up to 4.18, as well as their LTS derivatives. + * Since the imx driver didn't provide any public control ID definitions, + * it looks like the best way to handle this situation is to pretend that + * the old value of V4L2_CID_USER_IMX_BASE didn't exist. + */ +# undef V4L2_CID_USER_IMX_BASE +#endif +V4L2_CID_USER_IMX_BASE (V4L2_CID_BASE + 0x10b0) V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900) V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000) V4L2_CID_MPEG_MFC51_BASE (V4L2_CTRL_CLASS_MPEG | 0x1100) |