kernel-ark/drivers/staging/gdm724x/gdm_tty.h
Won Kang bf0373f1c6 staging: gdm7240: a TTY rewrite according to the latest TTY APIs
Fixed mis-use of mutex for gdm_table. gdm_table is refered to only
inside tty_install and port destrcut, and usb callbacks use internal
reference which was saved during urb submission

Signed-off-by: Won Kang <wonkang@gctsemi.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-08-19 15:30:59 -07:00

72 lines
1.6 KiB
C

/*
* Copyright (c) 2012 GCT Semiconductor, Inc. All rights reserved.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _GDM_TTY_H_
#define _GDM_TTY_H_
#include <linux/types.h>
#include <linux/tty.h>
#define TTY_MAX_COUNT 2
#define MAX_ISSUE_NUM 3
enum TO_HOST_RESULT {
TO_HOST_BUFFER_REQUEST_FAIL = 1,
TO_HOST_PORT_CLOSE = 2,
TO_HOST_INVALID_PACKET = 3,
};
enum RECV_PACKET_PROCESS {
RECV_PACKET_PROCESS_COMPLETE = 0,
RECV_PACKET_PROCESS_CONTINUE = 1,
};
struct gdm {
struct tty_dev *tty_dev;
struct tty_port port;
unsigned int index;
unsigned int minor;
};
struct tty_dev {
void *priv_dev;
int (*send_func)(void *priv_dev,
void *data,
int len,
int tty_index,
void (*cb)(void *cb_data),
void *cb_data);
int (*recv_func)(void *priv_dev,
int (*cb)(void *data,
int len,
int tty_index,
struct tty_dev *tty_dev,
int complete));
int (*send_control)(void *priv_dev,
int request,
int value,
void *data,
int len);
struct gdm *gdm[2];
};
int register_lte_tty_driver(void);
void unregister_lte_tty_driver(void);
int register_lte_tty_device(struct tty_dev *tty_dev, struct device *dev);
void unregister_lte_tty_device(struct tty_dev *tty_dev);
#endif /* _GDM_USB_H_ */