Package: sispmctl
Version: 3.1-1
Severity: important
Tags: patch upstream fixed-upstream
Forwarded: 
https://sourceforge.net/p/sispmctl/git/ci/bdd3c5006c07a801dd2e29162368ac407ac756b4

More recent devices use a USB ID of 04b4:fd15. The present sispmctl is
unable to talk to such devices. This is fixed upstream in version 4.1.
Please update to that version or cherry pick the relevant git commit.
For your convenience, I backported the commit to version 3.1-1. I think
it would be useful to fix this in buster as these devices will become
more widespread.

Helmut
commit bdd3c5006c07a801dd2e29162368ac407ac756b4
Author: Heinrich Schuchardt <[email protected]>
Date:   Sat Oct 13 12:58:50 2018 +0200

    Add new device idVendor=04b4, idProduct=fd15
    
    New Gembird EG-PMS2 uses a 0xFD15 as product ID.
    
    Signed-off-by: Heinrich Schuchardt <[email protected]>
    Tested-by: Matthias84 <[email protected]>

Index: sispmctl-3.1/src/main.c
===================================================================
--- sispmctl-3.1.orig/src/main.c
+++ sispmctl-3.1/src/main.c
@@ -490,7 +490,9 @@ void parse_command_line(int argc, char*
               printf("%d %s %s\n", status,
                      dev[status]->bus->dirname, dev[status]->filename);
             id = get_id(dev[status]);
-            if ((id == PRODUCT_ID_SISPM) || (id == PRODUCT_ID_SISPM_FLASH_NEW))
+            if ((id == PRODUCT_ID_SISPM) ||
+                (id == PRODUCT_ID_SISPM_FLASH_NEW) ||
+                (id == PRODUCT_ID_SISPM_EG_PMS2))
               if (numeric == 0)
                 printf("device type:      4-socket SiS-PM\n");
               else
@@ -789,7 +791,8 @@ int main(int argc, char** argv)
       if ((dev->descriptor.idVendor == VENDOR_ID) && ((dev->descriptor.idProduct == PRODUCT_ID_SISPM) ||
                                                       (dev->descriptor.idProduct == PRODUCT_ID_MSISPM_OLD) ||
                                                       (dev->descriptor.idProduct == PRODUCT_ID_MSISPM_FLASH) ||
-                                                      (dev->descriptor.idProduct == PRODUCT_ID_SISPM_FLASH_NEW))) {
+                                                      (dev->descriptor.idProduct == PRODUCT_ID_SISPM_FLASH_NEW) ||
+                                                      (dev->descriptor.idProduct == PRODUCT_ID_SISPM_EG_PMS2))) {
 	usbdev[count++] = dev;
       }
       if (count == MAXGEMBIRD) {
Index: sispmctl-3.1/src/sispm_ctl.c
===================================================================
--- sispmctl-3.1.orig/src/sispm_ctl.c
+++ sispmctl-3.1/src/sispm_ctl.c
@@ -3,6 +3,7 @@
 
   Controls the GEMBIRD Silver Shield PM USB outlet device
 
+  (C) 2015-2018, Heinrich Schuchardt <[email protected]>
   (C) 2004,2005,2006 Mondrian Nuessle, Computer Architecture Group, University of Mannheim, Germany
   (C) 2005, Andreas Neuper, Germany
   (C) 2010, Olivier Matheret, France, for the plannification part
@@ -164,7 +165,9 @@ int check_outlet_number(int id, int outl
         fprintf(stderr,"mSIS-PM devices only feature one outlet. Number changed from %d to 1\n", outlet);
     outlet = 1;
   }
-  if (id == PRODUCT_ID_SISPM || id == PRODUCT_ID_SISPM_FLASH_NEW) {
+  if ((id == PRODUCT_ID_SISPM) ||
+      (id == PRODUCT_ID_SISPM_FLASH_NEW) ||
+      (id == PRODUCT_ID_SISPM_EG_PMS2)) {
     if (outlet < 1 || outlet > 4) {
       if (verbose == 1)
         fprintf(stderr,"SIS-PM devices only feature 4 outlets. Number changed from %d to 1\n", outlet);
Index: sispmctl-3.1/src/sispm_ctl.h
===================================================================
--- sispmctl-3.1.orig/src/sispm_ctl.h
+++ sispmctl-3.1/src/sispm_ctl.h
@@ -39,8 +39,7 @@
 #define PRODUCT_ID_MSISPM_OLD		 0xFD10
 #define PRODUCT_ID_MSISPM_FLASH		 0xFD12
 #define PRODUCT_ID_SISPM_FLASH_NEW		 0xFD13
-
-
+#define PRODUCT_ID_SISPM_EG_PMS2	0xFD15
 
 #define USB_DIR_IN                       0x80            /* to host */
 #define USB_DIR_OUT                      0               /* to device */

Reply via email to