• Home
  • Raw
  • Download

Lines Matching refs:sat

52 	struct wf_sat	*sat;  member
73 struct wf_sat *sat; in smu_sat_get_sdb_partition() local
81 if (sat_id > 1 || (sat = sats[sat_id]) == NULL) in smu_sat_get_sdb_partition()
84 err = i2c_smbus_write_word_data(&sat->i2c, 8, id << 8); in smu_sat_get_sdb_partition()
90 err = i2c_smbus_read_word_data(&sat->i2c, 9); in smu_sat_get_sdb_partition()
108 err = i2c_smbus_read_i2c_block_data(&sat->i2c, 0xa, 4, data); in smu_sat_get_sdb_partition()
137 static int wf_sat_read_cache(struct wf_sat *sat) in wf_sat_read_cache() argument
141 err = i2c_smbus_read_i2c_block_data(&sat->i2c, 0x3f, 16, sat->cache); in wf_sat_read_cache()
144 sat->last_read = jiffies; in wf_sat_read_cache()
150 DBG(" %.2x", sat->cache[i]); in wf_sat_read_cache()
160 struct wf_sat *sat = sens->sat; in wf_sat_get() local
164 if (sat->i2c.adapter == NULL) in wf_sat_get()
167 mutex_lock(&sat->mutex); in wf_sat_get()
168 if (time_after(jiffies, (sat->last_read + MAX_AGE))) { in wf_sat_get()
169 err = wf_sat_read_cache(sat); in wf_sat_get()
175 val = ((sat->cache[i] << 8) + sat->cache[i+1]) << sens->shift; in wf_sat_get()
179 val = (val * ((sat->cache[i] << 8) + sat->cache[i+1])) >> 4; in wf_sat_get()
186 mutex_unlock(&sat->mutex); in wf_sat_get()
193 struct wf_sat *sat = sens->sat; in wf_sat_release() local
195 if (atomic_dec_and_test(&sat->refcnt)) { in wf_sat_release()
196 if (sat->i2c.adapter) { in wf_sat_release()
197 i2c_detach_client(&sat->i2c); in wf_sat_release()
198 sat->i2c.adapter = NULL; in wf_sat_release()
200 if (sat->nr >= 0) in wf_sat_release()
201 sats[sat->nr] = NULL; in wf_sat_release()
202 kfree(sat); in wf_sat_release()
215 struct wf_sat *sat; in wf_sat_create() local
231 sat = kzalloc(sizeof(struct wf_sat), GFP_KERNEL); in wf_sat_create()
232 if (sat == NULL) in wf_sat_create()
234 sat->nr = -1; in wf_sat_create()
235 sat->node = of_node_get(dev); in wf_sat_create()
236 atomic_set(&sat->refcnt, 0); in wf_sat_create()
237 mutex_init(&sat->mutex); in wf_sat_create()
238 sat->i2c.addr = (addr >> 1) & 0x7f; in wf_sat_create()
239 sat->i2c.adapter = adapter; in wf_sat_create()
240 sat->i2c.driver = &wf_sat_driver; in wf_sat_create()
241 strncpy(sat->i2c.name, "smu-sat", I2C_NAME_SIZE-1); in wf_sat_create()
243 if (i2c_attach_client(&sat->i2c)) { in wf_sat_create()
274 if (sat->nr < 0) in wf_sat_create()
275 sat->nr = chip; in wf_sat_create()
276 else if (sat->nr != chip) { in wf_sat_create()
306 sens->sat = sat; in wf_sat_create()
307 atomic_inc(&sat->refcnt); in wf_sat_create()
313 atomic_dec(&sat->refcnt); in wf_sat_create()
322 cpu = 2 * sat->nr + core; in wf_sat_create()
332 sens->sat = sat; in wf_sat_create()
333 atomic_inc(&sat->refcnt); in wf_sat_create()
339 atomic_dec(&sat->refcnt); in wf_sat_create()
344 if (sat->nr >= 0) in wf_sat_create()
345 sats[sat->nr] = sat; in wf_sat_create()
350 kfree(sat); in wf_sat_create()
371 struct wf_sat *sat = i2c_to_sat(client); in wf_sat_detach() local
375 sat->i2c.adapter = NULL; in wf_sat_detach()