]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
Pull remove-sn-bist-lock into release branch
authorTony Luck <tony.luck@intel.com>
Fri, 28 Oct 2005 21:32:44 +0000 (14:32 -0700)
committerTony Luck <tony.luck@intel.com>
Fri, 28 Oct 2005 21:32:44 +0000 (14:32 -0700)
1  2 
include/asm-ia64/sn/sn_sal.h

index 81af4e51afa68c7da5e25da90946534016b42f44,33aa4043f87db1f8661265e030417dfb3b91de06..3f7564dc0aa9bf052b6fee3a20791d4ac7ebb811
@@@ -47,7 -47,6 +47,7 @@@
  #define  SN_SAL_CONSOLE_PUTB                     0x02000028
  #define  SN_SAL_CONSOLE_XMIT_CHARS               0x0200002a
  #define  SN_SAL_CONSOLE_READC                    0x0200002b
 +#define  SN_SAL_SYSCTL_OP                        0x02000030
  #define  SN_SAL_SYSCTL_MODID_GET                 0x02000031
  #define  SN_SAL_SYSCTL_GET                         0x02000032
  #define  SN_SAL_SYSCTL_IOBRICK_MODULE_GET          0x02000033
@@@ -68,7 -67,7 +68,7 @@@
  #define  SN_SAL_IOIF_INTERRUPT                           0x0200004a
  #define  SN_SAL_HWPERF_OP                        0x02000050   // lock
  #define  SN_SAL_IOIF_ERROR_INTERRUPT             0x02000051
 -
 +#define  SN_SAL_IOIF_PCI_SAFE                    0x02000052
  #define  SN_SAL_IOIF_SLOT_ENABLE                 0x02000053
  #define  SN_SAL_IOIF_SLOT_DISABLE                0x02000054
  #define  SN_SAL_IOIF_GET_HUBDEV_INFO             0x02000055
  #define SAL_INTR_ALLOC                1
  #define SAL_INTR_FREE         2
  
 +/*
 + * operations available on the generic SN_SAL_SYSCTL_OP
 + * runtime service
 + */
 +#define SAL_SYSCTL_OP_IOBOARD         0x0001  /*  retrieve board type */
 +#define SAL_SYSCTL_OP_TIO_JLCK_RST      0x0002  /* issue TIO clock reset */
 +
  /*
   * IRouter (i.e. generalized system controller) operations
   */
@@@ -206,16 -198,26 +206,16 @@@ ia64_sn_get_master_baseio_nasid(void
        return ret_stuff.v0;
  }
  
 -static inline char *
 +static inline void *
  ia64_sn_get_klconfig_addr(nasid_t nasid)
  {
        struct ia64_sal_retval ret_stuff;
 -      int cnodeid;
  
 -      cnodeid = nasid_to_cnodeid(nasid);
        ret_stuff.status = 0;
        ret_stuff.v0 = 0;
        ret_stuff.v1 = 0;
        ret_stuff.v2 = 0;
        SAL_CALL(ret_stuff, SN_SAL_GET_KLCONFIG_ADDR, (u64)nasid, 0, 0, 0, 0, 0, 0);
 -
 -      /*
 -       * We should panic if a valid cnode nasid does not produce
 -       * a klconfig address.
 -       */
 -      if (ret_stuff.status != 0) {
 -              panic("ia64_sn_get_klconfig_addr: Returned error %lx\n", ret_stuff.status);
 -      }
        return ret_stuff.v0 ? __va(ret_stuff.v0) : NULL;
  }
  
@@@ -692,12 -694,10 +692,10 @@@ sn_change_memprotect(u64 paddr, u64 len
        unsigned long irq_flags;
  
        cnodeid = nasid_to_cnodeid(get_node_number(paddr));
-       // spin_lock(&NODEPDA(cnodeid)->bist_lock);
        local_irq_save(irq_flags);
        ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_MEMPROTECT, paddr, len,
                                (u64)nasid_array, perms, 0, 0, 0);
        local_irq_restore(irq_flags);
-       // spin_unlock(&NODEPDA(cnodeid)->bist_lock);
        return ret_stuff.status;
  }
  #define SN_MEMPROT_ACCESS_CLASS_0             0x14a080
@@@ -871,41 -871,6 +869,41 @@@ ia64_sn_sysctl_event_init(nasid_t nasid
          return (int) rv.v0;
  }
  
 +/*
 + * Ask the system controller on the specified nasid to reset
 + * the CX corelet clock.  Only valid on TIO nodes.
 + */
 +static inline int
 +ia64_sn_sysctl_tio_clock_reset(nasid_t nasid)
 +{
 +      struct ia64_sal_retval rv;
 +      SAL_CALL_REENTRANT(rv, SN_SAL_SYSCTL_OP, SAL_SYSCTL_OP_TIO_JLCK_RST,
 +                      nasid, 0, 0, 0, 0, 0);
 +      if (rv.status != 0)
 +              return (int)rv.status;
 +      if (rv.v0 != 0)
 +              return (int)rv.v0;
 +
 +      return 0;
 +}
 +
 +/*
 + * Get the associated ioboard type for a given nasid.
 + */
 +static inline int
 +ia64_sn_sysctl_ioboard_get(nasid_t nasid)
 +{
 +        struct ia64_sal_retval rv;
 +        SAL_CALL_REENTRANT(rv, SN_SAL_SYSCTL_OP, SAL_SYSCTL_OP_IOBOARD,
 +                        nasid, 0, 0, 0, 0, 0);
 +        if (rv.v0 != 0)
 +                return (int)rv.v0;
 +        if (rv.v1 != 0)
 +                return (int)rv.v1;
 +
 +        return 0;
 +}
 +
  /**
   * ia64_sn_get_fit_compt - read a FIT entry from the PROM header
   * @nasid: NASID of node to read