1698 cam->params.status.vpStatus = data[6];
1699 cam->params.status.errorCode = data[7];
1700 break;
1701 case CPIA_COMMAND_GetVPVersion:
1702 cam->params.vpVersion.vpVersion = data[0];
1703 cam->params.vpVersion.vpRevision = data[1];
1704 cam->params.vpVersion.cameraHeadID =
1705 data[2]+(((u16)data[3])<<8);
1706 break;
1707 case CPIA_COMMAND_GetColourParams:
1708 cam->params.colourParams.brightness = data[0];
1709 cam->params.colourParams.contrast = data[1];
1710 cam->params.colourParams.saturation = data[2];
1711 mutex_unlock(&cam->param_lock);
1712 break;
1713 case CPIA_COMMAND_GetColourBalance:
1714 cam->params.colourBalance.redGain = data[0];
1715 cam->params.colourBalance.greenGain = data[1];
1716 cam->params.colourBalance.blueGain = data[2];
1717 mutex_unlock(&cam->param_lock);
1718 break;
1719 case CPIA_COMMAND_GetExposure:
1720 cam->params.exposure.gain = data[0];
1721 cam->params.exposure.fineExp = data[1];
1722 cam->params.exposure.coarseExpLo = data[2];
1723 cam->params.exposure.coarseExpHi = data[3];
1724 cam->params.exposure.redComp = data[4];
1725 cam->params.exposure.green1Comp = data[5];
1726 cam->params.exposure.green2Comp = data[6];
1727 cam->params.exposure.blueComp = data[7];
1728 mutex_unlock(&cam->param_lock);
1729 break;
1730
1731 case CPIA_COMMAND_ReadMCPorts:
1732 if (!cam->params.qx3.qx3_detected)
1733 break;
1734
1735 cam->params.qx3.button = ((data[1] & 0x02) == 0);
1736 if (cam->params.qx3.button) {
1737
1738 do_command(cam,CPIA_COMMAND_WriteMCPort,3,0xDF,0xDF,0);