Re: [PATCH] serial: uapi: Declare all userspace-visible io types

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 02/24/2015 12:01 PM, Peter Hurley wrote:
> ioctl(TIOCGSERIAL|TIOCSSERIAL) report and can change the port->iotype.
> UART drivers use the UPIO_* definitions, but the uapi header defines
> parallel values and userspace uses these parallel values for ioctls;
> thus the userspace values are definitive.
> 
> Define UPIO_* iotypes in terms of the uapi defines, SERIAL_IO_*;
> extend the uapi defines to include all values in use by the serial
> core.

Greg,

Please don't apply this patch. I'll resend it after I fix up the
userspace breakage introduced by:

commit 3ffb1a8193bead7bf4ef0fec2dae050c70e4c1c1
Author: Kevin Cernekee <cernekee@xxxxxxxxx>
Date:   Wed Nov 12 12:53:59 2014 -0800

    serial: core: Add big-endian iotype
    
    Since most drivers interpret UPIO_MEM32 to mean "little-endian" and use
    readl/writel to access the registers, add a parallel UPIO_MEM32BE to
    request the use of big-endian MMIO accessors (ioread32be/iowrite32be).

The patch above re-numbers userspace-dependent values.

Regards,
Peter Hurley

> Signed-off-by: Peter Hurley <peter@xxxxxxxxxxxxxxxxxx>
> ---
>  include/linux/serial_core.h | 14 +++++++-------
>  include/uapi/linux/serial.h |  4 ++++
>  2 files changed, 11 insertions(+), 7 deletions(-)
> 
> diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
> index a3fd182..a04acb7 100644
> --- a/include/linux/serial_core.h
> +++ b/include/linux/serial_core.h
> @@ -143,13 +143,13 @@ struct uart_port {
>  	unsigned char		iotype;			/* io access style */
>  	unsigned char		unused1;
>  
> -#define UPIO_PORT		(0)			/* 8b I/O port access */
> -#define UPIO_HUB6		(1)			/* Hub6 ISA card */
> -#define UPIO_MEM		(2)			/* 8b MMIO access */
> -#define UPIO_MEM32		(3)			/* 32b little endian */
> -#define UPIO_MEM32BE		(4)			/* 32b big endian */
> -#define UPIO_AU			(5)			/* Au1x00 and RT288x type IO */
> -#define UPIO_TSI		(6)			/* Tsi108/109 type IO */
> +#define UPIO_PORT		(SERIAL_IO_PORT)	/* 8b I/O port access */
> +#define UPIO_HUB6		(SERIAL_IO_HUB6)	/* Hub6 ISA card */
> +#define UPIO_MEM		(SERIAL_IO_MEM)		/* 8b MMIO access */
> +#define UPIO_MEM32		(SERIAL_IO_MEM32)	/* 32b little endian */
> +#define UPIO_MEM32BE		(SERIAL_IO_MEM32BE)	/* 32b big endian */
> +#define UPIO_AU			(SERIAL_IO_AU)		/* Au1x00 and RT288x type IO */
> +#define UPIO_TSI		(SERIAL_IO_TSI)		/* Tsi108/109 type IO */
>  
>  	unsigned int		read_status_mask;	/* driver specific */
>  	unsigned int		ignore_status_mask;	/* driver specific */
> diff --git a/include/uapi/linux/serial.h b/include/uapi/linux/serial.h
> index 5e0d0ed..99ef1ab 100644
> --- a/include/uapi/linux/serial.h
> +++ b/include/uapi/linux/serial.h
> @@ -65,6 +65,10 @@ struct serial_struct {
>  #define SERIAL_IO_PORT	0
>  #define SERIAL_IO_HUB6	1
>  #define SERIAL_IO_MEM	2
> +#define SERIAL_IO_MEM32	  3
> +#define SERIAL_IO_MEM32BE 4
> +#define SERIAL_IO_AU	  5
> +#define SERIAL_IO_TSI	  6
>  
>  #define UART_CLEAR_FIFO		0x01
>  #define UART_USE_FIFO		0x02
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux