Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: Ideas Wanted: Grundig STB Works, Nova-T Doesn't



From: "Robert Schlabbach":

> If you still want to try things:
>
> - do you have a setting called "Delayed Transaction" in your BIOS? If so,
> make sure it is ENABLED. In my BIOS, it was disabled by default, but I read
> that this enables the buffers in the PCI chipset and might thus help.
> - try the SAA7146A settings:
>  1) burst = 16 DWORDs, threshold = 32 DWORDs (that's the only one that
> would work on the machine with the SIS chipset)
>  2) burst = 16 DWORDs, threshold = 16 DWORDs (works good for high data
> rates)

Thanks. I'll give these a try as soon as I get time. 

The attached is a trivial patch to dvb-kernel I'm planning on using. It makes
the DMA3 values parameters, just in case anyone else is interested. I made a
couple of mistakes trying to shift the bits in my head :-)

Martin

Index: linux/drivers/media/dvb/ttpci/budget-core.c
===================================================================
RCS file: /cvs/linuxtv/dvb-kernel/linux/drivers/media/dvb/ttpci/budget-core.c,v
retrieving revision 1.8
diff -c -r1.8 budget-core.c
*** linux/drivers/media/dvb/ttpci/budget-core.c 21 Jun 2003 13:02:02 -0000     1.8
--- linux/drivers/media/dvb/ttpci/budget-core.c 9 Jul 2003 15:47:11 -0000
***************
*** 1,7 ****
--- 1,28 ----
  #include "budget.h"
  #include "ttpci-eeprom.h"
  
+ // To tune the PCI settings for burst and threshold of DMA3 (which can
+ // be important to get proper operation with some PCI chipset) the
+ // following values can be adjusted. Details of the values can be found on
+ // page 31 of the SAA7146 datasheet. 
+ // 
+ // Try tuning if you get corrupt output from the card and the signal
+ // quality is good otherwise leave at default.
+ //
+ // Some possible values:
+ // 
+ // burst=5,thresh=3   Try these first
+ // burst=4,thresh=3   Only settings that work on some SIS chipsets
+ // burst=4,thresh=2   Good for high data rates
+ //
+ // These values can be set by module parameters budget_pci_burst3 and
+ // budget_pci_thresh3.
+ 
  int budget_debug = 0;
+ int budget_pci_burst3 = 7; // default value matches previous driver value
+ int budget_pci_thresh3 = 0;
+ 
+ int budget_pci_bt_v1 = 0x1c0000;
  
  /****************************************************************************
   * TT budget / WinTV Nova
***************
*** 33,39 ****
  
          memset(budget->grabbing, 0x00, TS_HEIGHT*TS_WIDTH);
  
!         saa7146_write(dev, PCI_BT_V1, 0x001c0000 |
              (saa7146_read(dev, PCI_BT_V1) & ~0x001f0000));
  
          budget->tsf=0xff;
--- 54,60 ----
  
          memset(budget->grabbing, 0x00, TS_HEIGHT*TS_WIDTH);
  
!         saa7146_write(dev, PCI_BT_V1, budget_pci_bt_v1        |
              (saa7146_read(dev, PCI_BT_V1) & ~0x001f0000));
  
          budget->tsf=0xff;
***************
*** 239,245 ****
                goto err;
        }
  
!       saa7146_write(dev, PCI_BT_V1, 0x001c0000);
        /* upload all */
          saa7146_write(dev, GPIO_CTRL, 0x000000);
  
--- 260,282 ----
                goto err;
        }
  
!       // Validate these parameters and fall back to old values if
!       // out of range.
! 
!       if (budget_pci_burst3 > 7 || budget_pci_burst3 < 0)
!               budget_pci_burst3 = 7;
! 
!       if (budget_pci_thresh3 > 3 || budget_pci_thresh3 < 0)
!               budget_pci_thresh3 = 0;
! 
!       budget_pci_bt_v1 = (budget_pci_burst3 << 18) | 
!                               (budget_pci_thresh3 << 16);
! 
!       if (budget_pci_burst3 != 7 || budget_pci_thresh3 != 0)
!               printk("dev: %p, user supplied pci_bt_v1 value used: 0x%x\n", 
!                               dev, budget_pci_bt_v1);
! 
!       saa7146_write(dev, PCI_BT_V1, budget_pci_bt_v1);
        /* upload all */
          saa7146_write(dev, GPIO_CTRL, 0x000000);
  
***************
*** 300,307 ****
--- 337,349 ----
  EXPORT_SYMBOL_GPL(ttpci_budget_deinit);
  EXPORT_SYMBOL_GPL(ttpci_budget_irq10_handler);
  EXPORT_SYMBOL_GPL(budget_debug);
+ EXPORT_SYMBOL_GPL(budget_pci_thresh3);
+ EXPORT_SYMBOL_GPL(budget_pci_burst3);
  
  MODULE_PARM(budget_debug,"i");
+ MODULE_PARM(budget_pci_thresh3,"i");
+ MODULE_PARM(budget_pci_burst3,"i");
+ 
  MODULE_LICENSE("GPL");


-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index