Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b6994e3e authored by Stefan Wahren's avatar Stefan Wahren Committed by Greg Kroah-Hartman
Browse files

net: qca_spi: Move reset_count to struct qcaspi



[ Upstream commit bc19c32904e36548335b35fdce6ce734e20afc0a ]

The reset counter is specific for every QCA700x chip. So move this
into the private driver struct. Otherwise we get unpredictable reset
behavior in setups with multiple QCA700x chips.

Fixes: 291ab06e (net: qualcomm: new Ethernet over SPI driver for QCA7000)
Signed-off-by: default avatarStefan Wahren <stefan.wahren@in-tech.com>
Signed-off-by: default avatarStefan Wahren <wahrenst@gmx.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent e0aedcaf
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -475,7 +475,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
@@ -528,13 +527,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++;
+1 −0
Original line number Diff line number Diff line
@@ -92,6 +92,7 @@ struct qcaspi {

	unsigned int intr_req;
	unsigned int intr_svc;
	u16 reset_count;

#ifdef CONFIG_DEBUG_FS
	struct dentry *device_root;