Skip to contentSkip to conversation

ivtv: test below 0 on unsigned has_ir

PATCH In review roel kluin 2 participants 2 messages Jul 22, 2008 Media (V4L/DVB)

lore
Share & tools
lore

roel kluin

author
#0 lore raw

PATCH 3/9 ivtv: test below 0 on unsigned has_ir

u32 has_ir, member of struct tveeprom is unsigned, so assignment of -1 and subsequent tests fail

---

drivers/media/video/ivtv/ivtv-driver.c +1 -1
index 797e636..7d909f9 100644
@@ -465,7 +465,7 @@ static void ivtv_process_eeprom(struct ivtv *itv)
 		itv->options.radio = (tv.has_radio != 0);
 	/* only enable newi2c if an IR blaster is present */
 	/* FIXME: for 2.6.20 the test against 2 should be removed */
-	if (itv->options.newi2c == -1 && tv.has_ir != -1 && tv.has_ir != 2) {
+	if (itv->options.newi2c == -1 && tv.has_ir != ~0 && tv.has_ir != 2) {
 		itv->options.newi2c = (tv.has_ir & 2) ? 1 : 0;
 		if (itv->options.newi2c) {
 		    IVTV_INFO("Reopen i2c bus for IR-blaster support\n");
drivers/media/video/tveeprom.c +2 -2
index 9da0e18..41c22a7 100644
@@ -483,7 +483,7 @@ void tveeprom_hauppauge_analog(struct i2c_client *c, struct tveeprom *tvee,
 			tvee->has_radio = eeprom_data[i+len-1];
 			/* old style tag, don't know how to detect
 			IR presence, mark as unknown. */
-			tvee->has_ir = -1;
+			tvee->has_ir = ~0;
 			tvee->model =
 				eeprom_data[i+8] +
 				(eeprom_data[i+9] << 8);
@@ -703,7 +703,7 @@ void tveeprom_hauppauge_analog(struct i2c_client *c, struct tveeprom *tvee,
 		tveeprom_info("decoder processor is %s (idx %d)\n",
 			STRM(decoderIC, tvee->decoder_processor),
 			tvee->decoder_processor);
-	if (tvee->has_ir == -1)
+	if (tvee->has_ir == ~0)
 		tveeprom_info("has %sradio\n",
 				tvee->has_radio ? "" : "no ");
 	else
#1 lore raw
Quoted 2 lines · On Tuesday 22 July 2008 02:29:08 roel kluin wrote:

u32 has_ir, member of struct tveeprom is unsigned, so assignment of -1 and subsequent tests fail

Thank you for this report, but I'm going to NAK this patch. I will take a closer look at this tonight and I will make a new patch for this. First to take care of the FIXME that's just before the first change below and secondly I'll see if it isn't better to change has_ir to an
int: I don't like using ~0 like this.

So expect to see a new patch later today.

Regards,

Hans

Quoted 40 lines

---

(quoted diff) +0 -0

b/drivers/media/video/ivtv/ivtv-driver.c index 797e636..7d909f9 100644

drivers/media/video/ivtv/ivtv-driver.c +0 -1
@@ -465,7 +465,7 @@ static void ivtv_process_eeprom(struct ivtv *itv)
 		itv->options.radio = (tv.has_radio != 0);
 	/* only enable newi2c if an IR blaster is present */
 	/* FIXME: for 2.6.20 the test against 2 should be removed */
-	if (itv->options.newi2c == -1 && tv.has_ir != -1 && tv.has_ir != 2)

{ + if (itv->options.newi2c == -1 && tv.has_ir != ~0 && tv.has_ir !=
2) { itv->options.newi2c = (tv.has_ir & 2) ? 1 : 0;

drivers/media/video/ivtv/ivtv-driver.c +0 -0
 		if (itv->options.newi2c) {
 		    IVTV_INFO("Reopen i2c bus for IR-blaster support\n");
(quoted diff) +0 -0

b/drivers/media/video/tveeprom.c index 9da0e18..41c22a7 100644

drivers/media/video/tveeprom.c +2 -2
@@ -483,7 +483,7 @@ void tveeprom_hauppauge_analog(struct i2c_client
 *c, struct tveeprom *tvee, tvee->has_radio = eeprom_data[i+len-1];
 			/* old style tag, don't know how to detect
 			IR presence, mark as unknown. */
-			tvee->has_ir = -1;
+			tvee->has_ir = ~0;
 			tvee->model =
 				eeprom_data[i+8] +
 				(eeprom_data[i+9] << 8);
@@ -703,7 +703,7 @@ void tveeprom_hauppauge_analog(struct i2c_client
 *c, struct tveeprom *tvee, tveeprom_info("decoder processor is %s
 (idx %d)\n",
 			STRM(decoderIC, tvee->decoder_processor),
 			tvee->decoder_processor);
-	if (tvee->has_ir == -1)
+	if (tvee->has_ir == ~0)
 		tveeprom_info("has %sradio\n",
 				tvee->has_radio ? "" : "no ");
Quoted 1 line

else

--
video4linux-list mailing list
Unsubscribe mailto:[email protected]?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list