Merge remote-tracking branch 'staging/staging-next'
[deliverable/linux.git] / drivers / staging / sm750fb / sm750_hw.c
index 2daeedd88c30bb0ef76f64b660d4d021f84939b3..1de9f81df029d3b87d0bbdde23b13e0ebdff7ee1 100644 (file)
@@ -35,17 +35,17 @@ int hw_sm750_map(struct sm750_dev *sm750_dev, struct pci_dev *pdev)
        pr_info("mmio phyAddr = %lx\n", sm750_dev->vidreg_start);
 
        /* reserve the vidreg space of smi adaptor
-        * if you do this, u need to add release region code
+        * if you do this, you need to add release region code
         * in lynxfb_remove, or memory will not be mapped again
         * successfully
-        * */
+        */
        ret = pci_request_region(pdev, 1, "sm750fb");
        if (ret) {
                pr_err("Can not request PCI regions.\n");
                goto exit;
        }
 
-       /* now map mmio and vidmem*/
+       /* now map mmio and vidmem */
        sm750_dev->pvReg = ioremap_nocache(sm750_dev->vidreg_start,
                                           sm750_dev->vidreg_size);
        if (!sm750_dev->pvReg) {
@@ -56,7 +56,6 @@ int hw_sm750_map(struct sm750_dev *sm750_dev, struct pci_dev *pdev)
                pr_info("mmio virtual addr = %p\n", sm750_dev->pvReg);
        }
 
-
        sm750_dev->accel.dprBase = sm750_dev->pvReg + DE_BASE_ADDR_TYPE1;
        sm750_dev->accel.dpPortBase = sm750_dev->pvReg + DE_PORT_ADDR_TYPE1;
 
@@ -64,10 +63,10 @@ int hw_sm750_map(struct sm750_dev *sm750_dev, struct pci_dev *pdev)
 
        sm750_dev->vidmem_start = pci_resource_start(pdev, 0);
        /* don't use pdev_resource[x].end - resource[x].start to
-        * calculate the resource size,its only the maximum available
-        * size but not the actual size,use
+        * calculate the resource size, it's only the maximum available
+        * size but not the actual size, using
         * @ddk750_getVMSize function can be safe.
-        * */
+        */
        sm750_dev->vidmem_size = ddk750_getVMSize();
        pr_info("video memory phyAddr = %lx, size = %u bytes\n",
                sm750_dev->vidmem_start, sm750_dev->vidmem_size);
@@ -86,8 +85,6 @@ exit:
        return ret;
 }
 
