adcmd_free is the opposite of adcmd_allocate. when you perform adcmd_free on a channel, it does a cmd_reset command on the hardware and "unlocks" the channel. It also checks to see if there are other pending allocation requests. You do not need to perform ADCMD_FREE on channels stolen from you. If you want channels back after they have been stolen, you must reallocate them with the same allocation key.