On 08/17/2015 11:55 AM, Anirudha Sarangi wrote:
> Hi,
> 
>> -----Original Message-----
>> From: Peter Hurley [mailto:pe...@hurleysoftware.com]
>> Sent: Monday, August 17, 2015 9:09 PM
>> To: Michal Simek
>> Cc: linux-kernel@vger.kernel.org; mon...@monstr.eu; Anirudha Sarangi; Soren
>> Brinkmann; Jiri Slaby; linux-ser...@vger.kernel.org; Greg Kroah-Hartman; 
>> linux-
>> arm-ker...@lists.infradead.org
>> Subject: Re: [PATCH 1/4] serial: xuartps: Fix termios issue for enabling odd 
>> parity
>>
>> On 08/17/2015 03:22 AM, Michal Simek wrote:
>>> From: Anirudha Sarangi <anirudha.sara...@xilinx.com>
>>>
>>> Existing set_termios does not handle the option for enabling odd
>>> parity. This patch fixes it.
>>
>> NAK. PARODD does not enable parity generation or detection.
>>
> What if someone is trying to change from even to odd parity?

If userspace wants odd parity, then c_cflag must have both
PARENB and PARODD set.

Just PARODD does nothing.

>From SUS v4, General Terminal Interface, 11.2.4 Control Modes;

"If PARENB is set, parity generation and detection shall be enabled
and a parity bit is added to each byte. If parity is enabled, PARODD
shall specify odd parity if set; otherwise, even parity shall be used."



> In this conditional case, we setup some register bit for the same.
> Is the above use case not a valid one?
> 
> Regards
> Anirudha
> 
>> Regards,
>> Peter Hurley
>>
>>> Signed-off-by: Anirudha Sarangi <anir...@xilinx.com>
>>> Signed-off-by: Michal Simek <michal.si...@xilinx.com>
>>> ---
>>>
>>>  drivers/tty/serial/xilinx_uartps.c | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/tty/serial/xilinx_uartps.c
>>> b/drivers/tty/serial/xilinx_uartps.c
>>> index 009e0dbc12d2..a3020344ac9d 100644
>>> --- a/drivers/tty/serial/xilinx_uartps.c
>>> +++ b/drivers/tty/serial/xilinx_uartps.c
>>> @@ -723,7 +723,7 @@ static void cdns_uart_set_termios(struct uart_port
>> *port,
>>>     else
>>>             cval |= CDNS_UART_MR_STOPMODE_1_BIT; /* 1 STOP bit */
>>>
>>> -   if (termios->c_cflag & PARENB) {
>>> +   if ((termios->c_cflag & PARENB) || (termios->c_cflag & PARODD)) {
>>>             /* Mark or Space parity */
>>>             if (termios->c_cflag & CMSPAR) {
>>>                     if (termios->c_cflag & PARODD)
>>>
> 
> 
> 
> This email and any attachments are intended for the sole use of the named 
> recipient(s) and contain(s) confidential information that may be proprietary, 
> privileged or copyrighted under applicable law. If you are not the intended 
> recipient, do not read, copy, or forward this email message or any 
> attachments. Delete this email message and any attachments immediately.
> 

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

Reply via email to