Most likely your USBAsp actually has the auto-speed firmware on it, it's not necessarily "old", the error about not being able to explicitly set the clock rate in such case is innocuous, provided it works.
However this firmware won't work for chips setup to clock very slowly (less than 1MHz from memory).
There are some reasons you might not be able to communicate with a functioning chip, most commonly it might have RESET disabled, or SPI programming disabled, or be setup for a crystal when you don't have one connected, or be setup for a clock when you are not feeding it one, the first two cases are not recoverable without high voltage programming, the last two cases you can recover by injecting an 8MHz square wave into XTAL1 pin which will get it able to talk enough to re-burn the fuses with avrdude appropriate for your situation.
If you have an Arduino handy you can always load up the ArduinoISP sketch and break out your soldering iron to re-burn the "official" USBAsp firmware which doesn't auto-speed but does allow you to set the bit clock ( -Bx option to avrdude ).