1619static inline void free_frames(struct cpia_frame frame[FRAME_NUM])
1620{
1621 int i;
1622
1623 for (i=0; i < FRAME_NUM; i++)
1624 frame[i].state = FRAME_UNUSED;
1625 return;
1626}
1627
1628
1629
1630
1631
1632
1633
1634static int do_command(struct cam_data *cam, u16 command, u8 a, u8 b, u8 c, u8 d)
1635{
1636 int retval, datasize;
1637 u8 cmd[8], data[8];
1638
1639 switch(command) {
1640 case CPIA_COMMAND_GetCPIAVersion:
1641 case CPIA_COMMAND_GetPnPID:
1642 case CPIA_COMMAND_GetCameraStatus:
1643 case CPIA_COMMAND_GetVPVersion:
1644 datasize=8;
1645 break;
1646 case CPIA_COMMAND_GetColourParams:
1647 case CPIA_COMMAND_GetColourBalance:
1648 case CPIA_COMMAND_GetExposure:
1649 mutex_lock(&cam->param_lock);
1650 datasize=8;
1651 break;
1652 case CPIA_COMMAND_ReadMCPorts:
1653 case CPIA_COMMAND_ReadVCRegs:
1654 datasize = 4;
1655 break;
1656 default:
1657 datasize=0;
1658 break;
1659 }