~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to drivers/media/video/cpia2/cpia2_core.c

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
519
519
 *  cpia2_send_command
520
520
 *
521
521
 *****************************************************************************/
 
522
 
 
523
#define DIR(cmd) ((cmd->direction == TRANSFER_WRITE) ? "Write" : "Read")
 
524
#define BINDEX(cmd) (cmd->req_mode & 0x03)
 
525
 
522
526
int cpia2_send_command(struct camera_data *cam, struct cpia2_command *cmd)
523
527
{
524
528
        u8 count;
525
529
        u8 start;
526
 
        u8 block_index;
527
530
        u8 *buffer;
528
531
        int retval;
529
 
        const char* dir;
530
 
 
531
 
        if (cmd->direction == TRANSFER_WRITE) {
532
 
                dir = "Write";
533
 
        } else {
534
 
                dir = "Read";
535
 
        }
536
 
 
537
 
        block_index = cmd->req_mode & 0x03;
538
532
 
539
533
        switch (cmd->req_mode & 0x0c) {
540
534
        case CAMERAACCESS_TYPE_RANDOM:
542
536
                start = 0;
543
537
                buffer = (u8 *) & cmd->buffer;
544
538
                if (debugs_on & DEBUG_REG)
545
 
                        DBG("%s Random: Register block %s\n", dir,
546
 
                            block_name[block_index]);
 
539
                        DBG("%s Random: Register block %s\n", DIR(cmd),
 
540
                            block_name[BINDEX(cmd)]);
547
541
                break;
548
542
        case CAMERAACCESS_TYPE_BLOCK:
549
543
                count = cmd->reg_count;
550
544
                start = cmd->start;
551
545
                buffer = cmd->buffer.block_data;
552
546
                if (debugs_on & DEBUG_REG)
553
 
                        DBG("%s Block: Register block %s\n", dir,
554
 
                            block_name[block_index]);
 
547
                        DBG("%s Block: Register block %s\n", DIR(cmd),
 
548
                            block_name[BINDEX(cmd)]);
555
549
                break;
556
550
        case CAMERAACCESS_TYPE_MASK:
557
551
                count = cmd->reg_count * sizeof(struct cpia2_reg_mask);
558
552
                start = 0;
559
553
                buffer = (u8 *) & cmd->buffer;
560
554
                if (debugs_on & DEBUG_REG)
561
 
                        DBG("%s Mask: Register block %s\n", dir,
562
 
                            block_name[block_index]);
 
555
                        DBG("%s Mask: Register block %s\n", DIR(cmd),
 
556
                            block_name[BINDEX(cmd)]);
563
557
                break;
564
558
        case CAMERAACCESS_TYPE_REPEAT:  /* For patch blocks only */
565
559
                count = cmd->reg_count;
566
560
                start = cmd->start;
567
561
                buffer = cmd->buffer.block_data;
568
562
                if (debugs_on & DEBUG_REG)
569
 
                        DBG("%s Repeat: Register block %s\n", dir,
570
 
                            block_name[block_index]);
 
563
                        DBG("%s Repeat: Register block %s\n", DIR(cmd),
 
564
                            block_name[BINDEX(cmd)]);
571
565
                break;
572
566
        default:
573
567
                LOG("%s: invalid request mode\n",__func__);
584
578
                for (i = 0; i < cmd->reg_count; i++) {
585
579
                        if((cmd->req_mode & 0x0c) == CAMERAACCESS_TYPE_BLOCK)
586
580
                                KINFO("%s Block: [0x%02X] = 0x%02X\n",
587
 
                                    dir, start + i, buffer[i]);
 
581
                                    DIR(cmd), start + i, buffer[i]);
588
582
                        if((cmd->req_mode & 0x0c) == CAMERAACCESS_TYPE_RANDOM)
589
583
                                KINFO("%s Random: [0x%02X] = 0x%02X\n",
590
 
                                    dir, cmd->buffer.registers[i].index,
 
584
                                    DIR(cmd), cmd->buffer.registers[i].index,
591
585
                                    cmd->buffer.registers[i].value);
592
586
                }
593
587
        }