diff --git a/Foreign/CUDA/Cublas/TH.hs b/Foreign/CUDA/Cublas/TH.hs
--- a/Foreign/CUDA/Cublas/TH.hs
+++ b/Foreign/CUDA/Cublas/TH.hs
@@ -108,6 +108,7 @@
   "bsrsv2Info_t" -> prim [t| F.Ptr () |] [t| SP.Bsrsv2Info |] [| SP.Bsrsv2Info |] [| SP.useBsrsv2Info |]
   "bsric02Info_t" -> prim [t| F.Ptr () |] [t| SP.Bsric02Info |] [| SP.Bsric02Info |] [| SP.useBsric02Info |]
   "bsrilu02Info_t" -> prim [t| F.Ptr () |] [t| SP.Bsrilu02Info |] [| SP.Bsrilu02Info |] [| SP.useBsrilu02Info |]
+  "bsrsm2Info_t" -> prim [t| F.Ptr () |] [t| SP.Bsrsm2Info |] [| SP.Bsrsm2Info |] [| SP.useBsrsm2Info |]
 
   "cudaStream_t" -> prim [t| F.Ptr () |] [t| FC.Stream |] [| FC.Stream |] [| FC.useStream |]
 typeDat (ComplexC t) = prim
@@ -187,7 +188,7 @@
 --CBoolType a	 
 --CComplexType a
 convert (CTypeDef ident _) = try 
-  [ (s `elem` ["cublasHandle_t", "cusparseHybMat_t", "cusparseHandle_t", "cusparseMatDescr_t", "cusparseSolveAnalysisInfo_t", "cudaStream_t", "csrsv2Info_t", "csric02Info_t", "csrilu02Info_t", "bsrsv2Info_t", "bsric02Info_t", "bsrilu02Info_t" ] , ArbStructC s)
+  [ (s `elem` ["cublasHandle_t", "cusparseHybMat_t", "cusparseHandle_t", "cusparseMatDescr_t", "cusparseSolveAnalysisInfo_t", "cudaStream_t", "csrsv2Info_t", "csric02Info_t", "csrilu02Info_t", "bsrsv2Info_t", "bsric02Info_t", "bsrilu02Info_t", "bsrsm2Info_t" ] , ArbStructC s)
   , (s=="cuComplex", ComplexC FloatC)
   , (s=="cuDoubleComplex", ComplexC DoubleC)
   , (True, EnumC s) ]
diff --git a/Foreign/CUDA/Cusparse/Types.chs b/Foreign/CUDA/Cusparse/Types.chs
--- a/Foreign/CUDA/Cusparse/Types.chs
+++ b/Foreign/CUDA/Cusparse/Types.chs
@@ -7,6 +7,7 @@
   Handle(..), HybMat(..), MatDescr(..),
   Csrsv2Info(..), Csric02Info (..), Csrilu02Info (..),
   Bsrsv2Info(..), Bsric02Info (..), Bsrilu02Info (..),
+  Bsrsm2Info(..),
   SolvePolicy (..),  SolveAnalysisInfo(..),
   Operation(..), Status(..),
   Action(..), Direction(..), FillMode(..), PointerMode(..), DiagType(..),
@@ -34,6 +35,7 @@
 newtype Bsrsv2Info = Bsrsv2Info { useBsrsv2Info :: {# type bsrsv2Info_t #}}
 newtype Bsric02Info = Bsric02Info { useBsric02Info :: {# type bsric02Info_t #}}
 newtype Bsrilu02Info = Bsrilu02Info { useBsrilu02Info :: {# type bsrilu02Info_t #}}
+newtype Bsrsm2Info = Bsrsm2Info { useBsrsm2Info :: {# type bsrsm2Info_t #}}
 
 newtype SolveAnalysisInfo = SolveAnalysisInfo { useSolveAnalysisInfo :: {# type cusparseSolveAnalysisInfo_t #}}
 
diff --git a/configure b/configure
--- a/configure
+++ b/configure
@@ -3020,7 +3020,7 @@
 
 if test "$NVCC" != ""; then
     cuda_prefix="$(dirname "$(dirname "$NVCC")")"
-    cuda_c2hsflags=" --cppopts=-E "
+    cuda_c2hsflags="--cpp="$NVCC" --cppopts=-E "
     cuda_dir="${cuda_prefix}/include"
     CPPFLAGS+=" "-I${cuda_dir}" "
 #    CC=${NVCC}
diff --git a/cublas.cabal b/cublas.cabal
--- a/cublas.cabal
+++ b/cublas.cabal
@@ -1,5 +1,5 @@
 name:                   cublas
-version:                0.2.0.2
+version:                0.2.1.0
 synopsis:               FFI bindings to the CUDA CUBLAS and CUSPARSE libraries
 description:            
   This package provides FFI bindings to the NVIDIA CUDA CUBLAS and CUSPARSE
@@ -7,8 +7,11 @@
   @Foreign.CUDA.Cublas@ and @Foreign.CUDA.Cusparse@ are probably the most
   useful.
   .
-  If you have trouble installing this package, it may help to view this
-  webpage: <http://github.com/bmsherman/cublas>
+  Requires CUDA version 6.5.
+  .
+  If you have trouble installing this package, it may help to view the Github
+  page: <http://github.com/bmsherman/cublas>
+  .
 license:                BSD3
 homepage:               https://github.com/bmsherman/cublas
 license-file:           LICENSE
@@ -58,5 +61,5 @@
 
 source-repository this
   Type:     git
-  Location: git://github.com/bmsherman/cublas/releases/tag/0.2.0.2.git
-  Tag:      0.2.0.2
+  Location: git://github.com/bmsherman/cublas/releases/tag/0.2.1.0.git
+  Tag:      0.2.1.0
