diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
index 1e6de4cd079d6a2c0e3b4b3c7679d6145bcf6f2c..244820193e10da1517f86fb6ad4937ae07c348a6 100644
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
@@ -305,10 +305,14 @@ static void pl2303_encode_baudrate(struct tty_struct *tty,
 	if (spriv->type != HX)
 		baud = min_t(int, baud, 1228800);
 
-	if (baud <= 115200) {
+	if (spriv->type != HX || baud <= 115200) {
+		/* Direct (standard) baud rate encoding method */
 		put_unaligned_le32(baud, buf);
 	} else {
 		/*
+		 * NOTE: it's not clear if the type_0/1 chips
+		 * support this method
+		 *
 		 * Apparently the formula for higher speeds is:
 		 * baudrate = 12M * 32 / (2^buf[1]) / buf[0]
 		 */