linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Alan Cox <alan@linux.intel.com>
Cc: linux-i2c@vger.kernel.org, khali@linux-fr.org,
	linux-input@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: your mail
Date: Wed, 14 Apr 2010 16:16:04 -0700	[thread overview]
Message-ID: <20100414231604.GA12281@core.coreip.homeip.net> (raw)
In-Reply-To: <20100414125234.23507.42816.stgit@localhost.localdomain>

On Wed, Apr 14, 2010 at 01:54:02PM +0100, Alan Cox wrote:
> Subject: [FOR COMMENT] cy8ctmg110 for review
> 
> From: Samuli Konttila <samuli.konttila@aavamobile.com>
> 
> Add support for the cy8ctmg110 capacitive touchscreen used on some embedded
> devices.
> 
> (Some clean up by Alan Cox)
> 
> (No signed off, not yet ready to go in)
> ---
> 
>  drivers/input/touchscreen/Kconfig         |   12 +
>  drivers/input/touchscreen/Makefile        |    3 
>  drivers/input/touchscreen/cy8ctmg110_ts.c |  521 +++++++++++++++++++++++++++++
>  3 files changed, 535 insertions(+), 1 deletions(-)
>  create mode 100644 drivers/input/touchscreen/cy8ctmg110_ts.c
> 
> 
> diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig
> index b3ba374..89a3eb1 100644
> --- a/drivers/input/touchscreen/Kconfig
> +++ b/drivers/input/touchscreen/Kconfig
> @@ -591,4 +591,16 @@ config TOUCHSCREEN_TPS6507X
>  	  To compile this driver as a module, choose M here: the
>  	  module will be called tps6507x_ts.
>  
> +config TOUCHSCREEN_CY8CTMG110
> +	tristate "cy8ctmg110 touchscreen"
> +	depends on I2C
> +	help
> +	  Say Y here if you have a cy8ctmg110 touchscreen capacitive
> +	  touchscreen
> +
> +	  If unsure, say N.
> +
> +	  To compile this driver as a module, choose M here: the
> +	  module will be called cy8ctmg110_ts.
> +
>  endif
> diff --git a/drivers/input/touchscreen/Makefile b/drivers/input/touchscreen/Makefile
> index dfb7239..c7acb65 100644
> --- a/drivers/input/touchscreen/Makefile
> +++ b/drivers/input/touchscreen/Makefile
> @@ -1,5 +1,5 @@
>  #
> -# Makefile for the touchscreen drivers.
> +# Makefile for the touchscreen drivers.mororor
>  #
>  
>  # Each configuration option enables a list of files.
> @@ -12,6 +12,7 @@ obj-$(CONFIG_TOUCHSCREEN_AD7879)	+= ad7879.o
>  obj-$(CONFIG_TOUCHSCREEN_ADS7846)	+= ads7846.o
>  obj-$(CONFIG_TOUCHSCREEN_ATMEL_TSADCC)	+= atmel_tsadcc.o
>  obj-$(CONFIG_TOUCHSCREEN_BITSY)		+= h3600_ts_input.o
> +obj-$(CONFIG_TOUCHSCREEN_CY8CTMG110)    += cy8ctmg110_ts.o
>  obj-$(CONFIG_TOUCHSCREEN_DYNAPRO)	+= dynapro.o
>  obj-$(CONFIG_TOUCHSCREEN_GUNZE)		+= gunze.o
>  obj-$(CONFIG_TOUCHSCREEN_EETI)		+= eeti_ts.o
> diff --git a/drivers/input/touchscreen/cy8ctmg110_ts.c b/drivers/input/touchscreen/cy8ctmg110_ts.c
> new file mode 100644
> index 0000000..4adbe87
> --- /dev/null
> +++ b/drivers/input/touchscreen/cy8ctmg110_ts.c
> @@ -0,0 +1,521 @@
> +/*
> + * cy8ctmg110_ts.c Driver for cypress touch screen controller
> + * Copyright (c) 2009 Aava Mobile
> + *
> + * 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.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
> + */
> +
> +#include <linux/module.h>
> +#include <linux/kernel.h>
> +#include <linux/input.h>
> +#include <linux/slab.h>
> +#include <linux/interrupt.h>
> +#include <asm/io.h>
> +#include <linux/i2c.h>
> +#include <linux/timer.h>
> +#include <linux/gpio.h>
> +#include <linux/hrtimer.h>
> +
> +#include <linux/platform_device.h>
> +#include <linux/delay.h>
> +#include <linux/fs.h>
> +#include <asm/ioctl.h>
> +#include <asm/uaccess.h>
> +#include <linux/device.h>
> +#include <linux/module.h>
> +#include <linux/platform_device.h>
> +#include <linux/delay.h>
> +#include <linux/fs.h>
> +#include <asm/ioctl.h>
> +#include <linux/fs.h>
> +#include <linux/init.h>
> +#include <linux/miscdevice.h>
> +#include <linux/module.h>
> +
> +
> +#define CY8CTMG110_DRIVER_NAME      "cy8ctmg110"
> +
> +
> +/*HW definations*/
> +#define CY8CTMG110_RESET_PIN_GPIO   43
> +#define CY8CTMG110_IRQ_PIN_GPIO     59
> +#define CY8CTMG110_I2C_ADDR         0x38
> +#define CY8CTMG110_I2C_ADDR_EXT     0x39
> +#define CY8CTMG110_I2C_ADDR_        0x2	/*i2c address first sample */
> +#define CY8CTMG110_I2C_ADDR__       53	/*i2c address to FW where irq support missing */
> +#define CY8CTMG110_TOUCH_IRQ        21
> +#define CY8CTMG110_TOUCH_LENGHT     9787
> +#define CY8CTMG110_SCREEN_LENGHT    8424
> +
> +
> +/*Touch coordinates*/
> +#define CY8CTMG110_X_MIN        0
> +#define CY8CTMG110_Y_MIN        0
> +#define CY8CTMG110_X_MAX        864
> +#define CY8CTMG110_Y_MAX        480
> +
> +
> +/*cy8ctmg110 registers defination*/
> +#define CY8CTMG110_TOUCH_WAKEUP_TIME   0
> +#define CY8CTMG110_TOUCH_SLEEP_TIME    2
> +#define CY8CTMG110_TOUCH_X1            3
> +#define CY8CTMG110_TOUCH_Y1            5
> +#define CY8CTMG110_TOUCH_X2            7
> +#define CY8CTMG110_TOUCH_Y2            9
> +#define CY8CTMG110_FINGERS             11
> +#define CY8CTMG110_GESTURE             12
> +#define CY8CTMG110_REG_MAX             13
> +
> +#define CY8CTMG110_POLL_TIMER_DELAY  1000*1000*100
> +#define TOUCH_MAX_I2C_FAILS          50
> +
> +/* Scale factors for coordinates */
> +#define X_SCALE_FACTOR 9387/8424
> +#define Y_SCALE_FACTOR 97/100
> +
> +/* For tracing */
> +static int g_y_trace_coord = 0;
> +module_param(g_y_trace_coord, int, 0600);
> +
> +/* Polling mode */
> +static int polling = 0;
> +module_param(polling, int, 0);
> +MODULE_PARM_DESC(polling, "Set to enabling polling of the touchscreen");
> +
> +
> +/*
> + * The touch position structure.
> + */
> +struct ts_event {
> +	int x1;
> +	int y1;
> +	int x2;
> +	int y2;
> +	bool event_sended;
> +};
> +
> +/*
> + * The touch driver structure.
> + */
> +struct cy8ctmg110 {
> +	struct input_dev *input;
> +	char phys[32];
> +	struct ts_event tc;
> +	struct i2c_client *client;
> +	bool pending;
> +	spinlock_t lock;
> +	bool initController;
> +	bool sleepmode;
> +	int i2c_fail_count;
> +	struct hrtimer timer;
> +};
> +
> +/*
> + * cy8ctmg110_poweroff is the routine that is called when touch hardware 
> + * will powered off
> + */
> +static void cy8ctmg110_power(bool poweron)
> +{
> +	if (poweron)
> +		gpio_direction_output(CY8CTMG110_RESET_PIN_GPIO, 0);
> +	else
> +		gpio_direction_output(CY8CTMG110_RESET_PIN_GPIO, 1);
> +}
> +
> +/*
> + * cy8ctmg110_write_req write regs to the i2c devices
> + * 
> + */
> +static int cy8ctmg110_write_req(struct cy8ctmg110 *tsc, unsigned char reg,
> +		unsigned char len, unsigned char *value)
> +{
> +	struct i2c_client *client = tsc->client;
> +	unsigned int ret;
> +	unsigned char i2c_data[] = { 0, 0, 0, 0, 0, 0 };
> +	struct i2c_msg msg[] = {
> +			{client->addr, 0, len + 1, i2c_data},
> +			};
> +
> +	i2c_data[0] = reg;
> +	memcpy(i2c_data + 1, value, len);
> +
> +	ret = i2c_transfer(client->adapter, msg, 1);
> +	if (ret != 1) {
> +		printk("cy8ctmg110 touch : i2c write data cmd failed \n");
> +		return ret;
> +	}
> +	return 0;
> +}
> +
> +/*
> + * cy8ctmg110_read_req read regs from i2c devise
> + * 
> + */
> +
> +static int cy8ctmg110_read_req(struct cy8ctmg110 *tsc,
> +		unsigned char *i2c_data, unsigned char len, unsigned char cmd)
> +{
> +	struct i2c_client *client = tsc->client;
> +	unsigned int ret;
> +	unsigned char regs_cmd[2] = { 0, 0 };
> +	struct i2c_msg msg1[] = {
> +		{client->addr, 0, 1, regs_cmd},
> +	};
> +	struct i2c_msg msg2[] = {
> +		{client->addr, I2C_M_RD, len, i2c_data},
> +	};
> +
> +	regs_cmd[0] = cmd;
> +
> +	/* first write slave position to i2c devices */
> +	ret = i2c_transfer(client->adapter, msg1, 1);
> +	if (ret != 1) {
> +		tsc->i2c_fail_count++;
> +		return ret;
> +	}
> +
> +	/* Second read data from position */
> +	ret = i2c_transfer(client->adapter, msg2, 1);
> +	if (ret != 1) {
> +		tsc->i2c_fail_count++;
> +		return ret;
> +	}
> +	return 0;
> +}
> +
> +/*
> + * cy8ctmg110_send_event delevery touch event to the userpace
> + * function use normal input interface
> + */
> +static void cy8ctmg110_send_event(void *tsc)
> +{
> +	struct cy8ctmg110 *ts = tsc;
> +	struct input_dev *input = ts->input;
> +	u16 x, y;
> +	u16 x2, y2;
> +
> +	x = ts->tc.x1;
> +	y = ts->tc.y1;
> +
> +	if (ts->tc.event_sended == false) {

We set "event_sended" to false immediately before calling
cy8ctmg110_send_event() so I do not see the point of this flag.

> +		input_report_key(input, BTN_TOUCH, 1);
> +		ts->pending = true;
> +		x2 = (u16) (y * X_SCALE_FACTOR);
> +		y2 = (u16) (x * Y_SCALE_FACTOR);
> +		input_report_abs(input, ABS_X, x2);
> +		input_report_abs(input, ABS_Y, y2);
> +		input_sync(input);
> +		if (g_y_trace_coord)
> +			printk("cy8ctmg110 touch position X:%d (was = %d) Y:%d (was = %d)\n", x2, y, y2, x);

Do we really need this? Seems to be early development diagnostic.

> +	}
> +
> +}
> +
> +/*
> + * cy8ctmg110_touch_pos check touch position from i2c devices
> + * 
> + */
> +static int cy8ctmg110_touch_pos(struct cy8ctmg110 *tsc)
> +{
> +	unsigned char reg_p[CY8CTMG110_REG_MAX];
> +	int x, y;
> +
> +	memset(reg_p, 0, CY8CTMG110_REG_MAX);
> +
> +	/*Reading coordinates */
> +	if (cy8ctmg110_read_req(tsc, reg_p, 9, CY8CTMG110_TOUCH_X1) != 0)
> +		return -EIO;
> +		
> +	y = reg_p[2] << 8 | reg_p[3];
> +	x = reg_p[0] << 8 | reg_p[1];
> +		/*number of touch */
> +	if (reg_p[8] == 0) {
> +		if (tsc->pending == true) {
> +			struct input_dev *input = tsc->input;
> +
> +			input_report_key(input, BTN_TOUCH, 0);
> +			tsc->tc.event_sended = true;
> +			tsc->pending = false;
> +		}

Just do input_report_key(input, BTN_TOUCH, 0); and let input core take
care of filtering duplicates. This will allow you get rid of bunch of
flags. Also input_sync() is missing here.

> +	} else if (tsc->tc.x1 != x || tsc->tc.y1 != y) {
> +		tsc->tc.y1 = y;
> +		tsc->tc.x1 = x;
> +		tsc->tc.event_sended = false;
> +		cy8ctmg110_send_event(tsc);
> +	}
> +	return 0;
> +}
> +
> +/*
> + * if interrupt isn't in use the touch positions can reads by polling
> + * 
> + */
> +static enum hrtimer_restart cy8ctmg110_timer(struct hrtimer *handle)
> +{
> +	struct cy8ctmg110 *ts = container_of(handle, struct cy8ctmg110, timer);
> +	unsigned long flags;
> +
> +	spin_lock_irqsave(&ts->lock, flags);
> +
> +	cy8ctmg110_touch_pos(ts);
> +	if (ts->i2c_fail_count < TOUCH_MAX_I2C_FAILS)
> +		hrtimer_start(&ts->timer, ktime_set(0, CY8CTMG110_POLL_TIMER_DELAY), HRTIMER_MODE_REL);
> +

So device simply dies after so many errors?

> +	spin_unlock_irqrestore(&ts->lock, flags);

The timer handler is the only user for the spinlock, what is the point?

> +	return HRTIMER_NORESTART;
> +}
> +
> +/*
> + * 
> + */
> +static bool cy8ctmg110_set_sleepmode(struct cy8ctmg110 *ts)
> +{
> +	unsigned char reg_p[3];
> +
> +	if (ts->sleepmode == true) {
> +		reg_p[0] = 0x00;
> +		reg_p[1] = 0xff;
> +		reg_p[2] = 5;
> +	} else {
> +		reg_p[0] = 0x10;
> +		reg_p[1] = 0xff;
> +		reg_p[2] = 0;
> +	}
> +
> +	if (cy8ctmg110_write_req(ts, CY8CTMG110_TOUCH_WAKEUP_TIME, 3, reg_p))
> +		return false;
> +
> +	ts->initController = true;
> +	return true;
> +}
> +
> +/*
> + * cy8ctmg110_irq_handler irq handling function
> + * 
> + */
> +
> +static irqreturn_t cy8ctmg110_irq_handler(int irq, void *dev_id)
> +{
> +	struct cy8ctmg110 *tsc = (struct cy8ctmg110 *) dev_id;
> +
> +	if (tsc->initController == false) {
> +		if (cy8ctmg110_set_sleepmode(tsc) == true)
> +			tsc->initController = true;
> +	} else
> +		cy8ctmg110_touch_pos(tsc);

Initalizing device from interrupt handler is quite novel concept...

> +
> +	/* if interrupt supported in the touch controller
> +	   timer polling need to stop */
> +	tsc->i2c_fail_count = TOUCH_MAX_I2C_FAILS;
> +	return IRQ_HANDLED;
> +}
> +
> +
> +static int cy8ctmg110_probe(struct i2c_client *client, const struct i2c_device_id *id)
> +{
> +	struct cy8ctmg110 *ts;
> +	struct input_dev *input_dev;
> +	int err;
> +	client->irq = CY8CTMG110_TOUCH_IRQ;
> +
> +	if (!i2c_check_functionality(client->adapter,
> +					I2C_FUNC_SMBUS_READ_WORD_DATA))
> +		return -EIO;
> +
> +	ts = kzalloc(sizeof(struct cy8ctmg110), GFP_KERNEL);
> +	input_dev = input_allocate_device();
> +
> +	if (!ts || !input_dev) {
> +		err = -ENOMEM;
> +		goto err_free_mem;
> +	}
> +
> +	ts->client = client;
> +	i2c_set_clientdata(client, ts);
> +
> +	ts->input = input_dev;
> +	ts->pending = false;
> +	ts->sleepmode = false;
> +
> +	snprintf(ts->phys, sizeof(ts->phys), "%s/input0",
> +						dev_name(&client->dev));
> +
> +	input_dev->name = CY8CTMG110_DRIVER_NAME " Touchscreen";
> +	input_dev->phys = ts->phys;
> +	input_dev->id.bustype = BUS_I2C;
> +
> +	spin_lock_init(&ts->lock);
> +
> +	input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP) |

