diff options
| author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-04-25 17:33:56 -0700 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-04-25 17:33:56 -0700 |
| commit | 88adffc3e35c78e479a0fe2cc90fd2c015734402 (patch) | |
| tree | f71173491cd782dd95725eb9d2586a81b32c0d43 | |
| parent | 8aef04ebc13cf717d1dcdc0ddd598303f240263a (diff) | |
| download | patches-88adffc3e35c78e479a0fe2cc90fd2c015734402.tar.gz | |
drop some obsolete patches
| -rw-r--r-- | driver.patch | 461 | ||||
| -rw-r--r-- | mce2.patch | 110 | ||||
| -rw-r--r-- | samsung-laptop.c-support-for-rv420-rv520-rv720-e3530-s3530-e3420-e3520.patch | 35 | ||||
| -rw-r--r-- | series | 3 |
4 files changed, 0 insertions, 609 deletions
diff --git a/driver.patch b/driver.patch deleted file mode 100644 index 39164ed36119b2..00000000000000 --- a/driver.patch +++ /dev/null @@ -1,461 +0,0 @@ ---- - drivers/usb/serial/Kconfig | 9 - drivers/usb/serial/Makefile | 1 - drivers/usb/serial/f81232.c | 424 ++++++++++++++++++++++++++++++++++++++++++++ - 3 files changed, 434 insertions(+) - ---- a/drivers/usb/serial/Kconfig -+++ b/drivers/usb/serial/Kconfig -@@ -238,6 +238,15 @@ config USB_SERIAL_EDGEPORT_TI - To compile this driver as a module, choose M here: the - module will be called io_ti. - -+config USB_SERIAL_F81232 -+ tristate "USB Fintek F81232 Single Port Serial Driver" -+ help -+ Say Y here if you want to use the Fintek F81232 single -+ port usb to serial adapter. -+ -+ To compile this driver as a module, choose M here: the -+ module will be called f81232. -+ - config USB_SERIAL_GARMIN - tristate "USB Garmin GPS driver" - help ---- a/drivers/usb/serial/Makefile -+++ b/drivers/usb/serial/Makefile -@@ -23,6 +23,7 @@ obj-$(CONFIG_USB_SERIAL_DIGI_ACCELEPORT) - obj-$(CONFIG_USB_SERIAL_EDGEPORT) += io_edgeport.o - obj-$(CONFIG_USB_SERIAL_EDGEPORT_TI) += io_ti.o - obj-$(CONFIG_USB_SERIAL_EMPEG) += empeg.o -+obj-$(CONFIG_USB_SERIAL_F81232) += f81232.o - obj-$(CONFIG_USB_SERIAL_FTDI_SIO) += ftdi_sio.o - obj-$(CONFIG_USB_SERIAL_FUNSOFT) += funsoft.o - obj-$(CONFIG_USB_SERIAL_GARMIN) += garmin_gps.o ---- /dev/null -+++ b/drivers/usb/serial/f81232.c -@@ -0,0 +1,424 @@ -+/* -+ * Fintek F81232 USB to serial adaptor driver -+ * -+ * Copyright (C) 2012 Greg Kroah-Hartman (gregkh@linuxfoundation.org) -+ * Copyright (C) 2012 Linux Foundation -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 as published by -+ * the Free Software Foundation. -+ * -+ */ -+ -+#include <linux/kernel.h> -+#include <linux/errno.h> -+#include <linux/init.h> -+#include <linux/slab.h> -+#include <linux/tty.h> -+#include <linux/tty_driver.h> -+#include <linux/tty_flip.h> -+#include <linux/serial.h> -+#include <linux/module.h> -+#include <linux/moduleparam.h> -+#include <linux/spinlock.h> -+#include <linux/uaccess.h> -+#include <linux/usb.h> -+#include <linux/usb/serial.h> -+ -+static bool debug; -+ -+static const struct usb_device_id id_table[] = { -+ { USB_DEVICE(0x1934, 0x0706) }, -+ { } /* Terminating entry */ -+}; -+MODULE_DEVICE_TABLE(usb, id_table); -+ -+#define CONTROL_DTR 0x01 -+#define CONTROL_RTS 0x02 -+ -+#define UART_STATE 0x08 -+#define UART_STATE_TRANSIENT_MASK 0x74 -+#define UART_DCD 0x01 -+#define UART_DSR 0x02 -+#define UART_BREAK_ERROR 0x04 -+#define UART_RING 0x08 -+#define UART_FRAME_ERROR 0x10 -+#define UART_PARITY_ERROR 0x20 -+#define UART_OVERRUN_ERROR 0x40 -+#define UART_CTS 0x80 -+ -+struct f81232_private { -+ spinlock_t lock; -+ wait_queue_head_t delta_msr_wait; -+ u8 line_control; -+ u8 line_status; -+}; -+ -+static void f81232_update_line_status(struct usb_serial_port *port, -+ unsigned char *data, -+ unsigned int actual_length) -+{ -+} -+ -+static void f81232_read_int_callback(struct urb *urb) -+{ -+ struct usb_serial_port *port = urb->context; -+ unsigned char *data = urb->transfer_buffer; -+ unsigned int actual_length = urb->actual_length; -+ int status = urb->status; -+ int retval; -+ -+ dbg("%s (%d)", __func__, port->number); -+ -+ switch (status) { -+ case 0: -+ /* success */ -+ break; -+ case -ECONNRESET: -+ case -ENOENT: -+ case -ESHUTDOWN: -+ /* this urb is terminated, clean up */ -+ dbg("%s - urb shutting down with status: %d", __func__, -+ status); -+ return; -+ default: -+ dbg("%s - nonzero urb status received: %d", __func__, -+ status); -+ goto exit; -+ } -+ -+ usb_serial_debug_data(debug, &port->dev, __func__, -+ urb->actual_length, urb->transfer_buffer); -+ -+ f81232_update_line_status(port, data, actual_length); -+ -+exit: -+ retval = usb_submit_urb(urb, GFP_ATOMIC); -+ if (retval) -+ dev_err(&urb->dev->dev, -+ "%s - usb_submit_urb failed with result %d\n", -+ __func__, retval); -+} -+ -+static void f81232_process_read_urb(struct urb *urb) -+{ -+ struct usb_serial_port *port = urb->context; -+ struct f81232_private *priv = usb_get_serial_port_data(port); -+ struct tty_struct *tty; -+ unsigned char *data = urb->transfer_buffer; -+ char tty_flag = TTY_NORMAL; -+ unsigned long flags; -+ u8 line_status; -+ int i; -+ -+ /* update line status */ -+ spin_lock_irqsave(&priv->lock, flags); -+ line_status = priv->line_status; -+ priv->line_status &= ~UART_STATE_TRANSIENT_MASK; -+ spin_unlock_irqrestore(&priv->lock, flags); -+ wake_up_interruptible(&priv->delta_msr_wait); -+ -+ if (!urb->actual_length) -+ return; -+ -+ tty = tty_port_tty_get(&port->port); -+ if (!tty) -+ return; -+ -+ /* break takes precedence over parity, */ -+ /* which takes precedence over framing errors */ -+ if (line_status & UART_BREAK_ERROR) -+ tty_flag = TTY_BREAK; -+ else if (line_status & UART_PARITY_ERROR) -+ tty_flag = TTY_PARITY; -+ else if (line_status & UART_FRAME_ERROR) -+ tty_flag = TTY_FRAME; -+ dbg("%s - tty_flag = %d", __func__, tty_flag); -+ -+ /* overrun is special, not associated with a char */ -+ if (line_status & UART_OVERRUN_ERROR) -+ tty_insert_flip_char(tty, 0, TTY_OVERRUN); -+ -+ if (port->port.console && port->sysrq) { -+ for (i = 0; i < urb->actual_length; ++i) -+ if (!usb_serial_handle_sysrq_char(port, data[i])) -+ tty_insert_flip_char(tty, data[i], tty_flag); -+ } else { -+ tty_insert_flip_string_fixed_flag(tty, data, tty_flag, -+ urb->actual_length); -+ } -+ -+ tty_flip_buffer_push(tty); -+ tty_kref_put(tty); -+} -+ -+static int set_control_lines(struct usb_device *dev, u8 value) -+{ -+ /* FIXME - Stubbed out for now */ -+ return 0; -+} -+ -+static void f81232_break_ctl(struct tty_struct *tty, int break_state) -+{ -+ /* FIXME - Stubbed out for now */ -+ -+ /* -+ * break_state = -1 to turn on break, and 0 to turn off break -+ * see drivers/char/tty_io.c to see it used. -+ * last_set_data_urb_value NEVER has the break bit set in it. -+ */ -+} -+ -+static void f81232_set_termios(struct tty_struct *tty, -+ struct usb_serial_port *port, struct ktermios *old_termios) -+{ -+ /* FIXME - Stubbed out for now */ -+ -+ /* Don't change anything if nothing has changed */ -+ if (!tty_termios_hw_change(tty->termios, old_termios)) -+ return; -+ -+ /* Do the real work here... */ -+} -+ -+static int f81232_tiocmget(struct tty_struct *tty) -+{ -+ /* FIXME - Stubbed out for now */ -+ return 0; -+} -+ -+static int f81232_tiocmset(struct tty_struct *tty, -+ unsigned int set, unsigned int clear) -+{ -+ /* FIXME - Stubbed out for now */ -+ return 0; -+} -+ -+static int f81232_open(struct tty_struct *tty, struct usb_serial_port *port) -+{ -+ struct ktermios tmp_termios; -+ int result; -+ -+ /* Setup termios */ -+ if (tty) -+ f81232_set_termios(tty, port, &tmp_termios); -+ -+ dbg("%s - submitting interrupt urb", __func__); -+ result = usb_submit_urb(port->interrupt_in_urb, GFP_KERNEL); -+ if (result) { -+ dev_err(&port->dev, "%s - failed submitting interrupt urb," -+ " error %d\n", __func__, result); -+ return result; -+ } -+ -+ result = usb_serial_generic_open(tty, port); -+ if (result) { -+ usb_kill_urb(port->interrupt_in_urb); -+ return result; -+ } -+ -+ port->port.drain_delay = 256; -+ return 0; -+} -+ -+static void f81232_close(struct usb_serial_port *port) -+{ -+ usb_serial_generic_close(port); -+ usb_kill_urb(port->interrupt_in_urb); -+} -+ -+static void f81232_dtr_rts(struct usb_serial_port *port, int on) -+{ -+ struct f81232_private *priv = usb_get_serial_port_data(port); -+ unsigned long flags; -+ u8 control; -+ -+ spin_lock_irqsave(&priv->lock, flags); -+ /* Change DTR and RTS */ -+ if (on) -+ priv->line_control |= (CONTROL_DTR | CONTROL_RTS); -+ else -+ priv->line_control &= ~(CONTROL_DTR | CONTROL_RTS); -+ control = priv->line_control; -+ spin_unlock_irqrestore(&priv->lock, flags); -+ set_control_lines(port->serial->dev, control); -+} -+ -+static int f81232_carrier_raised(struct usb_serial_port *port) -+{ -+ struct f81232_private *priv = usb_get_serial_port_data(port); -+ if (priv->line_status & UART_DCD) -+ return 1; -+ return 0; -+} -+ -+static int wait_modem_info(struct usb_serial_port *port, unsigned int arg) -+{ -+ struct f81232_private *priv = usb_get_serial_port_data(port); -+ unsigned long flags; -+ unsigned int prevstatus; -+ unsigned int status; -+ unsigned int changed; -+ -+ spin_lock_irqsave(&priv->lock, flags); -+ prevstatus = priv->line_status; -+ spin_unlock_irqrestore(&priv->lock, flags); -+ -+ while (1) { -+ interruptible_sleep_on(&priv->delta_msr_wait); -+ /* see if a signal did it */ -+ if (signal_pending(current)) -+ return -ERESTARTSYS; -+ -+ spin_lock_irqsave(&priv->lock, flags); -+ status = priv->line_status; -+ spin_unlock_irqrestore(&priv->lock, flags); -+ -+ changed = prevstatus ^ status; -+ -+ if (((arg & TIOCM_RNG) && (changed & UART_RING)) || -+ ((arg & TIOCM_DSR) && (changed & UART_DSR)) || -+ ((arg & TIOCM_CD) && (changed & UART_DCD)) || -+ ((arg & TIOCM_CTS) && (changed & UART_CTS))) { -+ return 0; -+ } -+ prevstatus = status; -+ } -+ /* NOTREACHED */ -+ return 0; -+} -+ -+static int f81232_ioctl(struct tty_struct *tty, -+ unsigned int cmd, unsigned long arg) -+{ -+ struct serial_struct ser; -+ struct usb_serial_port *port = tty->driver_data; -+ dbg("%s (%d) cmd = 0x%04x", __func__, port->number, cmd); -+ -+ switch (cmd) { -+ case TIOCGSERIAL: -+ memset(&ser, 0, sizeof ser); -+ ser.type = PORT_16654; -+ ser.line = port->serial->minor; -+ ser.port = port->number; -+ ser.baud_base = 460800; -+ -+ if (copy_to_user((void __user *)arg, &ser, sizeof ser)) -+ return -EFAULT; -+ -+ return 0; -+ -+ case TIOCMIWAIT: -+ dbg("%s (%d) TIOCMIWAIT", __func__, port->number); -+ return wait_modem_info(port, arg); -+ default: -+ dbg("%s not supported = 0x%04x", __func__, cmd); -+ break; -+ } -+ return -ENOIOCTLCMD; -+} -+ -+static int f81232_startup(struct usb_serial *serial) -+{ -+ struct f81232_private *priv; -+ int i; -+ -+ for (i = 0; i < serial->num_ports; ++i) { -+ priv = kzalloc(sizeof(struct f81232_private), GFP_KERNEL); -+ if (!priv) -+ goto cleanup; -+ spin_lock_init(&priv->lock); -+ init_waitqueue_head(&priv->delta_msr_wait); -+ usb_set_serial_port_data(serial->port[i], priv); -+ } -+ return 0; -+ -+cleanup: -+ for (--i; i >= 0; --i) { -+ priv = usb_get_serial_port_data(serial->port[i]); -+ kfree(priv); -+ usb_set_serial_port_data(serial->port[i], NULL); -+ } -+ return -ENOMEM; -+} -+ -+static void f81232_release(struct usb_serial *serial) -+{ -+ int i; -+ struct f81232_private *priv; -+ -+ for (i = 0; i < serial->num_ports; ++i) { -+ priv = usb_get_serial_port_data(serial->port[i]); -+ kfree(priv); -+ } -+} -+ -+static struct usb_driver f81232_driver = { -+ .name = "f81232", -+ .probe = usb_serial_probe, -+ .disconnect = usb_serial_disconnect, -+ .id_table = id_table, -+ .suspend = usb_serial_suspend, -+ .resume = usb_serial_resume, -+ .no_dynamic_id = 1, -+ .supports_autosuspend = 1, -+}; -+ -+static struct usb_serial_driver f81232_device = { -+ .driver = { -+ .owner = THIS_MODULE, -+ .name = "f81232", -+ }, -+ .id_table = id_table, -+ .usb_driver = &f81232_driver, -+ .num_ports = 1, -+ .bulk_in_size = 256, -+ .bulk_out_size = 256, -+ .open = f81232_open, -+ .close = f81232_close, -+ .dtr_rts = f81232_dtr_rts, -+ .carrier_raised = f81232_carrier_raised, -+ .ioctl = f81232_ioctl, -+ .break_ctl = f81232_break_ctl, -+ .set_termios = f81232_set_termios, -+ .tiocmget = f81232_tiocmget, -+ .tiocmset = f81232_tiocmset, -+ .process_read_urb = f81232_process_read_urb, -+ .read_int_callback = f81232_read_int_callback, -+ .attach = f81232_startup, -+ .release = f81232_release, -+}; -+ -+static int __init f81232_init(void) -+{ -+ int retval; -+ -+ retval = usb_serial_register(&f81232_device); -+ if (retval) -+ goto failed_usb_serial_register; -+ retval = usb_register(&f81232_driver); -+ if (retval) -+ goto failed_usb_register; -+ return 0; -+failed_usb_register: -+ usb_serial_deregister(&f81232_device); -+failed_usb_serial_register: -+ return retval; -+} -+ -+static void __exit f81232_exit(void) -+{ -+ usb_deregister(&f81232_driver); -+ usb_serial_deregister(&f81232_device); -+} -+ -+module_init(f81232_init); -+module_exit(f81232_exit); -+ -+MODULE_DESCRIPTION("Fintek F81232 USB to serial adaptor driver"); -+MODULE_AUTHOR("Greg Kroah-Hartman <gregkh@linuxfoundation.org"); -+MODULE_LICENSE("GPL v2"); -+ -+module_param(debug, bool, S_IRUGO | S_IWUSR); -+MODULE_PARM_DESC(debug, "Debug enabled or not"); -+ diff --git a/mce2.patch b/mce2.patch deleted file mode 100644 index 1a6cdf38c016e7..00000000000000 --- a/mce2.patch +++ /dev/null @@ -1,110 +0,0 @@ -From foo@baz Thu Jan 26 15:46:52 PST 2012 -Date: Thu, 26 Jan 2012 15:46:52 -0800 -To: Greg KH <greg@kroah.com> -From: Greg Kroah-Hartman <gregkh@suse.de> -Subject: MCE: convert static array of pointers to per-cpu variables - -When I previously fixed up the mce_device code, I used a static array of -the pointers. It was (rightfully) pointed out to me that I should be -using the per_cpu code instead. - -This patch converts the code over to that structure, moving the variable -back into the per_cpu area, like it used to be for 3.2 and earlier. - - -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - -diff --git a/arch/x86/include/asm/mce.h b/arch/x86/include/asm/mce.h -index 6aefb14..441520e 100644 ---- a/arch/x86/include/asm/mce.h -+++ b/arch/x86/include/asm/mce.h -@@ -151,7 +151,7 @@ static inline void enable_p5_mce(void) {} - - void mce_setup(struct mce *m); - void mce_log(struct mce *m); --extern struct device *mce_device[CONFIG_NR_CPUS]; -+DECLARE_PER_CPU(struct device *, mce_device); - - /* - * Maximum banks number. -diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c -index 5a11ae2..4979a5d 100644 ---- a/arch/x86/kernel/cpu/mcheck/mce.c -+++ b/arch/x86/kernel/cpu/mcheck/mce.c -@@ -1859,7 +1859,7 @@ static struct bus_type mce_subsys = { - .dev_name = "machinecheck", - }; - --struct device *mce_device[CONFIG_NR_CPUS]; -+DEFINE_PER_CPU(struct device *, mce_device); - - __cpuinitdata - void (*threshold_cpu_callback)(unsigned long action, unsigned int cpu); -@@ -2038,7 +2038,7 @@ static __cpuinit int mce_device_create(unsigned int cpu) - goto error2; - } - cpumask_set_cpu(cpu, mce_device_initialized); -- mce_device[cpu] = dev; -+ per_cpu(mce_device, cpu) = dev; - - return 0; - error2: -@@ -2055,7 +2055,7 @@ error: - - static __cpuinit void mce_device_remove(unsigned int cpu) - { -- struct device *dev = mce_device[cpu]; -+ struct device *dev = per_cpu(mce_device, cpu); - int i; - - if (!cpumask_test_cpu(cpu, mce_device_initialized)) -@@ -2069,7 +2069,7 @@ static __cpuinit void mce_device_remove(unsigned int cpu) - - device_unregister(dev); - cpumask_clear_cpu(cpu, mce_device_initialized); -- mce_device[cpu] = NULL; -+ per_cpu(mce_device, cpu) = NULL; - } - - /* Make sure there are no machine checks on offlined CPUs. */ -diff --git a/arch/x86/kernel/cpu/mcheck/mce_amd.c b/arch/x86/kernel/cpu/mcheck/mce_amd.c -index 786e76a..a4bf9d2 100644 ---- a/arch/x86/kernel/cpu/mcheck/mce_amd.c -+++ b/arch/x86/kernel/cpu/mcheck/mce_amd.c -@@ -523,7 +523,7 @@ static __cpuinit int threshold_create_bank(unsigned int cpu, unsigned int bank) - { - int i, err = 0; - struct threshold_bank *b = NULL; -- struct device *dev = mce_device[cpu]; -+ struct device *dev = per_cpu(mce_device, cpu); - char name[32]; - - sprintf(name, "threshold_bank%i", bank); -@@ -585,7 +585,7 @@ static __cpuinit int threshold_create_bank(unsigned int cpu, unsigned int bank) - if (i == cpu) - continue; - -- dev = mce_device[i]; -+ dev = per_cpu(mce_device, i); - if (dev) - err = sysfs_create_link(&dev->kobj,b->kobj, name); - if (err) -@@ -665,7 +665,8 @@ static void threshold_remove_bank(unsigned int cpu, int bank) - #ifdef CONFIG_SMP - /* sibling symlink */ - if (shared_bank[bank] && b->blocks->cpu != cpu) { -- sysfs_remove_link(&mce_device[cpu]->kobj, name); -+ dev = per_cpu(mce_device, cpu); -+ sysfs_remove_link(&dev->kobj, name); - per_cpu(threshold_banks, cpu)[bank] = NULL; - - return; -@@ -677,7 +678,7 @@ static void threshold_remove_bank(unsigned int cpu, int bank) - if (i == cpu) - continue; - -- dev = mce_device[i]; -+ dev = per_cpu(mce_device, i); - if (dev) - sysfs_remove_link(&dev->kobj, name); - per_cpu(threshold_banks, i)[bank] = NULL; diff --git a/samsung-laptop.c-support-for-rv420-rv520-rv720-e3530-s3530-e3420-e3520.patch b/samsung-laptop.c-support-for-rv420-rv520-rv720-e3530-s3530-e3420-e3520.patch deleted file mode 100644 index 59e1ebc27c011d..00000000000000 --- a/samsung-laptop.c-support-for-rv420-rv520-rv720-e3530-s3530-e3420-e3520.patch +++ /dev/null @@ -1,35 +0,0 @@ -From berggian@gmail.com Tue Nov 8 15:06:43 2011 -Date: Wed, 9 Nov 2011 00:06:41 +0100 -Message-ID: <CAD_R4=32=5gaU_OhNaM_b3-uX=G_mRFkn4Hrkn9WTT=Z+GY86g@mail.gmail.com> -Subject: [PATCH] samsung-laptop.c: support for RV420/RV520/RV720/E3530/S3530/E3420/E3520 -From: Gianni Bergamo <berggian@gmail.com> -To: Greg KH <gregkh@suse.de> - -This patch adds support for RV420/RV520/RV720/E3530/S3530/E3420/E3520 -samsung laptops. Tested on 3.0.8 kernel. - -Signed-off-by: Gianni Bergamo <berggian@gmail.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/platform/x86/samsung-laptop.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - ---- a/drivers/platform/x86/samsung-laptop.c -+++ b/drivers/platform/x86/samsung-laptop.c -@@ -780,6 +780,15 @@ static struct dmi_system_id __initdata s - }, - .callback = dmi_check_cb, - }, -+ { -+ .ident = "RV420/RV520/RV720/E3530/S3530/E3420/E3520", -+ .matches = { -+ DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), -+ DMI_MATCH(DMI_PRODUCT_NAME, "RV420/RV520/RV720/E3530/S3530/E3420/E3520"), -+ DMI_MATCH(DMI_BOARD_NAME, "RV420/RV520/RV720/E3530/S3530/E3420/E3520"), -+ }, -+ .callback = dmi_check_cb, -+ }, - { }, - }; - MODULE_DEVICE_TABLE(dmi, samsung_dmi_table); @@ -4,8 +4,6 @@ usb-remove-config_usb_device_class.patch printk.patch ipaq.patch visor.patch -driver.patch -mce2.patch gregkh/gkh-version.patch ##################################################################### @@ -52,4 +50,3 @@ gregkh/gkh-version.patch # staging stuff for next is now in the staging-next tree on git.kernel.org -samsung-laptop.c-support-for-rv420-rv520-rv720-e3530-s3530-e3420-e3520.patch |
