mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: stable-review@kernel.org, torvalds@linux-foundation.org,
	akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk,
	Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Subject: [042/107] USB: Add new FT232H chip to drivers/usb/serial/ftdi_sio.c
Date: Thu, 07 Jul 2011 17:16:14 -0700	[thread overview]
Message-ID: <20110708001656.787329272@clark.kroah.org> (raw)
In-Reply-To: <20110708001740.GA14031@kroah.com>

2.6.39-stable review patch.  If anyone has any objections, please let us know.

------------------

From: Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>

commit 309427b6351b763917caac3e4b2ab5651df99823 upstream.

appended patch adds support for the new FTDI FT232H chip. This chip is a
single channel version of the dual FT2232H/quad FT4232H, coming with it's
own default PID 0x6014 (FT2232H uses the same PID 0x6010 like FT2232C,
FT4232H has also it's own PID).

The patch was checked on an UM232H module and a terminal program with TX/RX
shorted to that typing in the terminal reproduced the characters.

Signed-off-by: Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
 drivers/usb/serial/ftdi_sio.c     |   19 ++++++++++++++-----
 drivers/usb/serial/ftdi_sio.h     |    3 ++-
 drivers/usb/serial/ftdi_sio_ids.h |    1 +
 3 files changed, 17 insertions(+), 6 deletions(-)

--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -179,6 +179,7 @@ static struct usb_device_id id_table_com
 	{ USB_DEVICE(FTDI_VID, FTDI_232RL_PID) },
 	{ USB_DEVICE(FTDI_VID, FTDI_8U2232C_PID) },
 	{ USB_DEVICE(FTDI_VID, FTDI_4232H_PID) },
+	{ USB_DEVICE(FTDI_VID, FTDI_232H_PID) },
 	{ USB_DEVICE(FTDI_VID, FTDI_MICRO_CHAMELEON_PID) },
 	{ USB_DEVICE(FTDI_VID, FTDI_RELAIS_PID) },
 	{ USB_DEVICE(FTDI_VID, FTDI_OPENDCC_PID) },
@@ -848,7 +849,8 @@ static const char *ftdi_chip_name[] = {
 	[FT2232C] = "FT2232C",
 	[FT232RL] = "FT232RL",
 	[FT2232H] = "FT2232H",
-	[FT4232H] = "FT4232H"
+	[FT4232H] = "FT4232H",
+	[FT232H]  = "FT232H"
 };
 
 
@@ -1168,6 +1170,7 @@ static __u32 get_ftdi_divisor(struct tty
 		break;
 	case FT2232H: /* FT2232H chip */
 	case FT4232H: /* FT4232H chip */
+	case FT232H:  /* FT232H chip */
 		if ((baud <= 12000000) & (baud >= 1200)) {
 			div_value = ftdi_2232h_baud_to_divisor(baud);
 		} else if (baud < 1200) {
@@ -1429,9 +1432,12 @@ static void ftdi_determine_type(struct u
 	} else if (version < 0x600) {
 		/* Assume it's an FT232BM (or FT245BM) */
 		priv->chip_type = FT232BM;
-	} else {
-		/* Assume it's an FT232R */
+	} else if (version < 0x900) {
+		/* Assume it's an FT232RL */
 		priv->chip_type = FT232RL;
+	} else {
+		/* Assume it's an FT232H */
+		priv->chip_type = FT232H;
 	}
 	dev_info(&udev->dev, "Detected %s\n", ftdi_chip_name[priv->chip_type]);
 }
@@ -1559,7 +1565,8 @@ static int create_sysfs_attrs(struct usb
 		     priv->chip_type == FT2232C ||
 		     priv->chip_type == FT232RL ||
 		     priv->chip_type == FT2232H ||
-		     priv->chip_type == FT4232H)) {
+		     priv->chip_type == FT4232H ||
+		     priv->chip_type == FT232H)) {
 			retval = device_create_file(&port->dev,
 						    &dev_attr_latency_timer);
 		}
@@ -1580,7 +1587,8 @@ static void remove_sysfs_attrs(struct us
 		    priv->chip_type == FT2232C ||
 		    priv->chip_type == FT232RL ||
 		    priv->chip_type == FT2232H ||
-		    priv->chip_type == FT4232H) {
+		    priv->chip_type == FT4232H ||
+                    priv->chip_type == FT232H) {
 			device_remove_file(&port->dev, &dev_attr_latency_timer);
 		}
 	}
