I found this....
Procedure 4 Throttle/Idle Learn
Description
The engine control module (ECM) learns the idle position of the throttle plate to ensure the correct
idle. Anytime the throttle body is cleaned or replaced, the ECM must learn the new throttle
position. The idle may be unstable or a DTC may set if the throttle position is not learned.
Conditions for Running the Throttle Learn Procedure
• DTCs P0101, P0102, P0103, P0107, P0108, P0111, P0112, P0113, P0506, and P0507
are not set.
• The engine speed is between 450-4,000 RPM.
• The manifold absolute pressure (MAP) is greater than 5 kPa.
• The mass air flow (MAF) is greater than 2 g/s.
• The ignition 1 voltage is greater than 10 volts.
Throttle Learn
Important: Do NOT perform this procedure if DTCs are set. Refer to Diagnostic Trouble Code
(DTC) List - Vehicle.
1. Start and idle the engine in PARK for 3 minutes.
2. With a scan tool, monitor desired and actual RPM.
3. The ECM will start to learn the new idle cells and Desired RPM should start to decrease.
4. Ignition OFF for 60 seconds.
5. Start and idle the engine in PARK for 3 minutes.
6. After the 3 minute run time the engine should be idling normal.
Important: During the drive cycle the check engine light may come on with idle speed
DTCs. If idle speed codes are set, clear codes so the ECM can continue to learn.
If the engine idle speed has not been learned the vehicle will need to be driven at
speeds above 70 km/h (44 mph) with several decelerations and extended idles.
7. After the drive cycle, the engine should be idling normally.
If the engine idle speed has not been learned, turn OFF the ignition for 60 seconds
and repeat step 6.
8. Once the engine speed has returned to normal, clear DTCs.
---------- Post added at 03:18 PM ---------- Previous post was at 01:37 PM ----------
Then I'd be cleaning out your throttle body real good, that's pretty much exactly what our Denali does when the throttle body gets dirty!!
Well I disconnected the battery, cleaned the TB within an inch of its life. Put it all back together, connected the battery. Then I did the buckle, key on, depress fast and hold, turn off and release. I started it up, and after it cleaned out from all the cleaner it runs real smooth and my idle is so much better. I ran it down the freeway and back and the transmission shifts better also. it will stay in gear without downshifting like a crazy man. come off the freeway and idle is smooth as silk with the a/c on and right about 600-650rpm. So as of now, all is good in the land of oz.