Commit f643ba69 authored by Ivan Safonov's avatar Ivan Safonov Committed by Greg Kroah-Hartman
Browse files

staging: rtl8188eu: remove _rtl88e_fill_dummy



The _rtl88e_fill_dummy function replaced by memset in rtl88eu_download_fw.

More appropriate names are used for pfwdata and fwsize variables
(download_data and download_size respectively).

Also u32 replaced by size_t for download_size variable.

Signed-off-by: default avatarIvan Safonov <insafonov@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 13973798
Loading
Loading
Loading
Loading
+20 −25
Original line number Diff line number Diff line
@@ -75,16 +75,6 @@ static void _rtl88e_fw_block_write(struct adapter *adapt,
		usb_write8(adapt, write_address, byte_buffer[i]);
}

static void _rtl88e_fill_dummy(u8 *pfwbuf, u32 *pfwlen)
{
	u32 i;

	for (i = *pfwlen; i < roundup(*pfwlen, 4); i++)
		pfwbuf[i] = 0;

	*pfwlen = i;
}

static void _rtl88e_fw_page_write(struct adapter *adapt,
				  u32 page, const u8 *buffer, u32 size)
{
@@ -103,8 +93,6 @@ static void _rtl88e_write_fw(struct adapter *adapt, u8 *buffer, u32 size)
	u32 page_no, remain;
	u32 page, offset;

	_rtl88e_fill_dummy(buf_ptr, &size);

	page_no = size / FW_8192C_PAGE_SIZE;
	remain = size % FW_8192C_PAGE_SIZE;

@@ -176,8 +164,9 @@ int rtl88eu_download_fw(struct adapter *adapt)
	const struct firmware *fw;
	const char fw_name[] = "rtlwifi/rtl8188eufw.bin";
	struct rtl92c_firmware_header *pfwheader = NULL;
	u8 *pfwdata;
	u32 fwsize;
	u8 *download_data;
	size_t download_size;
	unsigned int trailing_zeros_length;

	if (request_firmware(&fw, fw_name, device)) {
		dev_err(device, "Firmware %s not available\n", fw_name);
@@ -190,30 +179,36 @@ int rtl88eu_download_fw(struct adapter *adapt)
		return -1;
	}

	pfwdata = kzalloc(FW_8188E_SIZE, GFP_KERNEL);
	if (!pfwdata)
	trailing_zeros_length = (4 - fw->size % 4) % 4;

	rtlhal->fwsize = fw->size;
	rtlhal->pfirmware = kmalloc(fw->size + trailing_zeros_length,
				    GFP_KERNEL);
	if (!rtlhal->pfirmware)
		return -ENOMEM;

	rtlhal->pfirmware = pfwdata;
	memcpy(rtlhal->pfirmware, fw->data, fw->size);
	rtlhal->fwsize = fw->size;
	release_firmware(fw);
	memset(rtlhal->pfirmware + fw->size, 0, trailing_zeros_length);

	fwsize = rtlhal->fwsize;
	pfwheader = (struct rtl92c_firmware_header *)pfwdata;
	pfwheader = (struct rtl92c_firmware_header *)rtlhal->pfirmware;

	if (IS_FW_HEADER_EXIST(pfwheader)) {
		pfwdata = pfwdata + 32;
		fwsize = fwsize - 32;
		download_data = rtlhal->pfirmware + 32;
		download_size = fw->size + trailing_zeros_length - 32;
	} else {
		download_data = rtlhal->pfirmware;
		download_size = fw->size + trailing_zeros_length;
	}

	release_firmware(fw);

	if (usb_read8(adapt, REG_MCUFWDL) & RAM_DL_SEL) {
		usb_write8(adapt, REG_MCUFWDL, 0);
		rtl88e_firmware_selfreset(adapt);
	}
	_rtl88e_enable_fw_download(adapt, true);
	usb_write8(adapt, REG_MCUFWDL, usb_read8(adapt, REG_MCUFWDL) | FWDL_ChkSum_rpt);
	_rtl88e_write_fw(adapt, pfwdata, fwsize);
	_rtl88e_write_fw(adapt, download_data, download_size);
	_rtl88e_enable_fw_download(adapt, false);

	return _rtl88e_fw_free_to_go(adapt);