No description
  • C 98.2%
  • Assembly 1%
  • Makefile 0.3%
  • Shell 0.2%
  • Python 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Hugo Villeneuve bee7f3a494 serial: sc16is7xx: fix bug when first setting GPIO direction
commit 9baeea723c0fb9c3ba9a336369f758ed9bc6831d upstream.

When configuring a pin as an output pin with a value of logic 0, we
end up as having a value of logic 1 on the output pin. Setting a
logic 0 a second time (or more) after that will correctly output a
logic 0 on the output pin.

By default, all GPIO pins are configured as inputs. When we enter
sc16is7xx_gpio_direction_output() for the first time, we first set the
desired value in IOSTATE, and then we configure the pin as an output.
The datasheet states that writing to IOSTATE register will trigger a
transfer of the value to the I/O pin configured as output, so if the
pin is configured as an input, nothing will be transferred.

Therefore, set the direction first in IODIR, and then set the desired
value in IOSTATE.

This is what is done in NXP application note AN10587.

Fixes: dfeae619d7 ("serial: sc16is7xx")
Cc: stable@vger.kernel.org
Signed-off-by: Hugo Villeneuve <hvilleneuve@dimonoff.com>
Reviewed-by: Lech Perczak <lech.perczak@camlingroup.com>
Tested-by: Lech Perczak <lech.perczak@camlingroup.com>
Link: https://lore.kernel.org/r/20230807214556.540627-6-hugo@hugovil.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-09-23 10:59:37 +02:00
arch mmc: au1xmmc: force non-modular build and remove symbol_get usage 2023-09-23 10:59:36 +02:00
block
certs
crypto
Documentation Documentation/sysctl: document page_lock_unfairness 2023-08-30 16:27:27 +02:00
drivers serial: sc16is7xx: fix bug when first setting GPIO direction 2023-09-23 10:59:37 +02:00
fs erofs: ensure that the post-EOF tails are all zeroed 2023-09-23 10:59:36 +02:00
include clk: Fix undefined reference to `clk_rate_exclusive_{get,put}' 2023-08-30 16:27:27 +02:00
init x86/mm: Initialize text poking earlier 2023-08-08 19:56:36 +02:00
ipc
kernel modules: only allow symbol_get of EXPORT_SYMBOL_GPL modules 2023-09-23 10:59:36 +02:00
lib radix tree: remove unused variable 2023-08-30 16:27:26 +02:00
LICENSES
mm mm: allow a controlled amount of unfairness in the page lock 2023-08-30 16:27:26 +02:00
net rtnetlink: Reject negative ifindexes in RTM_NEWLINK 2023-08-30 16:27:26 +02:00
samples
scripts
security IMA: allow/fix UML builds 2023-08-30 16:27:11 +02:00
sound ALSA: pcm: Check for null pointer of pointer substream before dereferencing it 2023-08-30 16:27:27 +02:00
tools selftests: mirror_gre_changes: Tighten up the TTL test match 2023-08-30 16:27:16 +02:00
usr
virt
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS iio: stx104: Move to addac subdirectory 2023-08-30 16:27:12 +02:00
Makefile Linux 5.4.256 2023-09-02 09:19:19 +02:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.