Commit Graph

967411 Commits

Author SHA1 Message Date
Enrico Weigelt, metux IT consult
37ddba0245 drivers: gpio: amd8111: use SPDX-License-Identifier
Prefer SPDX-License-Identifier over hand-written texts.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Link: https://lore.kernel.org/r/20201203182423.5499-3-info@metux.net
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-12-08 09:41:32 +01:00
Enrico Weigelt, metux IT consult
a922a24454 drivers: gpio: amd8111: prefer dev_err()/dev_info() over raw printk
For logging in device contexts, dev_*() functions are preferred over
raw printk(), which also print out device name.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Link: https://lore.kernel.org/r/20201203182423.5499-2-info@metux.net
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-12-08 09:41:32 +01:00
Enrico Weigelt, metux IT consult
3bf1d26c8a drivers: gpio: bt8xx: prefer dev_err()/dev_warn() over of raw printk
For logging in device contexts, dev_*() functions are preferred over
raw printk(), which also print out device name.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Link: https://lore.kernel.org/r/20201203182423.5499-1-info@metux.net
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-12-08 09:41:32 +01:00
Linus Walleij
dd0fa81143 gpio: Add TODO item for debugfs interface
The idea to create a debugfs to replace the aging and
dangerous sysfs ABI for hacking and tinkering came up
on the list.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20201204083533.65830-1-linus.walleij@linaro.org
2020-12-06 00:13:17 +01:00
Enrico Weigelt
c47d9e1b73 gpio: just plain warning when nonexisting gpio requested
When trying to export an nonexisting gpio ID, the kernel prints out a
big warning w/ stacktrace, sounding like a huge problem. In fact it's
a pretty normal situation, like file or device not found.

So, just print a more relaxed warning instead.

changes v2: drop defining pr_fmt()

Signed-off-by: Enrico Weigelt <info@metux.net>
Link: https://lore.kernel.org/r/20201202133754.32045-1-info@metux.net
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-12-05 23:27:01 +01:00
Kent Gibson
e0822cf9b8 tools: gpio: add option to report wall-clock time to gpio-event-mon
Add support for selecting the realtime clock for events.

Signed-off-by: Kent Gibson <warthog618@gmail.com>
Link: https://lore.kernel.org/r/20201014231158.34117-4-warthog618@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-12-05 23:22:48 +01:00
Kent Gibson
da777be6de tools: gpio: add support for reporting realtime event clock to lsgpio
Add support for reporting if a line is configured to report realtime
timestamps in events.

Signed-off-by: Kent Gibson <warthog618@gmail.com>
Link: https://lore.kernel.org/r/20201014231158.34117-3-warthog618@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-12-05 23:22:47 +01:00
Kent Gibson
26d060e47e gpiolib: cdev: allow edge event timestamps to be configured as REALTIME
Using CLOCK_REALTIME as the source for event timestamps is crucial for
some specific applications, particularly those requiring timetamps
relative to a PTP clock, so provide an option to switch the event
timestamp source from the default CLOCK_MONOTONIC to CLOCK_REALTIME.

Note that CLOCK_REALTIME was the default source clock for GPIO until
Linux 5.7 when it was changed to CLOCK_MONOTONIC due to issues with the
shifting of the realtime clock.
Providing this option maintains the CLOCK_MONOTONIC as the default,
while also providing a path forward for those dependent on the pre-5.7
behaviour.

Suggested-by: Jack Winch <sunt.un.morcov@gmail.com>
Signed-off-by: Kent Gibson <warthog618@gmail.com>
Link: https://lore.kernel.org/r/20201014231158.34117-2-warthog618@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-12-05 23:22:47 +01:00
Daniel Palmer
93224edf0b gpio: msc313: MStar MSC313 GPIO driver
This adds a driver that supports the GPIO block found in
MStar/SigmaStar ARMv7 SoCs.

The controller seems to have enough register for 128 lines
but where they are wired up differs between chips and
no currently known chip uses anywhere near 128 lines so there
needs to be some per-chip data to collect together what lines
actually have physical pins attached and map the right names to them.

The core peripherals seem to use the same lines on the
currently known chips but the lines used for the sensor
interface, lcd controller etc pins seem to be totally
different between the infinity and mercury chips

