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

Commit f78c0850 authored by Amit Kumar Salecha's avatar Amit Kumar Salecha Committed by David S. Miller
Browse files

netxen: change firmware write size



Use 8 byte strides for firmware download into card
memory since oncard memory controller needs 8 byte
(64 bit) accesses. This avoids unnecessary rmw cycles.

Signed-off-by: default avatarAmit Kumar Salecha <amit@netxen.com>
Signed-off-by: default avatarDhananjay Phadke <dhananjay@netxen.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 5ea1c506
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -727,21 +727,28 @@ netxen_load_firmware(struct netxen_adapter *adapter)
			flashaddr += 8;
		}
	} else {
		u32 data;
		u64 data;
		u32 hi, lo;

		size = (NETXEN_IMAGE_START - NETXEN_BOOTLD_START) / 4;
		size = (NETXEN_IMAGE_START - NETXEN_BOOTLD_START) / 8;
		flashaddr = NETXEN_BOOTLD_START;

		for (i = 0; i < size; i++) {
			if (netxen_rom_fast_read(adapter,
					flashaddr, (int *)&data) != 0)
					flashaddr, &lo) != 0)
				return -EIO;
			if (netxen_rom_fast_read(adapter,
					flashaddr + 4, &hi) != 0)
				return -EIO;

			/* hi, lo are already in host endian byteorder */
			data = (((u64)hi << 32) | lo);

			if (adapter->pci_mem_write(adapter,
						flashaddr, &data, 4))
						flashaddr, &data, 8))
				return -EIO;

			flashaddr += 4;
			flashaddr += 8;
		}
	}
	msleep(1);