You usually do not set up autorepeat for pointingt devices.

> +					BIT_MASK(EV_REL) | BIT_MASK(EV_ABS);

The device does not emit relative events.

> +	input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
> +
> +	input_set_capability(input_dev, EV_KEY, KEY_F);

KEY_F?

> +
> +	input_set_abs_params(input_dev, ABS_X, CY8CTMG110_X_MIN, CY8CTMG110_X_MAX, 0, 0);
> +	input_set_abs_params(input_dev, ABS_Y, CY8CTMG110_Y_MIN, CY8CTMG110_Y_MAX, 0, 0);
> +
> +	err = gpio_request(CY8CTMG110_RESET_PIN_GPIO, NULL);
> +
> +	if (err) {
> +		dev_err(&client->dev, "cy8ctmg110_ts: Unable to request GPIO pin %d.\n",
> +						CY8CTMG110_RESET_PIN_GPIO);
> +		goto err_free_irq;
> +	}
> +	cy8ctmg110_power(true);
> +
> +	ts->initController = false;
> +	ts->i2c_fail_count = 0;
> +
> +	hrtimer_init(&ts->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
> +	ts->timer.function = cy8ctmg110_timer;
> +
> +	if (polling)
> +		hrtimer_start(&ts->timer, ktime_set(10, 0), HRTIMER_MODE_REL);
> +

Polling mode shoudl be controlled by platform data, not kernel module I think.

> +	/* Can we fall back to polling if these bits fail - something to look
> +	   at for robustness */
> +
> +	err = gpio_request(CY8CTMG110_IRQ_PIN_GPIO, "touch_irq_key");
> +	if (err < 0) {
> +		dev_err(&client->dev,
> +			"cy8ctmg110_ts: failed to request GPIO %d, error %d\n",
> +						CY8CTMG110_IRQ_PIN_GPIO, err);
> +		goto err_free_timer;
> +	}
> +
> +	err = gpio_direction_input(CY8CTMG110_IRQ_PIN_GPIO);
> +
> +	if (err < 0) {
> +		dev_err(&client->dev,
> +			"cy8ctmg110_ts: failed to configure input direction for GPIO %d, error %d\n",
> +						CY8CTMG110_IRQ_PIN_GPIO, err);
> +		goto err_free_gpio;
> +	}
> +	client->irq = gpio_to_irq(CY8CTMG110_IRQ_PIN_GPIO);
> +
> +	if (client->irq < 0) {
> +		err = client->irq;
> +		dev_err(&client->dev,
> +	"cy8ctmg110_ts: Unable to get irq number" " for GPIO %d, error %d\n",
> +						CY8CTMG110_IRQ_PIN_GPIO, err);
> +		goto err_free_gpio;
> +	}
> +	err = request_irq(client->irq, cy8ctmg110_irq_handler, IRQF_TRIGGER_RISING | IRQF_SHARED, "touch_reset_key", ts);
> +	if (err < 0) {
> +		dev_err(&client->dev,
> +			"cy8ctmg110 irq %d busy? error %d\n",
> +				client->irq, err);
> +		goto err_free_gpio;
> +	}
> +
> +	err = input_register_device(input_dev);
> +	if (!err)
> +		return 0;
> +err_free_gpio:
> +	gpio_free(CY8CTMG110_IRQ_PIN_GPIO);
> +err_free_timer:
> +	if (polling)
> +		hrtimer_cancel(&ts->timer);
> +err_free_irq:
> +	free_irq(client->irq, ts);
> +err_free_mem:
> +	input_free_device(input_dev);
> +	kfree(ts);
> +	return err;
> +}
> +
> +/*
> + * cy8ctmg110_suspend
> + * 
> + */
> +
> +static int cy8ctmg110_suspend(struct i2c_client *client, pm_message_t mesg)
> +{

Stop timer here? Also power down the device?

> +	if (device_may_wakeup(&client->dev))
> +		enable_irq_wake(client->irq);
> +
> +	return 0;
> +}
> +
> +/*
> + * cy8ctmg110_resume 
> + * 
> + */
> +
> +static int cy8ctmg110_resume(struct i2c_client *client)
> +{
> +	if (device_may_wakeup(&client->dev))
> +		disable_irq_wake(client->irq);
> +
> +	return 0;
> +}
> +
> +/*
> + * cy8ctmg110_remove
> + * 
> + */
> +
> +static int cy8ctmg110_remove(struct i2c_client *client)
> +{
> +	struct cy8ctmg110 *ts = i2c_get_clientdata(client);
> +
> +	cy8ctmg110_power(false);
> +
> +	if (polling)
> +		hrtimer_cancel(&ts->timer);

Implement close() method and move the code above there? Also do open().

> +	free_irq(client->irq, ts);
> +	input_unregister_device(ts->input);
> +	/* FIXME: Do we need to free the GPIO ? */
> +	kfree(ts);
> +	return 0;
> +}
> +
> +static struct i2c_device_id cy8ctmg110_idtable[] = {
> +	{CY8CTMG110_DRIVER_NAME, 1},
> +	{}
> +};
> +
> +MODULE_DEVICE_TABLE(i2c, cy8ctmg110_idtable);
> +
> +static struct i2c_driver cy8ctmg110_driver = {
> +	.driver = {
> +		   .owner = THIS_MODULE,
> +		   .name = CY8CTMG110_DRIVER_NAME,
> +		   .bus = &i2c_bus_type,
> +		   },
> +	.id_table = cy8ctmg110_idtable,
> +	.probe = cy8ctmg110_probe,
> +	.remove = cy8ctmg110_remove,
> +	.suspend = cy8ctmg110_suspend,
> +	.resume = cy8ctmg110_resume,
> +};
> +
> +static int __init cy8ctmg110_init(void)
> +{
> +	return i2c_add_driver(&cy8ctmg110_driver);
> +}
> +
> +static void __exit cy8ctmg110_exit(void)
> +{
> +	i2c_del_driver(&cy8ctmg110_driver);
> +}
> +
> +module_init(cy8ctmg110_init);
> +module_exit(cy8ctmg110_exit);
> +
> +MODULE_AUTHOR("Samuli Konttila <samuli.konttila@aavamobile.com>");
> +MODULE_DESCRIPTION("cy8ctmg110 TouchScreen Driver");
> +MODULE_LICENSE("GPL v2");
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-input" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Dmitry

  parent reply	other threads:[~2010-04-14 23:16 UTC|newest]