-
-
 int hw_sm750_inithw(struct sm750_dev *sm750_dev, struct pci_dev *pdev)
 {
        struct init_status *parm;
@@ -101,10 +98,10 @@ int hw_sm750_inithw(struct sm750_dev *sm750_dev, struct pci_dev *pdev)
        if (parm->mem_clk == 0)
                parm->mem_clk = parm->chip_clk;
        if (parm->master_clk == 0)
-               parm->master_clk = parm->chip_clk/3;
+               parm->master_clk = parm->chip_clk / 3;
 
        ddk750_initHw((initchip_param_t *)&sm750_dev->initParm);
-       /* for sm718,open pci burst */
+       /* for sm718, open pci burst */
        if (sm750_dev->devid == 0x718) {
                POKE32(SYSTEM_CTRL,
                       PEEK32(SYSTEM_CTRL) | SYSTEM_CTRL_PCI_BURST);
@@ -112,7 +109,7 @@ int hw_sm750_inithw(struct sm750_dev *sm750_dev, struct pci_dev *pdev)
 
        if (getChipType() != SM750LE) {
                unsigned int val;
-               /* does user need CRT ?*/
+               /* does user need CRT*/
                if (sm750_dev->nocrt) {
                        POKE32(MISC_CTRL,
                               PEEK32(MISC_CTRL) | MISC_CTRL_DAC_POWER_OFF);
@@ -144,19 +141,21 @@ int hw_sm750_inithw(struct sm750_dev *sm750_dev, struct pci_dev *pdev)
                }
                POKE32(PANEL_DISPLAY_CTRL, val);
        } else {
-               /* for 750LE ,no DVI chip initialization makes Monitor no signal */
-               /* Set up GPIO for software I2C to program DVI chip in the
-                  Xilinx SP605 board, in order to have video signal.
+               /* for 750LE, no DVI chip initialization
+                * makes Monitor no signal
+                *
+                * Set up GPIO for software I2C to program DVI chip in the
+                * Xilinx SP605 board, in order to have video signal.
                 */
                sm750_sw_i2c_init(0, 1);
 
                /* Customer may NOT use CH7301 DVI chip, which has to be
-               initialized differently.
-               */
+                * initialized differently.
+                */
                if (sm750_sw_i2c_read_reg(0xec, 0x4a) == 0x95) {
                /* The following register values for CH7301 are from
-                  Chrontel app note and our experiment.
-               */
+                * Chrontel app note and our experiment.
+                */
                        pr_info("yes,CH7301 DVI chip found\n");
                        sm750_sw_i2c_write_reg(0xec, 0x1d, 0x16);
                        sm750_sw_i2c_write_reg(0xec, 0x21, 0x9);
@@ -173,7 +172,8 @@ int hw_sm750_inithw(struct sm750_dev *sm750_dev, struct pci_dev *pdev)
 }
 
 int hw_sm750_output_setMode(struct lynxfb_output *output,
-                                                                       struct fb_var_screeninfo *var, struct fb_fix_screeninfo *fix)
+                           struct fb_var_screeninfo *var,
+                           struct fb_fix_screeninfo *fix)
 {
        int ret;
        disp_output_t dispSet;
@@ -183,7 +183,6 @@ int hw_sm750_output_setMode(struct lynxfb_output *output,
        dispSet = 0;
        channel = *output->channel;
 
-
        if (getChipType() != SM750LE) {
                if (channel == sm750_primary) {
                        pr_info("primary channel\n");
@@ -198,11 +197,10 @@ int hw_sm750_output_setMode(struct lynxfb_output *output,
                                dispSet |= do_LCD1_SEC;
                        if (output->paths & sm750_crt)
                                dispSet |= do_CRT_SEC;
-
                }
                ddk750_setLogicalDispOut(dispSet);
        } else {
-               /* just open DISPLAY_CONTROL_750LE register bit 3:0*/
+               /* just open DISPLAY_CONTROL_750LE register bit 3:0 */
                u32 reg;
 
                reg = PEEK32(DISPLAY_CONTROL_750LE);
@@ -214,7 +212,8 @@ int hw_sm750_output_setMode(struct lynxfb_output *output,
        return ret;
 }
 
-int hw_sm750_crtc_checkMode(struct lynxfb_crtc *crtc, struct fb_var_screeninfo *var)
+int hw_sm750_crtc_checkMode(struct lynxfb_crtc *crtc,
+                           struct fb_var_screeninfo *var)
 {
        struct sm750_dev *sm750_dev;
        struct lynxfb_par *par = container_of(crtc, struct lynxfb_par, crtc);
@@ -233,19 +232,15 @@ int hw_sm750_crtc_checkMode(struct lynxfb_crtc *crtc, struct fb_var_screeninfo *
                break;
        default:
                return -EINVAL;
-
        }
 
        return 0;
 }
 
-
-/*
-       set the controller's mode for @crtc charged with @var and @fix parameters
-*/
+/* set the controller's mode for @crtc charged with @var and @fix parameters */
 int hw_sm750_crtc_setMode(struct lynxfb_crtc *crtc,
-                                                               struct fb_var_screeninfo *var,
-                                                               struct fb_fix_screeninfo *fix)
+                         struct fb_var_screeninfo *var,
+                         struct fb_fix_screeninfo *fix)
 {
        int ret, fmt;
        u32 reg;
@@ -254,7 +249,6 @@ int hw_sm750_crtc_setMode(struct lynxfb_crtc *crtc,
        struct sm750_dev *sm750_dev;
        struct lynxfb_par *par;
 
-
        ret = 0;
        par = container_of(crtc, struct lynxfb_par, crtc);
        sm750_dev = par->dev;
@@ -278,17 +272,22 @@ int hw_sm750_crtc_setMode(struct lynxfb_crtc *crtc,
 
        /* set timing */
        modparm.pixel_clock = ps_to_hz(var->pixclock);
-       modparm.vertical_sync_polarity = (var->sync & FB_SYNC_HOR_HIGH_ACT) ? POS:NEG;
-       modparm.horizontal_sync_polarity = (var->sync & FB_SYNC_VERT_HIGH_ACT) ? POS:NEG;
-       modparm.clock_phase_polarity = (var->sync & FB_SYNC_COMP_HIGH_ACT) ? POS:NEG;
+       modparm.vertical_sync_polarity = (var->sync & FB_SYNC_HOR_HIGH_ACT)
+                                        ? POS : NEG;
+       modparm.horizontal_sync_polarity = (var->sync & FB_SYNC_VERT_HIGH_ACT)
+                                          ? POS : NEG;
+       modparm.clock_phase_polarity = (var->sync & FB_SYNC_COMP_HIGH_ACT)
+                                      ? POS : NEG;
        modparm.horizontal_display_end = var->xres;
        modparm.horizontal_sync_width = var->hsync_len;
        modparm.horizontal_sync_start = var->xres + var->right_margin;
-       modparm.horizontal_total = var->xres + var->left_margin + var->right_margin + var->hsync_len;
+       modparm.horizontal_total = var->xres + var->left_margin +
+                                  var->right_margin + var->hsync_len;
        modparm.vertical_display_end = var->yres;
        modparm.vertical_sync_height = var->vsync_len;
        modparm.vertical_sync_start = var->yres + var->lower_margin;
-       modparm.vertical_total = var->yres + var->upper_margin + var->lower_margin + var->vsync_len;
+       modparm.vertical_total = var->yres + var->upper_margin +
+                                var->lower_margin + var->vsync_len;
 
        /* choose pll */
        if (crtc->channel != sm750_secondary)
@@ -304,12 +303,14 @@ int hw_sm750_crtc_setMode(struct lynxfb_crtc *crtc,
        }
 
        if (crtc->channel != sm750_secondary) {
-               /* set pitch, offset ,width,start address ,etc... */
+               /* set pitch, offset, width, start address, etc... */
                POKE32(PANEL_FB_ADDRESS,
                       crtc->oScreen & PANEL_FB_ADDRESS_ADDRESS_MASK);
 
                reg = var->xres * (var->bits_per_pixel >> 3);
-               /* crtc->channel is not equal to par->index on numeric,be aware of that */
+               /* crtc->channel is not equal to par->index on numeric,
+                * be aware of that
+                */
                reg = ALIGN(reg, crtc->line_pad);
                reg = (reg << PANEL_FB_WIDTH_WIDTH_SHIFT) &
                       PANEL_FB_WIDTH_WIDTH_MASK;
@@ -341,7 +342,9 @@ int hw_sm750_crtc_setMode(struct lynxfb_crtc *crtc,
                /* not implemented now */
                POKE32(CRT_FB_ADDRESS, crtc->oScreen);
                reg = var->xres * (var->bits_per_pixel >> 3);
-               /* crtc->channel is not equal to par->index on numeric,be aware of that */
+               /* crtc->channel is not equal to par->index on numeric,
+                * be aware of that
+                */
                reg = ALIGN(reg, crtc->line_pad) << CRT_FB_WIDTH_WIDTH_SHIFT;
                reg &= CRT_FB_WIDTH_WIDTH_MASK;
                reg |= (fix->line_length & CRT_FB_WIDTH_OFFSET_MASK);
@@ -352,20 +355,19 @@ int hw_sm750_crtc_setMode(struct lynxfb_crtc *crtc,
                reg |= ((var->bits_per_pixel >> 4) &
                        CRT_DISPLAY_CTRL_FORMAT_MASK);
                POKE32(CRT_DISPLAY_CTRL, reg);
-
        }
 
-
 exit:
        return ret;
 }
 
 int hw_sm750_setColReg(struct lynxfb_crtc *crtc, ushort index,
-                                                               ushort red, ushort green, ushort blue)
+                      ushort red, ushort green, ushort blue)
 {
        static unsigned int add[] = {PANEL_PALETTE_RAM, CRT_PALETTE_RAM};
 
-       POKE32(add[crtc->channel] + index*4, (red<<16)|(green<<8)|blue);
+       POKE32(add[crtc->channel] + index * 4,
+              (red << 16) | (green << 8) | blue);
        return 0;
 }
 
@@ -414,7 +416,9 @@ int hw_sm750_setBLANK(struct lynxfb_output *output, int blank)
 {
        unsigned int dpms, pps, crtdb;
 
-       dpms = pps = crtdb = 0;
+       dpms = 0;
+       pps = 0;
+       crtdb = 0;
 
        switch (blank) {
        case FB_BLANK_UNBLANK:
@@ -461,7 +465,6 @@ int hw_sm750_setBLANK(struct lynxfb_output *output, int blank)
        return 0;
 }
 
-
 void hw_sm750_initAccel(struct sm750_dev *sm750_dev)
 {
        u32 reg;
@@ -509,7 +512,6 @@ int hw_sm750le_deWait(void)
        return -1;
 }
 
-
 int hw_sm750_deWait(void)
 {
        int i = 0x10000000;
@@ -529,8 +531,8 @@ int hw_sm750_deWait(void)
 }
 
 int hw_sm750_pan_display(struct lynxfb_crtc *crtc,
-       const struct fb_var_screeninfo *var,
-       const struct fb_info *info)
+                        const struct fb_var_screeninfo *var,
+                        const struct fb_info *info)
 {
        uint32_t total;
        /* check params */
This page took 0.037314 seconds and 5 git commands to generate.