30 Mar, 2009

2 commits


30 Dec, 2008

8 commits

  • Use a consistent crystal value of 28.636360 MHz for computing all PLL
    parameters so clocks don't have relative error due to assumed crystal
    value mismatches. Also aimed to have all PLLs run their VOCs at close to
    400 MHz to minimze the error of these PLLs as frequency synthesizers. Also
    set the VDCLK and AIMCLK PLLs to sane values before the APU and CPU firmware
    are loaded. Also fixed I2S Master clock dividers.

    Many thanks to Mike Bradley and Jeff Campbell for reporting this problem and
    suggesting the solution, researching and experimenting, and performing
    extensive testing to support their suggested solution.

    Reported-by: Jeff Campbell
    Reported-by: Mike Bradley
    Signed-off-by: Andy Walls
    Signed-off-by: Mauro Carvalho Chehab

    Andy Walls
     
  • Refine the firmware load and firmware startup process. Significant changes
    are to ensure the SCB and IPC area are correct before starting up the firmware,
    and letting the CPU firmware start up the APU firmware for us.

    Signed-off-by: Andy Walls
    Signed-off-by: Mauro Carvalho Chehab

    Andy Walls
     
  • Add copyright attribution for files modified by awalls in 2008

    Signed-off-by: Andy Walls
    Signed-off-by: Mauro Carvalho Chehab

    Andy Walls
     
  • A major rewrite of interrupt handling for incoming mailbox processing, to split
    the timing critical steps from the the deferrable steps as the sending XPU on
    the CX23418 will time out and overwrite our incoming mailboxes rather quickly.
    Setup a pool of work "order forms" for the irq handler to send jobs to the new
    work handler routine which uses the kernel default work queue to do the
    deferrable work. Started optimizing some of the cx18-io calls as they are now
    the low hanging fruit for recoving microseconds back from the timeline.
    Future optimizations will get rid of mmio read retries, mmio stats logging, and
    combine smaller functions in the irq path into the larger ones to save ~2 us
    each.

    Signed-off-by: Andy Walls
    Signed-off-by: Mauro Carvalho Chehab

    Andy Walls
     
  • If APU firmware file read failed, the jump vector to the APU was undefined and
    the APU would be started executing garbage. Fix uninitialized variable to be
    an infinite loop for the APU, but also bail out before even starting the APU.

    Signed-off-by: Andy Walls
    Signed-off-by: Mauro Carvalho Chehab

    Andy Walls
     
  • When the CX23418 CPU unit sent out an ack interrupt to the linux driver, it
    also received that interrupt and cleared the flag before the linux driver could
    see what the interrupt was for. This fix prevents the CPU from receiving an
    IRQ for it's own outgoing ack's to the linux driver. This fix is critical now
    that the linux driver doesn't poll but relies on these ack interrupts.

    Signed-off-by: Andy Walls
    Signed-off-by: Mauro Carvalho Chehab

    Andy Walls
     
  • Use the APU fw start address from rom file instead of a hardcoded entry vector.
    Fixed cx18_setup_page() calls to use the correct APU image load addresses.

    Signed-off-by: Andy Walls
    Signed-off-by: Mauro Carvalho Chehab

    Andy Walls
     
  • cx18: Fix write retries for registers that always change - part 3.
    Fix the io for the rest of the registers that will often not read back the
    value just written. Modified register readback checks to make sure the
    intended effect was achieved without constantly rewriting the registers.
    The one outstanding register remaining is 0xc72014 CX18_AUDIO_ENABLE, whose
    behavior on writes I have yet to determine.

    Signed-off-by: Andy Walls
    Signed-off-by: Mauro Carvalho Chehab

    Andy Walls
     

12 Oct, 2008

1 commit


23 Jul, 2008

1 commit


20 Jul, 2008

3 commits


30 Apr, 2008

1 commit

  • Many thanks to Steve Toth from Hauppauge and Nattu Dakshinamurthy from
    Conexant for their support. I am in particular thankful to Hauppauge
    since without their help this driver would not exist. It should also
    be noted that Steve did the work to get the DVB part up and running.
    Thank you!

    Signed-off-by: Hans Verkuil
    Signed-off-by: Steven Toth
    Signed-off-by: Michael Krufky
    Signed-off-by: G. Andrew Walls
    Signed-off-by: Mauro Carvalho Chehab

    Hans Verkuil