Thread overview: 351+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-14 12:54 Alan Cox
2010-04-14 13:35 ` Jean Delvare
2010-04-14 17:45 ` cy8ctmg110 for review Randy Dunlap
2010-04-14 19:23 ` Joe Perches
2010-04-14 23:16 ` Dmitry Torokhov [this message]
2010-04-15 23:41   ` your mail Rafi Rubin
2010-04-16  4:21     ` Dmitry Torokhov
  -- strict thread matches above, loose matches on Subject: below --
2023-10-16 12:31 Gilbert Adikankwu
2023-10-16 12:34 ` your mail Julia Lawall
2023-10-16 12:42   ` Gilbert Adikankwu
2023-10-16 13:23     ` Julia Lawall
2023-05-10 19:01 [PATCH] maple_tree: Fix a few documentation issues, Thomas Gleixner
2023-05-15 19:27 ` your mail Liam R. Howlett
2023-05-15 21:16   ` Thomas Gleixner
2023-05-16 22:47   ` Thomas Gleixner
2023-05-23 13:46     ` Liam R. Howlett
     [not found] <CAP7CzPfLu6mm6f2fon-zez3PW6rDACEH6ihF2aG+1Dc7Zc2WuQ@mail.gmail.com>
2021-09-13  6:06 ` Willy Tarreau
2021-08-21  8:59 Kari Argillander
2021-08-22 13:13 ` your mail CGEL
2021-08-16  2:46 Kari Argillander
2021-08-16 12:27 ` your mail Christoph Hellwig
2021-04-07  1:27 [PATCH] drivers/gpu/drm/ttm/ttm_page_allo.c: adjust ttm pages refcount fix the bug: Feb 6 17:13:13 aaa-PC kernel: [ 466.271034] BUG: Bad page state in process blur_image pfn:7aee2 Feb 6 17:13:13 aaa-PC kernel: [ 466.271037] page:980000025fca4170 count:0 mapcount:0 mapping:980000025a0dca60 index:0x0 Feb 6 17:13:13 aaa-PC kernel: [ 466.271039] flags: 0x1e01fff000000() Feb 6 17:13:13 aaa-PC kernel: [ 466.271042] raw: 0001e01fff000000 0000000000000100 0000000000000200 980000025a0dca60 Feb 6 17:13:13 aaa-PC kernel: [ 466.271044] raw: 0000000000000000 0000000000000000 00000000ffffffff Feb 6 17:13:13 aaa-PC kernel: [ 466.271046] page dumped because: non-NULL mapping Feb 6 17:13:13 aaa-PC kernel: [ 466.271047] Modules linked in: bnep fuse bluetooth ecdh_generic sha256_generic cfg80211 rfkill vfat fat serio_raw uio_pdrv_genirq binfmt_misc ip_tables amdgpu chash radeon r8168 loongson gpu_sched Feb 6 17:13:13 aaa-PC kernel: [ 466.271059] CPU: 3 PID: 9554 Comm: blur_image Tainted: G B 4.19.0-loongson-3-desktop #3036 Feb 6 17:13:13 aaa-PC kernel: [ 466.271061] Hardware name: Haier Kunlun-LS3A4000-LS7A-desktop/Kunlun-LS3A4000-LS7A-desktop, BIOS Kunlun-V4.0.12V4.0 LS3A4000 03/19/2020 Feb 6 17:13:13 aaa-PC kernel: [ 466.271063] Stack : 000000000000007b 000000007400cce0 0000000000000000 0000000000000007 Feb 6 17:13:13 aaa-PC kernel: [ 466.271067] 0000000000000000 0000000000000000 0000000000002a82 ffffffff8202c910 Feb 6 17:13:13 aaa-PC kernel: [ 466.271070] 0000000000000000 0000000000002a82 0000000000000000 ffffffff81e20000 Feb 6 17:13:13 aaa-PC kernel: [ 466.271074] 0000000000000000 ffffffff8021301c ffffffff82040000 6e754b20534f4942 Feb 6 17:13:13 aaa-PC kernel: [ 466.271078] ffff000000000000 0000000000000000 000000007400cce0 0000000000000000 Feb 6 17:13:13 aaa-PC kernel: [ 466.271082] 9800000007155d40 ffffffff81cc5470 0000000000000005 6db6db6db6db0000 Feb 6 17:13:13 aaa-PC kernel: [ 466.271086] 0000000000000003 fffffffffffffffb 0000000000006000 98000002559f4000 Feb 6 17:13:13 aaa-PC kernel: [ 466.271090] 980000024a448000 980000024a44b7f0 9800000007155d50 ffffffff819f5158 Feb 6 17:13:13 aaa-PC kernel: [ 466.271094] 0000000000000000 0000000000000000 0000000000000000 0000000000000000 Feb 6 17:13:13 aaa-PC kernel: [ 466.271097] 9800000007155d40 ffffffff802310c4 ffffffff81e70000 ffffffff819f5158 Feb 6 17:13:13 aaa-PC kernel: [ 466.271101] ... Feb 6 17:13:13 aaa-PC kernel: [ 466.271103] Call Trace: Feb 6 17:13:13 aaa-PC kernel: [ 466.271107] [<ffffffff802310c4>] show_stack+0x44/0x1c0 Feb 6 17:13:13 aaa-PC kernel: [ 466.271110] [<ffffffff819f5158>] dump_stack+0x1d8/0x240 Feb 6 17:13:13 aaa-PC kernel: [ 466.271113] [<ffffffff80491c10>] bad_page+0x210/0x2c0 Feb 6 17:13:13 aaa-PC kernel: [ 466.271116] [<ffffffff804931c8>] free_pcppages_bulk+0x708/0x900 Feb 6 17:13:13 aaa-PC kernel: [ 46 6.271119] [<ffffffff804980cc>] free_unref_page_list+0x1cc/0x2c0 Feb 6 17:13:13 aaa-PC kernel: [ 466.271122] [<ffffffff804ad2c8>] release_pages+0x648/0x900 Feb 6 17:13:13 aaa-PC kernel: [ 466.271125] [<ffffffff804f3b48>] tlb_flush_mmu_free+0x88/0x100 Feb 6 17:13:13 aaa-PC kernel: [ 466.271128] [<ffffffff804f8a24>] zap_pte_range+0xa24/0x1480 Feb 6 17:13:13 aaa-PC kernel: [ 466.271132] [<ffffffff804f98b0>] unmap_page_range+0x1f0/0x500 Feb 6 17:13:13 aaa-PC kernel: [ 466.271135] [<ffffffff804fa054>] unmap_vmas+0x154/0x200 Feb 6 17:13:13 aaa-PC kernel: [ 466.271138] [<ffffffff8051190c>] exit_mmap+0x20c/0x380 Feb 6 17:13:13 aaa-PC kernel: [ 466.271142] [<ffffffff802bb9c8>] mmput+0x148/0x300 Feb 6 17:13:13 aaa-PC kernel: [ 466.271145] [<ffffffff802c80d8>] do_exit+0x6d8/0x1900 Feb 6 17:13:13 aaa-PC kernel: [ 466.271148] [<ffffffff802cb288>] do_group_exit+0x88/0x1c0 Feb 6 17:13:13 aaa-PC kernel: [ 466.271151] [<ffffffff802cb3d8>] sys_exit_group+0x18/0x40 Feb 6 17 :13:13 aaa-PC kernel: [ 466.271155] [<ffffffff8023f954>] syscall_common+0x34/0xa4 songqiang
2021-04-07  8:25 ` your mail Huang Rui
2021-04-07  9:25   ` Christian König
2021-04-01 21:16 Bhaumik Bhatt
2021-04-07  6:56 ` your mail Manivannan Sadhasivam
     [not found] <20210322213644.333112726@goodmis.org>
2021-03-22 21:40 ` Steven Rostedt
     [not found] <20210322212156.440428241@goodmis.org>
