Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: Staging: ti-st: remove st_get_plat_device
This commit is contained in:
commit
06706b5847
|
@ -80,5 +80,4 @@ struct st_proto_s {
|
||||||
extern long st_register(struct st_proto_s *);
|
extern long st_register(struct st_proto_s *);
|
||||||
extern long st_unregister(enum proto_type);
|
extern long st_unregister(enum proto_type);
|
||||||
|
|
||||||
extern struct platform_device *st_get_plat_device(void);
|
|
||||||
#endif /* ST_H */
|
#endif /* ST_H */
|
||||||
|
|
|
@ -38,7 +38,6 @@
|
||||||
#include "st_ll.h"
|
#include "st_ll.h"
|
||||||
#include "st.h"
|
#include "st.h"
|
||||||
|
|
||||||
#define VERBOSE
|
|
||||||
/* strings to be used for rfkill entries and by
|
/* strings to be used for rfkill entries and by
|
||||||
* ST Core to be used for sysfs debug entry
|
* ST Core to be used for sysfs debug entry
|
||||||
*/
|
*/
|
||||||
|
@ -581,7 +580,7 @@ long st_register(struct st_proto_s *new_proto)
|
||||||
long err = 0;
|
long err = 0;
|
||||||
unsigned long flags = 0;
|
unsigned long flags = 0;
|
||||||
|
|
||||||
st_kim_ref(&st_gdata);
|
st_kim_ref(&st_gdata, 0);
|
||||||
pr_info("%s(%d) ", __func__, new_proto->type);
|
pr_info("%s(%d) ", __func__, new_proto->type);
|
||||||
if (st_gdata == NULL || new_proto == NULL || new_proto->recv == NULL
|
if (st_gdata == NULL || new_proto == NULL || new_proto->recv == NULL
|
||||||
|| new_proto->reg_complete_cb == NULL) {
|
|| new_proto->reg_complete_cb == NULL) {
|
||||||
|
@ -713,7 +712,7 @@ long st_unregister(enum proto_type type)
|
||||||
|
|
||||||
pr_debug("%s: %d ", __func__, 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) {
|
if (type < ST_BT || type >= ST_MAX) {
|
||||||
pr_err(" protocol %d not supported", type);
|
pr_err(" protocol %d not supported", type);
|
||||||
return -EPROTONOSUPPORT;
|
return -EPROTONOSUPPORT;
|
||||||
|
@ -767,7 +766,7 @@ long st_write(struct sk_buff *skb)
|
||||||
#endif
|
#endif
|
||||||
long len;
|
long len;
|
||||||
|
|
||||||
st_kim_ref(&st_gdata);
|
st_kim_ref(&st_gdata, 0);
|
||||||
if (unlikely(skb == NULL || st_gdata == NULL
|
if (unlikely(skb == NULL || st_gdata == NULL
|
||||||
|| st_gdata->tty == NULL)) {
|
|| st_gdata->tty == NULL)) {
|
||||||
pr_err("data/tty unavailable to perform write");
|
pr_err("data/tty unavailable to perform write");
|
||||||
|
@ -818,7 +817,7 @@ static int st_tty_open(struct tty_struct *tty)
|
||||||
struct st_data_s *st_gdata;
|
struct st_data_s *st_gdata;
|
||||||
pr_info("%s ", __func__);
|
pr_info("%s ", __func__);
|
||||||
|
|
||||||
st_kim_ref(&st_gdata);
|
st_kim_ref(&st_gdata, 0);
|
||||||
st_gdata->tty = tty;
|
st_gdata->tty = tty;
|
||||||
tty->disc_data = st_gdata;
|
tty->disc_data = st_gdata;
|
||||||
|
|
||||||
|
|
|
@ -117,7 +117,7 @@ int st_core_init(struct st_data_s **);
|
||||||
void st_core_exit(struct st_data_s *);
|
void st_core_exit(struct st_data_s *);
|
||||||
|
|
||||||
/* ask for reference from KIM */
|
/* 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
|
#define GPS_STUB_TEST
|
||||||
#ifdef GPS_STUB_TEST
|
#ifdef GPS_STUB_TEST
|
||||||
|
|
|
@ -72,10 +72,25 @@ const unsigned char *protocol_names[] = {
|
||||||
PROTO_ENTRY(ST_GPS, "GPS"),
|
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 */
|
/* 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 -
|
* validate_firmware_response -
|
||||||
* function to return whether the firmware response was proper
|
* function to return whether the firmware response was proper
|
||||||
|
@ -353,7 +368,7 @@ void st_kim_chip_toggle(enum proto_type type, enum kim_gpio_state state)
|
||||||
struct kim_data_s *kim_gdata;
|
struct kim_data_s *kim_gdata;
|
||||||
pr_info(" %s ", __func__);
|
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);
|
kim_gdata = dev_get_drvdata(&kim_pdev->dev);
|
||||||
|
|
||||||
if (kim_gdata->gpios[type] == -1) {
|
if (kim_gdata->gpios[type] == -1) {
|
||||||
|
@ -574,12 +589,12 @@ static int kim_toggle_radio(void *data, bool blocked)
|
||||||
* This would enable multiple such platform devices to exist
|
* This would enable multiple such platform devices to exist
|
||||||
* on a given platform
|
* 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 platform_device *pdev;
|
||||||
struct kim_data_s *kim_gdata;
|
struct kim_data_s *kim_gdata;
|
||||||
/* get kim_gdata reference from platform device */
|
/* 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);
|
kim_gdata = dev_get_drvdata(&pdev->dev);
|
||||||
*core_data = kim_gdata->core_data;
|
*core_data = kim_gdata->core_data;
|
||||||
}
|
}
|
||||||
|
@ -623,6 +638,7 @@ static int kim_probe(struct platform_device *pdev)
|
||||||
long *gpios = pdev->dev.platform_data;
|
long *gpios = pdev->dev.platform_data;
|
||||||
struct kim_data_s *kim_gdata;
|
struct kim_data_s *kim_gdata;
|
||||||
|
|
||||||
|
st_kim_devices[pdev->id] = pdev;
|
||||||
kim_gdata = kzalloc(sizeof(struct kim_data_s), GFP_ATOMIC);
|
kim_gdata = kzalloc(sizeof(struct kim_data_s), GFP_ATOMIC);
|
||||||
if (!kim_gdata) {
|
if (!kim_gdata) {
|
||||||
pr_err("no mem to allocate");
|
pr_err("no mem to allocate");
|
||||||
|
|
Loading…
Reference in New Issue