Re: [PATCHv2 04/28] cx25840: treat firmware data as const

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: David Woodhouse
Date: Sunday, May 25, 2008 - 7:56 am

Hm, looks like I was also passing the wrong pointer to fw_write().
Here's the new version...

commit 57dc4762554119ffb5c711b2716f47997bc5c181
Author: David Woodhouse <dwmw2@infradead.org>
Date:   Fri May 23 23:58:24 2008 +0100

    cx25840: treat firmware data as const
    
    Signed-off-by: David Woodhouse <dwmw2@infradead.org>

diff --git a/drivers/media/video/cx25840/cx25840-firmware.c b/drivers/media/video/cx25840/cx25840-firmware.c
index 620d295..8d489a4 100644
--- a/drivers/media/video/cx25840/cx25840-firmware.c
+++ b/drivers/media/video/cx25840/cx25840-firmware.c
@@ -79,7 +79,7 @@ static int check_fw_load(struct i2c_client *client, int size)
 	return 0;
 }
 
-static int fw_write(struct i2c_client *client, u8 *data, int size)
+static int fw_write(struct i2c_client *client, const u8 *data, int size)
 {
 	if (i2c_master_send(client, data, size) < size) {
 		v4l_err(client, "firmware load i2c failure\n");
@@ -93,7 +93,8 @@ int cx25840_loadfw(struct i2c_client *client)
 {
 	struct cx25840_state *state = i2c_get_clientdata(client);
 	const struct firmware *fw = NULL;
-	u8 buffer[4], *ptr;
+	u8 buffer[FWSEND];
+	const u8 *ptr;
 	int size, retval;
 
 	if (state->is_cx23885)
@@ -108,29 +109,23 @@ int cx25840_loadfw(struct i2c_client *client)
 
 	buffer[0] = 0x08;
 	buffer[1] = 0x02;
-	buffer[2] = fw->data[0];
-	buffer[3] = fw->data[1];
-	retval = fw_write(client, buffer, 4);
 
-	if (retval < 0) {
-		release_firmware(fw);
-		return retval;
-	}
-
-	size = fw->size - 2;
+	size = fw->size;
 	ptr = fw->data;
 	while (size > 0) {
-		ptr[0] = 0x08;
-		ptr[1] = 0x02;
-		retval = fw_write(client, ptr, min(FWSEND, size + 2));
+		int len = min(FWSEND - 2, size);
+
+		memcpy(buffer + 2, ptr, len);
+
+		retval = fw_write(client, buffer, len + 2);
 
 		if (retval < 0) {
 			release_firmware(fw);
 			return retval;
 		}
 
-		size -= FWSEND - 2;
-		ptr += FWSEND - 2;
+		size -= len;
+		ptr += len;
 	}
 
 	end_fw_load(client);

-- 
dwmw2

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCHv2 01/28] libertas: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 02/28] bluetooth: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 03/28] cyclades: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 04/28] cx25840: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 05/28] myri10ge: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 06/28] vx222: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 07/28] riptide: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 08/28] pcxhr: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 09/28] vx: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 10/28] ueagle-atm: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 11/28] cxacru: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 12/28] aic94xx: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 13/28] zd1201: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 14/28] rt2x00: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 15/28] p54: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 16/28] atmel: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 17/28] irda-usb: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 18/28] cxgb3: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 19/28] bt8xx: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 20/28] ttusb-dec: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 21/28] dvb frontends: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 22/28] cxusb: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 23/28] gp8psk: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 24/28] tuners: treat firmware data as const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 25/28] firmware: make fw-&gt;data const, David Woodhouse, (Sun May 25, 3:23 am)
[PATCHv2 27/28] firmware: Add CONFIG_BUILTIN_FIRMWARE option, David Woodhouse, (Sun May 25, 3:23 am)
Re: [PATCHv2 22/28] cxusb: treat firmware data as const, Michael Krufky, (Sun May 25, 7:14 am)
Re: [PATCHv2 22/28] cxusb: treat firmware data as const, David Woodhouse, (Sun May 25, 7:27 am)
Re: [PATCHv2 04/28] cx25840: treat firmware data as const, David Woodhouse, (Sun May 25, 7:36 am)
Re: [PATCHv2 04/28] cx25840: treat firmware data as const, David Woodhouse, (Sun May 25, 7:56 am)
Re: [PATCHv2 22/28] cxusb: treat firmware data as const, David Woodhouse, (Sun May 25, 8:02 am)
Re: [PATCHv2 04/28] cx25840: treat firmware data as const, Tyler Trafford, (Sun May 25, 9:16 am)
[PATCHv3 27/28] firmware: Add CONFIG_BUILTIN_FIRMWARE option, David Woodhouse, (Sun May 25, 10:00 am)
[PATCH 29/28] firmware: Add 'firmware_install' make target, David Woodhouse, (Thu May 29, 1:29 am)
[PATCHv2 #ERROR!/28] maestro3: treat firmware data as const, David Woodhouse, (Thu May 29, 2:09 am)
[PATCH N/28] ymfpci: treat firmware data as const, David Woodhouse, (Thu May 29, 5:21 am)
[PATCH] smctr: use request_firmware(), David Woodhouse, (Thu May 29, 6:47 am)
[PATCH] kaweth: use request_firmware(), David Woodhouse, (Thu May 29, 7:20 am)
[PATCH] ttusb-budget: use request_firmware(), David Woodhouse, (Thu May 29, 10:49 am)
Re: [PATCH] smctr: use request_firmware(), maximilian attems, (Thu May 29, 12:30 pm)
Re: [PATCH] smctr: use request_firmware(), David Woodhouse, (Thu May 29, 2:02 pm)
[PATCH] keyspan: use request_firmware(), David Woodhouse, (Fri May 30, 4:45 am)
[PATCH] keyspan_pda: use request_firmware(), David Woodhouse, (Fri May 30, 5:19 am)
Re: [PATCH] keyspan: use request_firmware(), Hugh Blemings, (Fri May 30, 6:54 am)
Re: [PATCH] kaweth: use request_firmware(), Oliver Neukum, (Fri May 30, 6:55 am)
Re: [PATCH] kaweth: use request_firmware(), David Woodhouse, (Fri May 30, 8:16 am)
Re: [PATCH] kaweth: use request_firmware(), Marcel Holtmann, (Fri May 30, 8:26 am)
Re: [PATCH] kaweth: use request_firmware(), Alan Cox, (Fri May 30, 8:48 am)
Re: [PATCH] kaweth: use request_firmware(), Oliver Neukum, (Fri May 30, 2:02 pm)
Re: [PATCH] kaweth: use request_firmware(), Alexandre Oliva, (Fri May 30, 5:00 pm)
Re: [PATCH] kaweth: use request_firmware(), Marcel Holtmann, (Fri May 30, 11:51 pm)
Re: [PATCH] kaweth: use request_firmware(), Alan Cox, (Sat May 31, 5:35 am)
Re: [PATCH] ttusb-budget: use request_firmware(), Mauro Carvalho Chehab, (Fri Jun 13, 12:23 pm)