2021-03-22 21:36 ` Steven Rostedt
2020-12-02  1:10 [PATCH] lib/find_bit: Add find_prev_*_bit functions Yun Levi
2020-12-02  9:47 ` Andy Shevchenko
2020-12-02 10:04   ` Rasmus Villemoes
2020-12-02 11:50     ` Yun Levi
     [not found]       ` <CAAH8bW-jUeFVU-0OrJzK-MuGgKJgZv38RZugEQzFRJHSXFRRDA@mail.gmail.com>
2020-12-02 17:37         ` Andy Shevchenko
2020-12-02 18:27           ` Yun Levi
2020-12-02 18:51             ` your mail Andy Shevchenko
2020-12-02 18:56               ` Andy Shevchenko
2020-08-05 11:02 [PATCH v4] arm64: dts: qcom: Add support for Xiaomi Poco F1 (Beryllium) Amit Pundir
2020-08-06 22:31 ` Konrad Dybcio
2020-08-13  7:04   ` your mail Bjorn Andersson
2020-08-17 17:12     ` Amit Pundir
2020-08-30 18:58       ` Bjorn Andersson
2020-06-09 11:38 Gaurav Singh
2020-06-09 11:54 ` your mail Greg KH
2020-05-06  5:52 Jiaxun Yang
2020-05-07 11:00 ` your mail Thomas Bogendoerfer
     [not found] <20191026192359.27687-1-frank-w@public-files.de>
2019-10-26 19:30 ` Greg Kroah-Hartman
     [not found] <20190626145238.19708-1-bigeasy@linutronix.de>
