mirror of
https://github.com/torvalds/linux.git
synced 2024-12-28 13:51:44 +00:00
parisc: KittyHawk LCD fix
K class aka KittyHawk don't have LED support on their LCD. Installing HP-UX confirmed this. The current led_wq fills the LCD with black characters each time it runs. The patch prevents the led_wq workqueue and its proc entry to be created for KittyHawk machines. It also increase min_cmd_delay as currently, one character out of two is lost when a string is sent to the LCD. Signed-off-by: Guy Martin <gmsoft@tuxicoman.be> Signed-off-by: Kyle McMartin <kyle@mcmartin.c>
This commit is contained in:
parent
51890613f2
commit
79a0429623
@ -64,6 +64,7 @@ static unsigned int led_diskio __read_mostly = 1;
|
||||
static unsigned int led_lanrxtx __read_mostly = 1;
|
||||
static char lcd_text[32] __read_mostly;
|
||||
static char lcd_text_default[32] __read_mostly;
|
||||
static int lcd_no_led_support __read_mostly = 0; /* KittyHawk doesn't support LED on its LCD */
|
||||
|
||||
|
||||
static struct workqueue_struct *led_wq;
|
||||
@ -115,7 +116,7 @@ lcd_info __attribute__((aligned(8))) __read_mostly =
|
||||
.lcd_width = 16,
|
||||
.lcd_cmd_reg_addr = KITTYHAWK_LCD_CMD,
|
||||
.lcd_data_reg_addr = KITTYHAWK_LCD_DATA,
|
||||
.min_cmd_delay = 40,
|
||||
.min_cmd_delay = 80,
|
||||
.reset_cmd1 = 0x80,
|
||||
.reset_cmd2 = 0xc0,
|
||||
};
|
||||
@ -135,6 +136,9 @@ static int start_task(void)
|
||||
/* Display the default text now */
|
||||
if (led_type == LED_HASLCD) lcd_print( lcd_text_default );
|
||||
|
||||
/* KittyHawk has no LED support on its LCD */
|
||||
if (lcd_no_led_support) return 0;
|
||||
|
||||
/* Create the work queue and queue the LED task */
|
||||
led_wq = create_singlethread_workqueue("led_wq");
|
||||
queue_delayed_work(led_wq, &led_task, 0);
|
||||
@ -248,9 +252,13 @@ static int __init led_create_procfs(void)
|
||||
|
||||
proc_pdc_root = proc_mkdir("pdc", 0);
|
||||
if (!proc_pdc_root) return -1;
|
||||
ent = proc_create_data("led", S_IRUGO|S_IWUSR, proc_pdc_root,
|
||||
&led_proc_fops, (void *)LED_NOLCD); /* LED */
|
||||
if (!ent) return -1;
|
||||
|
||||
if (!lcd_no_led_support)
|
||||
{
|
||||
ent = proc_create_data("led", S_IRUGO|S_IWUSR, proc_pdc_root,
|
||||
&led_proc_fops, (void *)LED_NOLCD); /* LED */
|
||||
if (!ent) return -1;
|
||||
}
|
||||
|
||||
if (led_type == LED_HASLCD)
|
||||
{
|
||||
@ -692,6 +700,7 @@ int __init led_init(void)
|
||||
case 0x58B: /* KittyHawk DC2 100 (K200) */
|
||||
printk(KERN_INFO "%s: KittyHawk-Machine (hversion 0x%x) found, "
|
||||
"LED detection skipped.\n", __FILE__, CPU_HVERSION);
|
||||
lcd_no_led_support = 1;
|
||||
goto found; /* use the preinitialized values of lcd_info */
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user