Lines Matching refs:lpm_priv
144 static struct ps3_lpm_priv *lpm_priv; variable
148 BUG_ON(!lpm_priv || !lpm_priv->sbd); in sbd_core()
149 return &lpm_priv->sbd->core; in sbd_core()
210 result = lv1_set_lpm_counter(lpm_priv->lpm_id, 0, 0, 0, 0, &counter0415, in ps3_read_phys_ctr()
285 result = lv1_set_lpm_counter(lpm_priv->lpm_id, in ps3_write_phys_ctr()
374 result = lv1_set_lpm_counter_control(lpm_priv->lpm_id, ctr, val, mask, in ps3_write_pm07_control()
394 return lpm_priv->shadow.pm_control; in ps3_read_pm()
398 return lpm_priv->shadow.pm_start_stop; in ps3_read_pm()
400 result = lv1_set_lpm_interval(lpm_priv->lpm_id, 0, 0, &val); in ps3_read_pm()
409 return lpm_priv->shadow.group_control; in ps3_read_pm()
411 return lpm_priv->shadow.debug_bus_control; in ps3_read_pm()
413 result = lv1_get_lpm_interrupt_status(lpm_priv->lpm_id, in ps3_read_pm()
446 if (val != lpm_priv->shadow.group_control) in ps3_write_pm()
447 result = lv1_set_lpm_group_control(lpm_priv->lpm_id, in ps3_write_pm()
451 lpm_priv->shadow.group_control = val; in ps3_write_pm()
454 if (val != lpm_priv->shadow.debug_bus_control) in ps3_write_pm()
455 result = lv1_set_lpm_debug_bus_control(lpm_priv->lpm_id, in ps3_write_pm()
459 lpm_priv->shadow.debug_bus_control = val; in ps3_write_pm()
465 if (val != lpm_priv->shadow.pm_control) in ps3_write_pm()
466 result = lv1_set_lpm_general_control(lpm_priv->lpm_id, in ps3_write_pm()
471 lpm_priv->shadow.pm_control = val; in ps3_write_pm()
474 result = lv1_set_lpm_interval(lpm_priv->lpm_id, val, in ps3_write_pm()
478 if (val != lpm_priv->shadow.pm_start_stop) in ps3_write_pm()
479 result = lv1_set_lpm_trigger_control(lpm_priv->lpm_id, in ps3_write_pm()
483 lpm_priv->shadow.pm_start_stop = val; in ps3_write_pm()
753 ret = lv1_set_lpm_signal(lpm_priv->lpm_id, lv1_signal_group, bus_select, in __ps3_set_signal()
809 attr2 = lpm_priv->pu_id; in ps3_set_signal()
844 lpm_priv->tb_count = 0; in ps3_enable_pm()
847 if (!(lpm_priv->shadow.pm_start_stop & in ps3_enable_pm()
850 result = lv1_set_lpm_trigger_control(lpm_priv->lpm_id, in ps3_enable_pm()
867 result = lv1_start_lpm(lpm_priv->lpm_id); in ps3_enable_pm()
889 result = lv1_stop_lpm(lpm_priv->lpm_id, &tmp); in ps3_disable_pm()
898 lpm_priv->tb_count = tmp; in ps3_disable_pm()
901 lpm_priv->tb_count, lpm_priv->tb_count); in ps3_disable_pm()
924 if (!lpm_priv->tb_cache) in ps3_lpm_copy_tb()
927 if (offset >= lpm_priv->tb_count) in ps3_lpm_copy_tb()
930 count = min_t(u64, count, lpm_priv->tb_count - offset); in ps3_lpm_copy_tb()
936 result = lv1_copy_lpm_trace_buffer(lpm_priv->lpm_id, offset, in ps3_lpm_copy_tb()
948 memcpy(buf, lpm_priv->tb_cache, tmp); in ps3_lpm_copy_tb()
979 if (!lpm_priv->tb_cache) in ps3_lpm_copy_tb_to_user()
982 if (offset >= lpm_priv->tb_count) in ps3_lpm_copy_tb_to_user()
985 count = min_t(u64, count, lpm_priv->tb_count - offset); in ps3_lpm_copy_tb_to_user()
991 result = lv1_copy_lpm_trace_buffer(lpm_priv->lpm_id, offset, in ps3_lpm_copy_tb_to_user()
1002 result = copy_to_user(buf, lpm_priv->tb_cache, tmp); in ps3_lpm_copy_tb_to_user()
1080 BUG_ON(!lpm_priv); in ps3_lpm_open()
1087 if (!atomic_add_unless(&lpm_priv->open, 1, 1)) { in ps3_lpm_open()
1095 lpm_priv->tb_cache_size = 0; in ps3_lpm_open()
1096 lpm_priv->tb_cache_internal = NULL; in ps3_lpm_open()
1097 lpm_priv->tb_cache = NULL; in ps3_lpm_open()
1106 lpm_priv->tb_cache_size = tb_cache_size; in ps3_lpm_open()
1107 lpm_priv->tb_cache_internal = NULL; in ps3_lpm_open()
1108 lpm_priv->tb_cache = tb_cache; in ps3_lpm_open()
1110 lpm_priv->tb_cache_size = PS3_LPM_DEFAULT_TB_CACHE_SIZE; in ps3_lpm_open()
1111 lpm_priv->tb_cache_internal = kzalloc( in ps3_lpm_open()
1112 lpm_priv->tb_cache_size + 127, GFP_KERNEL); in ps3_lpm_open()
1113 if (!lpm_priv->tb_cache_internal) { in ps3_lpm_open()
1117 lpm_priv->tb_cache = (void *)ALIGN( in ps3_lpm_open()
1118 (unsigned long)lpm_priv->tb_cache_internal, 128); in ps3_lpm_open()
1121 result = lv1_construct_lpm(lpm_priv->node_id, tb_type, 0, 0, in ps3_lpm_open()
1122 ps3_mm_phys_to_lpar(__pa(lpm_priv->tb_cache)), in ps3_lpm_open()
1123 lpm_priv->tb_cache_size, &lpm_priv->lpm_id, in ps3_lpm_open()
1124 &lpm_priv->outlet_id, &tb_size); in ps3_lpm_open()
1133 lpm_priv->shadow.pm_control = PS3_LPM_SHADOW_REG_INIT; in ps3_lpm_open()
1134 lpm_priv->shadow.pm_start_stop = PS3_LPM_SHADOW_REG_INIT; in ps3_lpm_open()
1135 lpm_priv->shadow.group_control = PS3_LPM_SHADOW_REG_INIT; in ps3_lpm_open()
1136 lpm_priv->shadow.debug_bus_control = PS3_LPM_SHADOW_REG_INIT; in ps3_lpm_open()
1139 "tb_size 0x%llx\n", __func__, __LINE__, lpm_priv->lpm_id, in ps3_lpm_open()
1140 lpm_priv->outlet_id, tb_size); in ps3_lpm_open()
1145 kfree(lpm_priv->tb_cache_internal); in ps3_lpm_open()
1146 lpm_priv->tb_cache_internal = NULL; in ps3_lpm_open()
1149 atomic_dec(&lpm_priv->open); in ps3_lpm_open()
1163 lv1_destruct_lpm(lpm_priv->lpm_id); in ps3_lpm_close()
1164 lpm_priv->lpm_id = 0; in ps3_lpm_close()
1166 kfree(lpm_priv->tb_cache_internal); in ps3_lpm_close()
1167 lpm_priv->tb_cache_internal = NULL; in ps3_lpm_close()
1169 atomic_dec(&lpm_priv->open); in ps3_lpm_close()
1178 if (lpm_priv) { in ps3_lpm_probe()
1184 lpm_priv = kzalloc(sizeof(*lpm_priv), GFP_KERNEL); in ps3_lpm_probe()
1186 if (!lpm_priv) in ps3_lpm_probe()
1189 lpm_priv->sbd = dev; in ps3_lpm_probe()
1190 lpm_priv->node_id = dev->lpm.node_id; in ps3_lpm_probe()
1191 lpm_priv->pu_id = dev->lpm.pu_id; in ps3_lpm_probe()
1192 lpm_priv->rights = dev->lpm.rights; in ps3_lpm_probe()
1205 kfree(lpm_priv); in ps3_lpm_remove()
1206 lpm_priv = NULL; in ps3_lpm_remove()