2019-06-27 21:13 ` Tejun Heo
     [not found] <20190411060536.22409-1-npiggin@gmail.com>
2019-04-11 10:53 ` Peter Zijlstra
2019-04-12  3:23   ` Nicholas Piggin
     [not found] <20190323171738.GA26736@titus.pi.local>
2019-03-26  8:42 ` Dan Carpenter
     [not found] <20190319144116.400-1-mlevitsk@redhat.com>
2019-03-19 15:22 ` Keith Busch
2019-03-19 23:49   ` Chaitanya Kulkarni
2019-03-20 16:44     ` Maxim Levitsky
2019-03-20 16:30   ` Maxim Levitsky
2019-03-20 17:03     ` Keith Busch
2019-03-20 17:33       ` Maxim Levitsky
2019-04-08 10:04   ` Maxim Levitsky
2019-03-21 16:13 ` Stefan Hajnoczi
2019-03-21 17:07   ` Maxim Levitsky
2019-03-25 16:46     ` Stefan Hajnoczi
     [not found] <20190319022012.11051-1-thirtythreeforty@gmail.com>
2019-03-20  7:26 ` Greg Kroah-Hartman
     [not found] <20190225201635.4648-1-hannes@cmpxchg.org>
2019-02-26 23:49 ` Roman Gushchin
     [not found] <20180827145032.9522-1-hch@lst.de>
2018-08-31 20:23 ` Paul Burton
     [not found] <20180724222212.8742-1-tsotsos@gmail.com>
2018-07-25  7:39 ` Greg Kroah-Hartman
     [not found] <2018071901551081442221@163.com>
2018-07-18 20:04 ` Johan Hovold
     [not found] <201807160555.w6G5t9Dc075492@mse.aten.com.tw>
2018-07-16 10:03 ` Johan Hovold
2018-06-13 17:00 [PATCH v2] staging: rts5208: add check on NULL before dereference Andy Shevchenko
     [not found] ` <20180613173128.32384-1-vasilyev@ispras.ru>
2018-06-19  7:42   ` your mail Dan Carpenter
2017-12-07  9:26 Alexander Kappner
2017-12-07 10:38 ` your mail Greg Kroah-Hartman
2017-08-18 17:42 Rajneesh Bhardwaj
2017-08-18 17:53 ` your mail Rajneesh Bhardwaj
2017-06-04 11:59 Yury Norov
2017-06-14 20:16 ` your mail Yury Norov
2017-04-10 11:03 [PATCH -v2 0/9] mm: make movable onlining suck less Michal Hocko
2017-04-15 12:17 ` Michal Hocko
2017-04-17  5:47   ` your mail Joonsoo Kim
2017-04-17  8:15     ` Michal Hocko
2017-04-20  1:27       ` Joonsoo Kim
2017-04-20  7:28         ` Michal Hocko
2017-04-20  8:49           ` Michal Hocko
2017-04-20 11:56             ` Vlastimil Babka
2017-04-20 12:13               ` Michal Hocko
2017-04-21  4:38           ` Joonsoo Kim
2017-04-21  7:16             ` Michal Hocko
2017-04-24  1:44               ` Joonsoo Kim
2017-04-24  7:53                 ` Michal Hocko
2017-04-25  2:50                   ` Joonsoo Kim
2017-04-26  9:19                     ` Michal Hocko
2017-04-27  2:08                       ` Joonsoo Kim
2017-04-27 15:10                         ` Michal Hocko
2016-11-15 20:29 Christoph Lameter
2016-11-16 10:40 ` your mail Peter Zijlstra
2016-11-16 14:25   ` Steven Rostedt
2016-11-16 14:28     ` Peter Zijlstra
2016-09-20 22:21 Andrew Banman
2016-09-20 22:23 ` your mail andrew banman
2015-08-03  6:18 Shraddha Barke
2015-08-03  7:12 ` your mail Sudip Mukherjee
2015-08-03  7:24 ` Dan Carpenter
     [not found] <20150121201024.GA4548@obsidianresearch.com>
     [not found] ` <alpine.DEB.2.02.1501211520150.13480@linuxheads99>
2015-01-21 23:57   ` Jason Gunthorpe
2015-01-22 20:50     ` One Thousand Gnomes
2015-01-28 22:09     ` atull
2014-10-15  8:10 Christoph Lameter
2014-10-27 15:07 ` your mail Tejun Heo
2014-09-01 15:47 sunwxg
2014-09-01 17:01 ` your mail Dan Carpenter
     [not found] <1409556896-21523-2-git-send-email-xiaoguang_wang5188@qq.com>
2014-09-01  8:04 ` Dan Carpenter
2014-07-09  1:03 James Ban
2014-07-09  7:56 ` your mail Mark Brown
     [not found] <CAM0G4ztXWM5kw6dV4WRrTVJBMmeJDXuRnbeRBE603hM+7c=PCg@mail.gmail.com>
2014-02-25 15:01 ` Will Deacon
     [not found] <CAM0G4zvu1BHcOrSgBuobvb-+fVsNWXjXdzZdV51T70B9_ZC4XQ@mail.gmail.com>
