[LINUX] problème sur un driver !

problème sur un driver ! [LINUX] - C++ - Programmation

Marsh Posté le 22-05-2002 à 18:27:42    

voila , c pour une carte pci sur proc x86(cyrix) avec un noyau 2.4.
 
voici une partie du code :
 
int pci_das4020_init()
{
 unsigned long ret;
 unsigned char *gt;
 
 if ((pci_das_major=register_chrdev(pci_das_major, pci_das_module_name, &pci_das_fops))<0)
 {
  printk("Ne peut avoir un major\n" );
  return -EBUSY;
 }else
  printk("major=%d\n", pci_das_major);
   
   if (!pci_present())
 {
  printk("l'ordinateut n'a pas de pci\n" );
  return -EBUSY;
 }
   
 if ((pci_das_dev=pci_find_device(4871, 82, NULL))==NULL)
 {
  printk("carte non trouvée\n" );
  return -EBUSY;
 }
 
 ret=pci_resource_flags(pci_das_dev, 2);
 if (ret!=IORESOURCE_IO && ret!=IORESOURCE_MEM)
 {
  printk ("impossible d'obtenire la zone bar2\n" );
  return -EBUSY;
 }
 
 /* obtenire les adresses hw */
 pci_das_hwadd2s=pci_resource_start(pci_das_dev, 2);
   pci_das_hwadd2e=pci_resource_end(pci_das_dev, 2);
   
    if (check_mem_region(pci_das_hwadd2s, pci_das_hwadd2e-pci_das_hwadd2s))
 {
  printk("zone mémoire base 2 déjà utilisée\n" );
  return -EBUSY;
 }
 
 request_mem_region(pci_das_hwadd2s, pci_das_hwadd2e-pci_das_hwadd2s, "pci-das4020/12" );
 
 
 gt=ioremap(pci_das_hwadd2s, pci_das_hwadd2e-pci_das_hwadd2s);
 
 *(gt+0x4E)=0;
 *(gt+0x48)=0;
 
  return 0;
}
 
 
toutes les fonctions on l'air de fonctionné, néamoins il ne se passe rien sur ma carte, aurai-je oublié kkchose ? :??:

Reply

Marsh Posté le 22-05-2002 à 18:27:42   

Reply

Marsh Posté le 22-05-2002 à 21:29:30    

up svp :bounce:

Reply

Marsh Posté le 23-05-2002 à 08:16:56    

j'ai oublié de préciser que c'etait un driver de type char

Reply

Marsh Posté le 23-05-2002 à 22:26:00    

moi ca me depasse
 
(up deguise)

Reply

Marsh Posté le 24-05-2002 à 08:10:40    

:D
 
non bon alors fallai viré le request_mem_region et l'accès se fait non pas en déréférencant le pointeur mais avec les fonctions writeb , writel, ...
 
voila tout marche ! :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed