Text this: Optimal cross-layer power allocation with channel and queue state information