qcom: grant access to /dev/diag to mediaserver

Change-Id: I645631d6046267b4aee544f331a037087110098b
libsuspend: Correctly handle errors initializing autosuspend, to avoid exceptions later on

When calling autosuspend_enable for the first time, it calls autosuspend_init(). If this is
not the first time, autosuspend_inited should be true and it only returns success. If not,
it initializes the autosuspend method to use. However, regardless of successful completion or
not, it sets autosuspend_inited to true. This causes that further calls to autosuspend_enable
cause an exception if there was an error initializing because autosuspend_ops is invalid.

This change causes autosuspend_inited to only be set to true when initialization is
successful. Further calls to autosuspend_enable will not do anything, as initialization will
probably fail again, but won't crash.

Note that the underlying cause of this is a missing feature on the kernel (either earlysuspend,
autosleep, or wakeup_count) that should be present, but a crash in unacceptable neverless.