Re: [PATCH] This is my first commit

From: Joe Perches
Date: Tue May 27 2014 - 03:04:08 EST


On Tue, 2014-05-27 at 14:44 +0800, hnnnet48@xxxxxxxxx wrote:
> From: kevin <hnnnet48@xxxxxxxxx>

Hi Kevin.

You subject line should be something like:
[PATCH] Add support for GeneralTouch serial screen

There should be a commit message too.

> ---
> gtserio.c | 188 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

In what directory should this file be placed?
Will you submit a Makefile/Kconfig mechanism to make it?

You should run your patch through scripts/checkpatch.pl
It will flag a number of things you should consider fixing.

> create mode 100755 gtserio.c

755 is not correct. 644 please.

> diff --git a/gtserio.c b/gtserio.c
[]
> + * gtserio.c - Create an input/output character device for GeneralTouch serial screen
[]
> +MODULE_AUTHOR("GeneralTouch <support@xxxxxxxxxxxxxxxx>");

Kevin, do you work for generaltouch
or did you get this file from somewhere?

> +static int Device_Open = 0;
> +struct input_dev *devq;
> +char Message[BUF_LEN];
> +dev_t gts_t;
> +unsigned char val[10];
> +int gtsdata[4];
> +unsigned long min_x = 0;
> +unsigned long max_x = 32767;
> +unsigned long min_y = 0;
> +unsigned long max_y = 32767;

All of these should probably be static.

> +char *Message_Ptr;

CamelCase is not generally used in linux-kernel.

> +static int device_open(struct inode *inode, struct file *file)
> +{
> + printk("GTS device_open(%p)\n", file);

printk should use a KERN_<LEVEL>

> +
> +#ifdef DEBUG
> + printk("device_open(%p)\n", file);
> +#endif

Unnecessary duplication, this DEBUG should be removed.

> +static int device_release(struct inode *inode, struct file *file)
> +{
> +#ifdef DEBUG
> + printk("device_release(%p,%p)\n", inode, file);
> +#endif

pr_debug is used instead of
#ifdef DEBUG
printk(foo...)
#endif

> + return SUCCESS;

return 0;

instead of a somewhat unnecessary #define


> + printk("val[3] = %x,val[4] = %x\nval[5] = %x,val[6] = %x\n", val[3],
> + val[4], val[5], val[6]);

I suspect this should be pr_debug too.

> + gtsdata[0] = val[2];
> + gtsdata[1] = (val[4] << 8) | (val[3]);
> + gtsdata[2] = (val[6] << 8) | (val[5]);
> + gtsdata[3] = val[9];
> + printk("gtsdata[1] = %x\ngtsdata[2] = %x\n", gtsdata[1], gtsdata[2]);

and this


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/