Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 313539
b: refs/heads/master
c: 80821c9
h: refs/heads/master
i:
  313537: 7489ecf
  313535: bc06855
v: v3
  • Loading branch information
Jean Pihet authored and Kevin Hilman committed May 31, 2012
1 parent ad53523 commit eb6806c
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 47 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b86aeafc766b71f6d55e54ed2c77fdf7f56ec1ba
refs/heads/master: 80821c9c90427dd0f9274a82f9d69e43300d10bb
24 changes: 12 additions & 12 deletions trunk/arch/arm/mach-omap2/smartreflex-class3.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,34 +14,34 @@
#include <linux/power/smartreflex.h>
#include "voltage.h"

static int sr_class3_enable(struct voltagedomain *voltdm)
static int sr_class3_enable(struct omap_sr *sr)
{
unsigned long volt = voltdm_get_voltage(voltdm);
unsigned long volt = voltdm_get_voltage(sr->voltdm);

if (!volt) {
pr_warning("%s: Curr voltage unknown. Cannot enable sr_%s\n",
__func__, voltdm->name);
__func__, sr->voltdm->name);
return -ENODATA;
}

omap_vp_enable(voltdm);
return sr_enable(voltdm, volt);
omap_vp_enable(sr->voltdm);
return sr_enable(sr->voltdm, volt);
}

static int sr_class3_disable(struct voltagedomain *voltdm, int is_volt_reset)
static int sr_class3_disable(struct omap_sr *sr, int is_volt_reset)
{
sr_disable_errgen(voltdm);
omap_vp_disable(voltdm);
sr_disable(voltdm);
sr_disable_errgen(sr->voltdm);
omap_vp_disable(sr->voltdm);
sr_disable(sr->voltdm);
if (is_volt_reset)
voltdm_reset(voltdm);
voltdm_reset(sr->voltdm);

return 0;
}

static int sr_class3_configure(struct voltagedomain *voltdm)
static int sr_class3_configure(struct omap_sr *sr)
{
return sr_configure_errgen(voltdm);
return sr_configure_errgen(sr->voltdm);
}

/* SR class3 structure */
Expand Down
37 changes: 7 additions & 30 deletions trunk/arch/arm/mach-omap2/smartreflex.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,29 +34,6 @@
#define NVALUE_NAME_LEN 40
#define SR_DISABLE_TIMEOUT 200

struct omap_sr {
struct list_head node;
struct platform_device *pdev;
struct omap_sr_nvalue_table *nvalue_table;
struct voltagedomain *voltdm;
struct dentry *dbg_dir;
unsigned int irq;
int srid;
int ip_type;
int nvalue_count;
bool autocomp_active;
u32 clk_length;
u32 err_weight;
u32 err_minlimit;
u32 err_maxlimit;
u32 accum_data;
u32 senn_avgweight;
u32 senp_avgweight;
u32 senp_mod;
u32 senn_mod;
void __iomem *base;
};

/* sr_list contains all the instances of smartreflex module */
static LIST_HEAD(sr_list);

Expand Down Expand Up @@ -147,7 +124,7 @@ static irqreturn_t sr_interrupt(int irq, void *data)
}

if (sr_class->notify)
sr_class->notify(sr_info->voltdm, status);
sr_class->notify(sr_info, status);

return IRQ_HANDLED;
}
Expand Down Expand Up @@ -225,7 +202,7 @@ static void sr_start_vddautocomp(struct omap_sr *sr)
return;
}

if (!sr_class->enable(sr->voltdm))
if (!sr_class->enable(sr))
sr->autocomp_active = true;
}

Expand All @@ -239,7 +216,7 @@ static void sr_stop_vddautocomp(struct omap_sr *sr)
}

if (sr->autocomp_active) {
sr_class->disable(sr->voltdm, 1);
sr_class->disable(sr, 1);
sr->autocomp_active = false;
}
}
Expand Down Expand Up @@ -654,7 +631,7 @@ int sr_enable(struct voltagedomain *voltdm, unsigned long volt)
return 0;

/* Configure SR */
ret = sr_class->configure(voltdm);
ret = sr_class->configure(sr);
if (ret)
return ret;

Expand Down Expand Up @@ -772,7 +749,7 @@ void omap_sr_enable(struct voltagedomain *voltdm)
return;
}

sr_class->enable(voltdm);
sr_class->enable(sr);
}

/**
Expand Down Expand Up @@ -805,7 +782,7 @@ void omap_sr_disable(struct voltagedomain *voltdm)
return;
}

sr_class->disable(voltdm, 0);
sr_class->disable(sr, 0);
}

/**
Expand Down Expand Up @@ -838,7 +815,7 @@ void omap_sr_disable_reset_volt(struct voltagedomain *voltdm)
return;
}

sr_class->disable(voltdm, 1);
sr_class->disable(sr, 1);
}

/**
Expand Down
31 changes: 27 additions & 4 deletions trunk/include/linux/power/smartreflex.h
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,29 @@
#define OMAP3430_SR_ERRWEIGHT 0x04
#define OMAP3430_SR_ERRMAXLIMIT 0x02

struct omap_sr {
struct list_head node;
struct platform_device *pdev;
struct omap_sr_nvalue_table *nvalue_table;
struct voltagedomain *voltdm;
struct dentry *dbg_dir;
unsigned int irq;
int srid;
int ip_type;
int nvalue_count;
bool autocomp_active;
u32 clk_length;
u32 err_weight;
u32 err_minlimit;
u32 err_maxlimit;
u32 accum_data;
u32 senn_avgweight;
u32 senp_avgweight;
u32 senp_mod;
u32 senn_mod;
void __iomem *base;
};

/**
* struct omap_sr_pmic_data - Strucutre to be populated by pmic code to pass
* pmic specific info to smartreflex driver
Expand Down Expand Up @@ -187,10 +210,10 @@ struct omap_smartreflex_dev_attr {
* based decisions.
*/
struct omap_sr_class_data {
int (*enable)(struct voltagedomain *voltdm);
int (*disable)(struct voltagedomain *voltdm, int is_volt_reset);
int (*configure)(struct voltagedomain *voltdm);
int (*notify)(struct voltagedomain *voltdm, u32 status);
int (*enable)(struct omap_sr *sr);
int (*disable)(struct omap_sr *sr, int is_volt_reset);
int (*configure)(struct omap_sr *sr);
int (*notify)(struct omap_sr *sr, u32 status);
u8 notify_flags;
u8 class_type;
};
Expand Down

0 comments on commit eb6806c

Please sign in to comment.