diff options
-rw-r--r-- | etc/init.rc | 16 | ||||
-rw-r--r-- | minui/graphics.cpp | 4 | ||||
-rw-r--r-- | minui/graphics.h | 5 | ||||
-rw-r--r-- | minui/graphics_drm.cpp | 4 | ||||
-rw-r--r-- | minui/graphics_drm.h | 1 | ||||
-rw-r--r-- | minui/graphics_fbdev.cpp | 5 | ||||
-rw-r--r-- | minui/graphics_fbdev.h | 1 | ||||
-rw-r--r-- | minui/include/minui/minui.h | 1 |
8 files changed, 28 insertions, 9 deletions
diff --git a/etc/init.rc b/etc/init.rc index e4afecff6..03df27b01 100644 --- a/etc/init.rc +++ b/etc/init.rc @@ -102,7 +102,7 @@ on property:service.adb.root=1 on fs && property:sys.usb.configfs=1 mount configfs none /config mkdir /config/usb_gadget/g1 0770 shell shell - write /config/usb_gadget/g1/idVendor 0x18D1 + write /config/usb_gadget/g1/idVendor 0x${ro.recovery.usb.vid} mkdir /config/usb_gadget/g1/strings/0x409 0770 write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno} write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer} @@ -114,7 +114,7 @@ on fs && property:sys.usb.configfs=1 on fs && property:sys.usb.configfs=0 write /sys/class/android_usb/android0/f_ffs/aliases adb,fastboot - write /sys/class/android_usb/android0/idVendor 18D1 + write /sys/class/android_usb/android0/idVendor ${ro.recovery.usb.vid} write /sys/class/android_usb/android0/iManufacturer ${ro.product.manufacturer} write /sys/class/android_usb/android0/iProduct ${ro.product.model} write /sys/class/android_usb/android0/iSerial ${ro.serialno} @@ -139,19 +139,19 @@ on property:sys.usb.config=none && property:sys.usb.configfs=0 setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=adb && property:sys.usb.configfs=0 - write /sys/class/android_usb/android0/idProduct D001 + write /sys/class/android_usb/android0/idProduct ${ro.recovery.usb.adb.pid} write /sys/class/android_usb/android0/functions adb write /sys/class/android_usb/android0/enable 1 setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=sideload && property:sys.usb.configfs=0 - write /sys/class/android_usb/android0/idProduct D001 + write /sys/class/android_usb/android0/idProduct ${ro.recovery.usb.adb.pid} write /sys/class/android_usb/android0/functions adb write /sys/class/android_usb/android0/enable 1 setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=fastboot && property:sys.usb.configfs=0 - write /sys/class/android_usb/android0/idProduct 4EE0 + write /sys/class/android_usb/android0/idProduct ${ro.recovery.usb.fastboot.pid} write /sys/class/android_usb/android0/functions fastboot write /sys/class/android_usb/android0/enable 1 setprop sys.usb.state ${sys.usb.config} @@ -166,21 +166,21 @@ on property:sys.usb.config=none && property:sys.usb.configfs=1 setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=sideload && property:sys.usb.ffs.ready=1 && property:sys.usb.configfs=1 - write /config/usb_gadget/g1/idProduct 0xD001 + write /config/usb_gadget/g1/idProduct 0x${ro.recovery.usb.adb.pid} write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb" symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=adb && property:sys.usb.ffs.ready=1 && property:sys.usb.configfs=1 - write /config/usb_gadget/g1/idProduct 0xD001 + write /config/usb_gadget/g1/idProduct 0x${ro.recovery.usb.adb.pid} write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb" symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=fastboot && property:sys.usb.ffs.ready=1 && property:sys.usb.configfs=1 - write /config/usb_gadget/g1/idProduct 0x4EE0 + write /config/usb_gadget/g1/idProduct 0x${ro.recovery.usb.fastboot.pid} write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "fastboot" symlink /config/usb_gadget/g1/functions/ffs.fastboot /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC ${sys.usb.controller} diff --git a/minui/graphics.cpp b/minui/graphics.cpp index b24c2b114..41a366112 100644 --- a/minui/graphics.cpp +++ b/minui/graphics.cpp @@ -502,3 +502,7 @@ void gr_fb_blank(bool blank, int index) { void gr_rotate(GRRotation rot) { rotation = rot; } + +bool gr_has_multiple_connectors() { + return gr_backend->HasMultipleConnectors(); +} diff --git a/minui/graphics.h b/minui/graphics.h index 5408c93e9..ff063ae23 100644 --- a/minui/graphics.h +++ b/minui/graphics.h @@ -40,8 +40,11 @@ class MinuiBackend { // Blank (or unblank) the specific screen. virtual void Blank(bool blank, DrmConnector index) = 0; + // Return true if the device supports multiple connectors. + virtual bool HasMultipleConnectors() = 0; + // Device cleanup when drawing is done. - virtual ~MinuiBackend() {}; + virtual ~MinuiBackend() = default; }; #endif // _GRAPHICS_H_ diff --git a/minui/graphics_drm.cpp b/minui/graphics_drm.cpp index c55702276..6c3a5bdee 100644 --- a/minui/graphics_drm.cpp +++ b/minui/graphics_drm.cpp @@ -200,6 +200,10 @@ void MinuiBackendDrm::Blank(bool blank, DrmConnector index) { } } +bool MinuiBackendDrm::HasMultipleConnectors() { + return (drm[DRM_SEC].GRSurfaceDrms[0] && drm[DRM_SEC].GRSurfaceDrms[1]); +} + static drmModeCrtc* find_crtc_for_connector(int fd, drmModeRes* resources, drmModeConnector* connector) { // Find the encoder. If we already have one, just use it. diff --git a/minui/graphics_drm.h b/minui/graphics_drm.h index fe3beaff9..a8c9886e5 100644 --- a/minui/graphics_drm.h +++ b/minui/graphics_drm.h @@ -60,6 +60,7 @@ class MinuiBackendDrm : public MinuiBackend { GRSurface* Flip() override; void Blank(bool) override; void Blank(bool blank, DrmConnector index) override; + bool HasMultipleConnectors() override; private: void DrmDisableCrtc(int drm_fd, drmModeCrtc* crtc); diff --git a/minui/graphics_fbdev.cpp b/minui/graphics_fbdev.cpp index 1cb0c0ab8..4a7d3252b 100644 --- a/minui/graphics_fbdev.cpp +++ b/minui/graphics_fbdev.cpp @@ -47,6 +47,11 @@ void MinuiBackendFbdev::Blank(bool blank, DrmConnector index) { fprintf(stderr, "Unsupported multiple connectors, blank = %d, index = %d\n", blank, index); } +bool MinuiBackendFbdev::HasMultipleConnectors() { + fprintf(stderr, "Unsupported multiple connectors\n"); + return false; +} + void MinuiBackendFbdev::SetDisplayedFramebuffer(size_t n) { if (n > 1 || !double_buffered) return; diff --git a/minui/graphics_fbdev.h b/minui/graphics_fbdev.h index 7e193c4ff..c772428dc 100644 --- a/minui/graphics_fbdev.h +++ b/minui/graphics_fbdev.h @@ -57,6 +57,7 @@ class MinuiBackendFbdev : public MinuiBackend { GRSurface* Flip() override; void Blank(bool) override; void Blank(bool blank, DrmConnector index) override; + bool HasMultipleConnectors() override; private: void SetDisplayedFramebuffer(size_t n); diff --git a/minui/include/minui/minui.h b/minui/include/minui/minui.h index f9be82f52..2353ed3b9 100644 --- a/minui/include/minui/minui.h +++ b/minui/include/minui/minui.h @@ -129,6 +129,7 @@ int gr_fb_height(); void gr_flip(); void gr_fb_blank(bool blank); void gr_fb_blank(bool blank, int index); +bool gr_has_multiple_connectors(); // Clears entire surface to current color. void gr_clear(); |