The code tries to collect all of the re-usable names,
offsets etc together so that it's easy to build the extra
per-chip data for other chips in the future.

So far this only supports the MSC313 and MSC313E chips.

Support for the SSC8336N (mercury5) is trivial to add once
all of the lines have been mapped out.

Signed-off-by: Daniel Palmer <daniel@0x0f.com>
Link: https://lore.kernel.org/r/20201129110803.2461700-4-daniel@0x0f.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-12-05 22:41:22 +01:00
Daniel Palmer
493c7e03f8 dt-bindings: gpio: Binding for MStar MSC313 GPIO controller
Add a binding description for the MStar/SigmaStar GPIO controller
found in the MSC313 and later ARMv7 SoCs.

Signed-off-by: Daniel Palmer <daniel@0x0f.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20201129110803.2461700-3-daniel@0x0f.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-12-05 22:41:04 +01:00
Daniel Palmer
588cc1a026 dt-bindings: gpio: Add a binding header for the MSC313 GPIO driver
Header adds defines for the gpio number of each pad from the driver view.

The gpio block seems to have enough registers for 128 lines but what line
is mapped to a physical pin depends on the chip. The gpio block also seems
to contain some registers that are not related to gpio but needed somewhere
to go.

Because of the above the driver itself uses the index of a pin's offset in
an array of the possible offsets for a chip as the gpio number.

Signed-off-by: Daniel Palmer <daniel@0x0f.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20201129110803.2461700-2-daniel@0x0f.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-12-05 22:40:28 +01:00
Thierry Reding
64a38367b4 dt-bindings: gpio: Use Tegra186-specific include guard
Use a unique include guard for the Tegra186 GPIO DT bindings header to
avoid clashes with the DT bindings header for earlier chips.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: https://lore.kernel.org/r/20201127140852.123192-2-thierry.reding@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-12-05 22:34:12 +01:00
Alexandre Courbot
a0de695819 Documentation: gpio: fix typo and unclear legacy API section
The "Interacting With the Legacy GPIO Subsystem" of the documentation
was unclear at best, and even included a sentence that seems to say the
opposite of what it should say about the lifetime of the return value of
the conversion functions.

Try to clarify things a bit and hopefully make that section more
readable.

Reported-by: Andy Shevchenko <andy.shevchenko@gmail.com>
BugLink: https://stackoverflow.com/q/64455505/2511795
Signed-off-by: Alexandre Courbot <gnurou@gmail.com>
Link: https://lore.kernel.org/r/20201122092548.61979-1-gnurou@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-12-05 20:23:34 +01:00
Fabio Estevam
105e051f1a gpio: mxs: Remove unused .id_table support
mxs is a devicetree-only platform and hence it does not make use
of the id_table mechanism.

Get rid of the .id_table as it is unused.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Link: https://lore.kernel.org/r/20201118191938.32693-1-festevam@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-12-04 09:08:54 +01:00
Linus Walleij
c4e1f7d92c gpio: tegra186: Set affinity callback to parent
This assigns the .irq_set_affinity to the parent callback.
I assume the Tegra186 is an SMP system so this would be
beneficial.

I used the pattern making the hirerarchy tolerant for missing
parent as in Marc's earlier patch.

Suggested-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Cc: Thierry Reding <treding@nvidia.com>
Cc: Vidya Sagar <vidyas@nvidia.com>
Link: https://lore.kernel.org/r/20201117213351.249668-2-linus.walleij@linaro.org
2020-12-04 09:05:12 +01:00
Linus Walleij
011a78c194 gpio: sifive: Set affinity callback to parent
This assigns the .irq_set_affinity to the parent callback.
I assume the sifive GPIO can be used in systems with
SMP.

I used the pattern making the hirerarchy tolerant for missing
parent as in Marc's earlier patches.

Suggested-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Cc: Yash Shah <yash.shah@sifive.com>
Cc: Wesley W. Terpstra <wesley@sifive.com>
Link: https://lore.kernel.org/r/20201117213351.249668-1-linus.walleij@linaro.org
2020-12-04 09:05:12 +01:00
Linus Walleij
3b4feb2115 gpio: sysfs: Enforce character device
If users select sysfs support they get the character device
as well so that end-users cannot complain that they
"only have sysfs on my system". They should have the
character device at all times.

