Cyclades Cyclom-Y ISA on 2.5.69

From: John Stoffel (stoffel@lucent.com)
Date: Wed May 21 2003 - 15:00:45 EST


Hi all,

Has anyone else run into a problem compiling the Cyclades serial board
driver under 2.5.x when you have ISA defined as well? I've done a
quick hack patch to make it compile. I've been running 2.4.21-rc*
lately, so it's time I started to actually test this patch below and
see how it works.

I read the file Documentation cli-sti-removal.txt and I think I've
done the right things here.

John
   John Stoffel - Senior Unix Systems Administrator - Lucent Technologies
         stoffel@lucent.com - http://www.lucent.com - 978-399-0479

*** drivers/char/cyclades.c.org Wed May 21 11:45:48 2003
--- drivers/char/cyclades.c Wed May 21 12:07:53 2003
***************
*** 872,877 ****
--- 872,878 ----
  static int cyz_issue_cmd(struct cyclades_card *, uclong, ucchar,
uclong);
  #ifdef CONFIG_ISA
  static unsigned detect_isa_irq (volatile ucchar *);
+ spinlock_t isa_card_lock;
  #endif /* CONFIG_ISA */
  
  static int cyclades_get_proc_info(char *, char **, off_t , int , int
  *, void *);
***************
*** 1056,1069 ****
      udelay(5000L);
  
      /* Enable the Tx interrupts on the CD1400 */
! save_flags(flags); cli();
        cy_writeb((u_long)address + (CyCAR<<index), 0);
        cyy_issue_cmd(address, CyCHAN_CTL|CyENB_XMTR, index);
  
        cy_writeb((u_long)address + (CyCAR<<index), 0);
        cy_writeb((u_long)address + (CySRER<<index),
                cy_readb(address + (CySRER<<index)) | CyTxRdy);
! restore_flags(flags);
  
      /* Wait ... */
      udelay(5000L);
--- 1057,1070 ----
      udelay(5000L);
  
      /* Enable the Tx interrupts on the CD1400 */
! spin_lock_irqsave(&isa_card_lock,flags);
        cy_writeb((u_long)address + (CyCAR<<index), 0);
        cyy_issue_cmd(address, CyCHAN_CTL|CyENB_XMTR, index);
  
        cy_writeb((u_long)address + (CyCAR<<index), 0);
        cy_writeb((u_long)address + (CySRER<<index),
                cy_readb(address + (CySRER<<index)) | CyTxRdy);
! spin_unlock_irqrestore(&isa_card_lock, flags);
  
      /* Wait ... */
      udelay(5000L);
***************
*** 5762,5768 ****
      }
  #endif /* CONFIG_CYZ_INTR */
  
! save_flags(flags); cli();
  
      if ((e1 = tty_unregister_driver(&cy_serial_driver)))
              printk("cyc: failed to unregister Cyclades serial
              driver(%d)\n",
--- 5763,5769 ----
      }
  #endif /* CONFIG_CYZ_INTR */
  
! spin_lock_irqsave(&isa_card_lock, flags);
  
      if ((e1 = tty_unregister_driver(&cy_serial_driver)))
              printk("cyc: failed to unregister Cyclades serial
              driver(%d)\n",
***************
*** 5771,5777 ****
              printk("cyc: failed to unregister Cyclades callout
              driver (%d)\n",
                e2);
  
! restore_flags(flags);
  
      for (i = 0; i < NR_CARDS; i++) {
          if (cy_card[i].base_addr != 0) {
--- 5772,5778 ----
              printk("cyc: failed to unregister Cyclades callout
          driver (%d)\n",
                e2);
  
! spin_unlock_irqrestore(&isa_card_lock, flags);
  
      for (i = 0; i < NR_CARDS; i++) {
          if (cy_card[i].base_addr != 0) {
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri May 23 2003 - 22:00:46 EST