<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/net/wireless/microchip, branch v5.17</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v5.17</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v5.17'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2021-12-22T17:51:18Z</updated>
<entry>
<title>wilc1000: Add reset/enable GPIO support to SPI driver</title>
<updated>2021-12-22T17:51:18Z</updated>
<author>
<name>David Mosberger-Tang</name>
<email>davidm@egauge.net</email>
</author>
<published>2021-12-21T21:25:34Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=ec031ac4792c72d9e925313366df8064e092f685'/>
<id>urn:sha1:ec031ac4792c72d9e925313366df8064e092f685</id>
<content type='text'>
For the SDIO driver, the RESET/ENABLE pins of WILC1000 are controlled
through the SDIO power sequence driver.  This commit adds analogous
support for the SPI driver.  Specifically, during initialization, the
chip will be ENABLEd and taken out of RESET and during
deinitialization, the chip will be placed back into RESET and disabled
(both to reduce power consumption and to ensure the WiFi radio is
off).

Both RESET and ENABLE GPIOs are optional.  However, if the ENABLE GPIO
is specified, then the RESET GPIO should normally also be specified as
otherwise there is no way to ensure proper timing of the ENABLE/RESET
sequence.

Signed-off-by: David Mosberger-Tang &lt;davidm@egauge.net&gt;
Reviewed-by: Claudiu Beznea &lt;claudiu.beznea@microchip.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@kernel.org&gt;
Link: https://lore.kernel.org/r/20211221212531.4011609-2-davidm@egauge.net
</content>
</entry>
<entry>
<title>wilc1000: Convert static "chipid" variable to device-local variable</title>
<updated>2021-12-22T17:50:50Z</updated>
<author>
<name>David Mosberger-Tang</name>
<email>davidm@egauge.net</email>
</author>
<published>2021-12-21T21:05:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=4d2cd7b06ce0d539b70619f7662fa67508d9008a'/>
<id>urn:sha1:4d2cd7b06ce0d539b70619f7662fa67508d9008a</id>
<content type='text'>
Move "chipid" variable into the per-driver structure so the code
doesn't break if more than one wilc1000 module is present.

Signed-off-by: David Mosberger-Tang &lt;davidm@egauge.net&gt;
Signed-off-by: Kalle Valo &lt;kvalo@kernel.org&gt;
Link: https://lore.kernel.org/r/20211221210538.4011227-1-davidm@egauge.net
</content>
</entry>
<entry>
<title>wilc1000: fix double free error in probe()</title>
<updated>2021-12-20T18:44:03Z</updated>
<author>
<name>Dan Carpenter</name>
<email>dan.carpenter@oracle.com</email>
</author>
<published>2021-12-17T15:03:12Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=4894edacfa93d7046bec4fc61fc402ac6a2ac9e8'/>
<id>urn:sha1:4894edacfa93d7046bec4fc61fc402ac6a2ac9e8</id>
<content type='text'>
Smatch complains that there is a double free in probe:

drivers/net/wireless/microchip/wilc1000/spi.c:186 wilc_bus_probe() error: double free of 'spi_priv'
drivers/net/wireless/microchip/wilc1000/sdio.c:163 wilc_sdio_probe() error: double free of 'sdio_priv'

The problem is that wilc_netdev_cleanup() function frees "wilc-&gt;bus_data".
That's confusing and a layering violation.  Leave the frees in probe(),
delete the free in wilc_netdev_cleanup(), and add some new frees to the
remove() functions.