If someone is in so dire need of stripping out the
character device while still enabling the sysfs ABI they
can very well patch the kernel.

Also only show this obsolete option to expert users.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20201110142724.14760-1-linus.walleij@linaro.org
2020-12-04 09:03:44 +01:00
Fabio Estevam
0f2c7af45d gpio: mxc: Convert the driver to DT-only
Since 5.10-rc1 i.MX is a devicetree-only platform, so simplify the code
by removing the unused non-DT support.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20201117105917.27591-1-festevam@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-11-18 08:52:22 +01:00
Srinivas Neeli
8b51658347 MAINTAINERS: add fragment for xilinx GPIO drivers
Added entry for xilinx GPIO drivers.

Signed-off-by: Srinivas Neeli <srinivas.neeli@xilinx.com>
Acked-by: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Link: https://lore.kernel.org/r/1605201148-4508-10-git-send-email-srinivas.neeli@xilinx.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-11-18 08:52:22 +01:00
Srinivas Neeli
bea67aeab0 gpio: gpio-xilinx: Check return value of of_property_read_u32
In two different instances the return value of "of_property_read_u32"
API was neither captured nor checked.
Fixed it by capturing the return value and then checking for any error.

Signed-off-by: Srinivas Neeli <srinivas.neeli@xilinx.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Addresses-Coverity: "check_return"
Link: https://lore.kernel.org/r/1605201148-4508-9-git-send-email-srinivas.neeli@xilinx.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-11-18 08:52:22 +01:00
Srinivas Neeli
0230a41ed6 gpio: gpio-xilinx: Add remove function
Added remove function support.

Signed-off-by: Srinivas Neeli <srinivas.neeli@xilinx.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Link: https://lore.kernel.org/r/1605201148-4508-7-git-send-email-srinivas.neeli@xilinx.com
[dropped pm disable call]
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-11-18 08:51:52 +01:00
Srinivas Neeli
65bbe531b5 gpio: gpio-xilinx: Add clock support
Adds clock support to the Xilinx GPIO driver.

Signed-off-by: Srinivas Neeli <srinivas.neeli@xilinx.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Link: https://lore.kernel.org/r/1605201148-4508-4-git-send-email-srinivas.neeli@xilinx.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-11-18 00:59:37 +01:00
Srinivas Neeli
700a2b53bd dt-bindings: gpio: gpio-xilinx: Add clk support to xilinx soft gpio IP
Specify clock property in binding.

Signed-off-by: Srinivas Neeli <srinivas.neeli@xilinx.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Link: https://lore.kernel.org/r/1605201148-4508-3-git-send-email-srinivas.neeli@xilinx.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-11-18 00:58:28 +01:00
Srinivas Neeli
8c669fe69a gpio: gpio-xilinx: Arrange headers in sorting order
Arrange header files in sorted order.

