lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 2 May 2012 13:03:56 -0700
From:	Greg KH <gregkh@...uxfoundation.org>
To:	Preston Fick <pffick@...il.com>
Cc:	linux-usb@...r.kernel.org, linux-kernel@...r.kernel.org,
	linux-serial@...r.kernel.org, preston.fick@...abs.com
Subject: Re: [PATCH 3/3] usb: cp210x: Add ioctl for GPIO support

On Mon, Apr 30, 2012 at 11:06:50PM -0500, Preston Fick wrote:
> This patch adds support for GPIO for CP210x devices that support it through two
> IOCTLs to get or set the GPIO latch on a CP210x device. The specification for
> this can be found in Silicon Labs AN571 document on section 5.27.1-4.
> 
> Signed-off-by: Preston Fick <preston.fick@...abs.com>
> ---
>  drivers/usb/serial/cp210x.c |   98 +++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 98 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
> index b3646b8..9d1e542 100644
> --- a/drivers/usb/serial/cp210x.c
> +++ b/drivers/usb/serial/cp210x.c
> @@ -35,6 +35,8 @@
>   */
>  static int cp210x_open(struct tty_struct *tty, struct usb_serial_port *);
>  static void cp210x_close(struct usb_serial_port *);
> +static int cp210x_ioctl(struct tty_struct *tty,
> +	unsigned int cmd, unsigned long arg);
>  static void cp210x_get_termios(struct tty_struct *,
>  	struct usb_serial_port *port);
>  static void cp210x_get_termios_port(struct usb_serial_port *port,
> @@ -175,6 +177,7 @@ static struct usb_serial_driver cp210x_device = {
>  	.bulk_out_size		= 256,
>  	.open			= cp210x_open,
>  	.close			= cp210x_close,
> +	.ioctl			= cp210x_ioctl,
>  	.break_ctl		= cp210x_break_ctl,
>  	.set_termios		= cp210x_set_termios,
>  	.tiocmget 		= cp210x_tiocmget,
> @@ -195,6 +198,10 @@ static struct usb_serial_driver * const serial_drivers[] = {
>  #define CP2104_PARTNUM		0x04
>  #define CP2105_PARTNUM		0x05
>  
> +/* IOCTLs */
> +#define IOCTL_GPIOGET		0x8000
> +#define IOCTL_GPIOSET		0x8001

As Alan pointed out, we can't just add random ioctls for individual
drivers for this type of thing.  We need to standardize on this.

Actually, why can't you use the GPIO subsystem for something like this?
Can't you export your device as both a usb-serial device and a gpio
device and have things work properly that way?

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