summaryrefslogtreecommitdiff
path: root/utils/update-kernel-headers.sh
blob: 590986d2b7e2fe738e491c63e87ececb3656d148 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
 * Copyright (C) 2019, Google Inc.
 *
 * camera_ops.h - Android Camera HAL Operations
 */
#ifndef __ANDROID_CAMERA_OPS_H__
#define __ANDROID_CAMERA_OPS_H__

#include <hardware/camera3.h>

int hal_dev_close(hw_device_t *hw_device);
extern camera3_device_ops hal_dev_ops;

#endif /* __ANDROID_CAMERA_OPS_H__ */
1 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
#!/bin/sh

# SPDX-License-Identifier: GPL-2.0-or-later
# Update the kernel headers copy from a kernel source tree

if [ $# != 1 ] ; then
	echo "Usage: $0 <kernel dir>"
	exit 1
fi

header_dir="$(dirname "$(realpath "$0")")/../include/linux"
kernel_dir="$1"

# Bail out if the directory doesn't contain kernel sources
line=$(head -3 "${kernel_dir}/Kbuild" 2>/dev/null | tail -1)
if [ "$line" != "# Kbuild for top-level directory of the kernel" ] ; then
	echo "Directory ${kernel_dir} doesn't contain a kernel source tree"
	exit 1
fi

if [ ! -e "${kernel_dir}/.git" ] ; then
	echo "Directory ${kernel_dir} doesn't contain a git tree"
	exit 1
fi

# Check the kernel version, and reject dirty trees
version=$(git -C "${kernel_dir}" describe --dirty)
echo $version
if echo "${version}" | grep -q dirty ; then
	echo "Kernel tree in ${kernel_dir} is dirty"
	exit 1
fi

# Install the headers to a temporary directory
install_dir=$(mktemp -d)
if [ ! -d "${install_dir}" ] ; then
	echo "Failed to create temporary directory"
	exit 1
fi

trap "rm -rf ${install_dir}" EXIT

set -e
make -C "${kernel_dir}" O="${install_dir}" headers_install
set +e

# Copy the headers
headers="
	drm/drm_fourcc.h
	linux/dma-buf.h
	linux/dma-heap.h
	linux/media-bus-format.h
	linux/media.h
	linux/rkisp1-config.h
	linux/v4l2-common.h
	linux/v4l2-controls.h
	linux/v4l2-mediabus.h
	linux/v4l2-subdev.h
	linux/videodev2.h
"

for header in $headers ; do
	name=$(basename "${header}")
	cp "${install_dir}/usr/include/${header}" "${header_dir}/${name}"
done

# The IPU3 header is a special case, as it's stored in staging. Handle it
# manually.
(cd "${install_dir}" ; "${kernel_dir}/scripts/headers_install.sh" \
	"${kernel_dir}/drivers/staging/media/ipu3/include/uapi/intel-ipu3.h" \
	"${header_dir}/intel-ipu3.h")

# Update the README file
cat <<EOF > "${header_dir}/README"
# SPDX-License-Identifier: CC0-1.0

Files in this directory are imported from ${version} of the Linux kernel. Do not
modify them manually.
EOF

# Cleanup
rm -rf "${install_dir}"

cat <<EOF
----------------------------------------------------------------------
Kernel headers updated. Please review and up-port local changes before
committing.
----------------------------------------------------------------------
EOF