f11
fst.d $f11, \tmp, THREAD_FPR11 - THREAD_FPR0
fld.d $f11, \tmp, THREAD_FPR11 - THREAD_FPR0
#define ft3 $f11
sdc1 $f11, THREAD_FPR11(\thread)
ldc1 $f11, THREAD_FPR11(\thread)
#define ft3f $f11
#define ft7 $f11
v10, f11, v11, f12, v12, f13, v13, f14, v14)\
FN(reg, f11), v11, \
v10, f11, v11, f12, v12, f13, v13, f14, v14, f15, v15, f16, v16, f17, v17, f18, v18, f19, v19)\
FN(reg, f11), v11, \
v10, f11, v11, f12, v12, f13, v13, f14, v14, f15, v15, f16, v16, f17, v17, f18, v18, f19, v19, f20, v20)\
FN(reg, f11), v11, \
if (f11->has_query27)
if (f11->has_query28) {
f11->has_acm = true;
struct f11_data *f11;
f11 = devm_kzalloc(&fn->dev, sizeof(struct f11_data) + mask_size * 2,
if (!f11)
rc = rmi_2d_sensor_of_probe(&fn->dev, &f11->sensor_pdata);
f11->sensor_pdata = pdata->sensor_pdata;
f11->rezero_wait_ms = f11->sensor_pdata.rezero_wait;
f11->abs_mask = (unsigned long *)((char *)f11
f11->rel_mask = (unsigned long *)((char *)f11
set_bit(fn->irq_pos, f11->abs_mask);
set_bit(fn->irq_pos + 1, f11->rel_mask);
f11->has_query9 = !!(buf & RMI_F11_HAS_QUERY9);
f11->has_query11 = !!(buf & RMI_F11_HAS_QUERY11);
f11->has_query12 = !!(buf & RMI_F11_HAS_QUERY12);
f11->has_query27 = !!(buf & RMI_F11_HAS_QUERY27);
f11->has_query28 = !!(buf & RMI_F11_HAS_QUERY28);
sensor = &f11->sensor;
rc = rmi_f11_get_query_parameters(rmi_dev, f11,
&f11->sens_query, query_offset);
rc = f11_read_control_regs(fn, &f11->dev_controls,
if (f11->sens_query.has_info2) {
if (f11->sens_query.is_clear)
f11->sensor.sensor_type = rmi_sensor_touchscreen;
f11->sensor.sensor_type = rmi_sensor_touchpad;
sensor->report_abs = f11->sens_query.has_abs;
f11->sensor_pdata.axis_align;
sensor->topbuttonpad = f11->sensor_pdata.topbuttonpad;
sensor->kernel_tracking = f11->sensor_pdata.kernel_tracking;
sensor->dmax = f11->sensor_pdata.dmax;
sensor->dribble = f11->sensor_pdata.dribble;
sensor->palm_detect = f11->sensor_pdata.palm_detect;
if (f11->sens_query.has_physical_props) {
sensor->x_mm = f11->sens_query.x_sensor_size_mm;
sensor->y_mm = f11->sens_query.y_sensor_size_mm;
sensor->x_mm = f11->sensor_pdata.x_mm;
sensor->y_mm = f11->sensor_pdata.y_mm;
f11->sensor_pdata.sensor_type;
&& !(f11->sensor_pdata.disable_report_mask
sensor->report_rel = f11->sens_query.has_rel;
rc = f11_2d_construct_data(f11);
if (f11->has_acm)
f11->sensor.attn_size += f11->sensor.nbr_fingers * 2;
ctrl = &f11->dev_controls;
if (f11->sens_query.has_dribble) {
if (f11->sens_query.has_palm_det) {
rc = f11_write_control_regs(fn, &f11->sens_query,
&f11->dev_controls, fn->fd.control_base_addr);
mutex_init(&f11->dev_controls_mutex);
dev_set_drvdata(&fn->dev, f11);
struct f11_data *f11 = dev_get_drvdata(&fn->dev);
struct rmi_2d_sensor *sensor = &f11->sensor;
drv->clear_irq_bits(fn->rmi_dev, f11->abs_mask);
drv->set_irq_bits(fn->rmi_dev, f11->abs_mask);
drv->clear_irq_bits(fn->rmi_dev, f11->rel_mask);
drv->set_irq_bits(fn->rmi_dev, f11->rel_mask);
rc = f11_write_control_regs(fn, &f11->sens_query,
&f11->dev_controls, fn->fd.query_base_addr);
struct f11_data *f11 = dev_get_drvdata(&fn->dev);
u32 valid_bytes = f11->sensor.pkt_size;
if (f11->sensor.attn_size > drvdata->attn_data.size)
valid_bytes = f11->sensor.attn_size;
memcpy(f11->sensor.data_pkt, drvdata->attn_data.data,
data_base_addr, f11->sensor.data_pkt,
f11->sensor.pkt_size);
rmi_f11_finger_handler(f11, &f11->sensor, valid_bytes);
struct f11_data *f11 = dev_get_drvdata(&fn->dev);
if (!f11->rezero_wait_ms)
mdelay(f11->rezero_wait_ms);
struct f11_data *f11;
f11 = dev_get_drvdata(&fn->dev);
error = rmi_2d_sensor_configure_input(fn, &f11->sensor);
static void rmi_f11_rel_pos_report(struct f11_data *f11, u8 n_finger)
struct rmi_2d_sensor *sensor = &f11->sensor;
struct f11_2d_data *data = &f11->data;
static void rmi_f11_abs_pos_process(struct f11_data *f11,
struct f11_2d_data *data = &f11->data;
static void rmi_f11_finger_handler(struct f11_data *f11,
const u8 *f_state = f11->data.f_state;
rmi_f11_abs_pos_process(f11, sensor, &sensor->objs[i],
rmi_f11_rel_pos_report(f11, i);
static int f11_2d_construct_data(struct f11_data *f11)
struct rmi_2d_sensor *sensor = &f11->sensor;
struct f11_2d_sensor_queries *query = &f11->sens_query;
struct f11_2d_data *data = &f11->data;
struct f11_data *f11,
if (f11->has_query9) {
if (f11->has_query11) {
if (f11->has_query12) {
#define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11) \
msm_mux_##f11 /* egpio mode */ \
#define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11) \
msm_mux_##f11 /* egpio mode */ \
#define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11) \
msm_mux_##f11 /* egpio mode */ \
#define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14) \
qca_mux_##f11, \
#define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11) \
msm_mux_##f11 /* egpio mode */ \
#define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11) \
msm_mux_##f11 \
#define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11) \
msm_mux_##f11 /* egpio mode */ \
#define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11) \
msm_mux_##f11 \
#define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11) \
msm_mux_##f11 \
#define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11) \
msm_mux_##f11 /* egpio mode */ \
#define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11)\
msm_mux_##f11 /* egpio mode */ \
#define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11) \
msm_mux_##f11 \
#define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11) \
msm_mux_##f11 /* egpio mode */ \
REG_DWARFNUM_NAME(f11, 29),
func_proto_typedef___diff f11;
arr_typedef___diff_sz f11;
arr_typedef___incompat f11;
restrict_ptr_typedef f11;
return f11(skb);