gserial
ret = gnss_serial_register(gserial);
gnss_serial_free(gserial);
struct gnss_serial *gserial = serdev_device_get_drvdata(serdev);
struct mtk_data *data = gnss_serial_get_drvdata(gserial);
gnss_serial_deregister(gserial);
gnss_serial_free(gserial);
static int mtk_set_active(struct gnss_serial *gserial)
struct mtk_data *data = gnss_serial_get_drvdata(gserial);
static int mtk_set_standby(struct gnss_serial *gserial)
struct mtk_data *data = gnss_serial_get_drvdata(gserial);
static int mtk_set_power(struct gnss_serial *gserial,
return mtk_set_active(gserial);
return mtk_set_standby(gserial);
struct gnss_serial *gserial;
gserial = gnss_serial_allocate(serdev, sizeof(*data));
if (IS_ERR(gserial)) {
ret = PTR_ERR(gserial);
gserial->ops = &mtk_gserial_ops;
gserial->gdev->type = GNSS_TYPE_MTK;
data = gnss_serial_get_drvdata(gserial);
if (!gserial->ops || !gserial->ops->set_power)
return gserial->ops->set_power(gserial, state);
struct gnss_serial *gserial = serdev_device_get_drvdata(serdev);
gserial->speed = speed;
struct gnss_serial *gserial;
gserial = kzalloc(sizeof(*gserial) + data_size, GFP_KERNEL);
if (!gserial)
gnss_set_drvdata(gdev, gserial);
gserial->serdev = serdev;
gserial->gdev = gdev;
serdev_device_set_drvdata(serdev, gserial);
return gserial;
gnss_put_device(gserial->gdev);
kfree(gserial);
void gnss_serial_free(struct gnss_serial *gserial)
gnss_put_device(gserial->gdev);
kfree(gserial);
int gnss_serial_register(struct gnss_serial *gserial)
struct serdev_device *serdev = gserial->serdev;
ret = gnss_serial_set_power(gserial, GNSS_SERIAL_ACTIVE);
ret = gnss_register_device(gserial->gdev);
gnss_serial_set_power(gserial, GNSS_SERIAL_OFF);
void gnss_serial_deregister(struct gnss_serial *gserial)
struct serdev_device *serdev = gserial->serdev;
gnss_deregister_device(gserial->gdev);
gnss_serial_set_power(gserial, GNSS_SERIAL_OFF);
struct gnss_serial *gserial = dev_get_drvdata(dev);
return gnss_serial_set_power(gserial, GNSS_SERIAL_STANDBY);
struct gnss_serial *gserial = dev_get_drvdata(dev);
return gnss_serial_set_power(gserial, GNSS_SERIAL_ACTIVE);
struct gnss_serial *gserial = gnss_get_drvdata(gdev);
struct gnss_serial *gserial = dev_get_drvdata(dev);
struct serdev_device *serdev = gserial->serdev;
ret = gnss_serial_set_power(gserial, GNSS_SERIAL_STANDBY);
struct gnss_serial *gserial = dev_get_drvdata(dev);
ret = gnss_serial_set_power(gserial, GNSS_SERIAL_ACTIVE);
serdev_device_set_baudrate(serdev, gserial->speed);
struct gnss_serial *gserial = gnss_get_drvdata(gdev);
struct serdev_device *serdev = gserial->serdev;
struct gnss_serial *gserial = gnss_get_drvdata(gdev);
struct serdev_device *serdev = gserial->serdev;
struct gnss_serial *gserial = serdev_device_get_drvdata(serdev);
struct gnss_device *gdev = gserial->gdev;
static int gnss_serial_set_power(struct gnss_serial *gserial,
int (*set_power)(struct gnss_serial *gserial,
struct gnss_serial *gnss_serial_allocate(struct serdev_device *gserial,
void gnss_serial_free(struct gnss_serial *gserial);
int gnss_serial_register(struct gnss_serial *gserial);
void gnss_serial_deregister(struct gnss_serial *gserial);
static inline void *gnss_serial_get_drvdata(struct gnss_serial *gserial)
return gserial->drvdata;
ret = gnss_serial_register(gserial);
gnss_serial_free(gserial);
struct gnss_serial *gserial = serdev_device_get_drvdata(serdev);
gnss_serial_deregister(gserial);
gnss_serial_free(gserial);
static int ubx_set_active(struct gnss_serial *gserial)
struct ubx_data *data = gnss_serial_get_drvdata(gserial);
static int ubx_set_standby(struct gnss_serial *gserial)
struct ubx_data *data = gnss_serial_get_drvdata(gserial);
static int ubx_set_power(struct gnss_serial *gserial,
return ubx_set_active(gserial);
return ubx_set_standby(gserial);
struct gnss_serial *gserial;
gserial = gnss_serial_allocate(serdev, sizeof(*data));
if (IS_ERR(gserial)) {
ret = PTR_ERR(gserial);
gserial->ops = &ubx_gserial_ops;
gserial->gdev->type = GNSS_TYPE_UBX;
data = gnss_serial_get_drvdata(gserial);
static int acm_send_break(struct gserial *port, int duration);
struct gserial port;
static void acm_connect(struct gserial *port)
static void acm_disconnect(struct gserial *port)
static int acm_send_break(struct gserial *port, int duration)
static inline struct f_acm *port_to_acm(struct gserial *p)
static void obex_connect(struct gserial *g)
static void obex_disconnect(struct gserial *g)
struct gserial port;
static inline struct f_obex *port_to_obex(struct gserial *p)
struct gserial port;
struct gserial *port_usb;
int gserial_connect(struct gserial *gser, u8 port_num)
void gserial_disconnect(struct gserial *gser)
void gserial_suspend(struct gserial *gser)
void gserial_resume(struct gserial *gser)
static int gserial_wakeup_host(struct gserial *gser)
struct gserial *gser = port->port_usb;
struct gserial *gser;
struct gserial *gser = port->port_usb;
struct gserial *gser = port->port_usb;
struct gserial *gser;
void (*connect)(struct gserial *p);
void (*disconnect)(struct gserial *p);
int (*send_break)(struct gserial *p, int duration);
int gserial_connect(struct gserial *, u8 port_num);
void gserial_disconnect(struct gserial *);
void gserial_suspend(struct gserial *p);
void gserial_resume(struct gserial *p);
dbgp.serial = kzalloc_obj(struct gserial);
struct gserial *serial;