>From 73f12e8d3d94828b9efe2b8b8a34b4ad6d14ee47 Mon Sep 17 00:00:00 2001 From: Pavan Savoy <[email protected]> Date: Tue, 12 Oct 2010 16:27:38 -0400 Subject: [PATCH 2/2] drivers: misc: ti-st: fix review comments
Based on comments from Jiri Slaby, drop the register storage specifier, remove the unused code, cleanup the const to non-const type casting. Also make the line discipline ops structure static, since its a singleton, unmodified structure which need not be in heap. Reported-by: Jiri Slaby <[email protected]> Signed-off-by: Pavan Savoy <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]> --- drivers/misc/ti-st/st_core.c | 73 ++++++++++-------------------------------- drivers/misc/ti-st/st_kim.c | 15 ++++---- 2 files changed, 25 insertions(+), 63 deletions(-) diff --git a/drivers/misc/ti-st/st_core.c b/drivers/misc/ti-st/st_core.c index 9bae0eb..f9aad06 100644 --- a/drivers/misc/ti-st/st_core.c +++ b/drivers/misc/ti-st/st_core.c @@ -31,15 +31,6 @@ #include <net/bluetooth/hci.h> #include <linux/ti_wilink_st.h> -/* strings to be used for rfkill entries and by - * ST Core to be used for sysfs debug entry - */ -#define PROTO_ENTRY(type, name) name -const unsigned char *protocol_strngs[] = { - PROTO_ENTRY(ST_BT, "Bluetooth"), - PROTO_ENTRY(ST_FM, "FM"), - PROTO_ENTRY(ST_GPS, "GPS"), -}; /* function pointer pointing to either, * st_kim_recv during registration to receive fw download responses * st_int_recv after registration to receive proto stack responses @@ -144,7 +135,7 @@ void st_reg_complete(struct st_data_s *st_gdata, char err) static inline int st_check_data_len(struct st_data_s *st_gdata, int protoid, int len) { - register int room = skb_tailroom(st_gdata->rx_skb); + int room = skb_tailroom(st_gdata->rx_skb); pr_debug("len %d room %d", len, room); @@ -187,7 +178,7 @@ static inline int st_check_data_len(struct st_data_s *st_gdata, static inline void st_wakeup_ack(struct st_data_s *st_gdata, unsigned char cmd) { - register struct sk_buff *waiting_skb; + struct sk_buff *waiting_skb; unsigned long flags = 0; spin_lock_irqsave(&st_gdata->lock, flags); @@ -216,13 +207,13 @@ static inline void st_wakeup_ack(struct st_data_s *st_gdata, void st_int_recv(void *disc_data, const unsigned char *data, long count) { - register char *ptr; + char *ptr; struct hci_event_hdr *eh; struct hci_acl_hdr *ah; struct hci_sco_hdr *sh; struct fm_event_hdr *fm; struct gps_event_hdr *gps; - register int len = 0, type = 0, dlen = 0; + int len = 0, type = 0, dlen = 0; static enum proto_type protoid = ST_MAX; struct st_data_s *st_gdata = (struct st_data_s *)disc_data; @@ -918,34 +909,27 @@ static void st_tty_flush_buffer(struct tty_struct *tty) return; } +static struct tty_ldisc_ops st_ldisc_ops = { + .magic = TTY_LDISC_MAGIC, + .name = "n_st", + .open = st_tty_open, + .close = st_tty_close, + .receive_buf = st_tty_receive, + .write_wakeup = st_tty_wakeup, + .flush_buffer = st_tty_flush_buffer, + .owner = THIS_MODULE +}; + /********************************************************************/ int st_core_init(struct st_data_s **core_data) { struct st_data_s *st_gdata; long err; - static struct tty_ldisc_ops *st_ldisc_ops; - - /* populate and register to TTY line discipline */ - st_ldisc_ops = kzalloc(sizeof(*st_ldisc_ops), GFP_KERNEL); - if (!st_ldisc_ops) { - pr_err("no mem to allocate"); - return -ENOMEM; - } - st_ldisc_ops->magic = TTY_LDISC_MAGIC; - st_ldisc_ops->name = "n_st"; /*"n_hci"; */ - st_ldisc_ops->open = st_tty_open; - st_ldisc_ops->close = st_tty_close; - st_ldisc_ops->receive_buf = st_tty_receive; - st_ldisc_ops->write_wakeup = st_tty_wakeup; - st_ldisc_ops->flush_buffer = st_tty_flush_buffer; - st_ldisc_ops->owner = THIS_MODULE; - - err = tty_register_ldisc(N_TI_WL, st_ldisc_ops); + err = tty_register_ldisc(N_TI_WL, &st_ldisc_ops); if (err) { pr_err("error registering %d line discipline %ld", N_TI_WL, err); - kfree(st_ldisc_ops); return err; } pr_debug("registered n_shared line discipline"); @@ -956,7 +940,6 @@ int st_core_init(struct st_data_s **core_data) err = tty_unregister_ldisc(N_TI_WL); if (err) pr_err("unable to un-register ldisc %ld", err); - kfree(st_ldisc_ops); err = -ENOMEM; return err; } @@ -970,22 +953,6 @@ int st_core_init(struct st_data_s **core_data) /* Locking used in st_int_enqueue() to avoid multiple execution */ spin_lock_init(&st_gdata->lock); - /* ldisc_ops ref to be only used in __exit of module */ - st_gdata->ldisc_ops = st_ldisc_ops; - -#if 0 - err = st_kim_init(); - if (err) { - pr_err("error during kim initialization(%ld)", err); - kfree(st_gdata); - err = tty_unregister_ldisc(N_TI_WL); - if (err) - pr_err("unable to un-register ldisc"); - kfree(st_ldisc_ops); - return -1; - } -#endif - err = st_ll_init(st_gdata); if (err) { pr_err("error during st_ll initialization(%ld)", err); @@ -993,7 +960,6 @@ int st_core_init(struct st_data_s **core_data) err = tty_unregister_ldisc(N_TI_WL); if (err) pr_err("unable to un-register ldisc"); - kfree(st_ldisc_ops); return -1; } *core_data = st_gdata; @@ -1007,11 +973,7 @@ void st_core_exit(struct st_data_s *st_gdata) err = st_ll_deinit(st_gdata); if (err) pr_err("error during deinit of ST LL %ld", err); -#if 0 - err = st_kim_deinit(); - if (err) - pr_err("error during deinit of ST KIM %ld", err); -#endif + if (st_gdata != NULL) { /* Free ST Tx Qs and skbs */ skb_queue_purge(&st_gdata->txq); @@ -1022,7 +984,6 @@ void st_core_exit(struct st_data_s *st_gdata) err = tty_unregister_ldisc(N_TI_WL); if (err) pr_err("unable to un-register ldisc %ld", err); - kfree(st_gdata->ldisc_ops); /* free the global data pointer */ kfree(st_gdata); } diff --git a/drivers/misc/ti-st/st_kim.c b/drivers/misc/ti-st/st_kim.c index 6d23a72..73b6c8b 100644 --- a/drivers/misc/ti-st/st_kim.c +++ b/drivers/misc/ti-st/st_kim.c @@ -75,7 +75,7 @@ const unsigned char *protocol_names[] = { }; #define MAX_ST_DEVICES 3 /* Imagine 1 on each UART for now */ -struct platform_device *st_kim_devices[MAX_ST_DEVICES]; +static struct platform_device *st_kim_devices[MAX_ST_DEVICES]; /**********************************************************************/ /* internal functions */ @@ -157,17 +157,18 @@ static inline int kim_check_data_len(struct kim_data_s *kim_gdata, int len) void kim_int_recv(struct kim_data_s *kim_gdata, const unsigned char *data, long count) { - register char *ptr; + const unsigned char *ptr; struct hci_event_hdr *eh; - register int len = 0, type = 0; + int len = 0, type = 0; pr_debug("%s", __func__); /* Decode received bytes here */ - ptr = (char *)data; + ptr = data; if (unlikely(ptr == NULL)) { pr_err(" received null from TTY "); return; } + while (count) { if (kim_gdata->rx_count) { len = min_t(unsigned int, kim_gdata->rx_count, count); @@ -231,7 +232,7 @@ void kim_int_recv(struct kim_data_s *kim_gdata, static long read_local_version(struct kim_data_s *kim_gdata, char *bts_scr_name) { unsigned short version = 0, chip = 0, min_ver = 0, maj_ver = 0; - char read_ver_cmd[] = { 0x01, 0x01, 0x10, 0x00 }; + const char read_ver_cmd[] = { 0x01, 0x01, 0x10, 0x00 }; pr_debug("%s", __func__); @@ -278,8 +279,8 @@ static long download_firmware(struct kim_data_s *kim_gdata) { long err = 0; long len = 0; - register unsigned char *ptr = NULL; - register unsigned char *action_ptr = NULL; + unsigned char *ptr = NULL; + unsigned char *action_ptr = NULL; unsigned char bts_scr_name[30] = { 0 }; /* 30 char long bts scr name? */ err = read_local_version(kim_gdata, bts_scr_name); -- 1.6.2.5 --------------------------------------------------------------------- Intel Corporation SAS (French simplified joint stock company) Registered headquarters: "Les Montalets"- 2, rue de Paris, 92196 Meudon Cedex, France Registration Number: 302 456 199 R.C.S. NANTERRE Capital: 4,572,000 Euros This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.
0027-drivers-misc-ti-st-fix-review-comments.patch
Description: 0027-drivers-misc-ti-st-fix-review-comments.patch
_______________________________________________ MeeGo-kernel mailing list [email protected] http://lists.meego.com/listinfo/meego-kernel
