[ar7] prevent race between clocks and devices registration (#6532)
[openwrt.git] / package / nozomi / patches / 002-nozomi_vf_01.patch
index 77dca1f..7e6405e 100644 (file)
@@ -1,5 +1,5 @@
---- nozomi/nozomi.c.orig       2006-04-16 12:15:42.000000000 +0100
-+++ nozomi/nozomi.c    2006-04-19 18:27:29.000000000 +0100
+--- a/nozomi.c
++++ b/nozomi.c
 @@ -7,6 +7,9 @@
   *
   * Maintained by: Paul Hardwick, p.hardwick@option.com
 @@ -7,6 +7,9 @@
   *
   * Maintained by: Paul Hardwick, p.hardwick@option.com
@@ -18,7 +18,7 @@
  #include <asm/uaccess.h>
  
  
  #include <asm/uaccess.h>
  
  
-@@ -133,23 +137,23 @@
+@@ -133,23 +137,23 @@ static int nzdebug = NOZOMI_DEBUG_LEVEL;
  /* TODO: rewrite to optimize macros... */
  #define SET_FCR(value__) \
    do {  \
  /* TODO: rewrite to optimize macros... */
  #define SET_FCR(value__) \
    do {  \
@@ -46,7 +46,7 @@
  } while(0)
  
  #define GET_MEM(value__, addr__, length__) \
  } while(0)
  
  #define GET_MEM(value__, addr__, length__) \
-@@ -265,7 +268,7 @@
+@@ -265,7 +269,7 @@ static int nzdebug = NOZOMI_DEBUG_LEVEL;
  /* There are two types of nozomi cards, one with 2048 memory and with 8192 memory */
  typedef enum {
        F32_2 = 2048, /* Has 512 bytes downlink and uplink * 2             -> 2048 */
  /* There are two types of nozomi cards, one with 2048 memory and with 8192 memory */
  typedef enum {
        F32_2 = 2048, /* Has 512 bytes downlink and uplink * 2             -> 2048 */
@@ -55,7 +55,7 @@
  } card_type_t;
  
  /* Two different toggle channels exist */
  } card_type_t;
  
  /* Two different toggle channels exist */
-@@ -438,12 +441,12 @@
+@@ -438,12 +442,12 @@ typedef struct {
        u32                                  base_addr;
        u8                                   closing;
  
        u32                                  base_addr;
        u8                                   closing;
  
@@ -73,7 +73,7 @@
        card_type_t          card_type;
        config_table_t       config_table; /* Configuration table */
        struct pci_dev      *pdev;
        card_type_t          card_type;
        config_table_t       config_table; /* Configuration table */
        struct pci_dev      *pdev;
-@@ -490,7 +493,7 @@
+@@ -490,7 +494,7 @@ static struct pci_device_id nozomi_pci_t
  
  /* Used to store interrupt variables */
  typedef struct {
  
  /* Used to store interrupt variables */
  typedef struct {
@@ -82,7 +82,7 @@
  } irq_t;
  
  MODULE_DEVICE_TABLE(pci, nozomi_pci_tbl);
  } irq_t;
  
  MODULE_DEVICE_TABLE(pci, nozomi_pci_tbl);
-@@ -1345,9 +1348,9 @@
+@@ -1345,9 +1349,9 @@ void nozomi_setup_private_data(dc_t *dc)
        u32 offset = dc->base_addr + dc->card_type/2;
        int i;
  
        u32 offset = dc->base_addr + dc->card_type/2;
        int i;
  
@@ -95,7 +95,7 @@
        dc->ier_last_written = 0;
        dc->closing = 0;
  
        dc->ier_last_written = 0;
        dc->closing = 0;
  
-@@ -1366,13 +1369,16 @@
+@@ -1366,13 +1370,16 @@ void nozomi_setup_private_data(dc_t *dc)
  static void tty_flip_queue_function(void *tmp_dc) {
        dc_t *dc = (dc_t*) tmp_dc;
        int i;
  static void tty_flip_queue_function(void *tmp_dc) {
        dc_t *dc = (dc_t*) tmp_dc;
        int i;
                }
        }
  }
                }
        }
  }
