 +
      # check for C11 or better, and __STDC__NO_ATOMICS__ is not defined
      # before looking for stdatomic.h
-     if ((config.CheckC11()
-@@ -1121,6 +1130,7 @@ libgpsd_sources = [
+     if ((config.CheckC11() and
+@@ -1295,6 +1304,7 @@ libgpsd_sources = [
      "driver_nmea0183.c",
      "driver_nmea2000.c",
      "driver_oncore.c",
 +    "driver_pds.c",
      "driver_rtcm2.c",
      "driver_rtcm3.c",
-     "driver_sirf.c",
+     "drivers.c",
 diff --git a/driver_pds.c b/driver_pds.c
 new file mode 100644
-index 00000000..7fe9e533
+index 000000000..7fe9e5339
 --- /dev/null
 +++ b/driver_pds.c
 @@ -0,0 +1,325 @@

     &driver_rtcm104v2,
 #endif /* RTCM104V2_ENABLE */
diff --git a/gpsd.h b/gpsd.h
index 2bd5f4c0..8e22e509 100644
--- a/gpsd.h
+++ b/gpsd.h
@@ -163,12 +163,13 @@ struct gps_lexer_t {
 #define ONCORE_PACKET   	13
 #define GEOSTAR_PACKET   	14
 #define NMEA2000_PACKET 	15
-#define MAX_GPSPACKET_TYPE	15	/* increment this as necessary */
-#define RTCM2_PACKET    	16
-#define RTCM3_PACKET    	17
-#define JSON_PACKET    	    	18
-#define PACKET_TYPES		19	/* increment this as necessary */
-#define SKY_PACKET     		20
+#define QMI_PDS_PACKET		16
+#define MAX_GPSPACKET_TYPE	16	/* increment this as necessary */
+#define RTCM2_PACKET    	17
+#define RTCM3_PACKET    	18
+#define JSON_PACKET    	    	19
+#define PACKET_TYPES		20	/* increment this as necessary */
+#define SKY_PACKET     		21
 #define TEXTUAL_PACKET_TYPE(n)	((((n)>=NMEA_PACKET) && ((n)<=MAX_TEXTUAL_TYPE)) || (n)==JSON_PACKET)
 #define GPS_PACKET_TYPE(n)	(((n)>=NMEA_PACKET) && ((n)<=MAX_GPSPACKET_TYPE))
 #define LOSSLESS_PACKET_TYPE(n)	(((n)>=RTCM2_PACKET) && ((n)<=RTCM3_PACKET))
@@ -411,6 +412,7 @@ typedef enum {source_unknown,
 	      source_usb,	/* potential GPS source, discoverable */
 	      source_bluetooth,	/* potential GPS source, discoverable */
 	      source_can,	/* potential GPS source, fixed CAN format */

         (void)gpsd_close(session);
     if (session->mode == O_OPTIMIZE)
 	gpsd_run_device_hook(&session->context->errout,
@@ -549,6 +557,11 @@ int gpsd_open(struct gps_device_t *session)
         return nmea2000_open(session);
     }
 #endif /* defined(NMEA2000_ENABLE) */
