Signed-off-by: Ian Abbott <[EMAIL PROTECTED]>
diff -ur b/drivers/usb/serial/ftdi_sio.c c/drivers/usb/serial/ftdi_sio.c --- b/drivers/usb/serial/ftdi_sio.c 2005-03-29 11:42:14.000000000 +0100 +++ c/drivers/usb/serial/ftdi_sio.c 2005-03-29 12:00:37.000000000 +0100 @@ -1282,10 +1282,14 @@ priv = usb_get_serial_port_data(serial->port[0]); udev = serial->dev; - if (priv->chip_type == FT232BM) { - dbg("sysfs attributes for FT232BM"); + /* XXX I've no idea if the original SIO supports the event_char + * sysfs parameter, so I'm playing it safe. */ + if (priv->chip_type != SIO) { + dbg("sysfs attributes for %s", ftdi_chip_name[priv->chip_type]); device_create_file(&udev->dev, &dev_attr_event_char); - device_create_file(&udev->dev, &dev_attr_latency_timer); + if (priv->chip_type == FT232BM || priv->chip_type == FT2232C) { + device_create_file(&udev->dev, &dev_attr_latency_timer); + } } } @@ -1299,9 +1303,12 @@ priv = usb_get_serial_port_data(serial->port[0]); udev = serial->dev; - if (priv->chip_type == FT232BM) { + /* XXX see create_sysfs_attrs */ + if (priv->chip_type != SIO) { device_remove_file(&udev->dev, &dev_attr_event_char); - device_remove_file(&udev->dev, &dev_attr_latency_timer); + if (priv->chip_type == FT232BM || priv->chip_type == FT2232C) { + device_remove_file(&udev->dev, &dev_attr_latency_timer); + } } } @@ -1403,6 +1410,8 @@ priv->chip_type = FT8U232AM; priv->baud_base = 48000000 / 2; /* Would be / 16, but FTDI supports 0.125, 0.25 and 0.5 divisor fractions! */ + create_sysfs_attrs(serial); + return (0); } /* ftdi_8U232AM_startup */ @@ -1454,6 +1463,8 @@ } priv->baud_base = 48000000 / 2; /* Would be / 16, but FT2232C supports multiple of 0.125 divisor fractions! */ + create_sysfs_attrs(serial); + return (0); } /* ftdi_FT2232C_startup */