Signed-off-by: Srinivas Neeli <srinivas.neeli@xilinx.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Link: https://lore.kernel.org/r/1605201148-4508-2-git-send-email-srinivas.neeli@xilinx.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-11-18 00:57:27 +01:00
Linus Walleij
dc80a2717e intel-gpio for v5.11-1
* Refactor GPIO library to support bias and debounce ACPI settings
 
 The following is an automated git shortlog grouped by driver:
 
 gpiolib:
  -  acpi: Make Intel GPIO tree official for GPIO ACPI work
  -  acpi: Use BIT() macro to increase readability
  -  acpi: Convert pin_index to be u16
  -  acpi: Extract acpi_request_own_gpiod() helper
  -  acpi: Make acpi_gpio_to_gpiod_flags() usable for GpioInt()
  -  acpi: Set initial value for output pin based on bias and polarity
  -  acpi: Move acpi_gpio_to_gpiod_flags() upper in the code
  -  acpi: Move non-critical code outside of critical section
  -  acpi: Take into account debounce settings
  -  acpi: Use named item for enum gpiod_flags variable
  -  acpi: Respect bias settings for GpioInt() resource
  -  Introduce gpio_set_debounce_timeout() for internal use
  -  Extract gpio_set_config_with_argument_optional() helper
  -  move bias related code from gpio_set_config() to gpio_set_bias()
  -  Extract gpio_set_config_with_argument() for future use
  -  use proper API to pack pin configuration parameters
  -  add missed break statement
  -  Replace unsigned by unsigned int
 
 Merge tag 'intel-pinctrl-v5.10-2' into HEAD:
  - Merge tag 'intel-pinctrl-v5.10-2' into HEAD
 
 pinctrl:
  -  intel: Set default bias in case no particular value given
  -  intel: Fix 2 kOhm bias which is 833 Ohm
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEqaflIX74DDDzMJJtb7wzTHR8rCgFAl+ymNoACgkQb7wzTHR8
 rCg4hA//ehlYJqZZHccn6DCqk5n6K8jbSI7duuYMYLs4yapn1M+eJEfdDjLZdz8n
 aEFH+qyE2q/PiiRa2ZssvNvrH+nQIdFulADvM1El9BZAYE2CX1z5160JHl6iY1sj
 eENwCMM5N5Ob1KgRFHSnbVBYlcyeXyjp8ZZQPdOXH3CsFqc6SK4K3fEx+DkW3ctr
 QM0/jA1JA+Y+jNRpYmH4oheLwWKhezJ+nwVmi6Uw0iUpzqSSfl09JGFltWKAzNBP
 nEF3i8CakPx66NEjHkfKQnueqDWrdgapXDxcHTZ1O4UQJaNWPKxcU7ulQMULYC4W
 nlgiD9Td3/I8jsIjqrKy/SfrOrDZOjCgUAkKctCGOZ4xmvK0nYRrIq+Mt70782fK
 3XZh4/KVDh4nhqjCRbLOZokmlwuQN1xOcxTOLMRX6UZ2BHcYn+dPP2q8RxUSnTQS
 ttlysCgT5oZcMzbNAzYZGcWjN6WuQTvbIebVS1q/6lG6cvbkehn3DcPb4CX8GSjU
 Srn8TUFh2B7dBOyZI2DXZLvNzs+QFzfJy1N9WIMo5pEIZ8I+rBb00OlP7HGONAx9
 5jWxDREIHO+2Qy7yqewE88QtnDK9xIwtE5vL2mzHBx2zUX56nUDWYU8VuydzaZuH
 gBmNw3hue0xgDl64vSdSHoLJ1Ob8za0mEOnbF5mD4KAylnH3qf4=
 =YamF
 -----END PGP SIGNATURE-----

Merge tag 'intel-gpio-v5.11-1' of gitolite.kernel.org:pub/scm/linux/kernel/git/andy/linux-gpio-intel into devel

intel-gpio for v5.11-1

* Refactor GPIO library to support bias and debounce ACPI settings

The following is an automated git shortlog grouped by driver:

gpiolib:
 -  acpi: Make Intel GPIO tree official for GPIO ACPI work
 -  acpi: Use BIT() macro to increase readability
 -  acpi: Convert pin_index to be u16
 -  acpi: Extract acpi_request_own_gpiod() helper
 -  acpi: Make acpi_gpio_to_gpiod_flags() usable for GpioInt()
 -  acpi: Set initial value for output pin based on bias and polarity
 -  acpi: Move acpi_gpio_to_gpiod_flags() upper in the code
 -  acpi: Move non-critical code outside of critical section
 -  acpi: Take into account debounce settings
 -  acpi: Use named item for enum gpiod_flags variable
 -  acpi: Respect bias settings for GpioInt() resource
 -  Introduce gpio_set_debounce_timeout() for internal use
 -  Extract gpio_set_config_with_argument_optional() helper
 -  move bias related code from gpio_set_config() to gpio_set_bias()
 -  Extract gpio_set_config_with_argument() for future use
 -  use proper API to pack pin configuration parameters
 -  add missed break statement
 -  Replace unsigned by unsigned int

Merge tag 'intel-pinctrl-v5.10-2' into HEAD:
 - Merge tag 'intel-pinctrl-v5.10-2' into HEAD

pinctrl:
 -  intel: Set default bias in case no particular value given
 -  intel: Fix 2 kOhm bias which is 833 Ohm
2020-11-17 22:23:38 +01:00
Linus Walleij
ad9a72f9c6 Linux 5.10-rc4
-----BEGIN PGP SIGNATURE-----
 
 iQFSBAABCAA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAl+xy28eHHRvcnZhbGRz
 QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiGAl4H+weJtTIK59po2iVj
 j8OIoVm2lNwJxd2iCrj/jibpo6NPaATNwKloML3F3tQL5rmn7TknFVDzZJAvIo9+
 d+WNBcdFbgkGAPhTXNXpnt7Ah4YlhrBFi/qu0q8t96mxg+gPo+Zi5tIAcOw1FtFO
 rfuhNgoQG/X6UHI+xW2EMDTzJY/94iF+2uEp6HUDoiJJwq9DAnUm172tPrQdrHPL
 D9zEHY9v7SrIacOeV0TApVaMnj9XaudY71xwgmvp7f6dypDD+TGnrr3qj6FKgRsR
 aL4f+JfYbUjnk4yWHpzPljkDe7SrPkKLZeon26M+mfClBgkiG/ktQFNH7r7PCFrv
 eqC8RUE=
 =PYO+
 -----END PGP SIGNATURE-----

Merge tag 'v5.10-rc4' into devel

Linux 5.10-rc4
2020-11-17 22:23:05 +01:00
Andy Shevchenko
e709a7b5a0 gpiolib: acpi: Make Intel GPIO tree official for GPIO ACPI work
Make Intel GPIO tree official for GPIO ACPI work.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2020-11-16 14:14:35 +02:00
Andy Shevchenko
2c4d00cb8f gpiolib: acpi: Use BIT() macro to increase readability
We may use BIT() macro to increase readability in
acpi_gpio_adr_space_handler().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2020-11-16 14:14:35 +02:00
Andy Shevchenko
74301f2781 gpiolib: acpi: Convert pin_index to be u16
As specified by ACPI the pin index is 16-bit unsigned integer.
Define the variable, which holds it, accordingly.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2020-11-16 14:14:35 +02:00
Andy Shevchenko
2e2b496ceb gpiolib: acpi: Extract acpi_request_own_gpiod() helper
It appears that we are using similar code excerpts for ACPI OpRegion
and event handling. Deduplicate those excerpts by extracting a new
acpi_request_own_gpiod() helper.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2020-11-16 14:14:35 +02:00
Andy Shevchenko
bca404802c gpiolib: acpi: Make acpi_gpio_to_gpiod_flags() usable for GpioInt()
GpioInt() implies input configuration of the pin. Add this to
the acpi_gpio_to_gpiod_flags() and make usable for GpioInt().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2020-11-16 14:14:35 +02:00
Vasile-Laurentiu Stanimir
56f7058af0 gpiolib: acpi: Set initial value for output pin based on bias and polarity
GpioIo() resources don't contain an initial value for the output pin.
Therefore instead of deducting its value solely based on bias field
we should deduce that value from the polarity and the bias fields.
Typical scenario is, when pin is defined in the table and its polarity,
specified in _DSD or via platform code, is defined as active low,
in the following call chain:

  -> acpi_populate_gpio_lookup()
     -> acpi_gpio_to_gpiod_flags()

it will return GPIOD_OUT_HIGH if bias is set no matter if polarity
is GPIO_ACTIVE_LOW, so it will return the current level instead of
the logical level.

Cc: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Vasile-Laurentiu Stanimir <vasile-laurentiu.stanimir@windriver.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2020-11-16 14:14:35 +02:00
Andy Shevchenko
1a81f19154 gpiolib: acpi: Move acpi_gpio_to_gpiod_flags() upper in the code
Move acpi_gpio_to_gpiod_flags() upper in the code to allow further refactoring.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2020-11-16 14:14:35 +02:00
Andy Shevchenko
ce698f4ec1 gpiolib: acpi: Move non-critical code outside of critical section
Mika noticed that some code is run under mutex when it doesn't require
the lock, like an error code assignment.

Move non-critical code outside of critical section.

Suggested-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Cc: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2020-11-16 14:14:35 +02:00
Andy Shevchenko
8dcb7a15a5 gpiolib: acpi: Take into account debounce settings
We didn't take into account the debounce settings supplied by ACPI.
This change is targeting the mentioned gap.

Reported-by: Coiby Xu <coiby.xu@gmail.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2020-11-16 14:14:35 +02:00
Andy Shevchenko
32fa65527c gpiolib: acpi: Use named item for enum gpiod_flags variable
Use named item instead of plain integer for enum gpiod_flags
to make it clear that even 0 has its own meaning.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2020-11-16 14:14:35 +02:00
Andy Shevchenko
e7b731327a gpiolib: acpi: Respect bias settings for GpioInt() resource
In some cases the GpioInt() resource is coming with bias settings
which may affect system functioning. Respect bias settings for
GpioInt() resource by calling acpi_gpio_update_gpiod_*flags() API
in acpi_dev_gpio_irq_get().

Reported-by: Jamie McClymont <jamie@kwiius.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2020-11-16 14:14:34 +02:00
Andy Shevchenko
f725edd86b gpiolib: Introduce gpio_set_debounce_timeout() for internal use
In some cases we would like to have debounce setter which doesn't fail
when a feature is not supported by a controller.

Cc: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2020-11-16 14:14:34 +02:00
Andy Shevchenko
baca3b15cd gpiolib: Extract gpio_set_config_with_argument_optional() helper
This function is useful for internal use in the GPIO library.
There will be new user coming, prepare a helper for the new comer
and the existing ones.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2020-11-16 14:14:34 +02:00
Andy Shevchenko
6aa32ad707 gpiolib: move bias related code from gpio_set_config() to gpio_set_bias()
Move bias related code from gpio_set_config() to gpio_set_bias().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2020-11-16 14:14:34 +02:00
Andy Shevchenko
0c4d86663b gpiolib: Extract gpio_set_config_with_argument() for future use
In the future we will need to have a separate function
that takes an arbitrary argument value.

Extract gpio_set_config_with_argument() for that purpose.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2020-11-16 14:14:34 +02:00
Andy Shevchenko
8b69461c2b gpiolib: use proper API to pack pin configuration parameters
Instead of open coded macro use, call pinconf_to_config_packed().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2020-11-16 14:14:34 +02:00
Andy Shevchenko
6900fad60a gpiolib: add missed break statement
It's no difference in the functionality, but after the change the code
is less error prone to various checkers.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2020-11-16 14:14:34 +02:00
Andy Shevchenko
13daf48978 gpiolib: Replace unsigned by unsigned int
Replace unsigned by unsigned int in GPIO library code.
Note, legacy API left untouched.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2020-11-16 14:14:34 +02:00
Andy Shevchenko
018ce22147 intel-pinctrl for v5.10-2
* Respect bias setting when comes from ACPI
 
 The following is an automated git shortlog grouped by driver:
 
 intel:
  -  Set default bias in case no particular value given
  -  Fix 2 kOhm bias which is 833 Ohm
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEqaflIX74DDDzMJJtb7wzTHR8rCgFAl+lkxIACgkQb7wzTHR8
 rChnvA//WtUChge5HzlJu/6/Eim32S1N8HPaEsxEpNT3B/D8T3KFhpcbzTM+7tDC
 3HLgqTa/r/VmCbJH1Su//VFLBRIndYjSZKgLl2c++YQe5bTxWR0HY+su2U5Fzf24
 TwpeuhM8+7mWCvI4VeEOULZaZ+3OSfTbg9ccGZB7pD6GLonVSogs6eg4tdNeMDDs
 Lv5GQLc8NrPJZyKqnc5S3GScyY9bemQG8gGjtDSOo8YPMGxPQl2Mcz5iEOlw6lzT
 dGvB184X4XTD4L9RgYtEJmP9peEEG2xJuWOzxUI1EkitA7j9MwyNPjeQITv1UV5i
 HWIN91cqBGPv/ic286mVAdP0lnAcYiOF/yVHDkW4zKDj1QC35wj26eRQcuqTfEZS
 owqb0hEP2NlCqBGWHHOIsxCaTaPokO4pG0zsLjXNmw1z1wGfIJncRwNha0cfcQEE
 UDUXNcBiDceh5xYz/0unj4TxMTFOfmIwTtn3CkOVJMiNMsKCJfXl0+KKLN0D/ebg
 FtrXYfwK6f4clFBxD9wqLT7UwzYX6Bnn4fLA3Z+LPRKenpXDZ8guld//rn98mcAp
 0hAEER1YceUnADEPwKftBxH3iO4SLQQQdoLFWYu4MGybbzSLi65EkwI16GWy5y94
 EcQRFlGsdIMH7rSVV6934qI3CYq53intnjFNQh+Bk8omiteV9Us=
 =Voi9
 -----END PGP SIGNATURE-----

Merge tag 'intel-pinctrl-v5.10-2' into HEAD

intel-pinctrl for v5.10-2

* Respect bias setting when comes from ACPI

The following is an automated git shortlog grouped by driver:

intel:
 -  Set default bias in case no particular value given
 -  Fix 2 kOhm bias which is 833 Ohm
2020-11-16 14:14:22 +02:00
Linus Torvalds
09162bc32c Linux 5.10-rc4 2020-11-15 16:44:31 -08:00
Linus Torvalds
a6af8718b9 drm nouveau fixes for 5.10-rc4
nouveau:
 - atomic modesetting regression fix
 - ttm pre-nv50 fix
 - connector NULL ptr deref fix
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABAgAGBQJfsZIJAAoJEAx081l5xIa+2HkP/AzENGcpenWcpJf+qabAGS7B
 3ofu7AOFjLsnXT3PFGEPsoWCk4v0Eu9o0E9V2xevVVwDdoNue+fZ9cHkIoNsD6cL
 iDOmZPWcmyuAKDJedBESAP9ivjzmRVOwCPaTWINuhkOqFBgEmBXT/npLyg5iT36l
 vYWx1MCFGNvFadTfiBbwc+rNi1qNhPX3+TEUD0Tki7UUkB6Q+Yzifc5KSQAHmxnq
 ACdeKB6uHWvQzzw4dLYYm5I2iUfqpnC++otqjAtpjhiIx2Iuus1vZWiyTK2WfAEy
 Q7R4DkI4u9r/BiiAxoAjiSceyaAxL2dlbDyMr6dfoGQrffzaiM6UOHwB9FaSfe2b
 G5s7VJEQj1Bl42OvVuH+X8iZlzkPhh4SXfP02/nDhnYhz6agcLOFndcLGCeHp4AX
 Om5RPMH23p7bHJ92YqvTHzgCZHtG4SXc/fUG8KLFlRd+6Xgbl7mprfO/+H8Jvyt/
 nrLzITNksvXY3zPXOrMERzNo0658sj4KuxOOXwz/eRDTah2DQe0xxu5tMRzUiclm
 plC4zEmRLusIcyrM7Aa8APh5GxsJ4eyOj2wx5V508eUhFIEyZ/ia83K/7olUG7/+
 HGXTHtF3qd3CejGtya27ejgiNXRUTqniUvFFT8VQqISocEJ8R2zEO6FH0cdk+rnL
 7baFeSvHzSfEEc3Wmls8
 =bjmv
 -----END PGP SIGNATURE-----

Merge tag 'drm-fixes-2020-11-16' of git://anongit.freedesktop.org/drm/drm

Pull drm fixes from Dave Airlie:
 "Nouveau fixes:

   - atomic modesetting regression fix

   - ttm pre-nv50 fix

   - connector NULL ptr deref fix"

* tag 'drm-fixes-2020-11-16' of git://anongit.freedesktop.org/drm/drm:
  drm/nouveau/kms/nv50-: Use atomic encoder callbacks everywhere
  drm/nouveau/ttm: avoid using nouveau_drm.ttm.type_vram prior to nv50
  drm/nouveau/kms: Fix NULL pointer dereference in nouveau_connector_detect_depth
2020-11-15 13:07:36 -08:00
Dave Airlie
8f598d15ee Merge branch 'linux-5.10' of git://github.com/skeggsb/linux into drm-fixes
- atomic modesetting regression fix
- ttm pre-nv50 fix
- connector NULL ptr deref fix

Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Ben Skeggs <skeggsb@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/CACAvsv5D9p78MNN0OxVeRZxN8LDqcadJEGUEFCgWJQ6+_rjPuw@mail.gmail.com
2020-11-16 06:36:31 +10:00
Linus Torvalds
9cfd9c4599 Char/Misc driver fixes for 5.10-rc4
Here are some small char/misc/whatever driver fixes for 5.10-rc4.
 
 Nothing huge, lots of small fixes for reported issues:
 	- habanalabs driver fixes
 	- speakup driver fixes
 	- uio driver fixes
 	- virtio driver fix
 	- other tiny driver fixes
 Full details are in the shortlog.
 
 All of these have been in linux-next for a full week with no reported
 issues.
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 
 iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCX7E69w8cZ3JlZ0Brcm9h
 aC5jb20ACgkQMUfUDdst+ykCzgCgmxhxo/A/fnBiZxVgIQjL9KK791wAnjjcypF4
 yLivbpFLSMLTUb46sxSL
 =bFxo
 -----END PGP SIGNATURE-----

Merge tag 'char-misc-5.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc

Pull char/misc driver fixes from Greg KH:
 "Here are some small char/misc/whatever driver fixes for 5.10-rc4.

  Nothing huge, lots of small fixes for reported issues:

   - habanalabs driver fixes

   - speakup driver fixes

   - uio driver fixes

   - virtio driver fix

   - other tiny driver fixes

  Full details are in the shortlog.

  All of these have been in linux-next for a full week with no reported
  issues"

* tag 'char-misc-5.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
  uio: Fix use-after-free in uio_unregister_device()
  firmware: xilinx: fix out-of-bounds access
  nitro_enclaves: Fixup type and simplify logic of the poll mask setup
  speakup ttyio: Do not schedule() in ttyio_in_nowait
  speakup: Fix clearing selection in safe context
  speakup: Fix var_id_t values and thus keymap
  virtio: virtio_console: fix DMA memory allocation for rproc serial
  habanalabs/gaudi: mask WDT error in QMAN
  habanalabs/gaudi: move coresight mmu config
  habanalabs: fix kernel pointer type
  mei: protect mei_cl_mtu from null dereference
2020-11-15 10:15:17 -08:00
Linus Torvalds
281b3ec3a7 USB/Thunderbolt fixes for 5.10-rc4
Here are some small Thunderbolt and USB driver fixes for 5.10-rc4 to
 solve some reported issues.
 
 Nothing huge in here, just small things:
 	- thunderbolt memory leaks fixed and new device ids added
 	- revert of problem patch for the musb driver
 	- new quirks added for USB devices
 	- typec power supply fixes to resolve much reported problems
 	  about charging notifications not working anymore
 
 All except the cdc-acm driver quirk addition have been in linux-next
 with no reported issues (the quirk patch was applied on Friday, and is
 self-contained.)
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 
 iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCX7E6EA8cZ3JlZ0Brcm9h
 aC5jb20ACgkQMUfUDdst+ymHNwCePOBlfVmcH3eEqVTByPdAG+L5m7MAnRLRqmMw
 aPpNB/a0CRSPxH+5Z+nV
 =Vi/z
 -----END PGP SIGNATURE-----

Merge tag 'usb-5.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb

Pull USB and Thunderbolt fixes from Greg KH:
 "Here are some small Thunderbolt and USB driver fixes for 5.10-rc4 to
  solve some reported issues.

  Nothing huge in here, just small things:

   - thunderbolt memory leaks fixed and new device ids added

   - revert of problem patch for the musb driver

   - new quirks added for USB devices

   - typec power supply fixes to resolve much reported problems about
     charging notifications not working anymore

  All except the cdc-acm driver quirk addition have been in linux-next
  with no reported issues (the quirk patch was applied on Friday, and is
  self-contained)"

* tag 'usb-5.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
  usb: cdc-acm: Add DISABLE_ECHO for Renesas USB Download mode
  MAINTAINERS: add usb raw gadget entry
  usb: typec: ucsi: Report power supply changes
  xhci: hisilicon: fix refercence leak in xhci_histb_probe
  Revert "usb: musb: convert to devm_platform_ioremap_resource_byname"
  thunderbolt: Add support for Intel Tiger Lake-H
  thunderbolt: Only configure USB4 wake for lane 0 adapters
  thunderbolt: Add uaccess dependency to debugfs interface
  thunderbolt: Fix memory leak if ida_simple_get() fails in enumerate_services()
  thunderbolt: Add the missed ida_simple_remove() in ring_request_msix()
2020-11-15 10:02:41 -08:00