On 2012-11-28 12:41, Chandrabhanu Mahapatra wrote:
quoted hunk ↗ jump to hunk
The register fields in dss_reg_fields specific to DISPC are moved from struct
omap_dss_features to corresponding dispc_reg_fields, initialized in struct
dispc_features, thereby enabling local access.
Signed-off-by: Chandrabhanu Mahapatra <redacted>
---
drivers/video/omap2/dss/dispc.c | 87 ++++++++++++++++++++++++++++----
drivers/video/omap2/dss/dss.h | 4 ++
drivers/video/omap2/dss/dss_features.c | 28 ----------
drivers/video/omap2/dss/dss_features.h | 7 ---
4 files changed, 80 insertions(+), 46 deletions(-)
diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
index 9f259ba..21fc522 100644
--- a/drivers/video/omap2/dss/dispc.c
+++ b/drivers/video/omap2/dss/dispc.c
@@ -80,6 +80,16 @@ struct dispc_irq_stats {
unsigned irqs[32];
};
+enum dispc_feat_reg_field {
+ FEAT_REG_FIRHINC,
+ FEAT_REG_FIRVINC,
+ FEAT_REG_FIFOLOWTHRESHOLD,
+ FEAT_REG_FIFOHIGHTHRESHOLD,
+ FEAT_REG_FIFOSIZE,
+ FEAT_REG_HORIZONTALACCU,
+ FEAT_REG_VERTICALACCU,
+};
+
struct dispc_features {
u8 sw_start;
u8 fp_start;@@ -107,6 +117,8 @@ struct dispc_features {
u32 buffer_size_unit;
u32 burst_size_unit;
+
+ struct register_field *reg_fields;
};
Hmm, would it be simpler to have an explicit struct for the reg fields.
I mean something like:
struct dispc_reg_fields {
struct register_field firhinc;
struct register_field firvinc;
struct register_field fifo_low_threshold;
...
};
Then accessing it would be
dispc.feat->reg_fields.firhinc.start;
instead of
dispc.feat->reg_fields[FEAT_REG_FIFOSIZE].start;
Not a big difference, but I don't see any benefit in having an array of
reg fields here.
Tomi