2014-02-24 17:28 ` Will Deacon
2014-02-25 11:28   ` Varun Sethi
2014-01-23  9:06 Prabhakar Lad
2014-01-23 19:55 ` your mail Mark Brown
     [not found] <1388425244-10017-1-git-send-email-jdb@sitrep3.com>
2014-01-09 18:39 ` Greg KH
2014-01-09 18:49   ` Joe Borġ
2014-01-14 16:40     ` Steven Rostedt
     [not found] <CACaajQtCTW_PKA25q3-4o4XAV6sgZnyD+Skkw6mhUHpRBEgbjQ@mail.gmail.com>
2012-11-26 18:29 ` Greg KH
2012-10-10 15:06 Kent Yoder
2012-10-10 15:12 ` your mail Kent Yoder
2012-10-04 16:50 Andrea Arcangeli
2012-10-04 18:17 ` your mail Christoph Lameter
2012-08-03 17:43 Tejun Heo
2012-08-08 16:39 ` your mail Tejun Heo
2012-02-21 15:39 Yang Honggang
2012-02-21 11:34 ` your mail Hans J. Koch
2012-02-12  0:21 Richard Weinberger
2012-02-12  0:25 ` your mail Jesper Juhl
2012-02-12  1:02 ` Al Viro
2012-02-12 12:40   ` Jiri Slaby
2012-02-12 19:06     ` Al Viro
2012-02-13  9:40       ` Jiri Slaby
2012-02-12 19:11 ` Al Viro
2012-02-13  9:15   ` Jiri Slaby
     [not found] <20120110061735.9BD676BA98@mailhub.coreip.homeip.net>
2012-01-10  7:45 ` Dmitry Torokhov
2011-09-21 21:54 jim.cromie
2011-09-26 23:23 ` your mail Greg KH
2011-05-17 23:33 [PATCH] module: Use binary search in lookup_symbol() Tim Bird
2011-05-18 18:55 ` Alessio Igor Bogani
2011-05-18 19:22   ` your mail Greg KH
2011-05-18 20:35     ` Alessio Igor Bogani
2011-05-16  9:34 Keshava Munegowda
2011-05-16  9:44 ` your mail Felipe Balbi
2011-05-16 10:07   ` Munegowda, Keshava
2011-01-14  1:14 Omar Ramirez Luna
2011-01-14  4:36 ` your mail Greg KH
2011-01-03 16:38 castet.matthieu
2011-01-03 17:03 ` your mail Stanislaw Gruszka
2011-01-04  5:17   ` Tejun Heo
2010-06-13  6:16 Mike Gilks
2010-06-18 23:52 ` your mail Greg KH
     [not found] <20100113004939.289333186@suse.com>
2010-01-13 14:57 ` scameron
2009-05-06 23:53 [RFC PATCH 3/3a] ptrace: add _ptrace_may_access() Oleg Nesterov
2009-05-07  0:21 ` Roland McGrath
2009-05-07  6:36   ` Oleg Nesterov
2009-05-07  8:20     ` Ingo Molnar
2009-05-07  8:31       ` Oleg Nesterov
2009-05-07  8:38         ` Ingo Molnar
2009-05-07  8:57           ` Chris Wright
2009-05-07  9:04             ` Ingo Molnar
2009-05-07  9:20               ` Chris Wright
2009-05-07  9:54                 ` James Morris
2009-05-07 10:20                   ` your mail Ingo Molnar
2009-05-08  3:27                     ` Casey Schaufler
2009-03-27 23:26 Eric Anholt
2009-03-28  0:02 ` your mail Linus Torvalds
     [not found] <8F90F944E50427428C60E12A34A309D21C401BA619@carmd-exchmb01.sierrawireless.local>
2009-03-13 16:54 ` Ralf Nyren
2009-03-11 10:47 Vitaly Mayatskikh
2009-03-11 14:59 ` your mail Linus Torvalds
2009-03-11 17:23   ` Vitaly Mayatskikh
2009-02-13  0:45 Youngwhan Kim
2009-02-13  3:40 ` your mail Johannes Weiner
2009-01-19  2:54 Gao, Yunpeng
2009-01-19  3:07 ` your mail Matthew Wilcox
2009-01-13  6:10 Steven Rostedt
2009-01-13 13:21 ` your mail Steven Rostedt
2009-01-11  3:41 Jose Luis Marchetti
2009-01-11  6:47 ` your mail Jesper Juhl
2008-05-24 20:05 Thomas Gleixner
2008-05-24 21:06 ` Daniel Walker
2008-05-20 12:34 Lukas Hejtmanek
2008-05-20 15:20 ` your mail Alan Stern
2007-10-17 18:28 nicholas.thompson1
2007-10-17 16:30 nicholas.thompson1
2007-10-17 16:36 ` your mail Jan Engelhardt
2007-10-17 17:50   ` Matti Aarnio
2007-09-24 20:44 Steven Rostedt
2007-09-24 20:50 ` your mail Steven Rostedt
2007-08-15 13:53 [PATCH 0/24] make atomic_read() behave consistently across all architectures Stefan Richter
2007-08-15 14:35 ` Satyam Sharma
2007-08-15 14:52   ` Herbert Xu
2007-08-15 16:09     ` Stefan Richter
2007-08-15 16:27       ` Paul E. McKenney
2007-08-15 18:31         ` Segher Boessenkool
2007-08-15 18:57           ` Paul E. McKenney
2007-08-15 19:54             ` Satyam Sharma
2007-08-15 20:47               ` Segher Boessenkool
2007-08-16  0:36                 ` Satyam Sharma
2007-08-16  0:32                   ` your mail Herbert Xu
2007-05-16 13:30 Bob Picco
2007-05-16 16:43 ` your mail Linas Vepstas
2007-05-16 17:11   ` Olof Johansson
2007-05-16 17:24     ` Bob Picco
2007-03-29 21:39 Gerard Braad Jr.
2007-03-29 21:42 ` your mail Jan Engelhardt
2007-03-29 21:46   ` David Miller
2007-03-29 21:48   ` Gerard Braad
2007-02-05 15:41 logic
2007-02-05 12:36 ` your mail Joerg Roedel
2007-02-05 14:01   ` Pekka Enberg
2007-02-06  9:41     ` Joerg Roedel
2005-11-25 22:06 root
2005-11-26  0:11 ` your mail Hugh Dickins
2005-06-16 23:08 trmcneal
2005-06-16 23:32 ` your mail Chris Wedgwood
2005-06-17  1:46   ` Tom McNeal
2005-02-03  0:17 Aleksey Gorelov
2005-02-03  1:12 ` your mail Matthew Dharm
2005-02-03 16:03 ` Alan Stern
2004-09-19 12:29 plt
2004-09-19 18:22 ` your mail Jesper Juhl
2004-08-16 15:42 Jon Smirl
2004-08-16 23:55 ` Dave Airlie
2004-08-15 12:19 Dave Airlie
2004-08-15 12:34 ` your mail Christoph Hellwig
2004-08-15 23:40   ` Dave Airlie
2004-08-16  9:17     ` Christoph Hellwig
2004-08-16  9:30       ` Dave Airlie
2004-08-16  9:50         ` Christoph Hellwig
2004-08-16 10:29           ` Dave Airlie
2004-08-16 10:38             ` Christoph Hellwig
2004-08-16 11:02               ` Dave Airlie
2004-08-16 11:08                 ` Christoph Hellwig
2004-08-16 11:12                   ` Alan Cox
2004-08-16 11:47                   ` Dave Airlie
2004-08-16 11:12           ` Alan Cox
2004-08-16 12:20             ` Christoph Hellwig
2004-08-16 12:24               ` Dave Airlie
2004-08-16 12:37                 ` Christoph Hellwig
2004-08-16 23:33                   ` Dave Airlie
2004-05-24 23:15 Laughlin, Joseph V
2004-05-24 23:04 Laughlin, Joseph V
2004-05-24 23:13 ` Bernd Petrovitsch
2004-05-24 23:21 ` Chris Wright
2004-05-24 22:20 Laughlin, Joseph V
2004-05-24 22:30 ` your mail Herbert Poetzl
2004-05-24 22:34   ` Marc-Christian Petersen
2004-05-24 22:33 ` Chris Wright
2004-04-29  3:03 whitehorse
2004-04-29  3:21 ` your mail Jon
     [not found] <200404121623.42558.vda@port.imtp.ilyichevsk.odessa.ua>
