Re: [PATCH v3] serial: exar: Fix GPIO configuration for Sealevel cards based on XR17V35X

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

 



On Tue, Jul 21, 2020 at 04:08:17PM -0400, Matthew Howell wrote:
> 
> From: Matthew Howell <matthew.howell@xxxxxxxxxxxx>
> 
> Sealevel XR17V35X based devices are inoperable on kernel versions
> 4.11 and above due to a change in the GPIO preconfiguration introduced in commit
> 7dea8165f1d. This patch fixes this by preconfiguring the GPIO on Sealevel
> cards to the value (0x00) used prior to commit 7dea8165f1d
> 
> With GPIOs preconfigured as per commit 7dea8165f1d all ports on
> Sealevel XR17V35X based devices become stuck in high impedance
> mode, regardless of dip-switch or software configuration. This
> causes the device to become effectively unusable. This patch (in
> various forms) has been distributed to our customers and no issues
> related to it have been reported.
> 
> Fixes: 7dea8165f1d ("serial: exar: Preconfigure xr17v35x MPIOs as output")
> Signed-off-by: Matthew Howell <matthew.howell@xxxxxxxxxxxx>
> 
> Patch resubmitted as per comments received on
> https://www.spinics.net/lists/linux-serial/msg39371.html
> 
> Moved problem description and justification above the signed-off-by
> line.
> 
> checkpatch.pl reports no styling issues with the diff below.
> 
> Let me know if I need to make any other changes.

You should put a --- line after the signed-off-by line, so these
comments do not show up in the changelog.

> 
> --- linux/drivers/tty/serial/8250/8250_exar.c.orig    2020-07-09 11:05:03.920060577 -0400
> +++ linux/drivers/tty/serial/8250/8250_exar.c    2020-07-13 11:54:44.386718167 -0400
> @@ -326,7 +326,20 @@ static void setup_gpio(struct pci_dev *p
>       * devices will export them as GPIOs, so we pre-configure them safely
>       * as inputs.
>       */
> -    u8 dir = pcidev->vendor == PCI_VENDOR_ID_EXAR ? 0xff : 0x00;
> +
> +    u8 dir = 0x00;
> +
> +    if  ((pcidev->vendor == PCI_VENDOR_ID_EXAR) &&
> +        (pcidev->subsystem_vendor != PCI_VENDOR_ID_SEALEVEL))
> +    {
> +       // Configure GPIO as inputs for Commtech adapters
> +       dir = 0xff;
> +    }
> +    else
> +    {
> +       // Configure GPIO as outputs for SeaLevel adapters
> +       dir = 0x00;
> +    }
> 
>      writeb(0x00, p + UART_EXAR_MPIOINT_7_0);
>      writeb(0x00, p + UART_EXAR_MPIOLVL_7_0);
> 

Your patch has all tabs turned to spaces, making this impossible to
apply.

Also, always run your patch through scripts/checkpatch.pl to fix the
obvious coding style issues in it before sending it out.

v4?  :)

thanks,

greg k-h



[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