Loading drivers/staging/ti-st/st.h +0 −1 Original line number Diff line number Diff line Loading @@ -80,5 +80,4 @@ struct st_proto_s { extern long st_register(struct st_proto_s *); extern long st_unregister(enum proto_type); extern struct platform_device *st_get_plat_device(void); #endif /* ST_H */ drivers/staging/ti-st/st_core.c +4 −5 Original line number Diff line number Diff line Loading @@ -38,7 +38,6 @@ #include "st_ll.h" #include "st.h" #define VERBOSE /* strings to be used for rfkill entries and by * ST Core to be used for sysfs debug entry */ Loading Loading @@ -581,7 +580,7 @@ long st_register(struct st_proto_s *new_proto) long err = 0; unsigned long flags = 0; st_kim_ref(&st_gdata); st_kim_ref(&st_gdata, 0); pr_info("%s(%d) ", __func__, new_proto->type); if (st_gdata == NULL || new_proto == NULL || new_proto->recv == NULL || new_proto->reg_complete_cb == NULL) { Loading Loading @@ -713,7 +712,7 @@ long st_unregister(enum proto_type type) pr_debug("%s: %d ", __func__, type); st_kim_ref(&st_gdata); st_kim_ref(&st_gdata, 0); if (type < ST_BT || type >= ST_MAX) { pr_err(" protocol %d not supported", type); return -EPROTONOSUPPORT; Loading Loading @@ -767,7 +766,7 @@ long st_write(struct sk_buff *skb) #endif long len; st_kim_ref(&st_gdata); st_kim_ref(&st_gdata, 0); if (unlikely(skb == NULL || st_gdata == NULL || st_gdata->tty == NULL)) { pr_err("data/tty unavailable to perform write"); Loading Loading @@ -818,7 +817,7 @@ static int st_tty_open(struct tty_struct *tty) struct st_data_s *st_gdata; pr_info("%s ", __func__); st_kim_ref(&st_gdata); st_kim_ref(&st_gdata, 0); st_gdata->tty = tty; tty->disc_data = st_gdata; Loading drivers/staging/ti-st/st_core.h +1 −1 Original line number Diff line number Diff line Loading @@ -117,7 +117,7 @@ int st_core_init(struct st_data_s **); void st_core_exit(struct st_data_s *); /* ask for reference from KIM */ void st_kim_ref(struct st_data_s **); void st_kim_ref(struct st_data_s **, int); #define GPS_STUB_TEST #ifdef GPS_STUB_TEST Loading drivers/staging/ti-st/st_kim.c +19 −3 Original line number Diff line number Diff line Loading @@ -72,10 +72,25 @@ const unsigned char *protocol_names[] = { PROTO_ENTRY(ST_GPS, "GPS"), }; #define MAX_ST_DEVICES 3 /* Imagine 1 on each UART for now */ struct platform_device *st_kim_devices[MAX_ST_DEVICES]; /**********************************************************************/ /* internal functions */ /** * st_get_plat_device - * function which returns the reference to the platform device * requested by id. As of now only 1 such device exists (id=0) * the context requesting for reference can get the id to be * requested by a. The protocol driver which is registering or * b. the tty device which is opened. */ static struct platform_device *st_get_plat_device(int id) { return st_kim_devices[id]; } /** * validate_firmware_response - * function to return whether the firmware response was proper Loading Loading @@ -353,7 +368,7 @@ void st_kim_chip_toggle(enum proto_type type, enum kim_gpio_state state) struct kim_data_s *kim_gdata; pr_info(" %s ", __func__); kim_pdev = st_get_plat_device(); kim_pdev = st_get_plat_device(0); kim_gdata = dev_get_drvdata(&kim_pdev->dev); if (kim_gdata->gpios[type] == -1) { Loading Loading @@ -574,12 +589,12 @@ static int kim_toggle_radio(void *data, bool blocked) * This would enable multiple such platform devices to exist * on a given platform */ void st_kim_ref(struct st_data_s **core_data) void st_kim_ref(struct st_data_s **core_data, int id) { struct platform_device *pdev; struct kim_data_s *kim_gdata; /* get kim_gdata reference from platform device */ pdev = st_get_plat_device(); pdev = st_get_plat_device(id); kim_gdata = dev_get_drvdata(&pdev->dev); *core_data = kim_gdata->core_data; } Loading Loading @@ -623,6 +638,7 @@ static int kim_probe(struct platform_device *pdev) long *gpios = pdev->dev.platform_data; struct kim_data_s *kim_gdata; st_kim_devices[pdev->id] = pdev; kim_gdata = kzalloc(sizeof(struct kim_data_s), GFP_ATOMIC); if (!kim_gdata) { pr_err("no mem to allocate"); Loading Loading
drivers/staging/ti-st/st.h +0 −1 Original line number Diff line number Diff line Loading @@ -80,5 +80,4 @@ struct st_proto_s { extern long st_register(struct st_proto_s *); extern long st_unregister(enum proto_type); extern struct platform_device *st_get_plat_device(void); #endif /* ST_H */
drivers/staging/ti-st/st_core.c +4 −5 Original line number Diff line number Diff line Loading @@ -38,7 +38,6 @@ #include "st_ll.h" #include "st.h" #define VERBOSE /* strings to be used for rfkill entries and by * ST Core to be used for sysfs debug entry */ Loading Loading @@ -581,7 +580,7 @@ long st_register(struct st_proto_s *new_proto) long err = 0; unsigned long flags = 0; st_kim_ref(&st_gdata); st_kim_ref(&st_gdata, 0); pr_info("%s(%d) ", __func__, new_proto->type); if (st_gdata == NULL || new_proto == NULL || new_proto->recv == NULL || new_proto->reg_complete_cb == NULL) { Loading Loading @@ -713,7 +712,7 @@ long st_unregister(enum proto_type type) pr_debug("%s: %d ", __func__, type); st_kim_ref(&st_gdata); st_kim_ref(&st_gdata, 0); if (type < ST_BT || type >= ST_MAX) { pr_err(" protocol %d not supported", type); return -EPROTONOSUPPORT; Loading Loading @@ -767,7 +766,7 @@ long st_write(struct sk_buff *skb) #endif long len; st_kim_ref(&st_gdata); st_kim_ref(&st_gdata, 0); if (unlikely(skb == NULL || st_gdata == NULL || st_gdata->tty == NULL)) { pr_err("data/tty unavailable to perform write"); Loading Loading @@ -818,7 +817,7 @@ static int st_tty_open(struct tty_struct *tty) struct st_data_s *st_gdata; pr_info("%s ", __func__); st_kim_ref(&st_gdata); st_kim_ref(&st_gdata, 0); st_gdata->tty = tty; tty->disc_data = st_gdata; Loading
drivers/staging/ti-st/st_core.h +1 −1 Original line number Diff line number Diff line Loading @@ -117,7 +117,7 @@ int st_core_init(struct st_data_s **); void st_core_exit(struct st_data_s *); /* ask for reference from KIM */ void st_kim_ref(struct st_data_s **); void st_kim_ref(struct st_data_s **, int); #define GPS_STUB_TEST #ifdef GPS_STUB_TEST Loading
drivers/staging/ti-st/st_kim.c +19 −3 Original line number Diff line number Diff line Loading @@ -72,10 +72,25 @@ const unsigned char *protocol_names[] = { PROTO_ENTRY(ST_GPS, "GPS"), }; #define MAX_ST_DEVICES 3 /* Imagine 1 on each UART for now */ struct platform_device *st_kim_devices[MAX_ST_DEVICES]; /**********************************************************************/ /* internal functions */ /** * st_get_plat_device - * function which returns the reference to the platform device * requested by id. As of now only 1 such device exists (id=0) * the context requesting for reference can get the id to be * requested by a. The protocol driver which is registering or * b. the tty device which is opened. */ static struct platform_device *st_get_plat_device(int id) { return st_kim_devices[id]; } /** * validate_firmware_response - * function to return whether the firmware response was proper Loading Loading @@ -353,7 +368,7 @@ void st_kim_chip_toggle(enum proto_type type, enum kim_gpio_state state) struct kim_data_s *kim_gdata; pr_info(" %s ", __func__); kim_pdev = st_get_plat_device(); kim_pdev = st_get_plat_device(0); kim_gdata = dev_get_drvdata(&kim_pdev->dev); if (kim_gdata->gpios[type] == -1) { Loading Loading @@ -574,12 +589,12 @@ static int kim_toggle_radio(void *data, bool blocked) * This would enable multiple such platform devices to exist * on a given platform */ void st_kim_ref(struct st_data_s **core_data) void st_kim_ref(struct st_data_s **core_data, int id) { struct platform_device *pdev; struct kim_data_s *kim_gdata; /* get kim_gdata reference from platform device */ pdev = st_get_plat_device(); pdev = st_get_plat_device(id); kim_gdata = dev_get_drvdata(&pdev->dev); *core_data = kim_gdata->core_data; } Loading Loading @@ -623,6 +638,7 @@ static int kim_probe(struct platform_device *pdev) long *gpios = pdev->dev.platform_data; struct kim_data_s *kim_gdata; st_kim_devices[pdev->id] = pdev; kim_gdata = kzalloc(sizeof(struct kim_data_s), GFP_ATOMIC); if (!kim_gdata) { pr_err("no mem to allocate"); Loading