|
|
|
@ -38,6 +38,7 @@ |
|
|
|
|
#include "videomodes.h" |
|
|
|
|
#include "ipu.h" |
|
|
|
|
#include "mxcfb.h" |
|
|
|
|
#include "ipu_regs.h" |
|
|
|
|
|
|
|
|
|
static int mxcfb_map_video_memory(struct fb_info *fbi); |
|
|
|
|
static int mxcfb_unmap_video_memory(struct fb_info *fbi); |
|
|
|
@ -576,6 +577,25 @@ err0: |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void ipuv3_fb_shutdown(void) |
|
|
|
|
{ |
|
|
|
|
int i; |
|
|
|
|
struct ipu_stat *stat = (struct ipu_stat *)IPU_STAT; |
|
|
|
|
|
|
|
|
|
for (i = 0; i < ARRAY_SIZE(mxcfb_info); i++) { |
|
|
|
|
struct fb_info *fbi = mxcfb_info[i]; |
|
|
|
|
if (fbi) { |
|
|
|
|
struct mxcfb_info *mxc_fbi = fbi->par; |
|
|
|
|
ipu_disable_channel(mxc_fbi->ipu_ch); |
|
|
|
|
ipu_uninit_channel(mxc_fbi->ipu_ch); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
for (i = 0; i < ARRAY_SIZE(stat->int_stat); i++) { |
|
|
|
|
__raw_writel(__raw_readl(&stat->int_stat[i]), |
|
|
|
|
&stat->int_stat[i]); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void *video_hw_init(void) |
|
|
|
|
{ |
|
|
|
|
int ret; |
|
|
|
|