libsdhcdrivers: Change mmc_card_capacity type

mmc_card_capacity will now return signed value due to the following
reasons:

1. Function returns negative value in case of the failure, so naturally
   signed type must be used.
2. Signed 64 bit value is enough for holding the theoretical SD card
   size of 8 EiB (2^63 = 2^3 * 2^60 = 2^3 * 1024 ^ 6) what is more than
   enough when taking into account that the latest SDUC format maximum
   size is 128 TiB (2^7 * 1024^4).
diff --git a/libsdhcdrivers/include/sdhc/mmc.h b/libsdhcdrivers/include/sdhc/mmc.h
index 83f160b..f72c026 100644
--- a/libsdhcdrivers/include/sdhc/mmc.h
+++ b/libsdhcdrivers/include/sdhc/mmc.h
@@ -91,6 +91,6 @@
 
 /** Get card capacity
  * @param[in] mmc_card  A handle to an initialised MMC card
- * @return              Card capacity in bytes
+ * @return              Card capacity in bytes, negative on failure.
  */
-unsigned long long mmc_card_capacity(mmc_card_t mmc_card);
+long long mmc_card_capacity(mmc_card_t mmc_card);
diff --git a/libsdhcdrivers/src/mmc.c b/libsdhcdrivers/src/mmc.c
index bba9237..98156ba 100644
--- a/libsdhcdrivers/src/mmc.c
+++ b/libsdhcdrivers/src/mmc.c
@@ -532,10 +532,10 @@
                MMC_WRITE_BLOCK);
 }
 
-unsigned long long mmc_card_capacity(mmc_card_t mmc_card)
+long long mmc_card_capacity(mmc_card_t mmc_card)
 {
     int ret;
-    unsigned long long capacity;
+    long long capacity;
     struct csd csd;
 
     ret = mmc_decode_csd(mmc_card, &csd);