OMAPDSS: remove vaddr from overlay info
overlay_info struct, used to configure overlays, currently includes both physical and virtual addresses for the pixels. The vaddr was added to support more exotic configurations where CPU would be used to update a display, but it is not currently used and there has been no interest in the feature. Using CPU to update a screen is also less interesting now that OMAP4 has two LCD outputs. This patch removes the vaddr field, and modifies the users of omapdss accordingly. This makes the use of omapdss a bit simpler, as the user doesn't need to think if it needs to give the vaddr. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
Родитель
162874d5f5
Коммит
212b0d50e2
|
@ -400,7 +400,6 @@ static int omapvid_setup_overlay(struct omap_vout_device *vout,
|
|||
|
||||
ovl->get_overlay_info(ovl, &info);
|
||||
info.paddr = addr;
|
||||
info.vaddr = NULL;
|
||||
info.width = cropwidth;
|
||||
info.height = cropheight;
|
||||
info.color_mode = vout->dss_mode;
|
||||
|
|
|
@ -808,19 +808,15 @@ static unsigned calc_rotation_offset_vrfb(const struct fb_var_screeninfo *var,
|
|||
static void omapfb_calc_addr(const struct omapfb_info *ofbi,
|
||||
const struct fb_var_screeninfo *var,
|
||||
const struct fb_fix_screeninfo *fix,
|
||||
int rotation, u32 *paddr, void __iomem **vaddr)
|
||||
int rotation, u32 *paddr)
|
||||
{
|
||||
u32 data_start_p;
|
||||
void __iomem *data_start_v;
|
||||
int offset;
|
||||
|
||||
if (ofbi->rotation_type == OMAP_DSS_ROT_VRFB) {
|
||||
if (ofbi->rotation_type == OMAP_DSS_ROT_VRFB)
|
||||
data_start_p = omapfb_get_region_rot_paddr(ofbi, rotation);
|
||||
data_start_v = NULL;
|
||||
} else {
|
||||
else
|
||||
data_start_p = omapfb_get_region_paddr(ofbi);
|
||||
data_start_v = omapfb_get_region_vaddr(ofbi);
|
||||
}
|
||||
|
||||
if (ofbi->rotation_type == OMAP_DSS_ROT_VRFB)
|
||||
offset = calc_rotation_offset_vrfb(var, fix, rotation);
|
||||
|
@ -828,16 +824,14 @@ static void omapfb_calc_addr(const struct omapfb_info *ofbi,
|
|||
offset = calc_rotation_offset_dma(var, fix, rotation);
|
||||
|
||||
data_start_p += offset;
|
||||
data_start_v += offset;
|
||||
|
||||
if (offset)
|
||||
DBG("offset %d, %d = %d\n",
|
||||
var->xoffset, var->yoffset, offset);
|
||||
|
||||
DBG("paddr %x, vaddr %p\n", data_start_p, data_start_v);
|
||||
DBG("paddr %x\n", data_start_p);
|
||||
|
||||
*paddr = data_start_p;
|
||||
*vaddr = data_start_v;
|
||||
}
|
||||
|
||||
/* setup overlay according to the fb */
|
||||
|
@ -850,7 +844,6 @@ int omapfb_setup_overlay(struct fb_info *fbi, struct omap_overlay *ovl,
|
|||
struct fb_fix_screeninfo *fix = &fbi->fix;
|
||||
enum omap_color_mode mode = 0;
|
||||
u32 data_start_p = 0;
|
||||
void __iomem *data_start_v = NULL;
|
||||
struct omap_overlay_info info;
|
||||
int xres, yres;
|
||||
int screen_width;
|
||||
|
@ -880,8 +873,7 @@ int omapfb_setup_overlay(struct fb_info *fbi, struct omap_overlay *ovl,
|
|||
}
|
||||
|
||||
if (ofbi->region->size)
|
||||
omapfb_calc_addr(ofbi, var, fix, rotation,
|
||||
&data_start_p, &data_start_v);
|
||||
omapfb_calc_addr(ofbi, var, fix, rotation, &data_start_p);
|
||||
|
||||
r = fb_mode_to_dss_mode(var, &mode);
|
||||
if (r) {
|
||||
|
@ -910,7 +902,6 @@ int omapfb_setup_overlay(struct fb_info *fbi, struct omap_overlay *ovl,
|
|||
mirror = ofbi->mirror;
|
||||
|
||||
info.paddr = data_start_p;
|
||||
info.vaddr = data_start_v;
|
||||
info.screen_width = screen_width;
|
||||
info.width = xres;
|
||||
info.height = yres;
|
||||
|
|
|
@ -358,7 +358,6 @@ struct omap_overlay_info {
|
|||
bool enabled;
|
||||
|
||||
u32 paddr;
|
||||
void __iomem *vaddr;
|
||||
u32 p_uv_addr; /* for NV12 format */
|
||||
u16 screen_width;
|
||||
u16 width;
|
||||
|
|
Загрузка…
Ссылка в новой задаче