Displaying 7 results from an estimated 7 matches for "isr_mutex".
2015 Apr 13
3
[PATCH v4] pmu/gk20a: PMU boot support
...priv {
struct nvkm_pmu base;
struct nvkm_alarm alarm;
struct gk20a_pmu_dvfs_data *data;
+ struct pmu_ucode_desc *desc;
+ struct pmu_buf_desc ucode;
+ struct pmu_buf_desc trace_buf;
+ struct mutex pmu_copy_lock;
+ bool pmu_ready;
+ int pmu_state;
+ struct nvkm_pmu_priv_vm pmuvm;
+ struct mutex isr_mutex;
+ bool isr_enabled;
};
+#define to_gk20a_priv(ptr) container_of(ptr, struct gk20a_pmu_priv, base)
+
struct gk20a_pmu_dvfs_dev_status {
unsigned long total;
unsigned long busy;
@@ -48,6 +231,59 @@ struct gk20a_pmu_dvfs_dev_status {
};
static int
+gk20a_pmu_load_firmware(struct nvkm_pmu...
2015 Apr 08
3
[PATCH V2] pmu/gk20a: PMU boot support.
...20a_pmu_dvfs_data *data;
+ struct pmu_ucode_desc *desc;
+ struct pmu_buf_desc ucode;
+ struct pmu_buf_desc trace_buf;
+ struct mutex pmu_copy_lock;
+ bool pmu_ready;
+ int pmu_state;
+ struct nvkm_pmu_priv_vm pmuvm;
+ struct work_struct isr_workq;
+ bool initialized;
+ bool sw_ready;
+ struct mutex isr_mutex;
+ bool isr_enabled;
};
+#define to_gk20a_priv(ptr) container_of(ptr, struct gk20a_pmu_priv, base)
+
struct gk20a_pmu_dvfs_dev_status {
unsigned long total;
unsigned long busy;
@@ -48,6 +229,61 @@ struct gk20a_pmu_dvfs_dev_status {
};
static int
+gk20a_pmu_load_firmware(struct nvkm_pmu...
2015 Apr 30
2
[PATCH v4] pmu/gk20a: PMU boot support
...u_ucode_desc *desc;
>> + struct pmu_buf_desc ucode;
>> + struct pmu_buf_desc trace_buf;
>> + struct mutex pmu_copy_lock;
>> + bool pmu_ready;
>> + int pmu_state;
>> + struct nvkm_pmu_priv_vm pmuvm;
>> + struct mutex isr_mutex;
>> + bool isr_enabled;
>> };
>>
>> +#define to_gk20a_priv(ptr) container_of(ptr, struct gk20a_pmu_priv, base)
>> +
>> struct gk20a_pmu_dvfs_dev_status {
>> unsigned long total;
>> unsigned long busy;
>> @@ -48,6 +231,5...
2015 Mar 11
3
[PATCH] pmu/gk20a: PMU boot support.
...km_pmu_impl *impl = (void *)nv_oclass(ppmu);
+ struct pmu_desc *pmu;
+ struct gk20a_pmu_priv *priv;
+ struct pmu_gk20a_data *gk20adata;
int ret;
- ret = nvkm_subdev_init(&pmu->base);
+ pmu = &impl->pmudata;
+
+ nv_subdev(ppmu)->intr = gk20a_pmu_intr;
+
+ mutex_init(&pmu->isr_mutex);
+ mutex_init(&pmu->pmu_copy_lock);
+ mutex_init(&pmu->pmu_seq_lock);
+
+ if (pmufw == NULL) {
+ ret = gk20a_pmu_load_firmware(ppmu, &pmufw);
+ if (ret < 0) {
+ nv_error(ppmu, "failed to load pmu fimware\n");
+ return ret;
+ }
+ nv_debug(ppmu, "loading f...
2015 Mar 11
0
[PATCH] pmu/gk20a: PMU boot support.
...k20a_pmu_priv *priv;
> + struct pmu_gk20a_data *gk20adata;
> int ret;
>
> - ret = nvkm_subdev_init(&pmu->base);
> + pmu = &impl->pmudata;
> +
> + nv_subdev(ppmu)->intr = gk20a_pmu_intr;
> +
> + mutex_init(&pmu->isr_mutex);
> + mutex_init(&pmu->pmu_copy_lock);
> + mutex_init(&pmu->pmu_seq_lock);
> +
> + if (pmufw == NULL) {
> + ret = gk20a_pmu_load_firmware(ppmu, &pmufw);
> + if (ret < 0) {
> + nv_error(ppmu...
2015 Mar 12
2
[PATCH] pmu/gk20a: PMU boot support.
...k20a_pmu_priv *priv;
> + struct pmu_gk20a_data *gk20adata;
> int ret;
>
> - ret = nvkm_subdev_init(&pmu->base);
> + pmu = &impl->pmudata;
> +
> + nv_subdev(ppmu)->intr = gk20a_pmu_intr;
> +
> + mutex_init(&pmu->isr_mutex);
> + mutex_init(&pmu->pmu_copy_lock);
> + mutex_init(&pmu->pmu_seq_lock);
> +
> + if (pmufw == NULL) {
> + ret = gk20a_pmu_load_firmware(ppmu, &pmufw);
> + if (ret < 0) {
> + nv_error(ppmu...
2016 Nov 21
33
[PATCH v4 0/33] Secure Boot refactoring / signed PMU firmware support for GM20B
This revision includes initial signed PMU firmware support for GM20B
(Tegra X1). This PMU code will also be used as a basis for dGPU signed
PMU firmware support.
With the PMU code, the refactoring of secure boot should also make
more sense.
ACR (secure boot) support is now separated by the driver version it
originates from. This separation allows to run any version of the ACR
on any chip,