@@ -2212,6 +2220,7 @@ static int ftdi_tiocmget(struct tty_stru
 	case FT232RL:
 	case FT2232H:
 	case FT4232H:
+	case FT232H:
 		len = 2;
 		break;
 	default:
--- a/drivers/usb/serial/ftdi_sio.h
+++ b/drivers/usb/serial/ftdi_sio.h
@@ -156,7 +156,8 @@ enum ftdi_chip_type {
 	FT2232C = 4,
 	FT232RL = 5,
 	FT2232H = 6,
-	FT4232H = 7
+	FT4232H = 7,
+	FT232H  = 8
 };
 
 enum ftdi_sio_baudrate {
--- a/drivers/usb/serial/ftdi_sio_ids.h
+++ b/drivers/usb/serial/ftdi_sio_ids.h
@@ -22,6 +22,7 @@
 #define FTDI_8U232AM_ALT_PID 0x6006 /* FTDI's alternate PID for above */
 #define FTDI_8U2232C_PID 0x6010 /* Dual channel device */
 #define FTDI_4232H_PID 0x6011 /* Quad channel hi-speed device */
+#define FTDI_232H_PID  0x6014 /* Single channel hi-speed device */
 #define FTDI_SIO_PID	0x8372	/* Product Id SIO application of 8U100AX */
 #define FTDI_232RL_PID  0xFBFA  /* Product ID for FT232RL */
 



  parent reply	other threads:[~2011-07-08  5:16 UTC|newest]

Thread overview: 117+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-08  0:17 [000/107] 2.6.39.3 review Greg KH
2011-07-08  0:15 ` [001/107] netfilter: ipset: Use proper timeout value to jiffies conversion Greg KH
2011-07-08  0:15 ` [002/107] net: fix ETHTOOL_SFEATURES compatibility with old ethtool_ops.set_flags Greg KH
2011-07-08  0:15 ` [003/107] netfilter: ipset: remove unused variable from type_pf_tdel() Greg KH
2011-07-08  0:15 ` [004/107] netfilter: ipset: fix ip_set_flush return code Greg KH
2011-07-08  0:15 ` [005/107] bug.h: Add WARN_RATELIMIT Greg KH
2011-07-08  0:15 ` [006/107] net: filter: Use WARN_RATELIMIT Greg KH
2011-07-08  0:15 ` [007/107] bug.h: Fix build with CONFIG_PRINTK disabled Greg KH
2011-07-08  0:15 ` [008/107] bug.h: Move ratelimit warn interfaces to ratelimit.h Greg KH
2011-07-08  0:15 ` [009/107] IPVS: bug in ip_vs_ftp, same list heaad used in all netns Greg KH
2011-07-08  0:15 ` [010/107] inetpeer: fix race in unused_list manipulations Greg KH
2011-07-08  0:15 ` [011/107] bridge: provide a cow_metrics method for fake_ops Greg KH
2011-07-08  0:15 ` [012/107] af_packet: prevent information leak Greg KH
2011-07-08  0:15 ` [013/107] inet_diag: fix inet_diag_bc_audit() Greg KH
2011-07-08  0:15 ` [014/107] net/ipv4: Check for mistakenly passed in non-IPv4 address Greg KH
2011-07-08  0:15 ` [015/107] ipv6/udp: Use the correct variable to determine non-blocking condition Greg KH
2011-07-08  0:15 ` [016/107] udp/recvmsg: Clear MSG_TRUNC flag when starting over for a new packet Greg KH
2011-07-08  0:15 ` [017/107] ksm: fix NULL pointer dereference in scan_get_next_rmap_item() Greg KH
2011-07-08  0:15 ` [018/107] drivers/tty/serial/pch_uart.c: dont oops if dmi_get_system_info returns NULL Greg KH
2011-07-08  0:15 ` [019/107] migrate: dont account swapcache as shmem Greg KH
2011-07-08  0:15 ` [020/107] hwmon: (ibmaem) Initialize sysfs attributes Greg KH
2011-07-08  0:15 ` [021/107] hwmon: (s3c) " Greg KH
2011-07-08  0:15 ` [022/107] hwmon: (ibmpex) " Greg KH
2011-07-08  0:15 ` [023/107] Revert "drm/i915: Enable GMBUS for post-gen2 chipsets" Greg KH
2011-07-08  0:15 ` [024/107] drm/radeon/kms/atom: fix duallink on some early DCE3.2 cards Greg KH
2011-07-08  0:15 ` [025/107] drm/radeon/kms: Fix chremap setup on RV770 CE Greg KH
2011-07-08  0:15 ` [026/107] drm/i915: Fix gen6 (SNB) missed BLT ring interrupts Greg KH
2011-07-08  6:13   ` Keith Packard
2011-07-08 14:45     ` Greg KH
2011-07-08  0:15 ` [027/107] drm: populate irq_by_busid-member for pci Greg KH
2011-07-08  0:16 ` [028/107] xen: support CONFIG_MAXSMP Greg KH
2011-07-08  0:16 ` [029/107] xen: partially revert "xen: set max_pfn_mapped to the last pfn mapped" Greg KH
2011-07-08  0:16 ` [030/107] xen/pci: Use the INT_SRC_OVR IRQ (instead of GSI) to preset the ACPI SCI IRQ Greg KH
2011-07-08  0:16 ` [031/107] xen/mmu: Fix for linker errors when CONFIG_SMP is not defined Greg KH
2011-07-08  0:16 ` [032/107] xen/pci: Move check for acpi_sci_override_gsi to xen_setup_acpi_sci Greg KH
2011-07-08  0:16 ` [033/107] clocksource: Make watchdog robust vs. interruption Greg KH
2011-07-08  0:16 ` [034/107] ARM: SAMSUNG: serial: Fix on handling of one clock source for UART Greg KH
2011-07-08  0:16 ` [035/107] TTY: ldisc, do not close until there are readers Greg KH
2011-07-08  0:16 ` [036/107] Connector: Set the CN_NETLINK_USERS correctly Greg KH
2011-07-08  0:16 ` [037/107] Connector: Correctly set the error code in case of success when dispatching receive callbacks Greg KH
2011-07-08  0:16 ` [038/107] xhci: Reject double add of active endpoints Greg KH
2011-07-08  0:16 ` [039/107] xhci: Add reset on resume quirk for asrock p67 host Greg KH
2011-07-08  0:16 ` [040/107] xhci: Always set urb->status to zero for isoc endpoints Greg KH
2011-07-08  0:16 ` [041/107] USB: Free bandwidth when usb_disable_device is called Greg KH
2011-07-08  0:16 ` Greg KH [this message]
2011-07-08  0:16 ` [043/107] mm/memory-failure.c: fix page isolated count mismatch Greg KH
2011-07-08  0:16 ` [044/107] PM: Free memory bitmaps if opening /dev/snapshot fails Greg KH
2011-07-08  0:16 ` [045/107] ath5k: fix memory leak when fewer than N_PD_CURVES are in use Greg KH
2011-07-08  0:16 ` [046/107] ath5k: Disable fast channel switching by default Greg KH
2011-07-08  0:16 ` [047/107] pxa168_eth: fix race in transmit path Greg KH
2011-07-08  6:20   ` Sachin Sanap
2011-07-08 14:43     ` Greg KH
2011-07-08  0:16 ` [048/107] ath9k: Fix suspend/resume when no interface is UP Greg KH
2011-07-08  0:16 ` [049/107] x86, suspend: Restore MISC_ENABLE MSR in realmode wakeup Greg KH
2011-07-08  0:16 ` [050/107] oprofile, x86: Fix race in nmi handler while starting counters Greg KH
2011-07-08  0:16 ` [051/107] mmc: tmio: fix regression in TMIO_MMC_WRPROTECT_DISABLE handling Greg KH
2011-07-08  0:16 ` [052/107] mmc: Add PCI fixup quirks for Ricoh 1180:e823 reader Greg KH
2011-07-08  0:16 ` [053/107] mm: fix negative commitlimit when gigantic hugepages are allocated Greg KH
2011-07-08  0:16 ` [054/107] block: add REQ_SECURE to REQ_COMMON_MASK Greg KH
2011-07-08  0:16 ` [055/107] NFS41: do not update isize if inode needs layoutcommit Greg KH
2011-07-08  0:16 ` [056/107] mm, hotplug: fix error handling in mem_online_node() Greg KH
2011-07-08  0:16 ` [057/107] ALSA: HDA: Remove quirk for an HP device Greg KH
2011-07-08  0:16 ` [058/107] ALSA: HDA: Add a new Conexant codec ID (506c) Greg KH
2011-07-08  0:16 ` [059/107] [media] rc: fix ghost keypresses with certain hw Greg KH
2011-07-08  0:16 ` [060/107] [media] lirc_zilog: fix spinning rx thread Greg KH
2011-07-08  0:16 ` [061/107] [media] keymaps: fix table for pinnacle pctv hd devices Greg KH
2011-07-08  0:16 ` [062/107] [media] uvcvideo: Remove buffers from the queues when freeing Greg KH
2011-07-08  0:16 ` [063/107] [media] ite-cir: 8709 needs to use pnp resource 2 Greg KH
2011-07-08  0:16 ` [064/107] watchdog: mtx1-wdt: request gpio before using it Greg KH
2011-07-08  0:16 ` [065/107] nfsd: v4 support requires CRYPTO Greg KH
2011-07-08  0:16 ` [066/107] nfsd: fix dependency of nfsd on auth_rpcgss Greg KH
2011-07-08  0:16 ` [067/107] nfsd: link returns nfserr_delay when breaking lease Greg KH
2011-07-08  0:16 ` [068/107] nfsd4: fix break_lease flags on nfsd open Greg KH
2011-07-08  0:16 ` [069/107] NFSv4.1: allow nfs_fhget to succeed with mounted on fileid Greg KH
2011-07-08  0:16 ` [070/107] NFSv4.1: allow zero fh array in filelayout decode layout Greg KH
2011-07-08  0:16 ` [071/107] NFSv4: Fix a readdir regression Greg KH
2011-07-08  0:16 ` [072/107] Input: properly assign return value of clamp() macro Greg KH
2011-07-08  0:16 ` [073/107] debugobjects: Fix boot crash when kmemleak and debugobjects enabled Greg KH
2011-07-08  0:16 ` [074/107] cfq-iosched: fix locking around ioc->ioc_data assignment Greg KH
2011-07-08  0:16 ` [075/107] cfq-iosched: fix a rcu warning Greg KH
2011-07-08  0:16 ` [076/107] cfq-iosched: make code consistent Greg KH
2011-07-08  0:16 ` [077/107] block: use the passed in @bdev when claiming if partno is zero Greg KH
2011-07-08  0:16 ` [078/107] PCI / PM: Block races between runtime PM and system sleep Greg KH
2011-07-08  0:16 ` [079/107] PM: Rename dev_pm_info.in_suspend to is_prepared Greg KH
2011-07-08  0:16 ` [080/107] PM: Fix async resume following suspend failure Greg KH
2011-07-08  0:16 ` [081/107] PM / Hibernate: Fix free_unnecessary_pages() Greg KH
2011-07-08  0:16 ` [082/107] KEYS: Fix error handling in construct_key_and_link() Greg KH
2011-07-08  0:16 ` [083/107] i2c-taos-evm: Fix log messages Greg KH
2011-07-08  0:16 ` [084/107] i2c/pca954x: Initialize the mux to disconnected state Greg KH
2011-07-08  0:16 ` [085/107] hfsplus: add missing call to bio_put() Greg KH
2011-07-08  0:16 ` [086/107] md: avoid endless recovery loop when waiting for fail device to complete Greg KH
2011-07-08  0:16 ` [087/107] SUNRPC: Ensure the RPC client only quits on fatal signals Greg KH
2011-07-08  0:17 ` [088/107] ASoC: pxa-ssp: Correct check for stream presence Greg KH
2011-07-08  0:17 ` [089/107] drivers/base/platform.c: dont mark platform_device_register_resndata() as __init_or_module Greg KH
2011-07-08  6:47   ` Uwe Kleine-König
2011-07-08 14:43     ` Greg KH
2011-07-08  0:17 ` [090/107] fs: fix lock initialization Greg KH
2011-07-08  0:17 ` [091/107] FS-Cache: Add a helper to bulk uncache pages on an inode Greg KH
2011-07-08  0:17 ` [092/107] 6pack,mkiss: fix lock inconsistency Greg KH
2011-07-08  0:17 ` [093/107] iwlagn: fix change_interface for P2P types Greg KH
2011-07-08  0:17 ` [094/107] drivers/misc/lkdtm.c: fix race when crashpoint is hit multiple times before checking count Greg KH
2011-07-08  0:17 ` [095/107] taskstats: dont allow duplicate entries in listener mode Greg KH
2011-07-08  0:17 ` [096/107] Fix CPU spinlock lockups on secondary CPU bringup Greg KH
2011-07-08  0:17 ` [097/107] NLM: Dont hang forever on NLM unlock requests Greg KH
2011-07-08  0:17 ` [098/107] USB: dont let errors prevent system sleep Greg KH
2011-07-08  0:17 ` [099/107] USB: dont let the hub driver " Greg KH
2011-07-08  0:17 ` [100/107] USB: fix regression occurring during device removal Greg KH
2011-07-08  0:17 ` [101/107] ipv4: fix multicast losses Greg KH
2011-07-08  0:17 ` [102/107] netfilter: Fix ip_route_me_harder triggering ip_rt_bug Greg KH
2011-07-08  0:17 ` [103/107] vlan: fix typo in vlan_dev_hard_start_xmit() Greg KH
2011-07-08  0:17 ` [104/107] xfrm: Fix off by one in the replay advance functions Greg KH
2011-07-08  0:17 ` [105/107] Revert "KVM: Save/restore state of assigned PCI device" Greg KH
2011-07-08  0:17 ` [106/107] KVM: Fix register corruption in pvclock_scale_delta Greg KH
2011-07-08  0:17 ` [107/107] IPVS netns exit causes crash in conntrack Greg KH
2011-07-08  2:06 ` [000/107] 2.6.39.3 review Stefan Lippers-Hollmann
2011-07-08  2:49   ` Greg KH
2011-07-08  2:53   ` Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110708001656.787329272@clark.kroah.org \
    --to=gregkh@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=bon@elektron.ikp.physik.tu-darmstadt.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable-review@kernel.org \
    --cc=stable@kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®