mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-06-21 04:45:29 +08:00

[mac80211] ca5ee6e mac80211: Fix potential endless loop 2c14710 mac80211: add more AQL fixes/improvements 91fb3ce mac80211: remove an obsolete patch that is no longer doing anything useful acf1733 mac80211: add preliminary support for enabling 802.11ax in config d717343 mac80211: update encap offload patches to the latest version 673062f mac80211: allow bigger A-MSDU sizes in VHT, even if HT is limited caf7277 mac80211: do not allow bigger VHT MPDUs than the hardware supports cd36c0d mac80211: select the first available channel for 5GHz interfaces 1c6d456 mac80211: fix regression in station connection monitor optimization 4bd7689 mac80211: update sta connection monitor regression fix [target] Sync: at91, ath25, ath79, lantiq, mediatek, mvebu.
56 lines
2.3 KiB
Diff
56 lines
2.3 KiB
Diff
From b4659f44df3454c6b37ba206a0347af3b8d6a744 Mon Sep 17 00:00:00 2001
|
|
From: Phil Elwell <phil@raspberrypi.com>
|
|
Date: Mon, 20 Apr 2020 13:30:49 +0100
|
|
Subject: [PATCH] spi: use_gpio_descriptor fixup moved to spi_setup
|
|
|
|
Commits [1] and [2] including code that forces SPI_CS_HIGH for SPI
|
|
controllers that use GPIO descriptors, the SPI_CS_HIGH flag being
|
|
there to avoid a double-negation (since SPI CS is usually active-low).
|
|
The motivation for pushing the knowledge of the required polarity into
|
|
the GPIO descriptor allows the switch to an output to request the
|
|
correct inactive level, avoiding a needless glitch.
|
|
|
|
The problem with setting the flag early as [1] does is that it appears
|
|
in the mode field that is passed to client drivers during their probing,
|
|
when they may want to choose SPI_POL, SPI_PHA and (just possibly)
|
|
SPI_CS_HIGH. Since SPI_CS_HIGH is the exception, most drivers won't
|
|
set it and the anti-negation negation is lost. [2] acknowledges that
|
|
problem and patches things up for the case of users of spidev, but
|
|
omits regular kernel-mode drivers.
|
|
|
|
Downstream commit [3] moves the forcing of SPI_CS_HIGH to spi_setup,
|
|
after the driver probing. Since this code is called before any CS
|
|
manipulation it is early enough to be effective, but late enough that
|
|
clients have already had their chance to change the mode field.
|
|
|
|
This is a partial reversion of [1], and is accompanied by a complete
|
|
reversion of [2], neither of which is needed any longer.
|
|
|
|
[1] f3186dd87669 ("spi: Optionally use GPIO descriptors for CS GPIOs")
|
|
[2] 83b2a8fe43bd ("spi: spidev: Fix CS polarity if GPIO descriptors are used")
|
|
[3] <varies> ("spi: Force CS_HIGH if GPIO descriptors are used")
|
|
|
|
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|
---
|
|
drivers/spi/spi.c | 9 ---------
|
|
1 file changed, 9 deletions(-)
|
|
|
|
--- a/drivers/spi/spi.c
|
|
+++ b/drivers/spi/spi.c
|
|
@@ -1792,15 +1792,6 @@ static int of_spi_parse_dt(struct spi_co
|
|
}
|
|
spi->chip_select = value;
|
|
|
|
- /*
|
|
- * For descriptors associated with the device, polarity inversion is
|
|
- * handled in the gpiolib, so all gpio chip selects are "active high"
|
|
- * in the logical sense, the gpiolib will invert the line if need be.
|
|
- */
|
|
- if ((ctlr->use_gpio_descriptors) && ctlr->cs_gpiods &&
|
|
- ctlr->cs_gpiods[spi->chip_select])
|
|
- spi->mode |= SPI_CS_HIGH;
|
|
-
|
|
/* Device speed */
|
|
rc = of_property_read_u32(nc, "spi-max-frequency", &value);
|
|
if (rc) {
|