Fixes: dc8b338f3bcd ("wilc1000: use goto labels on error path")
Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Reviewed-by: Claudiu Beznea &lt;claudiu.beznea@microchip.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@kernel.org&gt;
Link: https://lore.kernel.org/r/20211217150311.GC16611@kili
</content>
</entry>
<entry>
<title>wilc1000: Improve WILC TX performance when power_save is off</title>
<updated>2021-12-16T08:30:21Z</updated>
<author>
<name>David Mosberger-Tang</name>
<email>davidm@egauge.net</email>
</author>
<published>2021-12-10T20:30:22Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=b530d5f39c2fb64a70bb4672dd378e33b5a6b8f9'/>
<id>urn:sha1:b530d5f39c2fb64a70bb4672dd378e33b5a6b8f9</id>
<content type='text'>
The wakeup and sleep commands need to be sent to the WILC chip only
when it is in power save mode (PSM, as controlled by "iw dev wlan0 set
power_save on/off").  The commands are relatively costly, so it pays
to skip them when possible.

iperf3 without this patch (no significant different with PSM on/off):
  TX   0.00-120.01 sec   140 MBytes  9.82 Mbits/sec
  RX   0.00-120.69 sec   283 MBytes  19.6 Mbits/sec

with this patch applied:

PSM off (TX is 46% improved, RX slightly improved; may not be significant):
  TX   0.00-120.00 sec   206 MBytes  14.4 Mbits/sec
  RX   0.00-120.48 sec   322 MBytes  22.4 Mbits/sec

PSM on (no significant change):
  TX   0.00-120.00 sec   140 MBytes  9.78 Mbits/sec
  RX   0.00-120.08 sec   257 MBytes  18.0 Mbits/sec

Signed-off-by: David Mosberger-Tang &lt;davidm@egauge.net&gt;
Signed-off-by: Kalle Valo &lt;kvalo@kernel.org&gt;
Link: https://lore.kernel.org/r/20211210203016.3680425-2-davidm@egauge.net
</content>
</entry>
<entry>
<title>wilc1000: Rename workqueue from "WILC_wq" to "NETDEV-wq"</title>
<updated>2021-12-14T18:46:35Z</updated>
<author>
<name>David Mosberger-Tang</name>
<email>davidm@egauge.net</email>
</author>
<published>2021-12-09T04:44:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=09ed8bfc5215ad5aac91c50008277b5586b9ef24'/>
<id>urn:sha1:09ed8bfc5215ad5aac91c50008277b5586b9ef24</id>
<content type='text'>
This follows normal Linux convention and is more useful since the new
name will make it apparent which network device the work-queue is for
(e.g., the name will be "wlan0-wq" for network device "wlan0").

hif_workqueue allocation has to move from
cfg80211.c:wilc_cfg80211_init() to netdev.c:wilc_netdev_ifc_init()
because the network device name is not known until after the netdev is
registered.  The move also makes sense because netdev.c is already
responsible for destroying the work queue when it is no longer needed.

Signed-off-by: David Mosberger-Tang &lt;davidm@egauge.net&gt;
Signed-off-by: Kalle Valo &lt;kvalo@kernel.org&gt;
Link: https://lore.kernel.org/r/20211209044411.3482259-5-davidm@egauge.net
</content>
</entry>
<entry>
<title>wilc1000: Rename tx task from "K_TXQ_TASK" to NETDEV-tx</title>
<updated>2021-12-14T18:46:34Z</updated>
<author>
<name>David Mosberger-Tang</name>
<email>davidm@egauge.net</email>
</author>
<published>2021-12-09T04:44:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=3cc23932ba2a9aaa8c62d1a9ecb1fe7c296f9f32'/>
<id>urn:sha1:3cc23932ba2a9aaa8c62d1a9ecb1fe7c296f9f32</id>
<content type='text'>
This follows normal Linux conventions and is also more useful because
the netdevice name is part of the task name (e.g., "wlan0-tx" for
network device "wlan0").

Signed-off-by: David Mosberger-Tang &lt;davidm@egauge.net&gt;
Signed-off-by: Kalle Valo &lt;kvalo@kernel.org&gt;
Link: https://lore.kernel.org/r/20211209044411.3482259-4-davidm@egauge.net
</content>
</entry>
<entry>
<title>wilc1000: Rename irq handler from "WILC_IRQ" to netdev name</title>
<updated>2021-12-14T18:46:34Z</updated>
<author>
<name>David Mosberger-Tang</name>
<email>davidm@egauge.net</email>
</author>
<published>2021-12-09T04:44:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=30e08bc0a94c19132368abc35f394d2aa69bf984'/>
<id>urn:sha1:30e08bc0a94c19132368abc35f394d2aa69bf984</id>
<content type='text'>
This change follows normal Linux convention and the new name is more
useful since it'll be clear which irq handler statistics correspond to
which net device.

Signed-off-by: David Mosberger-Tang &lt;davidm@egauge.net&gt;
Signed-off-by: Kalle Valo &lt;kvalo@kernel.org&gt;
Link: https://lore.kernel.org/r/20211209044411.3482259-3-davidm@egauge.net
</content>
</entry>
<entry>
<title>wilc1000: Rename SPI driver from "WILC_SPI" to "wilc1000_spi"</title>
<updated>2021-12-14T18:46:33Z</updated>
<author>
<name>David Mosberger-Tang</name>
<email>davidm@egauge.net</email>
</author>
<published>2021-12-09T04:44:27Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=4347d34e6a7699cb61a8bc19b86e460d6b67e5fb'/>
<id>urn:sha1:4347d34e6a7699cb61a8bc19b86e460d6b67e5fb</id>
<content type='text'>
The name "wilc1000_spi" follows normal Linux conventions and also is
analogous to the SDIO driver, which uses "wilc1000_sdio".

Signed-off-by: David Mosberger-Tang &lt;davidm@egauge.net&gt;
Signed-off-by: Kalle Valo &lt;kvalo@kernel.org&gt;
Link: https://lore.kernel.org/r/20211209044411.3482259-2-davidm@egauge.net
</content>
</entry>
<entry>
<title>wilc1000: Fix spurious "FW not responding" error</title>
<updated>2021-12-14T18:45:27Z</updated>
<author>
<name>David Mosberger-Tang</name>
<email>davidm@egauge.net</email>
</author>
<published>2021-12-08T06:27:55Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=73bbef64bca781bbfa1abe07eb86b733c5b4f7da'/>
<id>urn:sha1:73bbef64bca781bbfa1abe07eb86b733c5b4f7da</id>
<content type='text'>
When deinitializing the driver, one or more "FW not responding" error
appears on the console.  This appears to be due to wilc_wlan_stop()
disabling host/WILC1000 communication, but then right afterwards, it
tries to release the bus with chip-sleep enabled.  The problem is
enabling the chip-sleep cannot success once host/WILC1000
communication is disabled.  Fix by only releasing the bus.

Signed-off-by: David Mosberger-Tang &lt;davidm@egauge.net&gt;
Signed-off-by: Kalle Valo &lt;kvalo@kernel.org&gt;
Link: https://lore.kernel.org/r/20211208062747.3405221-1-davidm@egauge.net
</content>
</entry>
<entry>
<title>wilc1000: Remove misleading USE_SPI_DMA macro</title>
<updated>2021-12-14T18:43:47Z</updated>
<author>
<name>David Mosberger-Tang</name>
<email>davidm@egauge.net</email>
</author>
<published>2021-12-07T00:26:01Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=dde02213fa64ac7f99eb65cd51f9e04812d8bc40'/>
<id>urn:sha1:dde02213fa64ac7f99eb65cd51f9e04812d8bc40</id>
<content type='text'>
The USE_SPI_DMA macro name suggests that it could be set to 1 to
control whether or not SPI DMA should be used.  However, that's not
what it does.  If set to 1, it'll set the SPI messages'
"is_dma_mapped" flag to true, even though the tx/rx buffers aren't
actually DMA mapped by the driver.  In other words, setting this flag
to 1 will break the driver.

Best to clean up this confusion by removing the macro altogether.
There is no need to explicitly initialize "is_dma_mapped" because the
message is cleared to zero anyhow, so "is_dma_mapped" is set to false
by default.

Signed-off-by: David Mosberger-Tang &lt;davidm@egauge.net&gt;
Acked-by: Ajay Singh &lt;ajay.kathat@microchip.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@kernel.org&gt;
Link: https://lore.kernel.org/r/20211207002453.3193737-1-davidm@egauge.net
</content>
</entry>
</feed>
