|
@@ -658,7 +658,7 @@ qcaspi_netdev_open(struct net_device *dev)
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
- netif_start_queue(qca->net_dev);
|
|
|
+ /* SPI thread takes care of TX queue */
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
@@ -760,6 +760,9 @@ qcaspi_netdev_tx_timeout(struct net_device *dev)
|
|
|
qca->net_dev->stats.tx_errors++;
|
|
|
/* Trigger tx queue flush and QCA7000 reset */
|
|
|
qca->sync = QCASPI_SYNC_UNKNOWN;
|
|
|
+
|
|
|
+ if (qca->spi_thread)
|
|
|
+ wake_up_process(qca->spi_thread);
|
|
|
}
|
|
|
|
|
|
static int
|
|
@@ -878,22 +881,22 @@ qca_spi_probe(struct spi_device *spi)
|
|
|
|
|
|
if ((qcaspi_clkspeed < QCASPI_CLK_SPEED_MIN) ||
|
|
|
(qcaspi_clkspeed > QCASPI_CLK_SPEED_MAX)) {
|
|
|
- dev_info(&spi->dev, "Invalid clkspeed: %d\n",
|
|
|
- qcaspi_clkspeed);
|
|
|
+ dev_err(&spi->dev, "Invalid clkspeed: %d\n",
|
|
|
+ qcaspi_clkspeed);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
if ((qcaspi_burst_len < QCASPI_BURST_LEN_MIN) ||
|
|
|
(qcaspi_burst_len > QCASPI_BURST_LEN_MAX)) {
|
|
|
- dev_info(&spi->dev, "Invalid burst len: %d\n",
|
|
|
- qcaspi_burst_len);
|
|
|
+ dev_err(&spi->dev, "Invalid burst len: %d\n",
|
|
|
+ qcaspi_burst_len);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
if ((qcaspi_pluggable < QCASPI_PLUGGABLE_MIN) ||
|
|
|
(qcaspi_pluggable > QCASPI_PLUGGABLE_MAX)) {
|
|
|
- dev_info(&spi->dev, "Invalid pluggable: %d\n",
|
|
|
- qcaspi_pluggable);
|
|
|
+ dev_err(&spi->dev, "Invalid pluggable: %d\n",
|
|
|
+ qcaspi_pluggable);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
@@ -955,8 +958,8 @@ qca_spi_probe(struct spi_device *spi)
|
|
|
}
|
|
|
|
|
|
if (register_netdev(qcaspi_devs)) {
|
|
|
- dev_info(&spi->dev, "Unable to register net device %s\n",
|
|
|
- qcaspi_devs->name);
|
|
|
+ dev_err(&spi->dev, "Unable to register net device %s\n",
|
|
|
+ qcaspi_devs->name);
|
|
|
free_netdev(qcaspi_devs);
|
|
|
return -EFAULT;
|
|
|
}
|