DViCO FusionHDTV7 Dual Express I2C write failed
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 22 lines · Mark Zimmerman
Greetings:
I have a DViCO FusionHDTV7 Dual Express card that works with 2.6.35 but which fails to initialize with the latest 2.6.36 kernel. The firmware fails to load due to an i2c failure. A search of the archives indicates that this is not the first time this issue has occurred.
What can I do to help get this problem fixed?
Here is the dmesg from 2.6.35, for the two tuners:
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete...
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete..and here is what happens with 2.6.36:
Quoted 12 lines
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...
xc5000: Unable to initialise tuner
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...
More information about this: I tried 2.6.37 (vanilla source from kernel.org) and the problem persisted. So, I enabled these options:CONFIG_I2C_DEBUG_CORE=yCONFIG_I2C_DEBUG_ALGO=yCONFIG_I2C_DEBUG_BUS=y
hoping to get more information but this time the firmware loaded successfully and the tuner works properly.
This leads me to suspect a race condition somewhere, or maybe a tunable parameter that can be adjusted. The fact that the 'write failed' message occurs before the 'upload complete' message would tend to support this. Can anyone suggest something I might try?
-- Mark
Quoted 41 lines · Mark Zimmerman
Quoted 20 lines
I have a DViCO FusionHDTV7 Dual Express card that works with 2.6.35 but which fails to initialize with the latest 2.6.36 kernel. The firmware fails to load due to an i2c failure. A search of the archives indicates that this is not the first time this issue has occurred.
What can I do to help get this problem fixed?
Here is the dmesg from 2.6.35, for the two tuners:
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete...
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete..and here is what happens with 2.6.36:
Quoted 12 lines
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...
xc5000: Unable to initialise tuner
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...More information about this: I tried 2.6.37 (vanilla source from kernel.org) and the problem persisted. So, I enabled these options:
CONFIG_I2C_DEBUG_CORE=yCONFIG_I2C_DEBUG_ALGO=yCONFIG_I2C_DEBUG_BUS=y
hoping to get more information but this time the firmware loaded successfully and the tuner works properly.
Quoted 4 lines
This leads me to suspect a race condition somewhere, or maybe a tunable parameter that can be adjusted. The fact that the 'write failed' message occurs before the 'upload complete' message would tend to support this. Can anyone suggest something I might try?
Can someone please look into this and possibly provide a fix for the bug? I'm surprised it hasn't happened yet after all this time but maybe it's been forgotten the bug existed.
Thanks.
Quoted 3 lines · VDR User
Can someone please look into this and possibly provide a fix for the bug? I'm surprised it hasn't happened yet after all this time but maybe it's been forgotten the bug existed.
You shouldn't be too surprised. In many cases device support for more obscure products comes not from the maintainer of the actual driver but rather from some random user who hacked in an additional board profile (in many cases, not doing it correctly but good enough so it "works for them"). In cases like that, the changes get committed, the original submitter disappears, and then when things break there is nobody with the appropriate knowledge and the hardware to debug the problem.
Devin
Signature · 2 lines
Devin J. Heitmueller - Kernel Labs http://www.kernellabs.com
Quoted 4 lines · Devin Heitmueller
Quoted 3 lines
Can someone please look into this and possibly provide a fix for the bug? I'm surprised it hasn't happened yet after all this time but maybe it's been forgotten the bug existed.
Quoted 8 lines
You shouldn't be too surprised. In many cases device support for more obscure products comes not from the maintainer of the actual driver but rather from some random user who hacked in an additional board profile (in many cases, not doing it correctly but good enough so it "works for them"). In cases like that, the changes get committed, the original submitter disappears, and then when things break there is nobody with the appropriate knowledge and the hardware to debug the problem.
Good point. My understanding is that this is a fairly common card so I wouldn't think that would be the case. At any rate, hopefully we'll be able to narrow down the cause of the problem and get it fixed.
Thanks.
Quoted 15 lines · VDR User
Quoted 4 lines · Devin Heitmueller
Quoted 3 lines
Can someone please look into this and possibly provide a fix for the bug? ??I'm surprised it hasn't happened yet after all this time but maybe it's been forgotten the bug existed.
Quoted 8 lines
You shouldn't be too surprised. ??In many cases device support for more obscure products comes not from the maintainer of the actual driver but rather from some random user who hacked in an additional board profile (in many cases, not doing it correctly but good enough so it "works for them"). ??In cases like that, the changes get committed, the original submitter disappears, and then when things break there is nobody with the appropriate knowledge and the hardware to debug the problem.
Quoted 4 lines
Good point. My understanding is that this is a fairly common card so I wouldn't think that would be the case. At any rate, hopefully we'll be able to narrow down the cause of the problem and get it fixed.
Were there changes to i2c between 2.6.35 and 2.6.36 that are missing from the xc5000 driver? If so, is there another driver that has the required updates so I can look at what changed? I would like to get some traction on this but I really don't know where to start.
Thanks,
-- Mark
Quoted 21 lines · Mark Zimmerman
Quoted 15 lines · VDR User
Quoted 4 lines · Devin Heitmueller
Quoted 3 lines
Can someone please look into this and possibly provide a fix for the bug? ??I'm surprised it hasn't happened yet after all this time but maybe it's been forgotten the bug existed.
Quoted 8 lines
You shouldn't be too surprised. ??In many cases device support for more obscure products comes not from the maintainer of the actual driver but rather from some random user who hacked in an additional board profile (in many cases, not doing it correctly but good enough so it "works for them"). ??In cases like that, the changes get committed, the original submitter disappears, and then when things break there is nobody with the appropriate knowledge and the hardware to debug the problem.
Quoted 4 lines
Good point. My understanding is that this is a fairly common card so I wouldn't think that would be the case. At any rate, hopefully we'll be able to narrow down the cause of the problem and get it fixed.
Quoted 7 lines
Were there changes to i2c between 2.6.35 and 2.6.36 that are missing from the xc5000 driver? If so, is there another driver that has the required updates so I can look at what changed? I would like to get some traction on this but I really don't know where to start.
From looking at the code and a dump of the firmware file, the first
i2c write would have a length of 3; so this error:
xc5000: I2C write failed (len=3)
tells me that there were probably no successful i2c transactions on this device. The i2c write call looks the same as that in other drivers, so I wonder if there is an initialization step that is now necessary but which is missing.
Still hoping for suggestions...
-- Mark
Quoted 11 lines · Mark Zimmerman
From looking at the code and a dump of the firmware file, the first i2c write would have a length of 3; so this error:
xc5000: I2C write failed (len=3)
tells me that there were probably no successful i2c transactions on this device. The i2c write call looks the same as that in other drivers, so I wonder if there is an initialization step that is now necessary but which is missing.
Still hoping for suggestions...
My guess would be that somebody screwed up either the GPIO config int the cx88 board profile, or the i2c gate, which is resulting in not being able to reach the tuner at all.
Do you have an oscilloscope? If so, I bet you will find that the xc5000 pin is being held in reset.
I would probably take a hard look at the board profile in cx88-cards.c as well as whether there have been any changes to the GPIO setup and power management code.
Devin
Signature · 2 lines
Devin J. Heitmueller - Kernel Labs http://www.kernellabs.com
Quoted 11 lines · Devin Heitmueller
Quoted 10 lines · Mark Zimmerman
From looking at the code and a dump of the firmware file, the first i2c write would have a length of 3; so this error:
xc5000: I2C write failed (len=3)
tells me that there were probably no successful i2c transactions on this device. The i2c write call looks the same as that in other drivers, so I wonder if there is an initialization step that is now necessary but which is missing.
Quoted 8 lines
Quoted 1 line
Still hoping for suggestions...
My guess would be that somebody screwed up either the GPIO config int the cx88 board profile, or the i2c gate, which is resulting in not being able to reach the tuner at all.
Do you have an oscilloscope? If so, I bet you will find that the xc5000 pin is being held in reset.
If I had an oscilloscope I probably wouldn't know where to stick the probe.
Quoted 4 lines
I would probably take a hard look at the board profile in
cx88-cards.cas well as whether there have been any changes to the GPIO setup and power management code.
cx23885-cards.c, actually. I'll see what I can find in there.
Thanks,
-- Mark
So what would a "mainstream" dual (or more) tuner card be? I've found these Fusions to be flaky. Had one die and another went flaky when I enabled the sleep mode. Can't really afford any more now, but am always watching. A company called Ceton seems to havea quad, but it's a cable card tuner costing $450.
Quoted 16 lines · Devin Heitmueller
Quoted 3 lines · VDR User
Can someone please look into this and possibly provide a fix for the bug? I'm surprised it hasn't happened yet after all this time but maybe it's been forgotten the bug existed.
You shouldn't be too surprised. In many cases device support for more obscure products comes not from the maintainer of the actual driver but rather from some random user who hacked in an additional board profile (in many cases, not doing it correctly but good enough so it "works for them"). In cases like that, the changes get committed, the original submitter disappears, and then when things break there is nobody with the appropriate knowledge and the hardware to debug the problem.
Devin
I just tried to update from kernel 2.6.34 and in doing so had to switch to git for v4l. I noticed the chip in this this post and saved it to look at latter. now I'm glad I did. I ran into the same problem. Driver seems to load ok, but when I try to start vdr I get thet same messages in syslog.
Jan 16 21:50:48 LLLx64-32 vdr: [6170] saved setup to /usr/local/dvb/VDR/config/setup.conf Jan 16 21:50:49 LLLx64-32 kernel: xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)... Jan 16 21:50:49 LLLx64-32 kernel: xc5000: firmware read 12401 bytes. Jan 16 21:50:49 LLLx64-32 kernel: xc5000: firmware uploading... Jan 16 21:50:49 LLLx64-32 vdr: [6176] section handler thread ended (pid=6170, tid=6176) Jan 16 21:50:49 LLLx64-32 kernel: xc5000: I2C write failed (len=3) Jan 16 21:50:49 LLLx64-32 kernel: xc5000: firmware upload complete... Jan 16 21:50:50 LLLx64-32 vdr: [6175] tuner on frontend 0/0 thread ended (pid=6170, tid=6175) Jan 16 21:50:50 LLLx64-32 kernel: xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)... Jan 16 21:50:50 LLLx64-32 kernel: xc5000: firmware read 12401 bytes. Jan 16 21:50:50 LLLx64-32 kernel: xc5000: firmware uploading... Jan 16 21:50:50 LLLx64-32 vdr: [6174] CI adapter on device 0 thread ended (pid=6170, tid=6174)
.......
Quoted 40 lines · Mark Zimmerman
Greetings:
I have a DViCO FusionHDTV7 Dual Express card that works with 2.6.35 but which fails to initialize with the latest 2.6.36 kernel. The firmware fails to load due to an i2c failure. A search of the archives indicates that this is not the first time this issue has occurred.
What can I do to help get this problem fixed?
Here is the dmesg from 2.6.35, for the two tuners:
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete...
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete..and here is what happens with 2.6.36:
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...
xc5000: Unable to initialise tuner
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...-- Mark
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Mark Zimmerman
Acked-by Randy Dunlap[get-bisect results]: DViCO FusionHDTV7 Dual Express I2C write failed
In reply to a message not in the archiveQuoted 22 lines · Mark Zimmerman
Greetings:
I have a DViCO FusionHDTV7 Dual Express card that works with 2.6.35 but which fails to initialize with the latest 2.6.36 kernel. The firmware fails to load due to an i2c failure. A search of the archives indicates that this is not the first time this issue has occurred.
What can I do to help get this problem fixed?
Here is the dmesg from 2.6.35, for the two tuners:
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete...
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete..and here is what happens with 2.6.36:
Quoted 12 lines
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...
xc5000: Unable to initialise tuner
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...
I did a git bisect on this and finally reached the end of the line. Here is what it said:
qpc$ git bisect bad 82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98 is the first bad commit commit 82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98
Author: Jarod Wilson <[email protected]> Date: Thu Jul 29 18:20:44 2010 -0300
V4L/DVB: staging/lirc: fix non-CONFIG_MODULES build horkage
Fix when CONFIG_MODULES is not enabled:
drivers/staging/lirc/lirc_parallel.c:243: error: implicit declaration of function 'module_refcount' drivers/staging/lirc/lirc_it87.c:150: error: implicit declaration of function 'module_refcount' drivers/built-in.o: In function `it87_probe':
lirc_it87.c:(.text+0x4079b0): undefined reference to init_chrdev' lirc_it87.c:(.text+0x4079cc): undefined reference to drop_chrdev' drivers/built-in.o: In function `lirc_it87_exit':
lirc_it87.c:(.exit.text+0x38a5): undefined reference to `drop_chrdev'
Its a quick hack and untested beyond building, since I don't have the hardware, but it should do the trick.
:040000 040000 f645b46a07b7ff87a2c11ac9296a5ff56e89a0d0 49e50945ccf8e1c8567c049908890d2752443b72 M drivers
Re: [get-bisect results]: DViCO FusionHDTV7 Dual Express I2C write failed
Quoted 57 lines · Mark Zimmerman
Quoted 22 lines · Mark Zimmerman
Greetings:
I have a DViCO FusionHDTV7 Dual Express card that works with 2.6.35 but which fails to initialize with the latest 2.6.36 kernel. The firmware fails to load due to an i2c failure. A search of the archives indicates that this is not the first time this issue has occurred.
What can I do to help get this problem fixed?
Here is the dmesg from 2.6.35, for the two tuners:
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete...
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete..and here is what happens with 2.6.36:
Quoted 12 lines
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...
xc5000: Unable to initialise tuner
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...I did a git bisect on this and finally reached the end of the line. Here is what it said:
qpc$ git bisect bad
82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98is the first bad commit commit82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98Author: Jarod Wilson <[email protected]> Date: Thu Jul 29 18:20:44 2010 -0300V4L/DVB: staging/lirc: fix non-CONFIG_MODULES build horkage
Fix when
CONFIG_MODULESis not enabled:
drivers/staging/lirc/lirc_parallel.c:243: error: implicit declaration of function 'module_refcount'drivers/staging/lirc/lirc_it87.c:150: error: implicit declaration of function 'module_refcount'drivers/built-in.o: In function `it87_probe':
lirc_it87.c:(.text+0x4079b0): undefined reference toinit_chrdev' lirc_it87.c:(.text+0x4079cc): undefined reference todrop_chrdev'drivers/built-in.o: In function `lirc_it87_exit':
lirc_it87.c:(.exit.text+0x38a5): undefined reference to `drop_chrdev'
Quoted 8 lines
Its a quick hack and untested beyond building, since I don't have the hardware, but it should do the trick.
Acked-by Randy Dunlap <[email protected]>Signed-off-by Jarod Wilson <[email protected]>Signed-off-by Mauro Carvalho Chehab <[email protected]>:040000 040000
f645b46a07b7ff87a2c11ac9296a5ff56e89a0d049e50945ccf8e1c8567c049908890d2752443b72M drivers
Hmm. git log --patch 82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98 shows the commit is completely unrealted.
Please try and see if things are good or bad at commit 18a87becf85d50e7f3d547f1b7a75108b151374d:
commit 18a87becf85d50e7f3d547f1b7a75108b151374d
Author: Jean Delvare <[email protected]>
Date: Sun Jul 18 17:05:17 2010 -0300
V4L/DVB: cx23885: i2c_wait_done returns 0 or 1, don't check for < 0 return v
Function i2c_wait_done() never returns negative values, so there is no point in checking for them.
Which is the first commit, prior to the one you found, that seems to me to have any direct bearing to I2C transactions.
If that commit is good, then these commits in between would be my next likely suspects:e5514f104d875b3d28cbcd5d4f2b96ab2fca1e29 dbe83a3b921328e12b2abe894fc692afba293d7f
Regards,
Andy
Quoted 4 lines
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [get-bisect results]: DViCO FusionHDTV7 Dual Express I2C write failed
Quoted 89 lines · Andy Walls
Quoted 57 lines · Mark Zimmerman
Quoted 22 lines · Mark Zimmerman
Greetings:
I have a DViCO FusionHDTV7 Dual Express card that works with 2.6.35 but which fails to initialize with the latest 2.6.36 kernel. The firmware fails to load due to an i2c failure. A search of the archives indicates that this is not the first time this issue has occurred.
What can I do to help get this problem fixed?
Here is the dmesg from 2.6.35, for the two tuners:
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete...
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete..and here is what happens with 2.6.36:
Quoted 12 lines
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...
xc5000: Unable to initialise tuner
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...I did a git bisect on this and finally reached the end of the line. Here is what it said:
qpc$ git bisect bad
82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98is the first bad commit commit82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98Author: Jarod Wilson <[email protected]> Date: Thu Jul 29 18:20:44 2010 -0300V4L/DVB: staging/lirc: fix non-CONFIG_MODULES build horkage
Fix when
CONFIG_MODULESis not enabled:
drivers/staging/lirc/lirc_parallel.c:243: error: implicit declaration of function 'module_refcount'drivers/staging/lirc/lirc_it87.c:150: error: implicit declaration of function 'module_refcount'drivers/built-in.o: In function `it87_probe':
lirc_it87.c:(.text+0x4079b0): undefined reference toinit_chrdev' lirc_it87.c:(.text+0x4079cc): undefined reference todrop_chrdev'drivers/built-in.o: In function `lirc_it87_exit':
lirc_it87.c:(.exit.text+0x38a5): undefined reference to `drop_chrdev'Quoted 8 lines
Its a quick hack and untested beyond building, since I don't have the hardware, but it should do the trick.
Acked-by Randy Dunlap <[email protected]>Signed-off-by Jarod Wilson <[email protected]>Signed-off-by Mauro Carvalho Chehab <[email protected]>:040000 040000
f645b46a07b7ff87a2c11ac9296a5ff56e89a0d049e50945ccf8e1c8567c049908890d2752443b72M driversHmm. git log --patch
82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98shows the commit is completely unrealted.Please try and see if things are good or bad at commit
18a87becf85d50e7f3d547f1b7a75108b151374d:commit
18a87becf85d50e7f3d547f1b7a75108b151374d
Author: Jean Delvare <[email protected]>
Date: Sun Jul 18 17:05:17 2010 -0300V4L/DVB: cx23885:
i2c_wait_donereturns 0 or 1, don't check for < 0 return vFunction
i2c_wait_done()never returns negative values, so there is no point in checking for them.Signed-off-by Jean Delvare <[email protected]>Signed-off-by Andy Walls <[email protected]>Signed-off-by Mauro Carvalho Chehab <[email protected]>Which is the first commit, prior to the one you found, that seems to me to have any direct bearing to I2C transactions.
Quoted 8 lines
If that commit is good, then these commits in between would be my next likely suspects:
e5514f104d875b3d28cbcd5d4f2b96ab2fca1e29dbe83a3b921328e12b2abe894fc692afba293d7fRegards,
Andy
Sorry to require so much hand holding, but I am new to all of this git gymnastics. Would you mind sending me the correct git command to get to a specific commit? Also, do I need to do a bisect reset?
Thanks,
-- Mark
Re: [get-bisect results]: DViCO FusionHDTV7 Dual Express I2C write failed
Quoted 95 lines · Mark Zimmerman
Quoted 94 lines · Andy Walls
Quoted 57 lines · Mark Zimmerman
Quoted 22 lines · Mark Zimmerman
Greetings:
I have a DViCO FusionHDTV7 Dual Express card that works with 2.6.35 but which fails to initialize with the latest 2.6.36 kernel. The firmware fails to load due to an i2c failure. A search of the archives indicates that this is not the first time this issue has occurred.
What can I do to help get this problem fixed?
Here is the dmesg from 2.6.35, for the two tuners:
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete...
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete..and here is what happens with 2.6.36:
Quoted 12 lines
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...
xc5000: Unable to initialise tuner
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...I did a git bisect on this and finally reached the end of the line. Here is what it said:
qpc$ git bisect bad
82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98is the first bad commit commit82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98Author: Jarod Wilson <[email protected]> Date: Thu Jul 29 18:20:44 2010 -0300V4L/DVB: staging/lirc: fix non-CONFIG_MODULES build horkage
Fix when
CONFIG_MODULESis not enabled:
drivers/staging/lirc/lirc_parallel.c:243: error: implicit declaration of function 'module_refcount'drivers/staging/lirc/lirc_it87.c:150: error: implicit declaration of function 'module_refcount'drivers/built-in.o: In function `it87_probe':
lirc_it87.c:(.text+0x4079b0): undefined reference toinit_chrdev' lirc_it87.c:(.text+0x4079cc): undefined reference todrop_chrdev'drivers/built-in.o: In function `lirc_it87_exit':
lirc_it87.c:(.exit.text+0x38a5): undefined reference to `drop_chrdev'Quoted 8 lines
Its a quick hack and untested beyond building, since I don't have the hardware, but it should do the trick.
Acked-by Randy Dunlap <[email protected]>Signed-off-by Jarod Wilson <[email protected]>Signed-off-by Mauro Carvalho Chehab <[email protected]>:040000 040000
f645b46a07b7ff87a2c11ac9296a5ff56e89a0d049e50945ccf8e1c8567c049908890d2752443b72M driversHmm. git log --patch
82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98shows the commit is completely unrealted.Please try and see if things are good or bad at commit
18a87becf85d50e7f3d547f1b7a75108b151374d:commit
18a87becf85d50e7f3d547f1b7a75108b151374d
Author: Jean Delvare <[email protected]>
Date: Sun Jul 18 17:05:17 2010 -0300V4L/DVB: cx23885:
i2c_wait_donereturns 0 or 1, don't check for < 0 return vFunction
i2c_wait_done()never returns negative values, so there is no point in checking for them.Signed-off-by Jean Delvare <[email protected]>Signed-off-by Andy Walls <[email protected]>Signed-off-by Mauro Carvalho Chehab <[email protected]>Which is the first commit, prior to the one you found, that seems to me to have any direct bearing to I2C transactions.
If that commit is good, then these commits in between would be my next likely suspects:
e5514f104d875b3d28cbcd5d4f2b96ab2fca1e29dbe83a3b921328e12b2abe894fc692afba293d7f
Quoted 7 lines
Quoted 3 lines
Regards,
AndySorry to require so much hand holding, but I am new to all of this git gymnastics. Would you mind sending me the correct git command to get to a specific commit?
It should just be
$ git checkout 18a87becf85d50e7f3d547f1b7a75108b151374d
or whatever the commit number git log shows you for the change I suspect is the problem.
Quoted 1 line
Also, do I need to do a bisect reset?
I wouldn't reset the git bisect yet. If you test a commit and it is good, you will want to mark it with 'git bisect good <commit-hash>', and if it is bad, you will want to mark it with 'git bisect bad <commit-hash>'
BTW, can you provide the output of 'git bisect log' ?
Regards,
Andy
Re: [get-bisect results]: DViCO FusionHDTV7 Dual Express I2C write failed
Quoted 112 lines · Andy Walls
Quoted 95 lines · Mark Zimmerman
Quoted 94 lines · Andy Walls
Quoted 57 lines · Mark Zimmerman
Quoted 22 lines · Mark Zimmerman
Greetings:
I have a DViCO FusionHDTV7 Dual Express card that works with 2.6.35 but which fails to initialize with the latest 2.6.36 kernel. The firmware fails to load due to an i2c failure. A search of the archives indicates that this is not the first time this issue has occurred.
What can I do to help get this problem fixed?
Here is the dmesg from 2.6.35, for the two tuners:
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete...
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete..and here is what happens with 2.6.36:
Quoted 12 lines
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...
xc5000: Unable to initialise tuner
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...I did a git bisect on this and finally reached the end of the line. Here is what it said:
qpc$ git bisect bad
82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98is the first bad commit commit82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98Author: Jarod Wilson <[email protected]> Date: Thu Jul 29 18:20:44 2010 -0300V4L/DVB: staging/lirc: fix non-CONFIG_MODULES build horkage
Fix when
CONFIG_MODULESis not enabled:
drivers/staging/lirc/lirc_parallel.c:243: error: implicit declaration of function 'module_refcount'drivers/staging/lirc/lirc_it87.c:150: error: implicit declaration of function 'module_refcount'drivers/built-in.o: In function `it87_probe':
lirc_it87.c:(.text+0x4079b0): undefined reference toinit_chrdev' lirc_it87.c:(.text+0x4079cc): undefined reference todrop_chrdev'drivers/built-in.o: In function `lirc_it87_exit':
lirc_it87.c:(.exit.text+0x38a5): undefined reference to `drop_chrdev'Quoted 8 lines
Its a quick hack and untested beyond building, since I don't have the hardware, but it should do the trick.
Acked-by Randy Dunlap <[email protected]>Signed-off-by Jarod Wilson <[email protected]>Signed-off-by Mauro Carvalho Chehab <[email protected]>:040000 040000
f645b46a07b7ff87a2c11ac9296a5ff56e89a0d049e50945ccf8e1c8567c049908890d2752443b72M driversHmm. git log --patch
82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98shows the commit is completely unrealted.Please try and see if things are good or bad at commit
18a87becf85d50e7f3d547f1b7a75108b151374d:commit
18a87becf85d50e7f3d547f1b7a75108b151374d
Author: Jean Delvare <[email protected]>
Date: Sun Jul 18 17:05:17 2010 -0300V4L/DVB: cx23885:
i2c_wait_donereturns 0 or 1, don't check for < 0 return vFunction
i2c_wait_done()never returns negative values, so there is no point in checking for them.Signed-off-by Jean Delvare <[email protected]>Signed-off-by Andy Walls <[email protected]>Signed-off-by Mauro Carvalho Chehab <[email protected]>Which is the first commit, prior to the one you found, that seems to me to have any direct bearing to I2C transactions.
If that commit is good, then these commits in between would be my next likely suspects:
e5514f104d875b3d28cbcd5d4f2b96ab2fca1e29dbe83a3b921328e12b2abe894fc692afba293d7fQuoted 7 lines
Quoted 3 lines
Regards,
AndySorry to require so much hand holding, but I am new to all of this git gymnastics. Would you mind sending me the correct git command to get to a specific commit?
It should just be
$ git checkout 18a87becf85d50e7f3d547f1b7a75108b151374dor whatever the commit number git log shows you for the change I suspect is the problem.
Quoted 9 lines
Quoted 1 line
Also, do I need to do a bisect reset?
I wouldn't reset the git bisect yet. If you test a commit and it is good, you will want to mark it with 'git bisect good <commit-hash>', and if it is bad, you will want to mark it with 'git bisect bad <commit-hash>'
BTW, can you provide the output of 'git bisect log' ?
I suspect I know why the bisect process went astray. Early on, I was unable to get a successful build because of mismatch errors. Turning off CONFIG_STAGING fixed this. If most of the changes were related to staging then the bisect could have skipped the relevant change. Note the unlikely string of 5 bad ones in a row at the end. Here is the log:
git bisect start
# good: [9fe6206f400646a2322096b56c59891d530e8d51] Linux 2.6.35
git bisect good 9fe6206f400646a2322096b56c59891d530e8d51
# bad: [f6f94e2ab1b33f0082ac22d71f66385a60d8157f] Linux 2.6.36
git bisect bad f6f94e2ab1b33f0082ac22d71f66385a60d8157f
# good: [78417334b5cb6e1f915b8fdcc4fce3f1a1b4420c] Merge branch 'bkl/core' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing
git bisect good 78417334b5cb6e1f915b8fdcc4fce3f1a1b4420c
# bad: [14a4fa20a10d76eb98b7feb25be60735217929ba] Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
git bisect bad 14a4fa20a10d76eb98b7feb25be60735217929ba
# good: [8196867c74890ccdf40a2b5e3e173597fbc4f9ac] Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bcopeland/omfs
git bisect good 8196867c74890ccdf40a2b5e3e173597fbc4f9ac
# bad: [3d30701b58970425e1d45994d6cb82f828924fdd] Merge branch 'for-linus' of git://neil.brown.name/md
git bisect bad 3d30701b58970425e1d45994d6cb82f828924fdd
# good: [9895850b23886e030cd1e7241d5529a57e969c3d] Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
git bisect good 9895850b23886e030cd1e7241d5529a57e969c3d
# good: [de75d60d5ea235e6e09f4962ab22541ce0fe176a] block: make sure that REQ_* types are seen even with CONFIG_BLOCK=n
git bisect good de75d60d5ea235e6e09f4962ab22541ce0fe176a
# bad: [6dd5aff3cab284556952d96f1112b17299e126d8] V4L/DVB: v4l2-ctrls: Whitespace cleanups
git bisect bad 6dd5aff3cab284556952d96f1112b17299e126d8
# good: [efce8ca3c5d8a35018f801d687396e1911cfc868] V4L/DVB: staging/lirc: fix Kconfig dependencies
git bisect good efce8ca3c5d8a35018f801d687396e1911cfc868
# bad: [9bde9f263e958b0d588aada03854fcc0f0c88b86] V4L/DVB: uvcvideo: Drop corrupted compressed frames
git bisect bad 9bde9f263e958b0d588aada03854fcc0f0c88b86
# bad: [39b2c0687b238d8bce19d5e8c0c8dc4e7fe50ed4] V4L/DVB: IR: JVC: make repeat work
git bisect bad 39b2c0687b238d8bce19d5e8c0c8dc4e7fe50ed4
# bad: [2c1101d5aeddda7bd0dd03bddea7aed6dbf80074] V4L/DVB: IR: put newly ported streamzap driver in proper home
git bisect bad 2c1101d5aeddda7bd0dd03bddea7aed6dbf80074
# bad: [7c294402d58e22bb760c0e1a825eea5d582a8f2d] V4L/DVB: IR/mceusb: less generic callback name and remove cruft
git bisect bad 7c294402d58e22bb760c0e1a825eea5d582a8f2d
# bad: [82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98] V4L/DVB: staging/lirc: fix non-CONFIG_MODULES build horkage
git bisect bad 82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98
Re: [get-bisect results]: DViCO FusionHDTV7 Dual Express I2C write failed
In reply to Andy WallsQuoted 112 lines · Andy Walls
Quoted 95 lines · Mark Zimmerman
Quoted 94 lines · Andy Walls
Quoted 57 lines · Mark Zimmerman
Quoted 22 lines · Mark Zimmerman
Greetings:
I have a DViCO FusionHDTV7 Dual Express card that works with 2.6.35 but which fails to initialize with the latest 2.6.36 kernel. The firmware fails to load due to an i2c failure. A search of the archives indicates that this is not the first time this issue has occurred.
What can I do to help get this problem fixed?
Here is the dmesg from 2.6.35, for the two tuners:
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete...
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete..and here is what happens with 2.6.36:
Quoted 12 lines
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...
xc5000: Unable to initialise tuner
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...I did a git bisect on this and finally reached the end of the line. Here is what it said:
qpc$ git bisect bad
82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98is the first bad commit commit82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98Author: Jarod Wilson <[email protected]> Date: Thu Jul 29 18:20:44 2010 -0300V4L/DVB: staging/lirc: fix non-CONFIG_MODULES build horkage
Fix when
CONFIG_MODULESis not enabled:
drivers/staging/lirc/lirc_parallel.c:243: error: implicit declaration of function 'module_refcount'drivers/staging/lirc/lirc_it87.c:150: error: implicit declaration of function 'module_refcount'drivers/built-in.o: In function `it87_probe':
lirc_it87.c:(.text+0x4079b0): undefined reference toinit_chrdev' lirc_it87.c:(.text+0x4079cc): undefined reference todrop_chrdev'drivers/built-in.o: In function `lirc_it87_exit':
lirc_it87.c:(.exit.text+0x38a5): undefined reference to `drop_chrdev'Quoted 8 lines
Its a quick hack and untested beyond building, since I don't have the hardware, but it should do the trick.
Acked-by Randy Dunlap <[email protected]>Signed-off-by Jarod Wilson <[email protected]>Signed-off-by Mauro Carvalho Chehab <[email protected]>:040000 040000
f645b46a07b7ff87a2c11ac9296a5ff56e89a0d049e50945ccf8e1c8567c049908890d2752443b72M driversHmm. git log --patch
82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98shows the commit is completely unrealted.Please try and see if things are good or bad at commit
18a87becf85d50e7f3d547f1b7a75108b151374d:commit
18a87becf85d50e7f3d547f1b7a75108b151374d
Author: Jean Delvare <[email protected]>
Date: Sun Jul 18 17:05:17 2010 -0300V4L/DVB: cx23885:
i2c_wait_donereturns 0 or 1, don't check for < 0 return vFunction
i2c_wait_done()never returns negative values, so there is no point in checking for them.Signed-off-by Jean Delvare <[email protected]>Signed-off-by Andy Walls <[email protected]>Signed-off-by Mauro Carvalho Chehab <[email protected]>Which is the first commit, prior to the one you found, that seems to me to have any direct bearing to I2C transactions.
If that commit is good, then these commits in between would be my next likely suspects:
e5514f104d875b3d28cbcd5d4f2b96ab2fca1e29dbe83a3b921328e12b2abe894fc692afba293d7fQuoted 7 lines
Quoted 3 lines
Regards,
AndySorry to require so much hand holding, but I am new to all of this git gymnastics. Would you mind sending me the correct git command to get to a specific commit?
It should just be
$ git checkout 18a87becf85d50e7f3d547f1b7a75108b151374dor whatever the commit number git log shows you for the change I suspect is the problem.
Quoted 6 lines
Quoted 1 line
Also, do I need to do a bisect reset?
I wouldn't reset the git bisect yet. If you test a commit and it is good, you will want to mark it with 'git bisect good <commit-hash>', and if it is bad, you will want to mark it with 'git bisect bad <commit-hash>'
OK, I did a git checkout 18a87becf85d50e7f3d547f1b7a75108b151374d and turned CONFIG_STAGING back on in .config and the kernel built fine. The i2c problem is there, however.
I wonder if I should start over with a reset, then replay the good/bad commands up to the last good one, then do git bisect bad 18a8... and proceed from there. Does that make sense?
Re: [get-bisect results]: DViCO FusionHDTV7 Dual Express I2C write failed
Quoted 120 lines · Mark Zimmerman
Quoted 112 lines · Andy Walls
Quoted 95 lines · Mark Zimmerman
Quoted 94 lines · Andy Walls
Quoted 57 lines · Mark Zimmerman
Quoted 22 lines · Mark Zimmerman
Greetings:
I have a DViCO FusionHDTV7 Dual Express card that works with 2.6.35 but which fails to initialize with the latest 2.6.36 kernel. The firmware fails to load due to an i2c failure. A search of the archives indicates that this is not the first time this issue has occurred.
What can I do to help get this problem fixed?
Here is the dmesg from 2.6.35, for the two tuners:
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete...
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete..and here is what happens with 2.6.36:
Quoted 12 lines
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...
xc5000: Unable to initialise tuner
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...I did a git bisect on this and finally reached the end of the line. Here is what it said:
qpc$ git bisect bad
82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98is the first bad commit commit82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98Author: Jarod Wilson <[email protected]> Date: Thu Jul 29 18:20:44 2010 -0300V4L/DVB: staging/lirc: fix non-CONFIG_MODULES build horkage
Fix when
CONFIG_MODULESis not enabled:
drivers/staging/lirc/lirc_parallel.c:243: error: implicit declaration of function 'module_refcount'drivers/staging/lirc/lirc_it87.c:150: error: implicit declaration of function 'module_refcount'drivers/built-in.o: In function `it87_probe':
lirc_it87.c:(.text+0x4079b0): undefined reference toinit_chrdev' lirc_it87.c:(.text+0x4079cc): undefined reference todrop_chrdev'drivers/built-in.o: In function `lirc_it87_exit':
lirc_it87.c:(.exit.text+0x38a5): undefined reference to `drop_chrdev'Quoted 8 lines
Its a quick hack and untested beyond building, since I don't have the hardware, but it should do the trick.
Acked-by Randy Dunlap <[email protected]>Signed-off-by Jarod Wilson <[email protected]>Signed-off-by Mauro Carvalho Chehab <[email protected]>:040000 040000
f645b46a07b7ff87a2c11ac9296a5ff56e89a0d049e50945ccf8e1c8567c049908890d2752443b72M driversHmm. git log --patch
82ce67bf262b3f47ecb5a0ca31cace8ac72b7c98shows the commit is completely unrealted.Please try and see if things are good or bad at commit
18a87becf85d50e7f3d547f1b7a75108b151374d:commit
18a87becf85d50e7f3d547f1b7a75108b151374d
Author: Jean Delvare <[email protected]>
Date: Sun Jul 18 17:05:17 2010 -0300V4L/DVB: cx23885:
i2c_wait_donereturns 0 or 1, don't check for < 0 return vFunction
i2c_wait_done()never returns negative values, so there is no point in checking for them.Signed-off-by Jean Delvare <[email protected]>Signed-off-by Andy Walls <[email protected]>Signed-off-by Mauro Carvalho Chehab <[email protected]>Which is the first commit, prior to the one you found, that seems to me to have any direct bearing to I2C transactions.
If that commit is good, then these commits in between would be my next likely suspects:
e5514f104d875b3d28cbcd5d4f2b96ab2fca1e29dbe83a3b921328e12b2abe894fc692afba293d7fQuoted 7 lines
Quoted 3 lines
Regards,
AndySorry to require so much hand holding, but I am new to all of this git gymnastics. Would you mind sending me the correct git command to get to a specific commit?
It should just be
$ git checkout 18a87becf85d50e7f3d547f1b7a75108b151374dor whatever the commit number git log shows you for the change I suspect is the problem.
Quoted 6 lines
Quoted 1 line
Also, do I need to do a bisect reset?
I wouldn't reset the git bisect yet. If you test a commit and it is good, you will want to mark it with 'git bisect good <commit-hash>', and if it is bad, you will want to mark it with 'git bisect bad <commit-hash>'
Quoted 7 lines
OK, I did a git checkout
18a87becf85d50e7f3d547f1b7a75108b151374dand turnedCONFIG_STAGINGback on in .config and the kernel built fine. The i2c problem is there, however.I wonder if I should start over with a reset, then replay the good/bad commands up to the last good one, then do git bisect bad 18a8... and proceed from there. Does that make sense?
Well, looking at your git bisect log, the last known good declaration you made was:
efce8ca3c5d8a35018f801d687396e1911cfc868 (July 29, 2010)
which comes after
18a87becf85d50e7f3d547f1b7a75108b151374d (July 18, 2010)
which you say just tested bad. Also the previous one declared good, 9895850b23886e030cd1e7241d5529a57e969c3d, happens after both of those. One or more of those declarations has to be incorrect.
So there's either something not quite right with your build/install/test process or you're dealing with a bug that intermittently does not show symptoms.
So my recommendations:
1. Turn CONFIG_STAGING off. git bisect doesn't really care, but if the flaky drivers in there are causing problem with some kernel builds, then they are wasting your time - don't compile them.
2. When using git bisect to make declarations:
good means the *precise* symptoms that you care about do not manifest bad means the *precise* symptoms that you care about do manifest
Don't use bad for "the kernel didn't build". use git bisect skip for that case and git will try to pick another nearby commit.
3. Make sure with every kernel iteration you rebuild all the kernel source and modules you have configured to be built, install the newly built modules and the newly built kernel, and reboot. Not rebuilding everything you are installing may invalidate your testing.
4. Yeah you'll probably need to restart the git bisect process with commits you have high confidence are known good and known bad. For your I2C & XC5000 related problem you can limit git bisect to changes in:
drivers/media include/media drivers/i2c include/linux/i2c*
which might keep the number of iterations down. 'git help bisect' shows the manual page. The command would look something like:
$ git bisect start <bad-commit> <good-commit> -- drivers/media include/media drivers/i2c include/linux/i2c*
Where <good-commit> is a commit hash or version tags that should have been before the <bad-commit> commit hash or version tag. Note that git log outputs commits in reverse chronological order (newest first).
5. When testing each kernel iteration, try to test such that you hopefully avoid any "false good" indications caused by intermittent behavior of the bug. I have no recommendation on what would constitute a thorough enough test.
Regards,
Andy
[corrected get-bisect results]: DViCO FusionHDTV7 Dual Express I2C write failed
In reply to Mark ZimmermanQuoted 36 lines · Mark Zimmerman
Quoted 22 lines · Mark Zimmerman
Greetings:
I have a DViCO FusionHDTV7 Dual Express card that works with 2.6.35 but which fails to initialize with the latest 2.6.36 kernel. The firmware fails to load due to an i2c failure. A search of the archives indicates that this is not the first time this issue has occurred.
What can I do to help get this problem fixed?
Here is the dmesg from 2.6.35, for the two tuners:
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete...
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete..and here is what happens with 2.6.36:
Quoted 12 lines
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...
xc5000: Unable to initialise tuner
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: I2C write failed (len=3)
xc5000: firmware upload complete...
Quoted 3 lines
I did a git bisect on this and finally reached the end of the line. Blah blah blah...
Clearly my previous bisection went astray; I think I have a more sensible result this time.
qpc$ git bisect good 44835f197bf1e3f57464f23dfb239fef06cf89be is the first bad commit commit 44835f197bf1e3f57464f23dfb239fef06cf89be
Author: Jean Delvare <[email protected]> Date: Sun Jul 18 16:52:05 2010 -0300
V4L/DVB: cx23885: Check for slave nack on all transactions
Don't just check for nacks on zero-length transactions. Check on other transactions too.
:040000 040000 e48c9f6efc6186800e8d711c05987c0ad9445c09 1ba37458c6a5fc22d19271f09cde2f336887c616 M drivers
git bisect start
# good: [9fe6206f400646a2322096b56c59891d530e8d51] Linux 2.6.35
git bisect good 9fe6206f400646a2322096b56c59891d530e8d51
# bad: [18a87becf85d50e7f3d547f1b7a75108b151374d] V4L/DVB: cx23885: i2c_wait_done returns 0 or 1, don't check for < 0 return value git bisect bad 18a87becf85d50e7f3d547f1b7a75108b151374d
# good: [03da30986793385af57eeca3296253c887b742e6] Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
git bisect good 03da30986793385af57eeca3296253c887b742e6
# good: [ab69bcd66fb4be64edfc767365cb9eb084961246] Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6
git bisect good ab69bcd66fb4be64edfc767365cb9eb084961246
# good: [a57f9a3e811cf1246b394f0cc667c6bc5a52e099] Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2
git bisect good a57f9a3e811cf1246b394f0cc667c6bc5a52e099
# good: [9e50ab91d025afc17ca14a1764be2e1d0c24245d] Merge branch 'acpica' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6
git bisect good 9e50ab91d025afc17ca14a1764be2e1d0c24245d
# good: [d71048e22f47725a5808ea2e4e1e72fa36c1a788] Merge branch 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6
git bisect good d71048e22f47725a5808ea2e4e1e72fa36c1a788
# good: [4fd6c6bf83cb16321e9902b00e2af79054f4e0d6] Merge branch 'for-linus' of git://android.kernel.org/kernel/tegra
git bisect good 4fd6c6bf83cb16321e9902b00e2af79054f4e0d6
# good: [c1c8f558749cbf2a7ed16b6ae6e19a4238b6fa33] CRIS: Return something from profile write
git bisect good c1c8f558749cbf2a7ed16b6ae6e19a4238b6fa33
# good: [ab11b487402f97975f3ac1eeea09c82f4431481e] Merge branch 'master' into for-linus
git bisect good ab11b487402f97975f3ac1eeea09c82f4431481e
# good: [30d4554a02d3ad6f9928767c9f98214775f4dcb2] V4L/DVB: gspca - main: Version change
git bisect good 30d4554a02d3ad6f9928767c9f98214775f4dcb2
# good: [6e80cc51b4419ca0f8162024ee2497d7ec8ba31c] V4L/DVB: gspca - sq930x: Cleanup source, add comments
git bisect good 6e80cc51b4419ca0f8162024ee2497d7ec8ba31c
# good: [3d217c8656842c77d6f33329a034102157363c8d] V4L/DVB: gspca - vc032x: Force main register write at probe time (poxxxx) git bisect good 3d217c8656842c77d6f33329a034102157363c8d
# bad: [44835f197bf1e3f57464f23dfb239fef06cf89be] V4L/DVB: cx23885: Check for slave nack on all transactions
git bisect bad 44835f197bf1e3f57464f23dfb239fef06cf89be
# good: [f4acb3c4ccca74f5448354308f917e87ce83505a] V4L/DVB: cx23885: Return -ENXIO on slave nack
git bisect good f4acb3c4ccca74f5448354308f917e87ce83505a
Re: [corrected get-bisect results]: DViCO FusionHDTV7 Dual Express I2C write failed
Quoted 9 lines · Mark Zimmerman
Clearly my previous bisection went astray; I think I have a more sensible result this time.
qpc$ git bisect good
44835f197bf1e3f57464f23dfb239fef06cf89beis the first bad commit commit44835f197bf1e3f57464f23dfb239fef06cf89be
Author: Jean Delvare <[email protected]>
Date: Sun Jul 18 16:52:05 2010 -0300
Quoted 4 lines
V4L/DVB: cx23885: Check for slave nack on all transactions
Don't just check for nacks on zero-length transactions. Check on other transactions too.
This could be a combination of the xc5000 doing clock stretching and the cx23885 i2c master not properly implementing clock stretch. In the past I've seen i2c masters broken in their handling of clock stretching where they treat it as a NAK.
The xc5000 being one of the few devices that actually does i2c clock stretching often exposes cases where it is improperly implemented in the i2c master driver (I've had to fix this with several bridges).
Devin
Signature · 2 lines
Devin J. Heitmueller - Kernel Labs http://www.kernellabs.com
Re: [corrected get-bisect results]: DViCO FusionHDTV7 Dual Express I2C write failed
Quoted 15 lines · Devin Heitmueller
Quoted 9 lines · Mark Zimmerman
Clearly my previous bisection went astray; I think I have a more sensible result this time.
qpc$ git bisect good
44835f197bf1e3f57464f23dfb239fef06cf89beis the first bad commit commit44835f197bf1e3f57464f23dfb239fef06cf89be
Author: Jean Delvare <[email protected]>
Date: ? Sun Jul 18 16:52:05 2010 -0300Quoted 4 lines
? ?V4L/DVB: cx23885: Check for slave nack on all transactions
? ?Don't just check for nacks on zero-length transactions. Check on ? ?other transactions too.
Quoted 9 lines
This could be a combination of the xc5000 doing clock stretching and the cx23885 i2c master not properly implementing clock stretch. In the past I've seen i2c masters broken in their handling of clock stretching where they treat it as a NAK.
The xc5000 being one of the few devices that actually does i2c clock stretching often exposes cases where it is improperly implemented in the i2c master driver (I've had to fix this with several bridges).
Thanks for your insight. I am looking at cx23885-i2c.c and there is no clock stretching logic in i2c_slave_did_ack(). Would this be the right place for it to be? Can you point me to an example of another driver that does it correctly? I really don't know what I am doing...
-- Mark
Re: [corrected get-bisect results]: DViCO FusionHDTV7 Dual Express I2C write failed
Quoted 26 lines · Mark Zimmerman
Quoted 15 lines · Devin Heitmueller
Quoted 9 lines · Mark Zimmerman
Clearly my previous bisection went astray; I think I have a more sensible result this time.
qpc$ git bisect good
44835f197bf1e3f57464f23dfb239fef06cf89beis the first bad commit commit44835f197bf1e3f57464f23dfb239fef06cf89be
Author: Jean Delvare <[email protected]>
Date: ? Sun Jul 18 16:52:05 2010 -0300Quoted 4 lines
? ?V4L/DVB: cx23885: Check for slave nack on all transactions
? ?Don't just check for nacks on zero-length transactions. Check on ? ?other transactions too.
Quoted 9 lines
This could be a combination of the xc5000 doing clock stretching and the cx23885 i2c master not properly implementing clock stretch. In the past I've seen i2c masters broken in their handling of clock stretching where they treat it as a NAK.
The xc5000 being one of the few devices that actually does i2c clock stretching often exposes cases where it is improperly implemented in the i2c master driver (I've had to fix this with several bridges).
Quoted 4 lines
Thanks for your insight. I am looking at
cx23885-i2c.cand there is no clock stretching logic ini2c_slave_did_ack(). Would this be the right place for it to be? Can you point me to an example of another driver that does it correctly? I really don't know what I am doing...
Mark,
You don't have much hope of getting that right without the CX23885 datasheet.
Let's just get the bad commit reverted and into 2.6.38, and fix what used to work for you. Doing a git bisect is enough work for anyone.
I'll do a patch to revert the commit and ask it to be pulled for 2.6.38-rc-whatever. I'll be sure to add a
tag to the patch. (The Linux Kernel devs understand the work involved to do a bisection.)
Later, if I can work up a patch to deal with clock stretching properly, I may ask you to test.
Regards,
Andy
Re: [corrected get-bisect results]: DViCO FusionHDTV7 Dual Express I2C write failed
Quoted 22 lines · Andy Walls
Quoted 21 lines · Mark Zimmerman
Quoted 20 lines · Devin Heitmueller
Quoted 9 lines · Mark Zimmerman
Clearly my previous bisection went astray; I think I have a more sensible result this time.
qpc$ git bisect good
44835f197bf1e3f57464f23dfb239fef06cf89beis the first bad commit commit44835f197bf1e3f57464f23dfb239fef06cf89be
Author: Jean Delvare <[email protected]>
Date: ? Sun Jul 18 16:52:05 2010 -0300Quoted 4 lines
? ?V4L/DVB: cx23885: Check for slave nack on all transactions
? ?Don't just check for nacks on zero-length transactions. Check on ? ?other transactions too.
This could be a combination of the xc5000 doing clock stretching and the cx23885 i2c master not properly implementing clock stretch. In the past I've seen i2c masters broken in their handling of clock stretching where they treat it as a NAK.
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
The xc5000 being one of the few devices that actually does i2c clock stretching often exposes cases where it is improperly implemented in the i2c master driver (I've had to fix this with several bridges).
Devin,
I just checked. The CX23885 driver *is* setting up to allow slaves to stretch the clock.
By analysis, I have confirmed that Jean's sugguested patch that I moved forward was wrong for the hardware's behavior. When the cx23885 I2C routines decide to set the I2C_EXTEND flag (and maybe the I2C_NOSTOP flag), we most certainly should *not* be expecting an ACK from the particular hardware register. The original commit should certainly be reverted.
Checking for slave ACK/NAK will need to be done with a little more care; so for now, I'll settle for ignoring them.
Regards,
Andy
Re: [corrected get-bisect results]: DViCO FusionHDTV7 Dual Express I2C write failed
Quoted 12 lines · Andy Walls
Devin,
I just checked. The CX23885 driver *is* setting up to allow slaves to stretch the clock.
By analysis, I have confirmed that Jean's sugguested patch that I moved forward was wrong for the hardware's behavior. When the cx23885 I2C routines decide to set the
I2C_EXTENDflag (and maybe theI2C_NOSTOPflag), we most certainly should *not* be expecting an ACK from the particular hardware register. The original commit should certainly be reverted.
Quoted 2 lines
Checking for slave ACK/NAK will need to be done with a little more care; so for now, I'll settle for ignoring them.
Ok, that makes sense. I just threw out the possibility of it being related to clock stretch because I've seen that with other bridges and the xc5000. I haven't really reviewed the code in question or the cx23885 datasheet.
Cheers,
Devin
Signature · 2 lines
Devin J. Heitmueller - Kernel Labs http://www.kernellabs.com
Re: [corrected get-bisect results]: DViCO FusionHDTV7 Dual Express I2C write failed
In reply to Andy WallsQuoted 44 lines · Andy Walls
Quoted 26 lines · Mark Zimmerman
Quoted 15 lines · Devin Heitmueller
Quoted 9 lines · Mark Zimmerman
Clearly my previous bisection went astray; I think I have a more sensible result this time.
qpc$ git bisect good
44835f197bf1e3f57464f23dfb239fef06cf89beis the first bad commit commit44835f197bf1e3f57464f23dfb239fef06cf89be
Author: Jean Delvare <[email protected]>
Date: ? Sun Jul 18 16:52:05 2010 -0300Quoted 4 lines
? ?V4L/DVB: cx23885: Check for slave nack on all transactions
? ?Don't just check for nacks on zero-length transactions. Check on ? ?other transactions too.
Quoted 9 lines
This could be a combination of the xc5000 doing clock stretching and the cx23885 i2c master not properly implementing clock stretch. In the past I've seen i2c masters broken in their handling of clock stretching where they treat it as a NAK.
The xc5000 being one of the few devices that actually does i2c clock stretching often exposes cases where it is improperly implemented in the i2c master driver (I've had to fix this with several bridges).
Quoted 4 lines
Thanks for your insight. I am looking at
cx23885-i2c.cand there is no clock stretching logic ini2c_slave_did_ack(). Would this be the right place for it to be? Can you point me to an example of another driver that does it correctly? I really don't know what I am doing...Mark,
You don't have much hope of getting that right without the CX23885 datasheet.
Let's just get the bad commit reverted and into 2.6.38, and fix what used to work for you. Doing a git bisect is enough work for anyone.
I'll do a patch to revert the commit and ask it to be pulled for 2.6.38-rc-whatever. I'll be sure to add a
Quoted 9 lines
Bisected-by Mark Zimmerman <[email protected]>tag to the patch. (The Linux Kernel devs understand the work involved to do a bisection.)
Later, if I can work up a patch to deal with clock stretching properly, I may ask you to test.
Thanks, that would be great. Meanwhile, I have built a 2.6.37 with the offending commit removed:
git bisect reset
git checkout v2.6.37
git revert 44835f197bf1e3f57464f23dfb239fef06cf89be
and it seems to be working fine using both tuners:
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete...
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)...
xc5000: firmware read 12401 bytes.
xc5000: firmware uploading...
xc5000: firmware upload complete...
Thanks again
-- Mark
Re: [corrected get-bisect results]: DViCO FusionHDTV7 Dual Express I2C write failed
In reply to Mark ZimmermanHi Mark,
Quoted 9 lines · Mark Zimmerman
Clearly my previous bisection went astray; I think I have a more sensible result this time.
qpc$ git bisect good
44835f197bf1e3f57464f23dfb239fef06cf89beis the first bad commit commit44835f197bf1e3f57464f23dfb239fef06cf89beAuthor: Jean Delvare <[email protected]> Date: Sun Jul 18 16:52:05 2010 -0300
Quoted 8 lines
V4L/DVB: cx23885: Check for slave nack on all transactions
Don't just check for nacks on zero-length transactions. Check on other transactions too.
Signed-off-by Jean Delvare <[email protected]>Signed-off-by Andy Walls <[email protected]>Signed-off-by Mauro Carvalho Chehab <[email protected]>
I'm sorry for the trouble :( I should probably refrain from writing patches for media drivers I don't own.
Signature · 1 line
Jean Delvare