Update to android-mainline kernel headers v5.4.

Update generate_uapi_headers.sh to checkout the android mainline
kernel. Also, add a small modification to look for the kernel directory
in common not linux-stable.

Remove deprecated android headers from android/uapi/linux. Also,
remove f_accessory.h since it's in the android mainline kernel.

Test: Builds and runs on walleye.
Change-Id: Ia371305e19f56e6bcc2db6d5b4d299819f07ffc6
diff --git a/libc/kernel/uapi/linux/can/gw.h b/libc/kernel/uapi/linux/can/gw.h
index 9be6107..f76bafb 100644
--- a/libc/kernel/uapi/linux/can/gw.h
+++ b/libc/kernel/uapi/linux/can/gw.h
@@ -47,23 +47,35 @@
   CGW_DELETED,
   CGW_LIM_HOPS,
   CGW_MOD_UID,
+  CGW_FDMOD_AND,
+  CGW_FDMOD_OR,
+  CGW_FDMOD_XOR,
+  CGW_FDMOD_SET,
   __CGW_MAX
 };
 #define CGW_MAX (__CGW_MAX - 1)
 #define CGW_FLAGS_CAN_ECHO 0x01
 #define CGW_FLAGS_CAN_SRC_TSTAMP 0x02
 #define CGW_FLAGS_CAN_IIF_TX_OK 0x04
+#define CGW_FLAGS_CAN_FD 0x08
 #define CGW_MOD_FUNCS 4
 #define CGW_MOD_ID 0x01
 #define CGW_MOD_DLC 0x02
+#define CGW_MOD_LEN CGW_MOD_DLC
 #define CGW_MOD_DATA 0x04
-#define CGW_FRAME_MODS 3
+#define CGW_MOD_FLAGS 0x08
+#define CGW_FRAME_MODS 4
 #define MAX_MODFUNCTIONS (CGW_MOD_FUNCS * CGW_FRAME_MODS)
 struct cgw_frame_mod {
   struct can_frame cf;
   __u8 modtype;
 } __attribute__((packed));
+struct cgw_fdframe_mod {
+  struct canfd_frame cf;
+  __u8 modtype;
+} __attribute__((packed));
 #define CGW_MODATTR_LEN sizeof(struct cgw_frame_mod)
+#define CGW_FDMODATTR_LEN sizeof(struct cgw_fdframe_mod)
 struct cgw_csum_xor {
   __s8 from_idx;
   __s8 to_idx;
diff --git a/libc/kernel/uapi/linux/can/j1939.h b/libc/kernel/uapi/linux/can/j1939.h
new file mode 100644
index 0000000..531a222
--- /dev/null
+++ b/libc/kernel/uapi/linux/can/j1939.h
@@ -0,0 +1,67 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _UAPI_CAN_J1939_H_
+#define _UAPI_CAN_J1939_H_
+#include <linux/types.h>
+#include <linux/socket.h>
+#include <linux/can.h>
+#define J1939_MAX_UNICAST_ADDR 0xfd
+#define J1939_IDLE_ADDR 0xfe
+#define J1939_NO_ADDR 0xff
+#define J1939_NO_NAME 0
+#define J1939_PGN_REQUEST 0x0ea00
+#define J1939_PGN_ADDRESS_CLAIMED 0x0ee00
+#define J1939_PGN_ADDRESS_COMMANDED 0x0fed8
+#define J1939_PGN_PDU1_MAX 0x3ff00
+#define J1939_PGN_MAX 0x3ffff
+#define J1939_NO_PGN 0x40000
+typedef __u32 pgn_t;
+typedef __u8 priority_t;
+typedef __u64 name_t;
+#define SOL_CAN_J1939 (SOL_CAN_BASE + CAN_J1939)
+enum {
+  SO_J1939_FILTER = 1,
+  SO_J1939_PROMISC = 2,
+  SO_J1939_SEND_PRIO = 3,
+  SO_J1939_ERRQUEUE = 4,
+};
+enum {
+  SCM_J1939_DEST_ADDR = 1,
+  SCM_J1939_DEST_NAME = 2,
+  SCM_J1939_PRIO = 3,
+  SCM_J1939_ERRQUEUE = 4,
+};
+enum {
+  J1939_NLA_PAD,
+  J1939_NLA_BYTES_ACKED,
+};
+enum {
+  J1939_EE_INFO_NONE,
+  J1939_EE_INFO_TX_ABORT,
+};
+struct j1939_filter {
+  name_t name;
+  name_t name_mask;
+  pgn_t pgn;
+  pgn_t pgn_mask;
+  __u8 addr;
+  __u8 addr_mask;
+};
+#define J1939_FILTER_MAX 512
+#endif