From 2b1ef2cd9e37c7f11215260b716e03364681712c Mon Sep 17 00:00:00 2001 From: Akash Asthana Date: Mon, 12 Oct 2020 14:59:35 +0530 Subject: [PATCH] uapi: Add QTI specific header for UART Create QTI specific header for UART IOCTLs. Bluetooth uses the IOCTL to control UART clock/power states. Choose higher numerical value for UART IOCTL macros to avoid any conflict with upstream addition for new IOCTL. Change-Id: I6dbabe30f5a12b5bc21cfe8fb16cdccfcc770484 Signed-off-by: Akash Asthana --- drivers/tty/serial/msm_geni_serial.c | 10 +++++++--- gen_headers_arm.bp | 1 + gen_headers_arm64.bp | 1 + include/uapi/linux/msm_geni_serial.h | 15 +++++++++++++++ 4 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 include/uapi/linux/msm_geni_serial.h diff --git a/drivers/tty/serial/msm_geni_serial.c b/drivers/tty/serial/msm_geni_serial.c index 6d7e6fd35397..edc310b5dbd1 100644 --- a/drivers/tty/serial/msm_geni_serial.c +++ b/drivers/tty/serial/msm_geni_serial.c @@ -25,6 +25,7 @@ #include #include #include +#include /* UART specific GENI registers */ #define SE_UART_LOOPBACK_CFG (0x22C) @@ -537,15 +538,18 @@ static int msm_geni_serial_ioctl(struct uart_port *uport, unsigned int cmd, int ret = -ENOIOCTLCMD; switch (cmd) { - case TIOCPMGET: { + case TIOCPMGET: + case MSM_GENI_SERIAL_TIOCPMGET: { ret = vote_clock_on(uport); break; } - case TIOCPMPUT: { + case TIOCPMPUT: + case MSM_GENI_SERIAL_TIOCPMPUT: { ret = vote_clock_off(uport); break; } - case TIOCPMACT: { + case TIOCPMACT: + case MSM_GENI_SERIAL_TIOCPMACT: { ret = !pm_runtime_status_suspended(uport->dev); break; } diff --git a/gen_headers_arm.bp b/gen_headers_arm.bp index bd3478374a20..9f63d5e6915c 100644 --- a/gen_headers_arm.bp +++ b/gen_headers_arm.bp @@ -384,6 +384,7 @@ gen_headers_out_arm = [ "linux/msdos_fs.h", "linux/msg.h", "linux/msm_dsps.h", + "linux/msm_geni_serial.h", "linux/msm_ion.h", "linux/msm_ion_ids.h", "linux/msm_ipa.h", diff --git a/gen_headers_arm64.bp b/gen_headers_arm64.bp index 76737b019fda..4ccf4b865d15 100644 --- a/gen_headers_arm64.bp +++ b/gen_headers_arm64.bp @@ -379,6 +379,7 @@ gen_headers_out_arm64 = [ "linux/msdos_fs.h", "linux/msg.h", "linux/msm_dsps.h", + "linux/msm_geni_serial.h", "linux/msm_ion.h", "linux/msm_ion_ids.h", "linux/msm_ipa.h", diff --git a/include/uapi/linux/msm_geni_serial.h b/include/uapi/linux/msm_geni_serial.h new file mode 100644 index 000000000000..fbf8b7e68a30 --- /dev/null +++ b/include/uapi/linux/msm_geni_serial.h @@ -0,0 +1,15 @@ +/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ +/* + * Copyright (c) 2020, The Linux Foundation. All rights reserved. + */ + +#ifndef __UAPI_LINUX_MSM_GENI_SERIAL_H +#define __UAPI_LINUX_MSM_GENI_SERIAL_H + +/* IOCTLS used by BT clients to control UART power state */ + +#define MSM_GENI_SERIAL_TIOCPMGET 0x54ED /* PM get */ +#define MSM_GENI_SERIAL_TIOCPMPUT 0x54EE /* PM put */ +#define MSM_GENI_SERIAL_TIOCPMACT 0x54EF /* PM is active */ + +#endif /* __UAPI_LINUX_MSM_GENI_SERIAL_H */