From 3551fd629571cfb9a0d9cf3fd3c247be1544f00b Mon Sep 17 00:00:00 2001 From: "jinhyung.jo" Date: Wed, 31 Oct 2012 11:18:51 +0900 Subject: [PATCH] maru_brightness : modified the range of the brightness level original range : 1 ~ 24 modified range : 0 ~ 100 Signed-off-by: Jinhyung Jo --- tizen/src/hw/maru_brightness.c | 86 ++++++++++++++++++++-------------- tizen/src/hw/maru_brightness.h | 4 +- 2 files changed, 54 insertions(+), 36 deletions(-) diff --git a/tizen/src/hw/maru_brightness.c b/tizen/src/hw/maru_brightness.c index 768ecbb819..712875ef8b 100644 --- a/tizen/src/hw/maru_brightness.c +++ b/tizen/src/hw/maru_brightness.c @@ -1,9 +1,9 @@ -/* +/* * Maru brightness device for VGA * * Copyright (C) 2011 - 2012 Samsung Electronics Co., Ltd. All rights reserved. * - * Contact: + * Contact: * DoHyung Hong * SeokYeon Hwang * Hyunjun Son @@ -46,12 +46,12 @@ #include "maru_brightness.h" #include "debug_ch.h" -MULTI_DEBUG_CHANNEL( qemu, maru_brightness ); +MULTI_DEBUG_CHANNEL(qemu, maru_brightness); #define QEMU_DEV_NAME "MARU_BRIGHTNESS" -#define BRIGHTNESS_MEM_SIZE (4 * 1024) /* 4KB */ -#define BRIGHTNESS_REG_SIZE 256 +#define BRIGHTNESS_MEM_SIZE (4 * 1024) /* 4KB */ +#define BRIGHTNESS_REG_SIZE 256 typedef struct BrightnessState { PCIDevice dev; @@ -64,17 +64,28 @@ enum { BRIGHTNESS_OFF = 0x04, }; -uint32_t brightness_level = 24; -uint32_t brightness_off = 0; - -/* level : 1 ~ 23, interval : 6 or 7. */ -/* skip 24 level, set to default alpha */ -uint8_t brightness_tbl[] = {97, /* level 0 : reserved for dimming */ -/* level 1 ~ 11 */ 110, 116, 122, 128, 134, 140, 146, 152, 158, 164, 170, -/* level 12 ~ 23 */ 176, 182, 188, 194, 200, 206, 213, 220, 227, 234, 241, 248}; - -static uint64_t brightness_reg_read( void *opaque, target_phys_addr_t addr, unsigned size ) { - switch ( addr & 0xFF ) { +uint32_t brightness_level = BRIGHTNESS_MAX; +uint32_t brightness_off; + +/* level : 1 ~ 100, interval : 1 or 2 */ +/* skip 100 level, set to default alpha */ +uint8_t brightness_tbl[] = {100, /* level 0 : for dimming */ +/* level 01 ~ 10 */ 106, 108, 109, 111, 112, 114, 115, 117, 118, 120, +/* level 11 ~ 20 */ 121, 123, 124, 126, 127, 129, 130, 132, 133, 175, +/* level 21 ~ 30 */ 136, 138, 139, 141, 142, 144, 145, 147, 148, 150, +/* level 31 ~ 40 */ 151, 153, 154, 156, 157, 159, 160, 162, 163, 165, +/* level 41 ~ 50 */ 166, 168, 169, 171, 172, 174, 175, 177, 178, 180, +/* level 51 ~ 60 */ 181, 183, 184, 186, 187, 189, 190, 192, 193, 195, +/* level 61 ~ 70 */ 196, 198, 199, 201, 202, 204, 205, 207, 208, 210, +/* level 71 ~ 80 */ 211, 213, 214, 216, 217, 219, 220, 222, 223, 225, +/* level 81 ~ 90 */ 226, 228, 229, 231, 232, 234, 235, 237, 238, 240, +/* level 91 ~ 99 */ 241, 243, 244, 246, 247, 249, 250, 252, 253}; + +static uint64_t brightness_reg_read(void *opaque, + target_phys_addr_t addr, + unsigned size) +{ + switch (addr & 0xFF) { case BRIGHTNESS_LEVEL: INFO("brightness_reg_read: brightness_level = %d\n", brightness_level); return brightness_level; @@ -89,22 +100,26 @@ static uint64_t brightness_reg_read( void *opaque, target_phys_addr_t addr, unsi return 0; } -static void brightness_reg_write( void *opaque, target_phys_addr_t addr, uint64_t val, unsigned size ) { +static void brightness_reg_write(void *opaque, + target_phys_addr_t addr, + uint64_t val, + unsigned size) +{ + switch (addr & 0xFF) { + case BRIGHTNESS_LEVEL: #if BRIGHTNESS_MIN > 0 - if (val < BRIGHTNESS_MIN || val > BRIGHTNESS_MAX) { + if (val < BRIGHTNESS_MIN || val > BRIGHTNESS_MAX) { #else - if ( val > BRIGHTNESS_MAX ) { + if (val > BRIGHTNESS_MAX) { #endif - ERR("brightness_reg_write: Invalide brightness level.\n"); - } - - switch ( addr & 0xFF ) { - case BRIGHTNESS_LEVEL: - brightness_level = val; - INFO("brightness_level : %lld\n", val); + ERR("brightness_reg_write: Invalide brightness level.\n"); + } else { + brightness_level = val; + INFO("brightness_level : %lld\n", val); #ifdef TARGET_ARM - vga_hw_invalidate(); + vga_hw_invalidate(); #endif + } return; case BRIGHTNESS_OFF: INFO("brightness_off : %lld\n", val); @@ -125,22 +140,25 @@ static const MemoryRegionOps brightness_mmio_ops = { .endianness = DEVICE_LITTLE_ENDIAN, }; -static int brightness_initfn( PCIDevice *dev ) { +static int brightness_initfn(PCIDevice *dev) +{ BrightnessState *s = DO_UPCAST(BrightnessState, dev, dev); uint8_t *pci_conf = s->dev.config; - pci_config_set_vendor_id( pci_conf, PCI_VENDOR_ID_TIZEN ); - pci_config_set_device_id( pci_conf, PCI_DEVICE_ID_VIRTUAL_BRIGHTNESS ); - pci_config_set_class( pci_conf, PCI_CLASS_DISPLAY_OTHER ); + pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_TIZEN); + pci_config_set_device_id(pci_conf, PCI_DEVICE_ID_VIRTUAL_BRIGHTNESS); + pci_config_set_class(pci_conf, PCI_CLASS_DISPLAY_OTHER); - memory_region_init_io( &s->mmio_addr, &brightness_mmio_ops, s, "maru_brightness_mmio", BRIGHTNESS_REG_SIZE ); - pci_register_bar( &s->dev, 1, PCI_BASE_ADDRESS_SPACE_MEMORY, &s->mmio_addr ); + memory_region_init_io(&s->mmio_addr, &brightness_mmio_ops, s, + "maru_brightness_mmio", BRIGHTNESS_REG_SIZE); + pci_register_bar(&s->dev, 1, PCI_BASE_ADDRESS_SPACE_MEMORY, &s->mmio_addr); return 0; } /* external interface */ -int pci_get_brightness( void ) { +int pci_get_brightness(void) +{ return brightness_level; } diff --git a/tizen/src/hw/maru_brightness.h b/tizen/src/hw/maru_brightness.h index 6f3b77f303..0ac50dd0f2 100644 --- a/tizen/src/hw/maru_brightness.h +++ b/tizen/src/hw/maru_brightness.h @@ -33,13 +33,13 @@ #include "qemu-common.h" #define BRIGHTNESS_MIN (0) -#define BRIGHTNESS_MAX (24) +#define BRIGHTNESS_MAX (100) extern uint32_t brightness_level; extern uint32_t brightness_off; extern uint8_t brightness_tbl[]; -int pci_get_brightness( void ); +int pci_get_brightness(void); DeviceState *pci_maru_brightness_init(PCIBus *bus); #endif /* MARU_BRIGHTNESS_H_ */ -- 2.34.1