Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7ca230b7 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 7546601 from f2619c1f to sc-release

Change-Id: I6fa9e8031d6cb4692a305660421a30998f3d15af
parents ccf1864e f2619c1f
Loading
Loading
Loading
Loading
+7 −0
Original line number Original line Diff line number Diff line
service drm /system/bin/drmserver
service drm /system/bin/drmserver
    disabled
    class main
    class main
    user drm
    user drm
    group drm system inet drmrpc readproc
    group drm system inet drmrpc readproc
    writepid /dev/cpuset/foreground/tasks
    writepid /dev/cpuset/foreground/tasks

on property:drm.service.enabled=true
    start drm

on property:drm.service.enabled=1
    start drm
+6 −9
Original line number Original line Diff line number Diff line
@@ -52,25 +52,22 @@ void DrmManagerClientImpl::remove(int uniqueId) {
const sp<IDrmManagerService>& DrmManagerClientImpl::getDrmManagerService() {
const sp<IDrmManagerService>& DrmManagerClientImpl::getDrmManagerService() {
    Mutex::Autolock lock(sMutex);
    Mutex::Autolock lock(sMutex);
    if (NULL == sDrmManagerService.get()) {
    if (NULL == sDrmManagerService.get()) {
        char value[PROPERTY_VALUE_MAX];
        if (property_get("drm.service.enabled", value, NULL) == 0) {
            // Drm is undefined for this device
            return sDrmManagerService;
        }

        sp<IServiceManager> sm = defaultServiceManager();
        sp<IServiceManager> sm = defaultServiceManager();
        sp<IBinder> binder;
        sp<IBinder> binder;
        do {
        for(int i = 0; i < 10; i++) {
            binder = sm->getService(String16("drm.drmManager"));
            binder = sm->getService(String16("drm.drmManager"));
            if (binder != 0) {
            if (binder != 0) {
                break;
                break;
            }
            }
            ALOGW("DrmManagerService not published, waiting...");
            ALOGW("DrmManagerService not published, waiting... %d", i);
            struct timespec reqt;
            struct timespec reqt;
            reqt.tv_sec  = 0;
            reqt.tv_sec  = 0;
            reqt.tv_nsec = 500000000; //0.5 sec
            reqt.tv_nsec = 500000000; //0.5 sec
            nanosleep(&reqt, NULL);
            nanosleep(&reqt, NULL);
        } while (true);
        }
        if (binder == NULL) {
            return sDrmManagerService;
        }
        if (NULL == sDeathNotifier.get()) {
        if (NULL == sDeathNotifier.get()) {
            sDeathNotifier = new DeathNotifier();
            sDeathNotifier = new DeathNotifier();
        }
        }
+10 −0
Original line number Original line Diff line number Diff line
@@ -750,6 +750,16 @@ c2_status_t C2AllocationGralloc::map(


            // We really don't know what this is; lock the buffer and pass it through ---
            // We really don't know what this is; lock the buffer and pass it through ---
            // the client may know how to interpret it.
            // the client may know how to interpret it.

            // unlock previous allocation if it was successful
            if (err == OK) {
                err = GraphicBufferMapper::get().unlock(mBuffer);
                if (err) {
                    ALOGE("failed transaction: unlock");
                    return C2_CORRUPTED;
                }
            }

            void *pointer = nullptr;
            void *pointer = nullptr;
            err = GraphicBufferMapper::get().lock(
            err = GraphicBufferMapper::get().lock(
                    const_cast<native_handle_t *>(mBuffer), grallocUsage, rect, &pointer);
                    const_cast<native_handle_t *>(mBuffer), grallocUsage, rect, &pointer);