Changeset 16686


Ignore:
Timestamp:
2009-07-05T14:05:20+02:00 (7 years ago)
Author:
lars
Message:

[s3c24xx] Add ioctls to glamo framebuffer driver to enable/disable glamo
engines.

Location:
trunk/target/linux
Files:
2 added
4 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/generic-2.6/files-2.6.30/include/linux/glamofb.h

    r16676 r16686  
    22#define _LINUX_GLAMOFB_H 
    33 
     4#include <linux/fb.h> 
     5#include <linux/glamo-engine.h> 
     6 
     7#ifdef __KERNEL__ 
     8 
    49#include <linux/spi/glamo.h> 
    5 #include <linux/fb.h> 
    610 
    711struct glamo_core; 
     
    3943 
    4044#endif 
     45 
     46#define GLAMOFB_ENGINE_ENABLE _IOW('F', 0x1, __u32) 
     47#define GLAMOFB_ENGINE_DISABLE _IOW('F', 0x2, __u32) 
     48#define GLAMOFB_ENGINE_RESET _IOW('F', 0x3, __u32) 
     49 
     50#endif 
  • trunk/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-core.c

    r15918 r16686  
    537537                                   GLAMO_HOSTBUS2_MMIO_EN_2D, 
    538538                                   GLAMO_HOSTBUS2_MMIO_EN_2D); 
     539                __reg_set_bit_mask(glamo, GLAMO_REG_CLOCK_GEN5_1, 
     540                                   GLAMO_CLOCK_GEN51_EN_DIV_GCLK, 
     541                                                   0xffff); 
    539542                break; 
    540543        case GLAMO_ENGINE_CMDQ: 
     
    544547                                   GLAMO_HOSTBUS2_MMIO_EN_CQ, 
    545548                                   GLAMO_HOSTBUS2_MMIO_EN_CQ); 
     549                __reg_set_bit_mask(glamo, GLAMO_REG_CLOCK_GEN5_1, 
     550                                   GLAMO_CLOCK_GEN51_EN_DIV_MCLK, 
     551                                                   0xffff); 
    546552                break; 
    547553        /* FIXME: Implementation */ 
    548554        default: 
    549                 break; 
     555                return -EINVAL; 
    550556        } 
    551557 
     
    590596 
    591597        case GLAMO_ENGINE_MMC: 
    592 //              __reg_set_bit_mask(glamo, GLAMO_REG_CLOCK_MMC, 
    593 //                                                 GLAMO_CLOCK_MMC_EN_M9CLK | 
    594 //                                                 GLAMO_CLOCK_MMC_EN_TCLK | 
    595 //                                                 GLAMO_CLOCK_MMC_DG_M9CLK | 
    596 //                                                 GLAMO_CLOCK_MMC_DG_TCLK, 0); 
     598                __reg_set_bit_mask(glamo, GLAMO_REG_CLOCK_MMC, 
     599                                                   GLAMO_CLOCK_MMC_EN_M9CLK | 
     600                                                   GLAMO_CLOCK_MMC_EN_TCLK | 
     601                                                   GLAMO_CLOCK_MMC_DG_M9CLK | 
     602                                                   GLAMO_CLOCK_MMC_DG_TCLK, 0); 
    597603                /* disable the TCLK divider clk input */ 
    598 //              __reg_set_bit_mask(glamo, GLAMO_REG_CLOCK_GEN5_1, 
    599 //                                      GLAMO_CLOCK_GEN51_EN_DIV_TCLK, 0); 
    600  
     604                __reg_set_bit_mask(glamo, GLAMO_REG_CLOCK_GEN5_1, 
     605                                        GLAMO_CLOCK_GEN51_EN_DIV_TCLK, 0); 
     606        break; 
     607        case GLAMO_ENGINE_CMDQ: 
     608                        __reg_set_bit_mask(glamo, GLAMO_REG_CLOCK_2D, 
     609                                           GLAMO_CLOCK_2D_EN_M6CLK, 
     610                                                           0); 
     611                        __reg_set_bit_mask(glamo, GLAMO_REG_HOSTBUS(2), 
     612                                           GLAMO_HOSTBUS2_MMIO_EN_CQ, 
     613                                           GLAMO_HOSTBUS2_MMIO_EN_CQ); 
     614/*                      __reg_set_bit_mask(glamo, GLAMO_REG_CLOCK_GEN5_1, 
     615                                           GLAMO_CLOCK_GEN51_EN_DIV_MCLK, 
     616                                                           0);*/ 
     617                break; 
     618        case GLAMO_ENGINE_2D: 
     619                        __reg_set_bit_mask(glamo, GLAMO_REG_CLOCK_2D, 
     620                                           GLAMO_CLOCK_2D_EN_M7CLK | 
     621                                                           GLAMO_CLOCK_2D_EN_GCLK | 
     622                                                           GLAMO_CLOCK_2D_DG_M7CLK | 
     623                                                           GLAMO_CLOCK_2D_DG_GCLK, 
     624                                                           0); 
     625                        __reg_set_bit_mask(glamo, GLAMO_REG_HOSTBUS(2), 
     626                                           GLAMO_HOSTBUS2_MMIO_EN_2D, 
     627                                           GLAMO_HOSTBUS2_MMIO_EN_2D); 
     628                        __reg_set_bit_mask(glamo, GLAMO_REG_CLOCK_GEN5_1, 
     629                                           GLAMO_CLOCK_GEN51_EN_DIV_GCLK, 
     630                                                           0); 
     631                break; 
    601632        default: 
    602                 break; 
     633                return -EINVAL; 
    603634        } 
    604635 
     
    668699                GLAMO_REG_CLOCK_MMC, GLAMO_CLOCK_MMC_RESET 
    669700        }, 
     701    [GLAMO_ENGINE_CMDQ] = { 
     702        GLAMO_REG_CLOCK_2D, GLAMO_CLOCK_2D_CQ_RESET 
     703    }, 
    670704        [GLAMO_ENGINE_2D] = { 
    671705                GLAMO_REG_CLOCK_2D, GLAMO_CLOCK_2D_RESET 
  • trunk/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-core.h

    r15918 r16686  
    33 
    44#include <asm/system.h> 
     5#include <linux/glamo-engine.h> 
    56 
    67/* for the time being, we put the on-screen framebuffer into the lowest 
     
    4142                     struct glamo_script *script, int len, int may_sleep); 
    4243 
    43 enum glamo_engine { 
    44         GLAMO_ENGINE_CAPTURE, 
    45         GLAMO_ENGINE_ISP, 
    46         GLAMO_ENGINE_JPEG, 
    47         GLAMO_ENGINE_MPEG_ENC, 
    48         GLAMO_ENGINE_MPEG_DEC, 
    49         GLAMO_ENGINE_LCD, 
    50         GLAMO_ENGINE_CMDQ, 
    51         GLAMO_ENGINE_2D, 
    52         GLAMO_ENGINE_3D, 
    53         GLAMO_ENGINE_MMC, 
    54         GLAMO_ENGINE_MICROP0, 
    55         GLAMO_ENGINE_RISC, 
    56         GLAMO_ENGINE_MICROP1_MPEG_ENC, 
    57         GLAMO_ENGINE_MICROP1_MPEG_DEC, 
    58 #if 0 
    59         GLAMO_ENGINE_H264_DEC, 
    60         GLAMO_ENGINE_RISC1, 
    61         GLAMO_ENGINE_SPI, 
    62 #endif 
    63         __NUM_GLAMO_ENGINES 
    64 }; 
    65  
    6644struct glamo_mci_pdata { 
    6745        struct glamo_core * pglamo; 
  • trunk/target/linux/s3c24xx/files-2.6.30/drivers/mfd/glamo/glamo-fb.c

    r16015 r16686  
    536536} 
    537537 
     538static int glamofb_ioctl(struct fb_info *info, unsigned int cmd, 
     539                         unsigned long arg) { 
     540        struct glamofb_handle *gfb = (struct glamofb_handle*)info->par; 
     541        struct glamo_core *gcore = gfb->mach_info->glamo; 
     542        int retval = -ENOTTY; 
     543 
     544        switch (cmd) { 
     545        case GLAMOFB_ENGINE_ENABLE: 
     546                retval = glamo_engine_enable(gcore, arg); 
     547                break; 
     548        case GLAMOFB_ENGINE_DISABLE: 
     549                retval = glamo_engine_disable(gcore, arg); 
     550                break; 
     551        case GLAMOFB_ENGINE_RESET: 
     552                glamo_engine_reset(gcore, arg); 
     553                retval = 0; 
     554                break; 
     555        default: 
     556                break; 
     557        } 
     558 
     559        return retval; 
     560} 
     561 
     562 
    538563#ifdef CONFIG_MFD_GLAMO_HWACCEL 
    539564static inline void glamofb_vsync_wait(struct glamofb_handle *glamo, 
     
    771796        .fb_blank       = glamofb_blank, 
    772797        .fb_setcolreg   = glamofb_setcolreg, 
     798        .fb_ioctl = glamofb_ioctl, 
    773799#ifdef CONFIG_MFD_GLAMO_HWACCEL 
    774800        .fb_cursor      = glamofb_cursor, 
  • trunk/target/linux/s3c24xx/patches-2.6.30/053-glamo.patch

    r16048 r16686  
    2020 obj-$(CONFIG_HTC_EGPIO)                += htc-egpio.o 
    2121 obj-$(CONFIG_HTC_PASIC3)       += htc-pasic3.o 
    22 --- a/include/linux/fb.h 
    23 +++ b/include/linux/fb.h 
    24 @@ -124,6 +124,7 @@ struct dentry; 
    25  #define FB_ACCEL_TRIDENT_BLADE3D 52    /* Trident Blade3D              */ 
    26  #define FB_ACCEL_TRIDENT_BLADEXP 53    /* Trident BladeXP              */ 
    27  #define FB_ACCEL_CIRRUS_ALPINE   53    /* Cirrus Logic 543x/544x/5480  */ 
    28 +#define FB_ACCEL_GLAMO         50      /* SMedia Glamo                 */ 
    29  #define FB_ACCEL_NEOMAGIC_NM2070 90    /* NeoMagic NM2070              */ 
    30  #define FB_ACCEL_NEOMAGIC_NM2090 91    /* NeoMagic NM2090              */ 
    31  #define FB_ACCEL_NEOMAGIC_NM2093 92    /* NeoMagic NM2093              */ 
Note: See TracChangeset for help on using the changeset viewer.