On 03/17/2014 12:59 PM, Daniel Glöckner wrote:
> Hi Hans,
> 
> On Mon, Mar 17, 2014 at 10:44:29AM +0100, Hans Verkuil wrote:
>>> +           switch (state) {
>>> +           case 1:
>>> +           case 5:
>>> +           case 6:
>>> +           case 4:
>>> +                   pr_debug("PCI-8604PW in state %i, toggling pin\n",
>>> +                            state);
>>> +                   btwrite(0x080000, BT848_GPIO_DATA);
>>> +                   msleep(1);
>>> +                   btwrite(0x000000, BT848_GPIO_DATA);
>>> +                   msleep(1);
>>> +                   break;
>>> +           case 7:
>>> +                   pr_info("PCI-8604PW unlocked\n");
>>> +                   return;
>>> +           case 0: /* FIXME */
>>
>> Fix what? My guess is that if this state happens, then you have no idea how 
>> to
>> get out of it. Did you actually see this happen, or is this a theoretical 
>> case?
> 
> yes, if we are in state 7 and toggle GPIO[19] one more time, the CPLD
> goes into state 0, where PCI bus mastering is inhibited again.
> We have not managed to get out of that state.
> 
>>> +                   pr_err("PCI-8604PW locked until reset\n");
>>> +                   return;
> 
>>> +           state = (state << 4) | ((btread(BT848_GPIO_DATA) >> 21) & 7);
>>> +
>>> +           switch (state) {
>>> +           case 0x15:
>>> +           case 0x56:
>>> +           case 0x64:
>>> +           case 0x47:
>>> +/*         case 0x70: */
>>
>> Why is this commented out?
> 
> The transition from state 7 to state 0 is, as explained above, valid
> but undesired and with this code impossible as we exit as soon as we
> are in state 7.

Can you post a new version with comments that explain this?

This is non-obvious information that should be documented in the code.

Thanks!

        Hans
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to