2004-04-13 13:46 ` James Morris
2004-04-09 17:54 Martin Knoblauch
2004-04-09 18:12 ` your mail Joel Jaeggli
2004-03-15 22:49 Kevin Leung
2004-03-15 23:26 ` your mail Richard B. Johnson
2004-02-24 13:58 Jim Deas
2004-02-24 14:44 ` your mail Richard B. Johnson
2004-02-19 13:52 Joilnen Leite
2004-02-19 14:12 ` your mail Richard B. Johnson
2004-02-13 19:23 Bloch, Jack
2004-02-13 19:14 Bloch, Jack
2004-02-13 16:45 Bloch, Jack
2004-02-13 18:11 ` your mail Maciej Zenczykowski
2004-02-10 23:36 Bloch, Jack
2004-02-11  1:09 ` your mail Maciej Zenczykowski
2003-12-26 20:20 caszonyi
2003-12-26 22:27 ` your mail Linus Torvalds
2004-01-05 10:59   ` Gerd Knorr
2003-12-23 14:16 dublinux
2003-12-23 14:54 ` your mail Matti Aarnio
2003-12-23 17:36   ` Norberto Bensa
     [not found] <20031210120336.GU8039@holomorphy.com>
2003-12-10 13:17 ` Stephan von Krawczynski
2003-12-03 16:19 Bloch, Jack
2003-12-03 15:08 Bloch, Jack
2003-12-03 15:43 ` your mail Richard B. Johnson
2003-12-03 16:03 ` Linus Torvalds
2003-09-30  8:17 John Bradford
2003-09-30 13:31 ` your mail Dave Jones
2003-09-30 14:06   ` Jamie Lokier
2003-09-30 14:50     ` Dave Jones
2003-09-30 15:30       ` Jamie Lokier
2003-09-30 16:34       ` Adrian Bunk
2003-09-30 14:10   ` John Bradford
2003-09-30 14:58     ` Jamie Lokier
2003-09-30 15:11       ` Dave Jones
2003-08-28  2:25 warudkar
2003-08-27 16:02 ` your mail William Lee Irwin III
2003-08-25 16:45 Marcelo Tosatti
2003-08-25 16:59 ` Herbert Pötzl
2003-08-25 13:53 Marcelo Tosatti
2003-08-25 14:30 ` your mail Herbert Pötzl
2003-08-18  6:21 "Andrey Borzenkov" 
2003-08-18 20:42 ` your mail Greg KH
2003-08-14 21:57 kartikey bhatt
2003-08-15  3:31 ` your mail James Morris
     [not found] <200308031136.17768.lx@lxhp.in-berlin.de>
2003-08-03 18:30 ` Linus Torvalds
2003-05-14 18:41 dirf
2003-05-16 10:00 ` your mail Maciej Soltysiak
     [not found] <053C05D4.4D025D2E.0005F166@netscape.net>
2003-05-08  9:06 ` Gerd Knorr
2003-04-30 21:39 Mauricio Oliveira Carneiro
2003-05-01  0:05 ` your mail Greg KH
2003-04-25 17:35 Bloch, Jack
2003-04-25 19:43 ` your mail Francois Romieu
2003-04-05  0:38 Ed Vance
2003-04-05  4:51 ` Keith Owens
2003-04-04 22:10 Ed Vance
2003-04-04 23:19 ` William Scott Lockwood III
2003-04-04 23:21 ` Keith Owens
2003-04-03 16:22 Richard B. Johnson
2003-04-03 19:22 ` David S. Miller
2003-04-03 20:02   ` your mail Richard B. Johnson
2003-04-03 19:24     ` Alan Cox
2003-04-03 20:00     ` David S. Miller
2003-04-03 20:21       ` Richard B. Johnson
2003-04-03 20:15         ` David S. Miller
2003-04-04  0:31       ` William Scott Lockwood III
2003-04-04  0:40         ` David S. Miller
2003-04-04  0:47           ` William Scott Lockwood III
2003-04-04 12:57         ` Richard B. Johnson
2003-04-04 15:28           ` William Scott Lockwood III
2003-04-04 16:04             ` Richard B. Johnson
2003-04-04 16:04             ` Christoph Hellwig
2003-04-04 16:10             ` Jens Axboe
2003-04-04 20:37             ` Matti Aarnio
2003-04-03 20:40     ` Trever L. Adams
2003-01-31 18:46 saurabh  khanna
2003-02-03 12:53 ` your mail Alexander Kellett
2003-01-24  5:54 Anoop J.
2003-01-24  6:28 ` your mail David Lang
2003-01-24  8:51   ` Anoop J.
2003-01-24  8:48     ` David Lang
2003-01-24  9:49       ` Anoop J.
2003-01-24 19:14         ` David Lang
2003-01-24 19:40           ` Maciej W. Rozycki
2003-01-24  5:08 Anoop J.
2003-01-24  5:11 ` your mail David Lang
2003-01-24  6:06   ` John Alvord
2003-01-25  2:29     ` Jason Papadopoulos
2003-01-25  2:26       ` Larry McVoy
2003-01-25 17:47         ` Eric W. Biederman
2003-01-25 23:10           ` Larry McVoy
2003-01-26  8:12             ` David S. Miller
2003-01-12 13:28 Philip K.F. Hölzenspies
2003-01-13 16:37 ` your mail Pete Zaitcev
2002-11-11 19:22 David Mosberger
2002-11-12  1:39 ` your mail Rik van Riel
2002-10-31 18:13 Bloch, Jack
2002-10-31 15:39 Bloch, Jack
2002-10-31 18:00 ` your mail Tom Bradley
2002-10-30 12:45 Roberto Fichera
2002-10-30 14:04 ` your mail Richard B. Johnson
2002-10-17  7:41 Rusty Russell
2002-10-17 14:56 ` your mail Kai Germaschewski
2002-10-18  2:47   ` Rusty Russell
2002-10-18 21:50     ` Kai Germaschewski
2002-10-14  6:28 Maros RAJNOCH /HiaeR Silvanna/
2002-10-14 12:28 ` your mail Dave Jones
2002-10-02 19:58 Mark Peloquin
2002-10-02 20:19 ` your mail jbradford
2002-10-02 12:41 s.stoklossa
2002-10-02 12:51 ` your mail Sam Ravnborg
2002-09-21  5:32 Greg KH
2002-09-23 18:35 ` your mail Patrick Mochel
2002-09-14 12:39 Paolo Ciarrocchi
2002-09-14 17:05 ` your mail Rik van Riel
     [not found] <200208312335.g7VNZmk37659@sullivan.realtime.net>
2002-09-01  9:53 ` Krzysiek Taraszka
2002-08-30 18:43 Bloch, Jack
2002-08-30 18:55 ` your mail Matthew Dharm
2002-08-30 19:22 ` Andreas Dilger
2002-08-31  0:12 ` David Woodhouse
2002-08-27 18:22 Steffen Persvold
2002-08-27 19:27 ` your mail Willy Tarreau
2002-08-23 14:45 Mike Dresser
2002-08-23 15:12 ` your mail Bill Unruh
2002-08-23 15:26   ` Mike Dresser
2002-08-23 16:12     ` Bill Unruh
2002-08-23 20:33       ` Mike Dresser
2002-08-25  2:05       ` Mike Dresser
2002-08-19 21:29 Bloch, Jack
2002-08-20  6:47 ` your mail Philipp Matthias Hahn
2002-08-16  7:51 Misha Alex
2002-08-16  9:52 ` your mail Willy Tarreau
2002-07-06 15:59 Hacksaw
2002-07-07 19:32 ` your mail Min Li
2002-07-05  8:47 Christian Berger
2002-07-05 13:34 ` your mail Gerhard Mack
     [not found] <000d01c22361$62c9d6f0$0100a8c0@digital>
2002-07-04 20:45 ` Stephen Tweedie
2002-06-24  5:49 pah
2002-06-24  7:34 ` your mail Zwane Mwaikambo
2002-05-16 12:40 Sanket Rathi
2002-05-16 13:38 ` your mail Alan Cox
2002-05-16 15:54   ` Sanket Rathi
2002-05-16 18:05     ` Alan Cox
2002-05-20 18:07     ` David Mosberger
2002-05-03 14:19 Keith Owens
2002-05-03 14:37 ` your mail tomas szepe
2002-05-03 15:07   ` tomas szepe
2002-05-03 15:29   ` Keith Owens
2002-05-03 15:45     ` tomas szepe
2002-04-24  7:55 Huo Zhigang
2002-04-24  7:51 ` your mail Zwane Mwaikambo
2002-04-24  8:27 ` Alan Cox
2002-04-21 21:16 Ivan G.
2002-04-21 23:02 ` your mail Jeff Garzik
2002-03-13 19:21 Romain Liévin
2002-03-13 19:43 ` your mail Alan Cox
2002-03-13 20:28   ` Romain Liévin
2002-03-13 20:49     ` Richard B. Johnson
2002-03-13 22:27       ` Alan Cox
2002-03-13 22:35     ` Alan Cox
2002-03-14  7:08 ` Zwane Mwaikambo
2002-02-28 13:58 shura
2002-03-01 15:30 ` your mail Jan-Marek Glogowski
2002-02-25  1:41 Rusty Russell
2002-02-25  1:58 ` your mail Alexander Viro
2002-02-25  2:14   ` Rusty Russell
2002-02-25  3:18     ` Davide Libenzi
2002-02-25  4:02     ` Alexander Viro
2002-02-26  5:50       ` Rusty Russell
2002-02-25 13:16 ` Alan Cox
2002-01-30 18:21 Nickolaos Fotopoulos
2002-01-30 18:57 ` your mail Matti Aarnio
2002-01-31  1:50 ` Drew P. Vogel
2002-01-09 17:49 Michael Zhu
2002-01-09 18:17 ` your mail Jens Axboe
2001-12-17 16:07 Sebastian Dröge
2001-12-17 16:22 ` your mail Dave Jones
2001-12-17 16:52 ` Sebastian Dröge
2001-12-17 16:55   ` Arnaldo Carvalho de Melo
2001-12-17 17:23   ` Sebastian Dröge
2001-12-17 17:25     ` Dave Jones
2001-12-17 18:42     ` Sebastian Dröge
2001-12-17 18:43       ` Dave Jones
     [not found] <20011214041151.91557.qmail@web14904.mail.yahoo.com>
2001-12-14 16:46 ` Gérard Roudier
2001-12-14 20:09   ` Jens Axboe
2001-12-14 18:05     ` Gérard Roudier
2001-12-14 22:26       ` Peter Bornemann
2001-12-14 20:16         ` Gérard Roudier
2001-12-15  0:54           ` Peter Bornemann
2001-12-15  6:57             ` Gérard Roudier
2001-12-18  0:34   ` Kirk Alexander
2001-12-14 20:34 ` Jens Axboe
2001-12-15  0:56 ` Stephan von Krawczynski
2001-12-15  6:59   ` Gérard Roudier
2001-12-07  4:17 Keith Owens
2001-12-07  5:10 ` your mail Linus Torvalds
2001-12-27 18:09   ` Andre Hedrick
2001-12-27 18:55     ` Linus Torvalds
2001-12-27 19:41       ` Andrew Morton
2001-12-28 22:14       ` Martin Dalecki
2001-10-15  6:25 Dinesh  Gandhewar
2001-10-15  6:31 ` your mail Tim Hockin
2001-10-02 15:29 Dinesh  Gandhewar
2001-10-02 15:30 ` your mail Alan Cox
2001-10-02 15:49 ` Richard B. Johnson
2001-10-02 15:52 ` Michael H. Warfield
2001-07-24  0:38 新 月
2001-07-24 12:47 ` your mail Richard B. Johnson
2001-06-13  1:55 Colonel
2001-06-13  9:32 ` your mail Luigi Genoni
2001-06-18 13:55 ` Jan Hudec
2001-05-31 16:53 Ramil.Santamaria
2001-05-31 20:37 ` your mail Andrzej Krzysztofowicz
2001-05-31 23:04   ` H. Peter Anvin
2001-05-21 19:43 Thomas Palm
2001-05-21 20:12 ` your mail Lorenzo Marcantonio
2001-05-22 10:06   ` Thomas Palm
2001-05-16 15:05 siva prasad
2001-05-17  0:11 ` your mail Erik Mouw
2001-05-08 19:48 Richard B. Johnson
2001-05-08 20:06 ` your mail Jens Axboe
2001-05-08 20:15   ` Richard B. Johnson
2001-05-08 20:16     ` Jens Axboe
2001-05-09 13:59       ` Richard B. Johnson
2001-05-08 20:46 ` Alan Cox
2001-05-08 21:05   ` Richard B. Johnson
2001-05-07 11:38 Chandrashekar Nagaraj
2001-05-07 12:09 ` your mail Erik Mouw
2001-05-02 22:34 Duc Vianney
2001-05-03  0:10 ` your mail Linus Torvalds
2001-04-26 19:37 Alexandru Barloiu Nicolae
2001-04-26 19:51 ` your mail Erik Mouw
2001-04-26 19:54 ` Mohammad A. Haque
2001-04-26 19:59 ` Joel Jaeggli
2001-04-02 19:20 Jakob Kemi
2001-04-09 13:23 ` your mail Tim Waugh
2001-03-24  0:04 dhar
2001-03-24  1:09 ` your mail Tim Wright
2001-03-11 17:06 Martin Bruchanov
2001-03-12  5:03 ` your mail Greg KH
2001-03-14 17:46   ` Robert Read
2001-03-06 23:55 Ying Chen
2001-03-07  0:40 ` your mail Don Dugger
2001-01-19 13:37 Robert Kaiser
2001-01-19 14:37 ` your mail Steve Hill
2001-01-10 18:24 Thiago Rondon
2001-01-11  4:08 ` your mail David Hinds
2000-12-11 14:01 Heiko.Carstens
2000-12-11 15:14 ` your mail Alan Cox

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=20100414231604.GA12281@core.coreip.homeip.net \
    --to=dmitry.torokhov@gmail.com \
    --cc=alan@linux.intel.com \
    --cc=khali@linux-fr.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.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;
as well as URLs for NNTP newsgroup(s).