-@@ -1555,7 +1561,11 @@
+@@ -1555,7 +1562,11 @@ err_disable_device:
  
  static void tty_do_close(dc_t *dc, port_t *port) {
  
  
  static void tty_do_close(dc_t *dc, port_t *port) {
  
  
        if ( !port->tty_open_count ) {
                goto exit;
  
        if ( !port->tty_open_count ) {
                goto exit;
-@@ -1569,7 +1579,9 @@
+@@ -1569,7 +1580,9 @@ static void tty_do_close(dc_t *dc, port_
  
        if ( port->tty_open_count == 0) {
          D1("close: %d", port->token_dl );
  
        if ( port->tty_open_count == 0) {
          D1("close: %d", port->token_dl );
        }
  
  exit:
        }
  
  exit:
-@@ -1679,8 +1691,11 @@
+@@ -1679,8 +1692,11 @@ static int ntty_open(struct tty_struct *
        s32 index = get_index(tty);
        port_t *port = get_port_by_tty(tty);
        dc_t *dc = get_dc_by_tty(tty);
        s32 index = get_index(tty);
        port_t *port = get_port_by_tty(tty);
        dc_t *dc = get_dc_by_tty(tty);
  
        tty->low_latency  = 1;
        tty->driver_data  = port;
  
        tty->low_latency  = 1;
        tty->driver_data  = port;
-@@ -1698,7 +1713,9 @@
+@@ -1698,7 +1714,9 @@ static int ntty_open(struct tty_struct *
        if ( port->tty_open_count == 1) {
                port->rx_data = port->tx_data = 0;
          D1("open: %d", port->token_dl );
        if ( port->tty_open_count == 1) {
                port->rx_data = port->tx_data = 0;
          D1("open: %d", port->token_dl );
        }
  
        up(&port->tty_sem);
        }
  
        up(&port->tty_sem);
-@@ -1722,6 +1739,7 @@
+@@ -1722,6 +1740,7 @@ static s32 ntty_write(struct tty_struct 
        int                  rval = -EINVAL;
        dc_t                *dc = get_dc_by_tty(tty);
        port_t              *port = (port_t *) tty->driver_data;
        int                  rval = -EINVAL;
        dc_t                *dc = get_dc_by_tty(tty);
        port_t              *port = (port_t *) tty->driver_data;
  
        /* D1( "WRITEx: %d, index = %d", count, index); */
  
  
        /* D1( "WRITEx: %d, index = %d", count, index); */
  
-@@ -1729,7 +1747,10 @@
+@@ -1729,7 +1748,10 @@ static s32 ntty_write(struct tty_struct 
                return -ENODEV;
        }
  
                return -ENODEV;
        }
  
  
        if (! port->tty_open_count) {
          D1( " ");
  
        if (! port->tty_open_count) {
          D1( " ");
-@@ -1752,6 +1773,7 @@
+@@ -1752,6 +1774,7 @@ static s32 ntty_write(struct tty_struct 
                goto exit;
        }
  
                goto exit;
        }
  
        // CTS is only valid on the modem channel
        if ( port == &(dc->port[PORT_MDM]) ) {
                if ( port->ctrl_dl.CTS ) {
        // CTS is only valid on the modem channel
        if ( port == &(dc->port[PORT_MDM]) ) {
                if ( port->ctrl_dl.CTS ) {
-@@ -1763,6 +1785,7 @@
+@@ -1763,6 +1786,7 @@ static s32 ntty_write(struct tty_struct 
        } else {
                enable_transmit_ul(port->tty_index, dc );
        }
        } else {
                enable_transmit_ul(port->tty_index, dc );
        }
  
  exit:
        up(&port->tty_sem);
  
  exit:
        up(&port->tty_sem);
-@@ -1782,7 +1805,9 @@
+@@ -1782,7 +1806,9 @@ static int ntty_write_room(struct tty_st
          return 0;
        }
  
          return 0;
        }
  
  
        if (! port->tty_open_count) {
                goto exit;
  
        if (! port->tty_open_count) {
                goto exit;
-@@ -1969,6 +1994,8 @@
+@@ -1969,6 +1995,8 @@ static int ntty_ioctl_tiocgicount(struct
  
  static int ntty_ioctl(struct tty_struct *tty, struct file *file, unsigned int cmd, unsigned long arg) {
        port_t *port = (port_t *) tty->driver_data;
  
  static int ntty_ioctl(struct tty_struct *tty, struct file *file, unsigned int cmd, unsigned long arg) {
        port_t *port = (port_t *) tty->driver_data;
        int mask;
        int rval = -ENOIOCTLCMD;
  
        int mask;
        int rval = -ENOIOCTLCMD;
  
-@@ -1991,7 +2018,9 @@
+@@ -1991,7 +2019,9 @@ static int ntty_ioctl(struct tty_struct 
                rval =  ntty_ioctl_tiocgicount(tty, file, cmd, arg);
                break;
        case TIOCMGET:
                rval =  ntty_ioctl_tiocgicount(tty, file, cmd, arg);
                break;
        case TIOCMGET:
                break;
        case TIOCMSET:
                rval = ntty_tiocmset(tty, file, arg);
                break;
        case TIOCMSET:
                rval = ntty_tiocmset(tty, file, arg);
-@@ -2000,20 +2029,24 @@
+@@ -2000,20 +2030,24 @@ static int ntty_ioctl(struct tty_struct 
                if (get_user(mask, (unsigned long *) arg))
                        return -EFAULT;
  
                if (get_user(mask, (unsigned long *) arg))
                        return -EFAULT;
  
This page took 0.025993 seconds and 4 git commands to generate.