SD.begin() returns false

The line in my SD.cpp looks like this:

  return card.init(SPI_HALF_SPEED, csPin, mosi, miso, sck) &&
         volume.init(card) &&
         root.openRoot(volume);

SPI_HALF_SPEED is never used at any other point in SD.cpp.
I changed it to QUARTER but the error still occurs.

My SD module has a +5V pin as well as a 3.3V pin. Do I still need to provide a 3.3V signal if I supply the 5V pin with 5V?