mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
Merge branch 'qca_spi-fixes'
Stefan Wahren says: ==================== net: qca_spi: Fix receive and reset issues This small patch series fixes two major issues in the SPI driver for the QCA700x. It has been tested on a Charge Control C 300 (NXP i.MX6ULL + 2x QCA7000). ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
b172845a40
@ -363,7 +363,7 @@ qcaspi_receive(struct qcaspi *qca)
|
||||
netdev_dbg(net_dev, "qcaspi_receive: SPI_REG_RDBUF_BYTE_AVA: Value: %08x\n",
|
||||
available);
|
||||
|
||||
if (available > QCASPI_HW_BUF_LEN) {
|
||||
if (available > QCASPI_HW_BUF_LEN + QCASPI_HW_PKT_LEN) {
|
||||
/* This could only happen by interferences on the SPI line.
|
||||
* So retry later ...
|
||||
*/
|
||||
@ -496,7 +496,6 @@ qcaspi_qca7k_sync(struct qcaspi *qca, int event)
|
||||
u16 signature = 0;
|
||||
u16 spi_config;
|
||||
u16 wrbuf_space = 0;
|
||||
static u16 reset_count;
|
||||
|
||||
if (event == QCASPI_EVENT_CPUON) {
|
||||
/* Read signature twice, if not valid
|
||||
@ -549,13 +548,13 @@ qcaspi_qca7k_sync(struct qcaspi *qca, int event)
|
||||
|
||||
qca->sync = QCASPI_SYNC_RESET;
|
||||
qca->stats.trig_reset++;
|
||||
reset_count = 0;
|
||||
qca->reset_count = 0;
|
||||
break;
|
||||
case QCASPI_SYNC_RESET:
|
||||
reset_count++;
|
||||
qca->reset_count++;
|
||||
netdev_dbg(qca->net_dev, "sync: waiting for CPU on, count %u.\n",
|
||||
reset_count);
|
||||
if (reset_count >= QCASPI_RESET_TIMEOUT) {
|
||||
qca->reset_count);
|
||||
if (qca->reset_count >= QCASPI_RESET_TIMEOUT) {
|
||||
/* reset did not seem to take place, try again */
|
||||
qca->sync = QCASPI_SYNC_UNKNOWN;
|
||||
qca->stats.reset_timeout++;
|
||||
|
@ -94,6 +94,7 @@ struct qcaspi {
|
||||
|
||||
unsigned int intr_req;
|
||||
unsigned int intr_svc;
|
||||
u16 reset_count;
|
||||
|
||||
#ifdef CONFIG_DEBUG_FS
|
||||
struct dentry *device_root;
|
||||
|
Loading…
Reference in New Issue
Block a user