msm: kgsl: Delay the first devfreq status read

No reason to read status when there hasn't been any activity
yet.  Wait at least one sample period after the GPU has been
turned on before pinging devfreq to read status.

Change-Id: I65633a76f0bbf0bded51f1d6ffbb7808d57f7884
Signed-off-by: Lucille Sylvester <lsylvest@codeaurora.org>
msm: kgsl: Don't block on the dispatcher mutex in issuecmds

Don't block the rendering thread if we can't get our hands on the
dispatcher mutex in adreno_dispatcher_issuecmds(). If the mutex
is held then there is an excellent chance that somebody else is
running the scheduler. To be 100% sure schedule the worker again
to catch any subtle races.

Change-Id: Ic0dedbad8126ebfe776840cd6d7227b39477f3fa
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
msm: kgsl: Remove the frequency stepping work-around

In older hardware variants while running at GPU frequency x,
there was a .5x-2x limitation on changing it while the GPU was
active.  Therefore all frequency changes were stepped to avoid
stability issues.  This limitation is no longer in effect, so
remove the work-around.

Change-Id: I9716ba4cb40148d4db5ac1478b512a93707d88a1
CRs-fixed: 598694
Signed-off-by: Lucille Sylvester <lsylvest@codeaurora.org>
msm: kgsl: Set BIMC vote limits by reading the bus table

Currently a fixed number of BIMC votes are required per GPU
frequency.  Read the enumerated votes directly from the bus
table and set min/max limits on the votes dynamically.

Change-Id: I7d8118f658e6a8225291b8353301413252f1f3f7
Signed-off-by: Lucille Sylvester <lsylvest@codeaurora.org>
msm: kgsl: Remove the busy waiting loop from idle_check

Previously there were issues with extra long GPU sequences
running during the idle_check NAP attempt thwarting the
transition to NAP.  With the dispatcher architecture this
is much less likely to occur.  In addition the dispatcher
increases chances of a very short pause between a command
coming in and being submitted increasing the occurence of
"micro-NAPs" being caught by this loop.  These extremely
short NAP periods are actually a power loss on the CX rail.
Given that hw clock gating will take care of any long GPU
command tails remove the busy wait loop for power savings.

Change-Id: I4efc6215689c42ab03d4e478ad97839208d04004
Signed-off-by: Lucille Sylvester <lsylvest@codeaurora.org>