diff options
Diffstat (limited to 'include')
179 files changed, 1085 insertions, 2171 deletions
diff --git a/include/acpi/acdebug.h b/include/acpi/acdebug.h index 658c5f505872..91f0632d5812 100644 --- a/include/acpi/acdebug.h +++ b/include/acpi/acdebug.h @@ -386,11 +386,6 @@ void ACPI_SYSTEM_XFACE acpi_db_execute_thread ( void *context); -acpi_status -acpi_db_user_commands ( - char prompt, - union acpi_parse_object *op); - void acpi_db_display_help ( char *help_type); diff --git a/include/acpi/acdispat.h b/include/acpi/acdispat.h index e003a4f3ff4e..a47a162cc82d 100644 --- a/include/acpi/acdispat.h +++ b/include/acpi/acdispat.h @@ -62,10 +62,12 @@ acpi_ds_obj_stack_pop ( u32 pop_count, struct acpi_walk_state *walk_state); +#ifdef ACPI_FUTURE_USAGE void * acpi_ds_obj_stack_get_value ( u32 index, struct acpi_walk_state *walk_state); +#endif acpi_status acpi_ds_obj_stack_pop_object ( @@ -248,11 +250,13 @@ u8 acpi_ds_is_method_value ( union acpi_operand_object *obj_desc); +#ifdef ACPI_FUTURE_USAGE acpi_object_type acpi_ds_method_data_get_type ( u16 opcode, u32 index, struct acpi_walk_state *walk_state); +#endif acpi_status acpi_ds_method_data_get_value ( @@ -440,9 +444,11 @@ acpi_ds_init_aml_walk ( struct acpi_parameter_info *info, u32 pass_number); +#ifdef ACPI_FUTURE_USAGE acpi_status acpi_ds_obj_stack_delete_all ( struct acpi_walk_state *walk_state); +#endif acpi_status acpi_ds_obj_stack_pop_and_delete ( @@ -482,6 +488,7 @@ void acpi_ds_delete_walk_state_cache ( void); +#ifdef ACPI_FUTURE_USAGE acpi_status acpi_ds_result_insert ( void *object, @@ -493,6 +500,7 @@ acpi_ds_result_remove ( union acpi_operand_object **object, u32 index, struct acpi_walk_state *walk_state); +#endif acpi_status acpi_ds_result_pop ( diff --git a/include/acpi/achware.h b/include/acpi/achware.h index cf55493dc95e..819630d8bf78 100644 --- a/include/acpi/achware.h +++ b/include/acpi/achware.h @@ -131,10 +131,12 @@ acpi_hw_clear_gpe_block ( struct acpi_gpe_xrupt_info *gpe_xrupt_info, struct acpi_gpe_block_info *gpe_block); +#ifdef ACPI_FUTURE_USAGE acpi_status acpi_hw_get_gpe_status ( struct acpi_gpe_event_info *gpe_event_info, acpi_event_status *event_status); +#endif acpi_status acpi_hw_disable_all_gpes ( @@ -161,6 +163,7 @@ acpi_hw_enable_wakeup_gpe_block ( /* ACPI Timer prototypes */ +#ifdef ACPI_FUTURE_USAGE acpi_status acpi_get_timer_resolution ( u32 *resolution); @@ -174,6 +177,6 @@ acpi_get_timer_duration ( u32 start_ticks, u32 end_ticks, u32 *time_elapsed); - +#endif /* ACPI_FUTURE_USAGE */ #endif /* __ACHWARE_H__ */ diff --git a/include/acpi/acinterp.h b/include/acpi/acinterp.h index 7bb6dd85bd2e..73c239af0e1e 100644 --- a/include/acpi/acinterp.h +++ b/include/acpi/acinterp.h @@ -504,6 +504,7 @@ acpi_ex_dump_operands ( char *module_name, u32 line_number); +#ifdef ACPI_FUTURE_USAGE void acpi_ex_dump_object_descriptor ( union acpi_operand_object *object, @@ -533,7 +534,7 @@ void acpi_ex_out_address ( char *title, acpi_physical_address value); - +#endif /* ACPI_FUTURE_USAGE */ /* * exnames - interpreter/scanner name load/execute diff --git a/include/acpi/acmacros.h b/include/acpi/acmacros.h index c31118e63e61..25cd64574634 100644 --- a/include/acpi/acmacros.h +++ b/include/acpi/acmacros.h @@ -538,7 +538,11 @@ #define ACPI_DUMP_ENTRY(a,b) acpi_ns_dump_entry (a,b) + +#ifdef ACPI_FUTURE_USAGE #define ACPI_DUMP_TABLES(a,b) acpi_ns_dump_tables(a,b) +#endif + #define ACPI_DUMP_PATHNAME(a,b,c,d) acpi_ns_dump_pathname(a,b,c,d) #define ACPI_DUMP_RESOURCE_LIST(a) acpi_rs_dump_resource_list(a) #define ACPI_DUMP_BUFFER(a,b) acpi_ut_dump_buffer((u8 *)a,b,DB_BYTE_DISPLAY,_COMPONENT) @@ -591,7 +595,11 @@ #define ACPI_DUMP_STACK_ENTRY(a) #define ACPI_DUMP_OPERANDS(a,b,c,d,e) #define ACPI_DUMP_ENTRY(a,b) + +#ifdef ACPI_FUTURE_USAGE #define ACPI_DUMP_TABLES(a,b) +#endif + #define ACPI_DUMP_PATHNAME(a,b,c,d) #define ACPI_DUMP_RESOURCE_LIST(a) #define ACPI_DUMP_BUFFER(a,b) diff --git a/include/acpi/acnamesp.h b/include/acpi/acnamesp.h index 8cfd1afbac28..f0a34ef3d865 100644 --- a/include/acpi/acnamesp.h +++ b/include/acpi/acnamesp.h @@ -210,6 +210,7 @@ acpi_ns_remove_reference ( * Namespace modification - nsmodify */ +#ifdef ACPI_FUTURE_USAGE acpi_status acpi_ns_unload_namespace ( acpi_handle handle); @@ -217,16 +218,19 @@ acpi_ns_unload_namespace ( acpi_status acpi_ns_delete_subtree ( acpi_handle start_handle); +#endif /* * Namespace dump/print utilities - nsdump */ +#ifdef ACPI_FUTURE_USAGE void acpi_ns_dump_tables ( acpi_handle search_base, u32 max_depth); +#endif void acpi_ns_dump_entry ( @@ -245,6 +249,7 @@ acpi_ns_print_pathname ( u32 num_segments, char *pathname); +#ifdef ACPI_FUTURE_USAGE acpi_status acpi_ns_dump_one_device ( acpi_handle obj_handle, @@ -255,6 +260,7 @@ acpi_ns_dump_one_device ( void acpi_ns_dump_root_devices ( void); +#endif /* ACPI_FUTURE_USAGE */ acpi_status acpi_ns_dump_one_object ( @@ -263,6 +269,7 @@ acpi_ns_dump_one_object ( void *context, void **return_value); +#ifdef ACPI_FUTURE_USAGE void acpi_ns_dump_objects ( acpi_object_type type, @@ -270,6 +277,7 @@ acpi_ns_dump_objects ( u32 max_depth, u32 ownder_id, acpi_handle start_handle); +#endif /* @@ -303,9 +311,11 @@ acpi_ns_get_object_value ( * Parent/Child/Peer utility functions */ +#ifdef ACPI_FUTURE_USAGE acpi_name acpi_ns_find_parent_name ( struct acpi_namespace_node *node_to_search); +#endif /* diff --git a/include/acpi/acparser.h b/include/acpi/acparser.h index 42cc5b4d32a8..65d041ae49a0 100644 --- a/include/acpi/acparser.h +++ b/include/acpi/acparser.h @@ -247,6 +247,7 @@ acpi_ps_get_arg( union acpi_parse_object *op, u32 argn); +#ifdef ACPI_FUTURE_USAGE union acpi_parse_object * acpi_ps_get_child ( union acpi_parse_object *op); @@ -255,6 +256,7 @@ union acpi_parse_object * acpi_ps_get_depth_next ( union acpi_parse_object *origin, union acpi_parse_object *op); +#endif /* ACPI_FUTURE_USAGE */ /* pswalk - parse tree walk routines */ @@ -313,9 +315,11 @@ u8 acpi_ps_is_prefix_char ( u32 c); +#ifdef ACPI_FUTURE_USAGE u32 acpi_ps_get_name( union acpi_parse_object *op); +#endif void acpi_ps_set_name( diff --git a/include/acpi/acpiosxf.h b/include/acpi/acpiosxf.h index 030d193f979d..8f20bc6b4704 100644 --- a/include/acpi/acpiosxf.h +++ b/include/acpi/acpiosxf.h @@ -176,10 +176,12 @@ acpi_os_unmap_memory ( void __iomem *logical_address, acpi_size size); +#ifdef ACPI_FUTURE_USAGE acpi_status acpi_os_get_physical_address ( void *logical_address, acpi_physical_address *physical_address); +#endif /* @@ -302,10 +304,12 @@ acpi_os_readable ( void *pointer, acpi_size length); +#ifdef ACPI_FUTURE_USAGE u8 acpi_os_writable ( void *pointer, acpi_size length); +#endif u64 acpi_os_get_timer ( @@ -339,9 +343,11 @@ acpi_os_redirect_output ( * Debug input */ +#ifdef ACPI_FUTURE_USAGE u32 acpi_os_get_line ( char *buffer); +#endif /* diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h index f4097100288e..1b6eff5c3113 100644 --- a/include/acpi/acpixf.h +++ b/include/acpi/acpixf.h @@ -70,9 +70,11 @@ acpi_status acpi_terminate ( void); +#ifdef ACPI_FUTURE_USAGE acpi_status acpi_subsystem_status ( void); +#endif acpi_status acpi_enable ( @@ -82,9 +84,11 @@ acpi_status acpi_disable ( void); +#ifdef ACPI_FUTURE_USAGE acpi_status acpi_get_system_info ( struct acpi_buffer *ret_buffer); +#endif const char * acpi_format_exception ( @@ -94,10 +98,12 @@ acpi_status acpi_purge_cached_objects ( void); +#ifdef ACPI_FUTURE_USAGE acpi_status acpi_install_initialization_handler ( acpi_init_handler handler, u32 function); +#endif /* * ACPI Memory manager @@ -129,6 +135,7 @@ acpi_status acpi_load_tables ( void); +#ifdef ACPI_FUTURE_USAGE acpi_status acpi_load_table ( struct acpi_table_header *table_ptr); @@ -142,6 +149,7 @@ acpi_get_table_header ( acpi_table_type table_type, u32 instance, struct acpi_table_header *out_table_header); +#endif /* ACPI_FUTURE_USAGE */ acpi_status acpi_get_table ( @@ -218,6 +226,7 @@ acpi_evaluate_object ( struct acpi_object_list *parameter_objects, struct acpi_buffer *return_object_buffer); +#ifdef ACPI_FUTURE_USAGE acpi_status acpi_evaluate_object_typed ( acpi_handle object, @@ -225,6 +234,7 @@ acpi_evaluate_object_typed ( struct acpi_object_list *external_params, struct acpi_buffer *return_buffer, acpi_object_type return_type); +#endif acpi_status acpi_get_object_info ( @@ -299,9 +309,11 @@ acpi_install_gpe_handler ( acpi_event_handler address, void *context); +#ifdef ACPI_FUTURE_USAGE acpi_status acpi_install_exception_handler ( acpi_exception_handler handler); +#endif /* @@ -333,6 +345,7 @@ acpi_disable_event ( u32 event, u32 flags); +#ifdef ACPI_FUTURE_USAGE acpi_status acpi_clear_event ( u32 event); @@ -341,6 +354,7 @@ acpi_status acpi_get_event_status ( u32 event, acpi_event_status *event_status); +#endif /* ACPI_FUTURE_USAGE */ acpi_status acpi_set_gpe_type ( @@ -366,12 +380,14 @@ acpi_clear_gpe ( u32 gpe_number, u32 flags); +#ifdef ACPI_FUTURE_USAGE acpi_status acpi_get_gpe_status ( acpi_handle gpe_device, u32 gpe_number, u32 flags, acpi_event_status *event_status); +#endif /* ACPI_FUTURE_USAGE */ acpi_status acpi_install_gpe_block ( @@ -400,10 +416,12 @@ acpi_get_current_resources( acpi_handle device_handle, struct acpi_buffer *ret_buffer); +#ifdef ACPI_FUTURE_USAGE acpi_status acpi_get_possible_resources( acpi_handle device_handle, struct acpi_buffer *ret_buffer); +#endif acpi_status acpi_walk_resources ( @@ -447,9 +465,11 @@ acpi_status acpi_set_firmware_waking_vector ( acpi_physical_address physical_address); +#ifdef ACPI_FUTURE_USAGE acpi_status acpi_get_firmware_waking_vector ( acpi_physical_address *physical_address); +#endif acpi_status acpi_get_sleep_type_data ( diff --git a/include/acpi/acresrc.h b/include/acpi/acresrc.h index e1a91875055d..bcefb3b3c8c0 100644 --- a/include/acpi/acresrc.h +++ b/include/acpi/acresrc.h @@ -60,10 +60,12 @@ acpi_rs_get_crs_method_data ( acpi_handle handle, struct acpi_buffer *ret_buffer); +#ifdef ACPI_FUTURE_USAGE acpi_status acpi_rs_get_prs_method_data ( acpi_handle handle, struct acpi_buffer *ret_buffer); +#endif acpi_status acpi_rs_get_method_data ( @@ -95,6 +97,7 @@ acpi_rs_create_pci_routing_table ( /* * Function prototypes called from acpi_rs_create* */ +#ifdef ACPI_FUTURE_USAGE void acpi_rs_dump_irq ( union acpi_resource_data *data); @@ -154,6 +157,7 @@ acpi_rs_dump_resource_list ( void acpi_rs_dump_irq_list ( u8 *route_table); +#endif /* ACPI_FUTURE_USAGE */ acpi_status acpi_rs_get_byte_stream_start ( diff --git a/include/acpi/actables.h b/include/acpi/actables.h index 43112abd6a98..b95bd650c67e 100644 --- a/include/acpi/actables.h +++ b/include/acpi/actables.h @@ -50,10 +50,12 @@ #define SIZE_IN_HEADER 0 +#ifdef ACPI_FUTURE_USAGE acpi_status acpi_tb_handle_to_object ( u16 table_id, struct acpi_table_desc **table_desc); +#endif /* * tbconvrt - Table conversion routines diff --git a/include/acpi/acutils.h b/include/acpi/acutils.h index e3adfa35bb22..1786282c66d2 100644 --- a/include/acpi/acutils.h +++ b/include/acpi/acutils.h @@ -666,12 +666,14 @@ acpi_ut_create_update_state_and_push ( u16 action, union acpi_generic_state **state_list); +#ifdef ACPI_FUTURE_USAGE acpi_status acpi_ut_create_pkg_state_and_push ( void *internal_object, void *external_object, u16 index, union acpi_generic_state **state_list); +#endif union acpi_generic_state * acpi_ut_create_control_state ( @@ -730,9 +732,11 @@ acpi_ut_strtoul64 ( #define ACPI_ANY_BASE 0 +#ifdef ACPI_FUTURE_USAGE char * acpi_ut_strupr ( char *src_string); +#endif u8 * acpi_ut_get_resource_end_tag ( @@ -851,9 +855,11 @@ acpi_ut_remove_allocation ( char *module, u32 line); +#ifdef ACPI_FUTURE_USAGE void acpi_ut_dump_allocation_info ( void); +#endif void acpi_ut_dump_allocations ( diff --git a/include/acpi/platform/acenv.h b/include/acpi/platform/acenv.h index fbf38768a838..42fb8043d0b3 100644 --- a/include/acpi/platform/acenv.h +++ b/include/acpi/platform/acenv.h @@ -223,7 +223,11 @@ */ #define ACPI_STRSTR(s1,s2) strstr((s1), (s2)) + +#ifdef ACPI_FUTURE_USAGE #define ACPI_STRUPR(s) (void) acpi_ut_strupr ((s)) +#endif + #define ACPI_STRLEN(s) (acpi_size) strlen((s)) #define ACPI_STRCPY(d,s) (void) strcpy((d), (s)) #define ACPI_STRNCPY(d,s,n) (void) strncpy((d), (s), (acpi_size)(n)) @@ -287,7 +291,11 @@ typedef char *va_list; #define ACPI_STRSTR(s1,s2) acpi_ut_strstr ((s1), (s2)) + +#ifdef ACPI_FUTURE_USAGE #define ACPI_STRUPR(s) (void) acpi_ut_strupr ((s)) +#endif + #define ACPI_STRLEN(s) (acpi_size) acpi_ut_strlen ((s)) #define ACPI_STRCPY(d,s) (void) acpi_ut_strcpy ((d), (s)) #define ACPI_STRNCPY(d,s,n) (void) acpi_ut_strncpy ((d), (s), (acpi_size)(n)) diff --git a/include/asm-alpha/io.h b/include/asm-alpha/io.h index 0d76b44cd55b..68907d940af1 100644 --- a/include/asm-alpha/io.h +++ b/include/asm-alpha/io.h @@ -631,16 +631,6 @@ isa_memcpy_toio(unsigned long offset, const void *src, long n) iounmap(addr); } -static inline int -isa_check_signature(unsigned long offset, const unsigned char *sig, long len) -{ - void __iomem *addr = ioremap(offset, len); - int ret = check_signature(addr, sig, len); - iounmap(addr); - return ret; -} - - /* * The Alpha Jensen hardware for some rather strange reason puts * the RTC clock at 0x170 instead of 0x70. Probably due to some diff --git a/include/asm-alpha/mmzone.h b/include/asm-alpha/mmzone.h index ce75633b5052..726c150dcbe4 100644 --- a/include/asm-alpha/mmzone.h +++ b/include/asm-alpha/mmzone.h @@ -107,7 +107,7 @@ PLAT_NODE_DATA_LOCALNR(unsigned long p, int n) #define pfn_to_page(pfn) \ ({ \ - unsigned long kaddr = (unsigned long)__va(pfn << PAGE_SHIFT); \ + unsigned long kaddr = (unsigned long)__va((pfn) << PAGE_SHIFT); \ (node_mem_map(kvaddr_to_nid(kaddr)) + local_mapnr(kaddr)); \ }) @@ -119,7 +119,7 @@ PLAT_NODE_DATA_LOCALNR(unsigned long p, int n) ((( (page) - page_zone(page)->zone_mem_map ) \ + page_zone(page)->zone_start_pfn) << PAGE_SHIFT) -#define pfn_to_nid(pfn) pa_to_nid(((u64)pfn << PAGE_SHIFT)) +#define pfn_to_nid(pfn) pa_to_nid(((u64)(pfn) << PAGE_SHIFT)) #define pfn_valid(pfn) \ (((pfn) - node_start_pfn(pfn_to_nid(pfn))) < \ node_spanned_pages(pfn_to_nid(pfn))) \ diff --git a/include/asm-arm/arch-iop3xx/serial.h b/include/asm-arm/arch-iop3xx/serial.h deleted file mode 100644 index 61192f98c066..000000000000 --- a/include/asm-arm/arch-iop3xx/serial.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * include/asm-arm/arch-iop3xx/serial.h - */ -#include <linux/config.h> - -/* - * This assumes you have a 1.8432 MHz clock for your UART. - * - * It'd be nice if someone built a serial card with a 24.576 MHz - * clock, since the 16550A is capable of handling a top speed of 1.5 - * megabits/second; but this requires the faster clock. - */ -#define BASE_BAUD ( 1843200 / 16 ) - -/* Standard COM flags */ -#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST) - -#ifdef CONFIG_ARCH_IQ80321 - -#define IRQ_UART1 IRQ_IQ80321_UART - -#define RS_TABLE_SIZE 1 - -#define STD_SERIAL_PORT_DEFNS \ - /* UART CLK PORT IRQ FLAGS */ \ - { 0, BASE_BAUD, 0xfe800000, IRQ_UART1, STD_COM_FLAGS }, /* ttyS0 */ -#endif // CONFIG_ARCH_IQ80321 - -#ifdef CONFIG_ARCH_IQ31244 - -#define IRQ_UART1 IRQ_IQ31244_UART - -#define RS_TABLE_SIZE 1 - -#define STD_SERIAL_PORT_DEFNS \ - /* UART CLK PORT IRQ FLAGS */ \ - { 0, BASE_BAUD, 0xfe800000, IRQ_UART1, STD_COM_FLAGS }, /* ttyS0 */ -#endif // CONFIG_ARCH_IQ31244 - -#ifdef CONFIG_ARCH_IQ80331 - -#undef BASE_BAUD - -#define BASE_BAUD ( 33334000 / 16 ) - -#define IRQ_UART0 IRQ_IQ80331_UART0 -#define IRQ_UART1 IRQ_IQ80331_UART1 - -#define RS_TABLE_SIZE 2 - -#define STD_SERIAL_PORT_DEFNS \ - { \ - /*type: PORT_XSCALE,*/ \ - /*xmit_fifo_size: 32,*/ \ - baud_base: BASE_BAUD, \ - irq: IRQ_UART0, \ - flags: STD_COM_FLAGS, \ - iomem_base: IQ80331_UART0_VIRT, \ - io_type: SERIAL_IO_MEM, \ - iomem_reg_shift: 2 \ - }, /* ttyS0 */ \ - { \ - /*type: PORT_XSCALE,*/ \ - /*xmit_fifo_size: 32,*/ \ - baud_base: BASE_BAUD, \ - irq: IRQ_UART1, \ - flags: STD_COM_FLAGS, \ - iomem_base: IQ80331_UART1_VIRT, \ - io_type: SERIAL_IO_MEM, \ - iomem_reg_shift: 2 \ - } /* ttyS1 */ -#endif // CONFIG_ARCH_IQ80331 - - -#define EXTRA_SERIAL_PORT_DEFNS - diff --git a/include/asm-arm/arch-ixp2000/dma.h b/include/asm-arm/arch-ixp2000/dma.h index 71520c8282f0..0fb3568a98dd 100644 --- a/include/asm-arm/arch-ixp2000/dma.h +++ b/include/asm-arm/arch-ixp2000/dma.h @@ -1,5 +1,5 @@ /* - * linux/include/asm-arm/arch-ixdp2400/dma.h + * linux/include/asm-arm/arch-ixp2000/dma.h * * Copyright (C) 2002 Intel Corp. * diff --git a/include/asm-arm/arch-ixp2000/io.h b/include/asm-arm/arch-ixp2000/io.h index 0adf3cf96e24..8e58f375289f 100644 --- a/include/asm-arm/arch-ixp2000/io.h +++ b/include/asm-arm/arch-ixp2000/io.h @@ -24,7 +24,7 @@ #define ___io(p) ((unsigned long)((p)+IXP2000_PCI_IO_VIRT_BASE)) /* - * IXP200 does not do proper byte-lane conversion for PCI addresses, + * IXP2000 does not do proper byte-lane conversion for PCI addresses, * so we need to override standard functions. */ #define alignb(addr) ((addr & ~3) + (3 - (addr & 3))) diff --git a/include/asm-arm/arch-ixp2000/irqs.h b/include/asm-arm/arch-ixp2000/irqs.h index a6b104f63aa0..6ef085909c10 100644 --- a/include/asm-arm/arch-ixp2000/irqs.h +++ b/include/asm-arm/arch-ixp2000/irqs.h @@ -28,7 +28,7 @@ * shift operation instead of having to map the IRQ number to * a HW IRQ number. */ -#define IRQ_IXP2000_SWI 0 /* soft interrupt */ +#define IRQ_IXP2000_SOFT_INT 0 /* soft interrupt */ #define IRQ_IXP2000_ERRSUM 1 /* OR of all bits in ErrorStatus reg*/ #define IRQ_IXP2000_UART 2 #define IRQ_IXP2000_GPIO 3 @@ -46,13 +46,12 @@ #define IRQ_IXP2000_PCI 15 /* PCI INTA or INTB */ #define IRQ_IXP2000_THDA0 16 /* thread 0-31A */ #define IRQ_IXP2000_THDA1 17 /* thread 32-63A */ -#define IRQ_IXP2000_THDA2 18 /* thread 64-95A */ -#define IRQ_IXP2000_THDA3 19 /* thread 96-127A */ -#define IRQ_IXP2000_THDB0 24 /* thread 0-31 B */ +#define IRQ_IXP2000_THDA2 18 /* thread 64-95A, IXP2800 only */ +#define IRQ_IXP2000_THDA3 19 /* thread 96-127A, IXP2800 only */ +#define IRQ_IXP2000_THDB0 24 /* thread 0-31B */ #define IRQ_IXP2000_THDB1 25 /* thread 32-63B */ -/* only 64 threads supported for IXP2400, rest or for IXP2800*/ -#define IRQ_IXP2000_THDB2 26 /* thread 64-95B */ -#define IRQ_IXP2000_THDB3 27 /* thread 96-127B */ +#define IRQ_IXP2000_THDB2 26 /* thread 64-95B, IXP2800 only */ +#define IRQ_IXP2000_THDB3 27 /* thread 96-127B, IXP2800 only */ /* define generic GPIOs */ #define IRQ_IXP2000_GPIO0 32 @@ -68,22 +67,7 @@ #define IRQ_IXP2000_PCIA 40 #define IRQ_IXP2000_PCIB 41 -/* Int sources from IRQ_ERROR_STATUS */ -#define IRQ_IXP2000_DRAM0_MIN_ERR 42 -#define IRQ_IXP2000_DRAM0_MAJ_ERR 43 -#define IRQ_IXP2000_DRAM1_MIN_ERR 44 -#define IRQ_IXP2000_DRAM1_MAJ_ERR 45 -#define IRQ_IXP2000_DRAM2_MIN_ERR 46 -#define IRQ_IXP2000_DRAM2_MAJ_ERR 47 -#define IRQ_IXP2000_SRAM0_ERR 48 -#define IRQ_IXP2000_SRAM1_ERR 49 -#define IRQ_IXP2000_SRAM2_ERR 50 -#define IRQ_IXP2000_SRAM3_ERR 51 -#define IRQ_IXP2000_MEDIA_ERR 52 -#define IRQ_IXP2000_PCI_ERR 53 -#define IRQ_IXP2000_SP_INT 54 - -#define NR_IXP2000_IRQS 55 +#define NR_IXP2000_IRQS 42 #define IXP2000_BOARD_IRQ(x) (NR_IXP2000_IRQS + (x)) diff --git a/include/asm-arm/arch-ixp2000/ixdp2x00.h b/include/asm-arm/arch-ixp2000/ixdp2x00.h index e01782660a1d..84ca02781c84 100644 --- a/include/asm-arm/arch-ixp2000/ixdp2x00.h +++ b/include/asm-arm/arch-ixp2000/ixdp2x00.h @@ -53,7 +53,7 @@ /* * PCI devfns for on-board devices. We need these to be able to - * properly translte IRQs and for device removal. + * properly translate IRQs and for device removal. */ #define IXDP2400_SLAVE_ENET_DEVFN 0x18 /* Bus 1 */ #define IXDP2400_MASTER_ENET_DEVFN 0x20 /* Bus 1 */ diff --git a/include/asm-arm/arch-ixp2000/ixdp2x01.h b/include/asm-arm/arch-ixp2000/ixdp2x01.h index 626ed6b6e0c3..46469c4d5ddc 100644 --- a/include/asm-arm/arch-ixp2000/ixdp2x01.h +++ b/include/asm-arm/arch-ixp2000/ixdp2x01.h @@ -50,4 +50,8 @@ #define IXDP2X01_UART_CLK 1843200 +#define IXDP2X01_GPIO_I2C_ENABLE 0x02 +#define IXDP2X01_GPIO_SCL 0x07 +#define IXDP2X01_GPIO_SDA 0x06 + #endif /* __IXDP2x01_H__ */ diff --git a/include/asm-arm/arch-ixp2000/ixp2000-regs.h b/include/asm-arm/arch-ixp2000/ixp2000-regs.h index 9c8b21df64f9..5e047b38dd5d 100644 --- a/include/asm-arm/arch-ixp2000/ixp2000-regs.h +++ b/include/asm-arm/arch-ixp2000/ixp2000-regs.h @@ -115,7 +115,7 @@ /* * Mask of valid IRQs in the 32-bit IRQ register. We use - * this to mark certain IRQs as being in-valid. + * this to mark certain IRQs as being invalid. */ #define IXP2000_VALID_IRQ_MASK 0x0f0fffff @@ -251,7 +251,7 @@ #define SLOWPORT_CCR_DIV_30 0x0f /* - * PCR values. PCR configure the mode of the interfac3 + * PCR values. PCR configure the mode of the interface. */ #define SLOWPORT_MODE_FLASH 0x00 #define SLOWPORT_MODE_LUCENT 0x01 @@ -260,7 +260,7 @@ #define SLOWPORT_MODE_MOTOROLA_UP 0x04 /* - * ADC values. Defines data and address bus widths + * ADC values. Defines data and address bus widths. */ #define SLOWPORT_ADDR_WIDTH_8 0x00 #define SLOWPORT_ADDR_WIDTH_16 0x01 @@ -272,7 +272,7 @@ #define SLOWPORT_DATA_WIDTH_32 0x30 /* - * Masks and shifts for various fields in the WTC and RTC registers + * Masks and shifts for various fields in the WTC and RTC registers. */ #define SLOWPORT_WRTC_MASK_HD 0x0003 #define SLOWPORT_WRTC_MASK_SU 0x003c @@ -284,7 +284,7 @@ /* - * GPIO registers & GPIO interface + * GPIO registers & GPIO interface. */ #define IXP2000_GPIO_REG(x) ((volatile unsigned long*)(IXP2000_GPIO_VIRT_BASE+(x))) #define IXP2000_GPIO_PLR IXP2000_GPIO_REG(0x00) diff --git a/include/asm-arm/arch-ixp2000/platform.h b/include/asm-arm/arch-ixp2000/platform.h index 7a24461841b7..16e4a240199d 100644 --- a/include/asm-arm/arch-ixp2000/platform.h +++ b/include/asm-arm/arch-ixp2000/platform.h @@ -16,10 +16,10 @@ #ifndef __ASSEMBLY__ /* - * The IXP2400 B0 silicon contains an errata that causes writes to - * on-chip I/O register to not complete fully. What this means is + * The IXP2400 B0 silicon contains an erratum (#66) that causes writes + * to on-chip I/O register to not complete fully. What this means is * that if you have a write to on-chip I/O followed by a back-to-back - * read or write, the first write will happend twice. OR...if it's + * read or write, the first write will happen twice. OR...if it's * not a back-to-back trasaction, the read or write will generate * incorrect data. * diff --git a/include/asm-arm/arch-ixp2000/system.h b/include/asm-arm/arch-ixp2000/system.h index ec72ba4e643c..281907bf7afb 100644 --- a/include/asm-arm/arch-ixp2000/system.h +++ b/include/asm-arm/arch-ixp2000/system.h @@ -1,5 +1,5 @@ /* - * linux/include/asm-arm/arch-ixp2400/system.h + * linux/include/asm-arm/arch-ixp2000/system.h * * Copyright (C) 2002 Intel Corp. * diff --git a/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h b/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h index b5810b2549fa..0f352ac946d9 100644 --- a/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h +++ b/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h @@ -55,7 +55,7 @@ * PCI Config registers */ #define IXP4XX_PCI_CFG_BASE_PHYS (0xC0000000) -#define IXP4XX_PCI_CFG_BASE_VIRT (0xFFBFD000) +#define IXP4XX_PCI_CFG_BASE_VIRT (0xFFBFE000) #define IXP4XX_PCI_CFG_REGION_SIZE (0x00001000) /* diff --git a/include/asm-arm/arch-s3c2410/dma.h b/include/asm-arm/arch-s3c2410/dma.h index 8e5a9e1a7a70..c1019ef3d72b 100644 --- a/include/asm-arm/arch-s3c2410/dma.h +++ b/include/asm-arm/arch-s3c2410/dma.h @@ -1,7 +1,7 @@ /* linux/include/asm-arm/arch-bast/dma.h * - * Copyright (C) 2003 Simtec Electronics - * Ben Dooks <ben@simtec.co.uk> + * Copyright (C) 2003,2004 Simtec Electronics + * Ben Dooks <ben@simtec.co.uk> * * Samsung S3C2410X DMA support * @@ -12,13 +12,14 @@ * Changelog: * ??-May-2003 BJD Created file * ??-Jun-2003 BJD Added more dma functionality to go with arch + * 10-Nov-2004 BJD Added sys_device support */ - #ifndef __ASM_ARCH_DMA_H -#define __ASM_ARCH_DMA_H +#define __ASM_ARCH_DMA_H __FILE__ #include <linux/config.h> +#include <linux/sysdev.h> #include "hardware.h" @@ -215,6 +216,9 @@ struct s3c2410_dma_chan_s { s3c2410_dma_buf_t *curr; /* current dma buffer */ s3c2410_dma_buf_t *next; /* next buffer to load */ s3c2410_dma_buf_t *end; /* end of queue */ + + /* system device */ + struct sys_device dev; }; /* the currently allocated channel information */ @@ -296,18 +300,46 @@ extern int s3c2410_dma_set_buffdone_fn(dmach_t, s3c2410_dma_cbfn_t rtn); #define S3C2410_DMA_DCDST (0x1C) #define S3C2410_DMA_DMASKTRIG (0x20) +#define S3C2410_DISRCC_INC (1<<0) +#define S3C2410_DISRCC_APB (1<<1) + #define S3C2410_DMASKTRIG_STOP (1<<2) #define S3C2410_DMASKTRIG_ON (1<<1) #define S3C2410_DMASKTRIG_SWTRIG (1<<0) -#define S3C2410_DCOM_DEMAND (0<<31) +#define S3C2410_DCON_DEMAND (0<<31) #define S3C2410_DCON_HANDSHAKE (1<<31) #define S3C2410_DCON_SYNC_PCLK (0<<30) #define S3C2410_DCON_SYNC_HCLK (1<<30) #define S3C2410_DCON_INTREQ (1<<29) +#define S3C2410_DCON_CH0_XDREQ0 (0<<24) +#define S3C2410_DCON_CH0_UART0 (1<<24) +#define S3C2410_DCON_CH0_SDI (2<<24) +#define S3C2410_DCON_CH0_TIMER (3<<24) +#define S3C2410_DCON_CH0_USBEP1 (4<<24) + +#define S3C2410_DCON_CH1_XDREQ1 (0<<24) +#define S3C2410_DCON_CH1_UART1 (1<<24) +#define S3C2410_DCON_CH1_I2SSDI (2<<24) +#define S3C2410_DCON_CH1_SPI (3<<24) +#define S3C2410_DCON_CH1_USBEP2 (4<<24) + +#define S3C2410_DCON_CH2_I2SSDO (0<<24) +#define S3C2410_DCON_CH2_I2SSDI (1<<24) +#define S3C2410_DCON_CH2_SDI (2<<24) +#define S3C2410_DCON_CH2_TIMER (3<<24) +#define S3C2410_DCON_CH2_USBEP3 (4<<24) + +#define S3C2410_DCON_CH3_UART2 (0<<24) +#define S3C2410_DCON_CH3_SDI (1<<24) +#define S3C2410_DCON_CH3_SPI (2<<24) +#define S3C2410_DCON_CH3_TIMER (3<<24) +#define S3C2410_DCON_CH3_USBEP4 (4<<24) + #define S3C2410_DCON_SRCSHIFT (24) +#define S3C2410_DCON_SRCMASK (7<<24) #define S3C2410_DCON_BYTE (0<<20) #define S3C2410_DCON_HALFWORD (1<<20) @@ -317,4 +349,20 @@ extern int s3c2410_dma_set_buffdone_fn(dmach_t, s3c2410_dma_cbfn_t rtn); #define S3C2410_DCON_NORELOAD (1<<22) #define S3C2410_DCON_HWTRIG (1<<23) +#ifdef CONFIG_CPU_S3C2440 +#define S3C2440_DIDSTC_CHKINT (1<<2) + +#define S3C2440_DCON_CH0_I2SSDO (5<<24) +#define S3C2440_DCON_CH0_PCMIN (6<<24) + +#define S3C2440_DCON_CH1_PCMOUT (5<<24) +#define S3C2440_DCON_CH1_SDI (6<<24) + +#define S3C2440_DCON_CH2_PCMIN (5<<24) +#define S3C2440_DCON_CH2_MICIN (6<<24) + +#define S3C2440_DCON_CH3_MICIN (5<<24) +#define S3C2440_DCON_CH3_PCMOUT (6<<24) +#endif + #endif /* __ASM_ARCH_DMA_H */ diff --git a/include/asm-arm/arch-s3c2410/regs-dsc.h b/include/asm-arm/arch-s3c2410/regs-dsc.h index 0da1ec7b7675..a023b0434efe 100644 --- a/include/asm-arm/arch-s3c2410/regs-dsc.h +++ b/include/asm-arm/arch-s3c2410/regs-dsc.h @@ -20,15 +20,15 @@ #ifdef CONFIG_CPU_S3C2440 -#define S3C2440_DSC0 S3C2410_GPIOREG(0xc0) -#define S3C2440_DSC1 S3C2410_GPIOREG(0xc4) +#define S3C2440_DSC0 S3C2410_GPIOREG(0xc4) +#define S3C2440_DSC1 S3C2410_GPIOREG(0xc8) #define S3C2440_SELECT_DSC0 (0) #define S3C2440_SELECT_DSC1 (1<<31) #define S3C2440_DSC_GETSHIFT(x) ((x) & 31) -#define S3C2440_DSC0_ENABLE (1<<31) +#define S3C2440_DSC0_DISABLE (1<<31) #define S3C2440_DSC0_ADDR (S3C2440_SELECT_DSC0 | 8) #define S3C2440_DSC0_ADDR_12mA (0<<8) @@ -69,19 +69,19 @@ #define S3C2440_DSC0_DATA0_6mA (3<<0) #define S3C2440_DSC0_DATA0_MASK (3<<0) -#define S3C2440_DSC1_SCK0 (S3C2440_SELECT_DSC1 | 28) -#define S3C2440_DSC1_SCK0_12mA (0<<28) -#define S3C2440_DSC1_SCK0_10mA (1<<28) -#define S3C2440_DSC1_SCK0_8mA (2<<28) -#define S3C2440_DSC1_SCK0_6mA (3<<28) -#define S3C2440_DSC1_SCK0_MASK (3<<28) - -#define S3C2440_DSC1_SCK1 (S3C2440_SELECT_DSC1 | 26) -#define S3C2440_DSC1_SCK1_12mA (0<<26) -#define S3C2440_DSC1_SCK1_10mA (1<<26) -#define S3C2440_DSC1_SCK1_8mA (2<<26) -#define S3C2440_DSC1_SCK1_6mA (3<<26) -#define S3C2440_DSC1_SCK1_MASK (3<<26) +#define S3C2440_DSC1_SCK1 (S3C2440_SELECT_DSC1 | 28) +#define S3C2440_DSC1_SCK1_12mA (0<<28) +#define S3C2440_DSC1_SCK1_10mA (1<<28) +#define S3C2440_DSC1_SCK1_8mA (2<<28) +#define S3C2440_DSC1_SCK1_6mA (3<<28) +#define S3C2440_DSC1_SCK1_MASK (3<<28) + +#define S3C2440_DSC1_SCK0 (S3C2440_SELECT_DSC1 | 26) +#define S3C2440_DSC1_SCK0_12mA (0<<26) +#define S3C2440_DSC1_SCK0_10mA (1<<26) +#define S3C2440_DSC1_SCK0_8mA (2<<26) +#define S3C2440_DSC1_SCK0_6mA (3<<26) +#define S3C2440_DSC1_SCK0_MASK (3<<26) #define S3C2440_DSC1_SCKE (S3C2440_SELECT_DSC1 | 24) #define S3C2440_DSC1_SCKE_10mA (0<<24) diff --git a/include/asm-arm/arch-s3c2410/regs-gpio.h b/include/asm-arm/arch-s3c2410/regs-gpio.h index 20a0836672ff..07c17f95a92b 100644 --- a/include/asm-arm/arch-s3c2410/regs-gpio.h +++ b/include/asm-arm/arch-s3c2410/regs-gpio.h @@ -16,6 +16,8 @@ * 20-07-2004 BJD Added GPIO pin numbers, added Port A definitions * 04-10-2004 BJD Fixed number of bugs, added EXT IRQ filter defs * 17-10-2004 BJD Added GSTATUS1 register definitions + * 18-11-2004 BJD Fixed definitions of GPE3, GPE4, GPE5 and GPE6 + * 18-11-2004 BJD Added S3C2440 AC97 controls */ @@ -424,12 +426,14 @@ #define S3C2410_GPE3_INP (0x00 << 6) #define S3C2410_GPE3_OUTP (0x01 << 6) #define S3C2410_GPE3_I2SSDI (0x02 << 6) +#define S3C2410_GPE3_nSS0 (0x03 << 6) #define S3C2410_GPE3_MASK (0x03 << 6) #define S3C2410_GPE4 S3C2410_GPIONO(S3C2410_GPIO_BANKE, 4) #define S3C2410_GPE4_INP (0x00 << 8) #define S3C2410_GPE4_OUTP (0x01 << 8) #define S3C2410_GPE4_I2SSDO (0x02 << 8) +#define S3C2410_GPE4_I2SSDI (0x03 << 8) #define S3C2410_GPE4_MASK (0x03 << 8) #define S3C2410_GPE5 S3C2410_GPIONO(S3C2410_GPIO_BANKE, 5) @@ -440,12 +444,12 @@ #define S3C2410_GPE6 S3C2410_GPIONO(S3C2410_GPIO_BANKE, 6) #define S3C2410_GPE6_INP (0x00 << 12) #define S3C2410_GPE6_OUTP (0x01 << 12) -#define S3C2410_GPE6_SDCLK (0x02 << 12) +#define S3C2410_GPE6_SDCMD (0x02 << 12) #define S3C2410_GPE7 S3C2410_GPIONO(S3C2410_GPIO_BANKE, 7) #define S3C2410_GPE7_INP (0x00 << 14) #define S3C2410_GPE7_OUTP (0x01 << 14) -#define S3C2410_GPE7_SDCMD (0x02 << 14) +#define S3C2410_GPE7_SDDAT0 (0x02 << 14) #define S3C2410_GPE8 S3C2410_GPIONO(S3C2410_GPIO_BANKE, 8) #define S3C2410_GPE8_INP (0x00 << 16) @@ -489,6 +493,12 @@ #define S3C2410_GPE15_IICSDA (0x02 << 30) #define S3C2410_GPE15_MASK (0x03 << 30) +#define S3C2440_GPE0_ACSYNC (0x03 << 0) +#define S3C2440_GPE1_ACBITCLK (0x03 << 2) +#define S3C2440_GPE2_ACRESET (0x03 << 4) +#define S3C2440_GPE3_ACIN (0x03 << 6) +#define S3C2440_GPE4_ACOUT (0x03 << 8) + #define S3C2410_GPE_PUPDIS(x) (1<<(x)) /* Port F consists of 8 GPIO/Special function diff --git a/include/asm-arm/arch-s3c2410/regs-iic.h b/include/asm-arm/arch-s3c2410/regs-iic.h index 381ab4baf208..fed3288e2046 100644 --- a/include/asm-arm/arch-s3c2410/regs-iic.h +++ b/include/asm-arm/arch-s3c2410/regs-iic.h @@ -11,6 +11,7 @@ * * Changelog: * 03-Oct-2004 BJD Initial include for Linux + * 08-Nov-2004 BJD Added S3C2440 filter register */ #ifndef __ASM_ARCH_REGS_IIC_H @@ -24,6 +25,7 @@ #define S3C2410_IICSTAT S3C2410_IICREG(0x04) #define S3C2410_IICADD S3C2410_IICREG(0x08) #define S3C2410_IICDS S3C2410_IICREG(0x0C) +#define S3C2440_IICLC S3C2410_IICREG(0x10) #define S3C2410_IICCON_ACKEN (1<<7) #define S3C2410_IICCON_TXDIV_16 (0<<6) @@ -47,4 +49,12 @@ #define S3C2410_IICSTAT_ADDR0 (1<<1) #define S3C2410_IICSTAT_LASTBIT (1<<0) +#define S3C2410_IICLC_SDA_DELAY0 (0 << 0) +#define S3C2410_IICLC_SDA_DELAY5 (1 << 0) +#define S3C2410_IICLC_SDA_DELAY10 (2 << 0) +#define S3C2410_IICLC_SDA_DELAY15 (3 << 0) +#define S3C2410_IICLC_SDA_DELAY_MASK (3 << 0) + +#define S3C2410_IICLC_FILTER_ON (1<<2) + #endif /* __ASM_ARCH_REGS_IIC_H */ diff --git a/include/asm-arm/arch-s3c2410/regs-sdi.h b/include/asm-arm/arch-s3c2410/regs-sdi.h index fd688ad3a11e..ca9a26fbecec 100644 --- a/include/asm-arm/arch-s3c2410/regs-sdi.h +++ b/include/asm-arm/arch-s3c2410/regs-sdi.h @@ -11,6 +11,8 @@ * * Changelog: * 18-Aug-2004 Ben Dooks Created initial file + * 29-Nov-2004 Koen Martens Added some missing defines, fixed duplicates + * 29-Nov-2004 Ben Dooks Updated Koen's patch */ #ifndef __ASM_ARM_REGS_SDI @@ -62,8 +64,10 @@ #define S3C2410_SDIDCON_WIDEBUS (1<<16) #define S3C2410_SDIDCON_DMAEN (1<<15) #define S3C2410_SDIDCON_STOP (1<<14) +#define S3C2410_SDIDCON_DATMODE (3<<12) +#define S3C2410_SDIDCON_BLKNUM (0x7ff) -#define S3C2410_SDIDCON_XFER_MASK (3<<12) +/* constants for S3C2410_SDIDCON_DATMODE */ #define S3C2410_SDIDCON_XFER_READY (0<<12) #define S3C2410_SDIDCON_XFER_CHKSTART (1<<12) #define S3C2410_SDIDCON_XFER_RXSTART (2<<12) @@ -73,22 +77,23 @@ #define S3C2410_SDIDSTA_RDYWAITREQ (1<<10) #define S3C2410_SDIDSTA_SDIOIRQDETECT (1<<9) -#define S3C2410_SDIDSTA_FIFOFAIL (1<<8) +#define S3C2410_SDIDSTA_FIFOFAIL (1<<8) /* reserved on 2440 */ #define S3C2410_SDIDSTA_CRCFAIL (1<<7) #define S3C2410_SDIDSTA_RXCRCFAIL (1<<6) #define S3C2410_SDIDSTA_DATATIMEOUT (1<<5) #define S3C2410_SDIDSTA_XFERFINISH (1<<4) #define S3C2410_SDIDSTA_BUSYFINISH (1<<3) +#define S3C2410_SDIDSTA_SBITERR (1<<2) /* reserved on 2410a/2440 */ #define S3C2410_SDIDSTA_TXDATAON (1<<1) #define S3C2410_SDIDSTA_RXDATAON (1<<0) -#define S3C2410_SDIFSTA_TXFULL (1<<13) -#define S3C2410_SDIFSTA_RXFULL (1<<12) +#define S3C2410_SDIFSTA_TFDET (1<<13) +#define S3C2410_SDIFSTA_RFDET (1<<12) #define S3C2410_SDIFSTA_TXHALF (1<<11) #define S3C2410_SDIFSTA_TXEMPTY (1<<10) -#define S3C2410_SDIFSTA_RXLAST (1<<9) -#define S3C2410_SDIFSTA_RXFULL (1<<8) -#define S3C2410_SDIFSTA_RXHALF (1<<7) +#define S3C2410_SDIFSTA_RFLAST (1<<9) +#define S3C2410_SDIFSTA_RFFULL (1<<8) +#define S3C2410_SDIFSTA_RFHALF (1<<7) #define S3C2410_SDIFSTA_COUNTMASK (0x7f) #define S3C2410_SDIIMSK_RESPONSECRC (1<<17) @@ -103,6 +108,7 @@ #define S3C2410_SDIIMSK_DATATIMEOUT (1<<8) #define S3C2410_SDIIMSK_DATAFINISH (1<<7) #define S3C2410_SDIIMSK_BUSYFINISH (1<<6) +#define S3C2410_SDIIMSK_SBITERR (1<<5) /* reserved 2440/2410a */ #define S3C2410_SDIIMSK_TXFIFOHALF (1<<4) #define S3C2410_SDIIMSK_TXFIFOEMPTY (1<<3) #define S3C2410_SDIIMSK_RXFIFOLAST (1<<2) diff --git a/include/asm-arm/arch-s3c2410/regs-serial.h b/include/asm-arm/arch-s3c2410/regs-serial.h index 95d0fba9fded..965856ef22ed 100644 --- a/include/asm-arm/arch-s3c2410/regs-serial.h +++ b/include/asm-arm/arch-s3c2410/regs-serial.h @@ -68,6 +68,12 @@ #define S3C2410_LCON_STOPB (1<<2) #define S3C2410_LCON_IRM (1<<6) +#define S3C2440_UCON_CLKMASK (3<<10) +#define S3C2440_UCON_PCLK (0<<10) +#define S3C2440_UCON_UCLK (1<<10) +#define S3C2440_UCON_PCLK2 (2<<10) +#define S3C2440_UCON_FCLK (3<<10) + #define S3C2410_UCON_UCLK (1<<10) #define S3C2410_UCON_SBREAK (1<<4) @@ -77,19 +83,35 @@ #define S3C2410_UCON_RXIRQMODE (1<<0) #define S3C2410_UCON_RXFIFO_TOI (1<<7) -#define S3C2410_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | S3C2410_UCON_RXILEVEL \ - | S3C2410_UCON_TXIRQMODE | S3C2410_UCON_RXIRQMODE \ - | S3C2410_UCON_RXFIFO_TOI) +#define S3C2410_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \ + S3C2410_UCON_RXILEVEL | \ + S3C2410_UCON_TXIRQMODE | \ + S3C2410_UCON_RXIRQMODE | \ + S3C2410_UCON_RXFIFO_TOI) #define S3C2410_UFCON_FIFOMODE (1<<0) #define S3C2410_UFCON_TXTRIG0 (0<<6) #define S3C2410_UFCON_RXTRIG8 (1<<4) #define S3C2410_UFCON_RXTRIG12 (2<<4) +/* S3C2440 FIFO trigger levels */ +#define S3C2440_UFCON_RXTRIG1 (0<<4) +#define S3C2440_UFCON_RXTRIG8 (1<<4) +#define S3C2440_UFCON_RXTRIG16 (2<<4) +#define S3C2440_UFCON_RXTRIG32 (3<<4) + +#define S3C2440_UFCON_TXTRIG0 (0<<6) +#define S3C2440_UFCON_TXTRIG16 (1<<6) +#define S3C2440_UFCON_TXTRIG32 (2<<6) +#define S3C2440_UFCON_TXTRIG48 (3<<6) + #define S3C2410_UFCON_RESETBOTH (3<<1) +#define S3C2410_UFCON_RESETTX (1<<2) +#define S3C2410_UFCON_RESETRX (1<<1) -#define S3C2410_UFCON_DEFAULT (S3C2410_UFCON_FIFOMODE | S3C2410_UFCON_TXTRIG0 \ - | S3C2410_UFCON_RXTRIG8 ) +#define S3C2410_UFCON_DEFAULT (S3C2410_UFCON_FIFOMODE | \ + S3C2410_UFCON_TXTRIG0 | \ + S3C2410_UFCON_RXTRIG8 ) #define S3C2410_UFSTAT_TXFULL (1<<9) #define S3C2410_UFSTAT_RXFULL (1<<8) @@ -111,32 +133,36 @@ #define S3C2410_UERSTAT_OVERRUN (1<<0) #define S3C2410_UERSTAT_FRAME (1<<2) -#define S3C2410_UERSTAT_ANY (S3C2410_UERSTAT_OVERRUN | S3C2410_UERSTAT_FRAME) +#define S3C2410_UERSTAT_BREAK (1<<3) +#define S3C2410_UERSTAT_ANY (S3C2410_UERSTAT_OVERRUN | \ + S3C2410_UERSTAT_FRAME | \ + S3C2410_UERSTAT_BREAK) -/* fifo size information */ +#define S3C2410_UMSTAT_CTS (1<<0) +#define S3C2410_UMSTAT_DeltaCTS (1<<2) #ifndef __ASSEMBLY__ -static inline int S3C2410_UFCON_RXC(int fcon) -{ - if (fcon & S3C2410_UFSTAT_RXFULL) - return 16; - - return ((fcon) & S3C2410_UFSTAT_RXMASK) >> S3C2410_UFSTAT_RXSHIFT; -} -static inline int S3C2410_UFCON_TXC(int fcon) -{ - if (fcon & S3C2410_UFSTAT_TXFULL) - return 16; - - return ((fcon) & S3C2410_UFSTAT_TXMASK) >> S3C2410_UFSTAT_TXSHIFT; -} -#endif /* __ASSEMBLY__ */ +/* struct s3c24xx_uart_clksrc + * + * this structure defines a named clock source that can be used for the + * uart, so that the best clock can be selected for the requested baud + * rate. + * + * min_baud and max_baud define the range of baud-rates this clock is + * acceptable for, if they are both zero, it is assumed any baud rate that + * can be generated from this clock will be used. + * + * divisor gives the divisor from the clock to the one seen by the uart +*/ -#define S3C2410_UMSTAT_CTS (1<<0) -#define S3C2410_UMSTAT_DeltaCTS (1<<2) +struct s3c24xx_uart_clksrc { + const char *name; + unsigned int divisor; + unsigned int min_baud; + unsigned int max_baud; +}; -#ifndef __ASSEMBLY__ /* configuration structure for per-machine configurations for the * serial port * @@ -148,15 +174,23 @@ struct s3c2410_uartcfg { unsigned char hwport; /* hardware port number */ unsigned char unused; unsigned short flags; - - unsigned long *clock; /* pointer to clock rate */ + unsigned long uart_flags; /* default uart flags */ unsigned long ucon; /* value of ucon for port */ unsigned long ulcon; /* value of ulcon for port */ unsigned long ufcon; /* value of ufcon for port */ + + struct s3c24xx_uart_clksrc *clocks; + unsigned int clocks_size; }; -extern struct s3c2410_uartcfg *s3c2410_uartcfgs; +/* s3c24xx_uart_devs + * + * this is exported from the core as we cannot use driver_register(), + * or platform_add_device() before the console_initcall() +*/ + +extern struct platform_device *s3c24xx_uart_devs[3]; #endif /* __ASSEMBLY__ */ diff --git a/include/asm-arm/arch-s3c2410/timex.h b/include/asm-arm/arch-s3c2410/timex.h index fffde7d2397c..44aa0dcf8fcc 100644 --- a/include/asm-arm/arch-s3c2410/timex.h +++ b/include/asm-arm/arch-s3c2410/timex.h @@ -1,6 +1,6 @@ /* linux/include/asm-arm/arch-s3c2410/timex.h * - * (c) 2003 Simtec Electronics + * (c) 2003,2004 Simtec Electronics * Ben Dooks <ben@simtec.co.uk> * * S3C2410 - time parameters @@ -12,6 +12,7 @@ * Changelog: * 02-Sep-2003 BJD Created file * 05-Jan-2004 BJD Updated for Linux 2.6.0 + * 22-Nov-2004 BJD Fixed CLOCK_TICK_RATE */ #ifndef __ASM_ARCH_TIMEX_H @@ -26,8 +27,8 @@ extern int s3c2410_clock_tick_rate; #define CLOCK_TICK_RATE (s3c2410_clock_tick_rate) #endif -/* currently, the BAST uses 24MHz as a base clock rate */ -#define CLOCK_TICK_RATE 24000000 +/* currently, the BAST uses 12MHz as a base clock rate */ +#define CLOCK_TICK_RATE 12000000 #endif /* __ASM_ARCH_TIMEX_H */ diff --git a/include/asm-arm/arch-s3c2410/uncompress.h b/include/asm-arm/arch-s3c2410/uncompress.h index a9c3d55ec9eb..fa240af7f591 100644 --- a/include/asm-arm/arch-s3c2410/uncompress.h +++ b/include/asm-arm/arch-s3c2410/uncompress.h @@ -14,12 +14,13 @@ * 08-Sep-2003 BJD Moved to linux v2.6 * 12-Mar-2004 BJD Updated header protection * 12-Oct-2004 BJD Take account of debug uart configuration + * 15-Nov-2004 BJD Fixed uart configuration */ #ifndef __ASM_ARCH_UNCOMPRESS_H #define __ASM_ARCH_UNCOMPRESS_H -#include <config/debug/s3c2410/port.h> +#include <linux/config.h> /* defines for UART registers */ #include "asm/arch/regs-serial.h" @@ -34,11 +35,7 @@ /* how many bytes we allow into the FIFO at a time in FIFO mode */ #define FIFO_MAX (14) -#if 1 -#define uart_base S3C2410_PA_UART + (0x4000 * CONFIG_DEBUG_S3C2410_UART) -#else -static unsigned int uart_base = S3C2410_PA_UART; -#endif +#define uart_base S3C2410_PA_UART + (0x4000*CONFIG_S3C2410_LOWLEVEL_UART_PORT) static __inline__ void uart_wr(unsigned int reg, unsigned int val) diff --git a/include/asm-arm/arch-sa1100/adsbitsy.h b/include/asm-arm/arch-sa1100/adsbitsy.h deleted file mode 100644 index cb82224c2ebd..000000000000 --- a/include/asm-arm/arch-sa1100/adsbitsy.h +++ /dev/null @@ -1,14 +0,0 @@ -/* - * linux/include/asm-arm/arch-sa1100/adsbitsy.h - * - * Created 7/3/01 by Woojung <whuh@applieddata.net> - * - * This file contains the hardware specific definitions for the - * ADS Bitsy Board - */ - -#ifndef __ASM_ARCH_HARDWARE_H -#error "include <asm/hardware.h> instead" -#endif - -#define SA1111_BASE (0x18000000) diff --git a/include/asm-arm/arch-sa1100/flexanet.h b/include/asm-arm/arch-sa1100/flexanet.h deleted file mode 100644 index 6dc79190ca8f..000000000000 --- a/include/asm-arm/arch-sa1100/flexanet.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - * include/asm-arm/arch-sa1100/flexanet.h - * - * Created 2001/05/04 by Jordi Colomer <jco@ict.es> - * - * This file contains the hardware specific definitions for FlexaNet - * - */ - -#ifndef __ASM_ARCH_HARDWARE_H -#error "include <asm/hardware.h> instead" -#endif - -/* Board Control Register (virtual address) */ -#define FHH_BCR_PHYS 0x10000000 -#define FHH_BCR_VIRT 0xf0000000 -#define FHH_BCR (*(volatile unsigned int *)(FHH_BCR_VIRT)) - -/* Power-up value */ -#define FHH_BCR_POWERUP 0x00000000 - -/* Mandatory bits */ -#define FHH_BCR_LED_GREEN (1<<0) /* General-purpose green LED (1 = on) */ -#define FHH_BCR_SPARE_1 (1<<1) /* Not defined */ -#define FHH_BCR_CF1_RST (1<<2) /* Compact Flash Slot #1 Reset (1 = reset) */ -#define FHH_BCR_CF2_RST (1<<3) /* Compact Flash Slot #2 Reset (1 = reset) */ -#define FHH_BCR_GUI_NRST (1<<4) /* GUI board reset (0 = reset) */ -#define FHH_BCR_RTS1 (1<<5) /* RS232 RTS for UART-1 */ -#define FHH_BCR_RTS3 (1<<6) /* RS232 RTS for UART-3 */ -#define FHH_BCR_XCDBG0 (1<<7) /* Not defined. Wired to XPLA3 for debug */ - -/* BCR extension, only required by L3-bus in some audio codecs */ -#define FHH_BCR_L3MOD (1<<8) /* L3-bus MODE signal */ -#define FHH_BCR_L3DAT (1<<9) /* L3-bus DATA signal */ -#define FHH_BCR_L3CLK (1<<10) /* L3-bus CLK signal */ -#define FHH_BCR_SPARE_11 (1<<11) /* Not defined */ -#define FHH_BCR_SPARE_12 (1<<12) /* Not defined */ -#define FHH_BCR_SPARE_13 (1<<13) /* Not defined */ -#define FHH_BCR_SPARE_14 (1<<14) /* Not defined */ -#define FHH_BCR_SPARE_15 (1<<15) /* Not defined */ - - /* Board Status Register (virtual address) */ -#define FHH_BSR_BASE FHH_BCR_VIRT -#define FHH_BSR (*(volatile unsigned int *)(FHH_BSR_BASE)) - -#define FHH_BSR_CTS1 (1<<0) /* RS232 CTS for UART-1 */ -#define FHH_BSR_CTS3 (1<<1) /* RS232 CTS for UART-3 */ -#define FHH_BSR_DSR1 (1<<2) /* RS232 DSR for UART-1 */ -#define FHH_BSR_DSR3 (1<<3) /* RS232 DSR for UART-3 */ -#define FHH_BSR_ID0 (1<<4) /* Board identification */ -#define FHH_BSR_ID1 (1<<5) -#define FHH_BSR_CFG0 (1<<6) /* Board configuration options */ -#define FHH_BSR_CFG1 (1<<7) - -#ifndef __ASSEMBLY__ -extern unsigned long flexanet_BCR; /* Image of the BCR */ -#define FLEXANET_BCR_set( x ) FHH_BCR = (flexanet_BCR |= (x)) -#define FLEXANET_BCR_clear( x ) FHH_BCR = (flexanet_BCR &= ~(x)) -#endif - -/* GPIOs for which the generic definition doesn't say much */ -#define GPIO_CF1_NCD GPIO_GPIO (14) /* Card Detect from CF slot #1 */ -#define GPIO_CF2_NCD GPIO_GPIO (15) /* Card Detect from CF slot #2 */ -#define GPIO_CF1_IRQ GPIO_GPIO (16) /* IRQ from CF slot #1 */ -#define GPIO_CF2_IRQ GPIO_GPIO (17) /* IRQ from CF slot #2 */ -#define GPIO_APP_IRQ GPIO_GPIO (18) /* Extra IRQ from application bus */ -#define GPIO_RADIO_REF GPIO_GPIO (20) /* Ref. clock for UART3 (Radio) */ -#define GPIO_CF1_BVD1 GPIO_GPIO (21) /* BVD1 from CF slot #1 */ -#define GPIO_CF2_BVD1 GPIO_GPIO (22) /* BVD1 from CF slot #2 */ -#define GPIO_GUI_IRQ GPIO_GPIO (23) /* IRQ from GUI board (i.e., UCB1300) */ -#define GPIO_ETH_IRQ GPIO_GPIO (24) /* IRQ from Ethernet controller */ -#define GPIO_INTIP_IRQ GPIO_GPIO (25) /* Measurement IRQ (INTIP) */ -#define GPIO_LED_RED GPIO_GPIO (26) /* General-purpose red LED */ - -/* IRQ sources from GPIOs */ -#define IRQ_GPIO_CF1_CD IRQ_GPIO14 -#define IRQ_GPIO_CF2_CD IRQ_GPIO15 -#define IRQ_GPIO_CF1_IRQ IRQ_GPIO16 -#define IRQ_GPIO_CF2_IRQ IRQ_GPIO17 -#define IRQ_GPIO_APP IRQ_GPIO18 -#define IRQ_GPIO_CF1_BVD1 IRQ_GPIO21 -#define IRQ_GPIO_CF2_BVD1 IRQ_GPIO22 -#define IRQ_GPIO_GUI IRQ_GPIO23 -#define IRQ_GPIO_ETH IRQ_GPIO24 -#define IRQ_GPIO_INTIP IRQ_GPIO25 - - -/* On-Board Ethernet */ -#define _FHH_ETH_IOBASE 0x18000000 /* I/O base (physical addr) */ -#define _FHH_ETH_MMBASE 0x18800000 /* Attribute-memory base */ -#define FHH_ETH_SIZE 0x01000000 /* total size */ -#define FHH_ETH_VIRT 0xF1000000 /* Ethernet virtual address */ - -#define FHH_ETH_p2v( x ) ((x) - _FHH_ETH_IOBASE + FHH_ETH_VIRT) -#define FHH_ETH_v2p( x ) ((x) - FHH_ETH_VIRT + _FHH_ETH_IOBASE) - -#define FHH_ETH_IOBASE FHH_ETH_p2v(_FHH_ETH_IOBASE) /* Virtual base addr */ -#define FHH_ETH_MMBASE FHH_ETH_p2v(_FHH_ETH_MMBASE) - - diff --git a/include/asm-arm/arch-sa1100/freebird.h b/include/asm-arm/arch-sa1100/freebird.h deleted file mode 100644 index 2b2d9050eb26..000000000000 --- a/include/asm-arm/arch-sa1100/freebird.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * - */ - -#ifndef __ASM_ARCH_HARDWARE_H -#error "include <asm/hardware.h> instead" -#endif - - -/* Board Control Register */ - -#define BCR_BASE 0xf0000000 -#define BCR (*(volatile unsigned int *)(BCR_BASE)) - -#define BCR_DB1110 (0x00A07410) - - -#define BCR_FREEBIRD_AUDIO_PWR (1<<0) /* Audio Power (1 = on, 0 = off) */ -#define BCR_FREEBIRD_LCD_PWR (1<<1) /* LCD Power (1 = on) */ -#define BCR_FREEBIRD_CODEC_RST (1<<2) /* 0 = Holds UCB1300, ADI7171, and UDA1341 in reset */ -#define BCR_FREEBIRD_IRDA_FSEL (1<<3) /* IRDA Frequency select (0 = SIR, 1 = MIR/ FIR) */ -#define BCR_FREEBIRD_IRDA_MD0 (1<<4) /* Range/Power select */ -#define BCR_FREEBIRD_IRDA_MD1 (1<<5) /* Range/Power select */ -#define BCR_FREEBIRD_LCD_DISP (1<<7) /* LCD display (1 = on, 0 = off */ -#define BCR_FREEBIRD_LCD_BACKLIGHT (1<<16) /* LCD backlight ,1=on */ -#define BCR_FREEBIRD_LCD_LIGHT_INC (1<<17) /* LCD backlight brightness */ -#define BCR_FREEBIRD_LCD_LIGHT_DU (1<<18) /* LCD backlight brightness */ -#define BCR_FREEBIRD_LCD_INC (1<<19) /* LCD contrast */ -#define BCR_FREEBIRD_LCD_DU (1<<20) /* LCD contrast */ -#define BCR_FREEBIRD_QMUTE (1<<21) /* Quick Mute */ -#define BCR_FREEBIRD_ALARM_LED (1<<22) /* ALARM LED control */ -#define BCR_FREEBIRD_SPK_OFF (1<<23) /* 1 = Speaker amplifier power off */ - -#ifndef __ASSEMBLY__ -extern unsigned long BCR_value; -#define BCR_set( x ) BCR = (BCR_value |= (x)) -#define BCR_clear( x ) BCR = (BCR_value &= ~(x)) -#endif - - -/* GPIOs for which the generic definition doesn't say much */ -#define GPIO_FREEBIRD_NPOWER_BUTTON GPIO_GPIO(0) -#define GPIO_FREEBIRD_APP1_BUTTON GPIO_GPIO(1) -#define GPIO_FREEBIRD_APP2_BUTTON GPIO_GPIO(2) -#define GPIO_FREEBIRD_APP3_BUTTOM GPIO_GPIO(3) -#define GPIO_FREEBIRD_UCB1300 GPIO_GPIO(4) - -#define GPIO_FREEBIRD_EXPWR GPIO_GPIO(8) -#define GPIO_FREEBIRD_CHARGING GPIO_GPIO(9) -#define GPIO_FREEBIRD_RAMD GPIO_GPIO(14) -#define GPIO_FREEBIRD_L3_DATA GPIO_GPIO(15) -#define GPIO_FREEBIRD_L3_MODE GPIO_GPIO(17) -#define GPIO_FREEBIRD_L3_CLOCK GPIO_GPIO(18) -#define GPIO_FREEBIRD_STEREO_64FS_CLK GPIO_GPIO(10) - -#define GPIO_FREEBIRD_CF_CD GPIO_GPIO(22) -#define GPIO_FREEBIRD_CF_IRQ GPIO_GPIO(21) -#define GPIO_FREEBIRD_CF_BVD GPIO_GPIO(25) - -#define IRQ_GPIO_FREEBIRD_NPOWER_BUTTON IRQ_GPIO0 -#define IRQ_GPIO_FREEBIRD_APP1_BUTTON IRQ_GPIO1 -#define IRQ_GPIO_FREEBIRD_APP2_BUTTON IRQ_GPIO2 -#define IRQ_GPIO_FREEBIRD_APP3_BUTTON IRQ_GPIO3 -#define IRQ_GPIO_FREEBIRD_UCB1300_IRQ IRQ_GPIO4 - -#define IRQ_GPIO_FREEBIRD_CF_IRQ IRQ_GPIO21 -#define IRQ_GPIO_FREEBIRD_CF_CD IRQ_GPIO22 -#define IRQ_GPIO_FREEBIRD_CF_BVD IRQ_GPIO25 - diff --git a/include/asm-arm/arch-sa1100/graphicsclient.h b/include/asm-arm/arch-sa1100/graphicsclient.h deleted file mode 100644 index 99766c333c5a..000000000000 --- a/include/asm-arm/arch-sa1100/graphicsclient.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - * linux/include/asm-arm/arch-sa1100/graphicsclient.h - * - * Created 2000/06/11 by Nicolas Pitre <nico@cam.org> - * Modified 7/27/00 by Woojung <whuh@applieddata.net> - * - * This file contains the hardware specific definitions for the - * ADS GraphicsClient/ThinClient boards. - */ - -#ifndef __ASM_ARCH_HARDWARE_H -#error "include <asm/hardware.h> instead" -#endif - - -#define ADS_CPLD_BASE (0x10000000) -#define ADS_p2v( x ) ((x) - ADS_CPLD_BASE + 0xf0000000) -#define ADS_v2p( x ) ((x) - 0xf0000000 + ADS_CPLD_BASE) - - -/* Parallel Port */ - -#define _ADS_PPDR 0x10020000 /* parallel port data reg */ -#define _ADS_PPSR 0x10020004 /* parallel port status reg */ - - -/* PCMCIA */ - -#define _ADS_CS_STATUS 0x10040000 /* PCMCIA status reg */ -#define ADS_CS_ST_A_READY (1 << 0) /* Socket A Card Ready */ -#define ADS_CS_ST_A_CD (1 << 2) /* Socket A Card Detect */ -#define ADS_CS_ST_A_BUSY (1 << 4) /* Socket A Card Busy */ -#define ADS_CS_ST_A_STS (1 << 6) /* Socket A Card STS */ - -#define _ADS_CS_PR 0x10040004 /* PCMCIA Power/Reset */ -#define ADS_CS_PR_A_5V_POWER (1 << 0) /* Socket A Enable 5V Power */ -#define ADS_CS_PR_A_3V_POWER (1 << 0) /* Socket A Enable 3.3V Power */ -#define ADS_CS_PR_A_RESET (1 << 2) /* Socket A Reset */ - - -#define _ADS_SW_SWITCHES 0x10060000 /* Software Switches */ - - -/* Extra IRQ Controller */ - -#define _ADS_INT_ST1 0x10080000 /* IRQ Status #1 */ -#define _ADS_INT_ST2 0x10080004 /* IRQ Status #2 */ -#define _ADS_INT_EN1 0x10080008 /* IRQ Enable #1 */ -#define _ADS_INT_EN2 0x1008000c /* IRQ Enable #2 */ - -/* Discrete Controller (AVR:Atmel AT90LS8535) */ -#define _ADS_AVR_REG 0x10080018 - -/* On-Board Ethernet */ - -#define _ADS_ETHERNET 0x100e0000 /* Ethernet */ - - -/* Extra UARTs */ - -#define _ADS_UARTA 0x10100000 /* UART A */ -#define _ADS_UARTB 0x10120000 /* UART B */ -#define _ADS_UARTC 0x10140000 /* UART C */ -#define _ADS_UARTD 0x10160000 /* UART D */ - -/* UART control lines GPIOs */ -#define GPIO_GC_UART0_RTS GPIO_GPIO15 -#define GPIO_GC_UART1_RTS GPIO_GPIO17 -#define GPIO_GC_UART2_RTS GPIO_GPIO19 -#define GPIO_GC_UART0_CTS GPIO_GPIO14 -#define GPIO_GC_UART1_CTS GPIO_GPIO16 -#define GPIO_GC_UART2_CTS GPIO_GPIO17 - -/* UART control lines IRQs */ -#define IRQ_GC_UART0_CTS IRQ_GPIO14 -#define IRQ_GC_UART1_CTS IRQ_GPIO16 -#define IRQ_GC_UART2_CTS IRQ_GPIO17 - -/* LEDs */ - -#define ADS_LED0 GPIO_GPIO20 /* on-board D22 */ -#define ADS_LED1 GPIO_GPIO21 /* on-board D21 */ -#define ADS_LED2 GPIO_GPIO22 /* on-board D20 */ -#define ADS_LED3 GPIO_GPIO23 /* external */ -#define ADS_LED4 GPIO_GPIO24 /* external */ -#define ADS_LED5 GPIO_GPIO25 /* external */ -#define ADS_LED6 GPIO_GPIO26 /* external */ -#define ADS_LED7 GPIO_GPIO27 /* external */ - - -/* Virtual register addresses */ - -#ifndef __ASSEMBLY__ -#define ADS_INT_ST1 (*((volatile u_char *) ADS_p2v(_ADS_INT_ST1))) -#define ADS_INT_ST2 (*((volatile u_char *) ADS_p2v(_ADS_INT_ST2))) -#define ADS_INT_EN1 (*((volatile u_char *) ADS_p2v(_ADS_INT_EN1))) -#define ADS_INT_EN2 (*((volatile u_char *) ADS_p2v(_ADS_INT_EN2))) -#define ADS_ETHERNET ((int) ADS_p2v(_ADS_ETHERNET)) -#define ADS_AVR_REG (*((volatile u_char *) ADS_p2v(_ADS_AVR_REG))) -#endif diff --git a/include/asm-arm/arch-sa1100/graphicsmaster.h b/include/asm-arm/arch-sa1100/graphicsmaster.h deleted file mode 100644 index ae45791739ce..000000000000 --- a/include/asm-arm/arch-sa1100/graphicsmaster.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * linux/include/asm-arm/arch-sa1100/graphicsmaster.h - * - * Created 2000/12/18 by Woojung Huh <whuh@applieddata.net> - * - * This file comes from graphicsclient.h of Nicolas Pitre <nico@cam.org> - * - * This file contains the hardware specific definitions for the - * ADS GraphicsMaster - */ - -#ifndef __ASM_ARCH_HARDWARE_H -#error "include <asm/hardware.h> instead" -#endif - -#define ADS_CPLD_BASE (0x10000000) -#define ADS_p2v( x ) ((x) - ADS_CPLD_BASE + 0xf0000000) -#define ADS_v2p( x ) ((x) - 0xf0000000 + ADS_CPLD_BASE) - - -#define _ADS_SW_SWITCHES 0x10060000 /* Software Switches */ - -/* Extra IRQ Controller */ -#define _ADS_INT_ST1 0x10080000 /* IRQ Status #1 */ -#define _ADS_INT_ST2 0x10080004 /* IRQ Status #2 */ -#define _ADS_INT_EN1 0x10080008 /* IRQ Enable #1 */ -#define _ADS_INT_EN2 0x1008000c /* IRQ Enable #2 */ -#define _ADS_DCR 0x10080018 /* Discrete Control Reg */ - -/* Discrete Controller (AVR:Atmel AT90LS8535) */ -#define _ADS_AVR_REG 0x10080018 - -/* On-Board Ethernet */ -#define _ADS_ETHERNET 0x100e0000 /* Ethernet */ - -/* On-Board Quad UART 16C554 */ -#define ADS_QUAD_UART1 0x10100000 -#define ADS_QUAD_UART2 0x10120000 -#define ADS_QUAD_UART3 0x10140000 -#define ADS_QUAD_UART4 0x10160000 - -/* LEDs */ -#define ADS_LED0 GPIO_GPIO20 /* on-board Green */ -#define ADS_LED1 GPIO_GPIO25 /* on-board Yellow */ -#define ADS_LED2 GPIO_GPIO26 /* on-board Red */ - -/* DCR */ -#define DCR_AVR_RESET 0x01 -#define DCR_SA1111_RESET 0x02 -#define DCR_BACKLITE_ON 0x04 - -/* Virtual register addresses */ - -#ifndef __ASSEMBLY__ -#define ADS_INT_ST1 (*((volatile u_char *) ADS_p2v(_ADS_INT_ST1))) -#define ADS_INT_ST2 (*((volatile u_char *) ADS_p2v(_ADS_INT_ST2))) -#define ADS_INT_EN1 (*((volatile u_char *) ADS_p2v(_ADS_INT_EN1))) -#define ADS_INT_EN2 (*((volatile u_char *) ADS_p2v(_ADS_INT_EN2))) -#define ADS_ETHERNET ((int) ADS_p2v(_ADS_ETHERNET)) -#define ADS_AVR_REG (*((volatile u_char *) ADS_p2v(_ADS_AVR_REG))) -#define ADS_DCR (*((volatile u_char *) ADS_p2v(_ADS_DCR))) -#endif - -#define SA1111_BASE (0x18000000) diff --git a/include/asm-arm/arch-sa1100/huw_webpanel.h b/include/asm-arm/arch-sa1100/huw_webpanel.h deleted file mode 100644 index 4f9100f7740d..000000000000 --- a/include/asm-arm/arch-sa1100/huw_webpanel.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * linux/include/asm-arm/arch-sa1100/huw_webpanel.h - * - * based of assabet.h - * - * This file contains the hardware specific definitions for HUW_Webpanel - * - * 2000/11/13 Roman Jordan <jor@hoeft-wessel.de> - */ - -#ifndef __ASM_ARCH_HARDWARE_H -#error "include <asm/hardware.h> instead" -#endif - -/* System Configuration Register flags */ - -#define SCR_SDRAM_LOW (1<<2) /* SDRAM size (low bit) */ -#define SCR_SDRAM_HIGH (1<<3) /* SDRAM size (high bit) */ -#define SCR_FLASH_LOW (1<<4) /* Flash size (low bit) */ -#define SCR_FLASH_HIGH (1<<5) /* Flash size (high bit) */ -#define SCR_GFX (1<<8) /* Graphics Accelerator (0 = present) */ -#define SCR_SA1111 (1<<9) /* Neponset (0 = present) */ - -#define SCR_INIT -1 - - -/* Board Control Register */ - -#define BCR_BASE 0xf1000000 -#define BCR (*(volatile unsigned int *)(BCR_BASE)) - -#define BCR_PSIO_DTR1 (1<<29) -#define BCR_TFT_NPWR (1<<28) -#define BCR_PSIO_DTR3 (1<<27) -#define BCR_TFT_ENA (1<<26) -#define BCR_CCFL_POW (1<<25) -#define BCR_PSIO_RTS1 (1<<24) -#define BCR_PWM_BACKLIGHT (1<<23) - - -#ifndef __ASSEMBLY__ -extern unsigned long SCR_value; -extern unsigned long BCR_value; -#define BCR_set( x ) BCR = (BCR_value |= (x)) -#define BCR_clear( x ) BCR = (BCR_value &= ~(x)) -#endif - - - diff --git a/include/asm-arm/arch-sa1100/ide.h b/include/asm-arm/arch-sa1100/ide.h index bc4429642bef..f63b96baa6b9 100644 --- a/include/asm-arm/arch-sa1100/ide.h +++ b/include/asm-arm/arch-sa1100/ide.h @@ -47,10 +47,6 @@ static inline void ide_init_hwif_ports(hw_regs_t *hw, unsigned long data_port, *irq = 0; } -#ifdef CONFIG_SA1100_TRIZEPS -#include <asm/arch/trizeps.h> -#endif - /* * This registers the standard ports for this architecture with the IDE * driver. @@ -58,55 +54,7 @@ static inline void ide_init_hwif_ports(hw_regs_t *hw, unsigned long data_port, static __inline__ void ide_init_default_hwifs(void) { - if( machine_is_empeg() ){ -#ifdef CONFIG_SA1100_EMPEG - hw_regs_t hw; - - /* First, do the SA1100 setup */ - - /* PCMCIA IO space */ - MECR=0x21062106; - - /* Issue 3 is much neater than issue 2 */ - GPDR&=~(EMPEG_IDE1IRQ|EMPEG_IDE2IRQ); - - /* Interrupts on rising edge: lines are inverted before they get to - the SA */ - set_GPIO_IRQ_edge( (EMPEG_IDE1IRQ|EMPEG_IDE2IRQ), GPIO_FALLING_EDGE ); - - /* Take hard drives out of reset */ - GPSR=(EMPEG_IDERESET); - - /* Sonja and her successors have two IDE ports. */ - /* MAC 23/4/1999, swap these round so that the left hand - hard disk is hda when viewed from the front. This - doesn't match the silkscreen however. */ - ide_init_hwif_ports(&hw, PCMCIA_IO_0_BASE + 0x40, PCMCIA_IO_0_BASE + 0x78, NULL); - hw.irq = EMPEG_IRQ_IDE2; - ide_register_hw(&hw); - ide_init_hwif_ports(&hw, PCMCIA_IO_0_BASE + 0x00, PCMCIA_IO_0_BASE + 0x38, NULL); - hw.irq = ,EMPEG_IRQ_IDE1; - ide_register_hw(&hw); -#endif - } - - else if( machine_is_victor() ){ -#ifdef CONFIG_SA1100_VICTOR - hw_regs_t hw; - - /* Enable appropriate GPIOs as interrupt lines */ - GPDR &= ~GPIO_GPIO7; - set_GPIO_IRQ_edge( GPIO_GPIO7, GPIO_RISING_EDGE ); - - /* set the pcmcia interface timing */ - MECR = 0x00060006; - - ide_init_hwif_ports(&hw, PCMCIA_IO_0_BASE + 0x1f0, PCMCIA_IO_0_BASE + 0x3f6, NULL); - hw.irq = IRQ_GPIO7; - ide_register_hw(&hw); -#endif - } - else if (machine_is_lart()) { + if (machine_is_lart()) { #ifdef CONFIG_SA1100_LART hw_regs_t hw; @@ -123,23 +71,4 @@ ide_init_default_hwifs(void) ide_register_hw(&hw); #endif } - else if( machine_is_trizeps() ){ -#ifdef CONFIG_SA1100_TRIZEPS - hw_regs_t hw; - - /* Enable appropriate GPIOs as interrupt lines */ - GPDR &= ~GPIO_GPIO(TRIZEPS_IRQ_IDE); - set_irq_type( TRIZEPS_IRQ_IDE, IRQT_RISING ); - - /* set the pcmcia interface timing */ - //MECR = 0x00060006; // Done on trizeps init - - /* Take hard drives out of reset */ - GPSR = GPIO_GPIO(TRIZEPS_IRQ_IDE); - - ide_init_hwif_ports(&hw, TRIZEPS_IDE_CS0 + 0, TRIZEPS_IDE_CS1 + 6, NULL); - hw.irq = TRIZEPS_IRQ_IDE; - ide_register_hw(&hw, NULL); -#endif - } } diff --git a/include/asm-arm/arch-sa1100/irqs.h b/include/asm-arm/arch-sa1100/irqs.h index 7c6ac3e5fbed..eabd3be3d705 100644 --- a/include/asm-arm/arch-sa1100/irqs.h +++ b/include/asm-arm/arch-sa1100/irqs.h @@ -150,14 +150,11 @@ * * If we have an SA1111, the max IRQ is S1_BVD1_STSCHG+1. * If we have an LoCoMo, the max IRQ is IRQ_LOCOMO_SPI_TEND+1 - * If graphicsclient or graphicsmaster, we don't have a SA1111. * Otherwise, we have the standard IRQs only. */ #ifdef CONFIG_SA1111 #define NR_IRQS (IRQ_S1_BVD1_STSCHG + 1) -#elif defined(CONFIG_SA1100_GRAPHICSCLIENT) || \ - defined(CONFIG_SA1100_GRAPHICSMASTER) || \ - defined(CONFIG_SA1100_H3800) +#elif defined(CONFIG_SA1100_H3800) #define NR_IRQS (IRQ_BOARD_END) #elif defined(CONFIG_SHARP_LOCOMO) #define NR_IRQS (IRQ_LOCOMO_SPI_TEND + 1) @@ -173,10 +170,6 @@ #define IRQ_NEPONSET_USAR (IRQ_BOARD_START + 1) #define IRQ_NEPONSET_SA1111 (IRQ_BOARD_START + 2) -/* PT Digital Board Interrupts (CONFIG_SA1100_PT_SYSTEM3) */ -#define IRQ_SYSTEM3_SA1111 (IRQ_BOARD_START + 0) -#define IRQ_SYSTEM3_SMC9196 (IRQ_BOARD_START + 1) - /* LoCoMo Interrupts (CONFIG_SHARP_LOCOMO) */ #define IRQ_LOCOMO_KEY_BASE (IRQ_BOARD_START + 0) #define IRQ_LOCOMO_GPIO_BASE (IRQ_BOARD_START + 1) diff --git a/include/asm-arm/arch-sa1100/itsy.h b/include/asm-arm/arch-sa1100/itsy.h deleted file mode 100644 index 3950cf748433..000000000000 --- a/include/asm-arm/arch-sa1100/itsy.h +++ /dev/null @@ -1,5 +0,0 @@ -#ifndef _INCLUDE_ITSY_H_ -#define _INCLUDE_ITSY_H_ - - -#endif diff --git a/include/asm-arm/arch-sa1100/mftb2.h b/include/asm-arm/arch-sa1100/mftb2.h deleted file mode 100644 index 1d4c9f7dcdf0..000000000000 --- a/include/asm-arm/arch-sa1100/mftb2.h +++ /dev/null @@ -1,210 +0,0 @@ -#ifndef _ARCH_ARM_MFTB2_h_ -#define _ARCH_ARM_MFTB2_h_ - -// Defines for arch/arm/mm/mm-sa1100.h -#define TRIZEPS_PHYS_VIRT_MAP_SIZE 0x00800000l - -// physical address (only for mm-sa1100.h) -#define TRIZEPS_PHYS_IO_BASE 0x30000000l -#define TRIZEPS_PHYS_MEM_BASE 0x38000000l - -// virtual -#define TRIZEPS_IO_BASE 0xF0000000l -#define TRIZEPS_MEM_BASE 0xF2000000l - -// Offsets for phys and virtual -#define TRIZEPS_OFFSET_REG0 0x00300000l -#define TRIZEPS_OFFSET_REG1 0x00380000l -#define TRIZEPS_OFFSET_IDE_CS0 0x00000000l -#define TRIZEPS_OFFSET_IDE_CS1 0x00080000l -#define TRIZEPS_OFFSET_UART5 0x00100000l -#define TRIZEPS_OFFSET_UART6 0x00180000l -#define TRIZEPS_PHYS_REG0 (TRIZEPS_PHYS_IO_BASE + TRIZEPS_OFFSET_REG0) -#define TRIZEPS_PHYS_REG1 (TRIZEPS_PHYS_IO_BASE + TRIZEPS_OFFSET_REG1) -#define TRIZEPS_PHYS_IDE_CS0 (TRIZEPS_PHYS_IO_BASE + TRIZEPS_OFFSET_IDE_CS0) -#define TRIZEPS_PHYS_IDE_CS1 (TRIZEPS_PHYS_IO_BASE + TRIZEPS_OFFSET_IDE_CS1) -#define TRIZEPS_PHYS_UART5 (TRIZEPS_PHYS_IO_BASE + TRIZEPS_OFFSET_UART5) -#define TRIZEPS_PHYS_UART6 (TRIZEPS_PHYS_IO_BASE + TRIZEPS_OFFSET_UART6) - -// Use follow defines in devices -// virtual address -#define TRIZEPS_REG0 (TRIZEPS_IO_BASE + TRIZEPS_OFFSET_REG0) -#define TRIZEPS_REG1 (TRIZEPS_IO_BASE + TRIZEPS_OFFSET_REG1) -#define TRIZEPS_IDE_CS0 (TRIZEPS_IO_BASE + TRIZEPS_OFFSET_IDE_CS0) -#define TRIZEPS_IDE_CS1 (TRIZEPS_IO_BASE + TRIZEPS_OFFSET_IDE_CS1) -#define TRIZEPS_UART5 (TRIZEPS_IO_BASE + TRIZEPS_OFFSET_UART5) -#define TRIZEPS_UART6 (TRIZEPS_IO_BASE + TRIZEPS_OFFSET_UART6) - -#define TRIZEPS_BAUD_BASE 1500000 - -//#if 0 //temporarily disabled -#ifndef __ASSEMBLY__ -struct tri_uart_cts_data_t { - int cts_gpio; - int cts_prev_state; - struct uart_info *info; - struct uart_port *port; - const char *name; -}; -#endif /* __ASSEMBLY__ */ - -/* Defines for MFTB2 serial_sa1100.c hardware handshaking lines */ -#define SERIAL_FULL -#define NOT_CONNECTED 0 -#ifdef SERIAL_FULL -#define TRIZEPS_GPIO_UART1_RTS GPIO_GPIO14 -#define TRIZEPS_GPIO_UART1_DTR NOT_CONNECTED //GPIO_GPIO9 -#define TRIZEPS_GPIO_UART1_CTS GPIO_GPIO15 -#define TRIZEPS_GPIO_UART1_DCD NOT_CONNECTED //GPIO_GPIO2 -#define TRIZEPS_GPIO_UART1_DSR NOT_CONNECTED //GPIO_GPIO3 -#define TRIZEPS_GPIO_UART3_RTS NOT_CONNECTED //GPIO_GPIO7 -#define TRIZEPS_GPIO_UART3_DTR NOT_CONNECTED //GPIO_GPIO8 -#define TRIZEPS_GPIO_UART3_CTS NOT_CONNECTED //GPIO_GPIO4 -#define TRIZEPS_GPIO_UART3_DCD NOT_CONNECTED //GPIO_GPIO5 -#define TRIZEPS_GPIO_UART3_DSR NOT_CONNECTED //GPIO_GPIO6 - -#define TRIZEPS_GPIO_UART2_RTS NOT_CONNECTED //GPIO_GPIO7 -#define TRIZEPS_GPIO_UART2_DTR NOT_CONNECTED //GPIO_GPIO8 -#define TRIZEPS_GPIO_UART2_CTS NOT_CONNECTED //GPIO_GPIO4 -#define TRIZEPS_GPIO_UART2_DCD NOT_CONNECTED //GPIO_GPIO5 -#define TRIZEPS_GPIO_UART2_DSR NOT_CONNECTED //GPIO_GPIO6 - -#define TRIZEPS_IRQ_UART1_CTS IRQ_GPIO15 -#define TRIZEPS_IRQ_UART1_DCD NO_IRQ //IRQ_GPIO2 -#define TRIZEPS_IRQ_UART1_DSR NO_IRQ //IRQ_GPIO3 -#define TRIZEPS_IRQ_UART3_CTS NO_IRQ //IRQ_GPIO4 -#define TRIZEPS_IRQ_UART3_DCD NO_IRQ //IRQ_GPIO5 -#define TRIZEPS_IRQ_UART3_DSR NO_IRQ //IRQ_GPIO6 - -#define TRIZEPS_IRQ_UART2_CTS NO_IRQ //IRQ_GPIO4 -#define TRIZEPS_IRQ_UART2_DCD NO_IRQ //IRQ_GPIO5 -#define TRIZEPS_IRQ_UART2_DSR NO_IRQ //IRQ_GPIO6 - -#endif /* SERIAL_FULL */ -//#endif //0 - -/* - * This section contains the defines for the MFTB2 implementation - * of drivers/ide/hd.c. HD_IOBASE_0 and HD_IOBASE_1 have to be - * adjusted if hardware changes. - */ -#define TRIZEPS_IRQ_IDE 10 /* MFTB2 specific */ - -/*--- ROOT ---*/ -#define TRIZEPS_GPIO_ROOT_NFS 0 -#define TRIZEPS_GPIO_ROOT_HD 21 -/*--- PCMCIA ---*/ -#define TRIZEPS_GPIO_PCMCIA_IRQ0 1 -#define TRIZEPS_GPIO_PCMCIA_CD0 24 -#define TRIZEPS_IRQ_PCMCIA_IRQ0 TRIZEPS_GPIO_PCMCIA_IRQ0 -#define TRIZEPS_IRQ_PCMCIA_CD0 TRIZEPS_GPIO_PCMCIA_CD0 + 32 - 11 - -// REGISTER 0 -> 0x0XXXX (16bit access) -// read only -#define TRIZEPS_A_STAT 0x8000l -#define TRIZEPS_F_STAT 0x4000l -#define TRIZEPS_BATT_FAULT_EN 0x2000l -#define TRIZEPS_nDQ 0x1000l -#define TRIZEPS_MFT_OFF 0x0800l -#define TRIZEPS_D_APWOFF 0x0400l -#define TRIZEPS_F_CTRL 0x0200l -#define TRIZEPS_F_STOP 0x0100l - -// read / write -#define TRIZEPS_KP_IR_EN 0x0080l -#define TRIZEPS_FIR 0x0040l -#define TRIZEPS_BAR_ON 0x0020l -#define TRIZEPS_VCI_ON 0x0010l -#define TRIZEPS_LED4 0x0008l -#define TRIZEPS_LED3 0x0004l -#define TRIZEPS_LED2 0x0002l -#define TRIZEPS_LED1 0x0001l - -// REGISTER 1 -> 0x1XXXX (16bit access) -// read only -#define TRIZEPS_nVCI2 0x8000l -#define TRIZEPS_nAB_LOW 0x4000l -#define TRIZEPS_nMB_DEAD 0x2000l -#define TRIZEPS_nMB_LOW 0x1000l -#define TRIZEPS_nPCM_VS2 0x0800l -#define TRIZEPS_nPCM_VS1 0x0400l -#define TRIZEPS_PCM_BVD2 0x0200l -#define TRIZEPS_PCM_BVD1 0x0100l - -// read / write -#define TRIZEPS_nROOT_NFS 0x0080l -#define TRIZEPS_nROOT_HD 0x0040l -#define TRIZEPS_nPCM_ENA_REG 0x0020l -#define TRIZEPS_nPCM_RESET_DISABLE 0x0010l -#define TRIZEPS_PCM_EN0_REG 0x0008l -#define TRIZEPS_PCM_EN1_REG 0x0004l -#define TRIZEPS_PCM_V3_EN_REG 0x0002l -#define TRIZEPS_PCM_V5_EN_REG 0x0001l - -/* Access to Board Control Register */ -#define TRIZEPS_BCR0 (*(volatile unsigned short *)(TRIZEPS_REG0)) -#define TRIZEPS_BCR1 (*(volatile unsigned short *)(TRIZEPS_REG1)) - -#define TRIZEPS_BCR_set( reg, x ) do { \ - unsigned long flags; \ - local_irq_save(flags); \ - (reg) |= (x); \ - local_irq_restore(flags); \ -} while (0) - -#define TRIZEPS_BCR_clear( reg, x ) do { \ - unsigned long flags; \ - local_irq_save(flags); \ - (reg) &= ~(x); \ - local_irq_restore(flags); \ -} while (0) - -#define TRIZEPS_OFFSET_KP_REG 0x00200000l -#define TRIZEPS_OFFSET_VCI2 0x00280000l -#define TRIZEPS_OFFSET_VCI4 0x00400000l - -#define TRIZEPS_OFFSET_VCI2_1_DPR (TRIZEPS_OFFSET_VCI2 + 0x00010000l) -#define TRIZEPS_OFFSET_VCI2_2_DPR (TRIZEPS_OFFSET_VCI2 + 0x00018000l) -#define TRIZEPS_OFFSET_VCI2_1_SEMA (TRIZEPS_OFFSET_VCI2 + 0x00020000l) -#define TRIZEPS_OFFSET_VCI2_2_SEMA (TRIZEPS_OFFSET_VCI2 + 0x00028000l) - -#define TRIZEPS_OFFSET_VCI4_1_DPR (TRIZEPS_OFFSET_VCI4 + 0x00000000l) -#define TRIZEPS_OFFSET_VCI4_2_DPR (TRIZEPS_OFFSET_VCI4 + 0x00008000l) -#define TRIZEPS_OFFSET_VCI4_1_SEMA (TRIZEPS_OFFSET_VCI4 + 0x00000380l) -#define TRIZEPS_OFFSET_VCI4_2_SEMA (TRIZEPS_OFFSET_VCI4 + 0x00000388l) -#define TRIZEPS_OFFSET_VCI4_1_CNTR (TRIZEPS_OFFSET_VCI4 + 0x00000390l) -#define TRIZEPS_OFFSET_VCI4_2_CNTR (TRIZEPS_OFFSET_VCI4 + 0x00000392l) - -#define TRIZEPS_PHYS_KP_REG (PHYS_TRIZEPS_IO_BASE + TRIZEPS_OFFSET_KP_REG) - -// VCI address -#define TRIZEPS_PHYS_VCI2_1_DPR (TRIZEPS_PHYS_MEM_BASE + TRIZEPS_OFFSET_VCI2_1_DPR) -#define TRIZEPS_PHYS_VCI2_2_DPR (TRIZEPS_PHYS_MEM_BASE + TRIZEPS_OFFSET_VCI2_2_DPR) -#define TRIZEPS_PHYS_VCI2_1_SEMA (TRIZEPS_PHYS_MEM_BASE + TRIZEPS_OFFSET_VCI2_1_SEMA) -#define TRIZEPS_PHYS_VCI2_2_SEMA (TRIZEPS_PHYS_MEM_BASE + TRIZEPS_OFFSET_VCI2_2_SEMA) - -// VCI4 address -#define TRIZEPS_PHYS_VCI4_1_DPR (TRIZEPS_PHYS_MEM_BASE + TRIZEPS_OFFSET_VCI4_1_DPR) -#define TRIZEPS_PHYS_VCI4_2_DPR (TRIZEPS_PHYS_MEM_BASE + TRIZEPS_OFFSET_VCI4_2_DPR) -#define TRIZEPS_PHYS_VCI4_1_SEMA (TRIZEPS_PHYS_IO_BASE + TRIZEPS_OFFSET_VCI4_1_SEMA) -#define TRIZEPS_PHYS_VCI4_2_SEMA (TRIZEPS_PHYS_IO_BASE + TRIZEPS_OFFSET_VCI4_2_SEMA) -#define TRIZEPS_PHYS_VCI4_1_CNTR (TRIZEPS_PHYS_IO_BASE + TRIZEPS_OFFSET_VCI4_1_CNTR) -#define TRIZEPS_PHYS_VCI4_2_CNTR (TRIZEPS_PHYS_IO_BASE + TRIZEPS_OFFSET_VCI4_2_CNTR) - -#define TRIZEPS_KP_REG (TRIZEPS_IO_BASE + TRIZEPS_OFFSET_KP_REG) - -// VCI address -#define TRIZEPS_VCI2_1_DPR (TRIZEPS_MEM_BASE + TRIZEPS_OFFSET_VCI2_1_DPR) -#define TRIZEPS_VCI2_2_DPR (TRIZEPS_MEM_BASE + TRIZEPS_OFFSET_VCI2_2_DPR) -#define TRIZEPS_VCI2_1_SEMA (TRIZEPS_MEM_BASE + TRIZEPS_OFFSET_VCI2_1_SEMA) -#define TRIZEPS_VCI2_2_SEMA (TRIZEPS_MEM_BASE + TRIZEPS_OFFSET_VCI2_2_SEMA) - -// VCI4 address -#define TRIZEPS_VCI4_1_DPR (TRIZEPS_MEM_BASE + TRIZEPS_OFFSET_VCI4_1_DPR) -#define TRIZEPS_VCI4_2_DPR (TRIZEPS_MEM_BASE + TRIZEPS_OFFSET_VCI4_2_DPR) -#define TRIZEPS_VCI4_1_SEMA (TRIZEPS_IO_BASE + TRIZEPS_OFFSET_VCI4_1_SEMA) -#define TRIZEPS_VCI4_2_SEMA (TRIZEPS_IO_BASE + TRIZEPS_OFFSET_VCI4_2_SEMA) -#define TRIZEPS_VCI4_1_CNTR (TRIZEPS_IO_BASE + TRIZEPS_OFFSET_VCI4_1_CNTR) -#define TRIZEPS_VCI4_2_CNTR (TRIZEPS_IO_BASE + TRIZEPS_OFFSET_VCI4_2_CNTR) - -#endif diff --git a/include/asm-arm/arch-sa1100/omnimeter.h b/include/asm-arm/arch-sa1100/omnimeter.h deleted file mode 100644 index 6c7a7b237506..000000000000 --- a/include/asm-arm/arch-sa1100/omnimeter.h +++ /dev/null @@ -1,84 +0,0 @@ -/* -*- Mode: c++ -*- - * - * Copyright 2000 Massachusetts Institute of Technology - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. M.I.T. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - */ - -#ifndef OMNIMETER_H -#define OMNIMETER_H -// use the address of the second socket for both sockets -// (divide address space in half and use offsets to wrap second card accesses back to start of address space) -// Following values for programming Cirrus Logic chip -#define Socket1Base 0x40 - -#define SocketMemoryWindowLen (0x00400000) -#define Socket0MemoryWindowStart (0x00800000) -#define Socket1MemoryWindowStart (Socket0MemoryWindowStart + SocketMemoryWindowLen) - -#define SocketIOWindowLen (0x00008000) -#define Socket1IOWindowStart (SocketIOWindowLen) -#define Socket1IOWindowOffset (0x00010000 - Socket1IOWindowStart) - -// Following values for run-time access - -//#define PCCardBase (0xe4000000) //jca (0x30000000) -//#define PCCardBase (0x30000000) -#define PCCardBase (0xe0000000) //jag - -#define PCCard0IOBase (PCCardBase) -//#define PCCard0AttrBase (0xec000000) //jca (PCCardBase + 0x08000000) -#define PCCard0AttrBase (0xe8000000) -//#define PCCard0AttrBase (PCCardBase + 0x08000000) -//#define PCCard0MemBase (0xf4000000) //jca (PCCardBase + 0x0C000000) -//#define PCCard0MemBase (PCCardBase + 0x0C000000) -#define PCCard0MemBase (0xf0000000) - -//#define PCCard1IOBase (PCCardBase + SocketIOWindowLen) //jag -#define PCCard1IOBase (0xe4000000) -//#define PCCard1AttrBase (0xec000000 + SocketMemoryWindowLen) //jag -#define PCCard1AttrBase (0xec000000) -//#define PCCard1MemBase (0xf4000000 + SocketMemoryWindowLen) //jag -#define PCCard1MemBase (0xf4000000) - -#define PCCardIndexRegister (PCCard0IOBase + 0x000003E0) //altered -#define PCCardDataRegister (PCCardIndexRegister + 1) - -/* interrupts */ -#define PIN_cardInt2 13 -#define PIN_cardInt1 5 - -void SMBOn(unsigned char SMBaddress); -void SetSMB(unsigned char SMBaddress, unsigned int dacValue); - -#define GPIO_key6 0x00040000 -#define GPIO_scl 0x01000000 // output, SMB clock -#define GPIO_sda 0x02000000 // bidirect, SMB data -#define SMB_LCDVEE 0x2C -#define DefaultLCDContrast 16 - -#define LEDBacklightOn() ClearGPIOpin(GPIO_key6) -#define LEDBacklightOff() SetGPIOpin(GPIO_key6) -#define LCDPowerOn() SMBOn(SMB_LCDVEE) -#define LCDPowerOff() SMBOff(SMB_LCDVEE) -#define SetLCDContrast(d) SetSMB(SMB_LCDVEE, d) -#define WritePort32(port,value) (port = (value)) -#define ReadPort32(port) (port) -#define SetGPIOpin(pin) WritePort32(GPSR,pin) -#define ClearGPIOpin(pin) WritePort32(GPCR,pin) - -void jcaoutb(long p, unsigned char data); -unsigned char jcainb(long p); -void jcaoutw(long p, unsigned short data); -unsigned short jcainw_p(long p); - -#endif diff --git a/include/asm-arm/arch-sa1100/pangolin.h b/include/asm-arm/arch-sa1100/pangolin.h deleted file mode 100644 index 889585365762..000000000000 --- a/include/asm-arm/arch-sa1100/pangolin.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * linux/include/asm-arm/arch-sa1100/pangolin.h - * - * Created 2000/08/25 by Murphy Chen <murphy@mail.dialogue.com.tw> - * - * This file contains the hardware specific definitions for Pangolin - * - */ -#ifndef __ASM_ARCH_HARDWARE_H -#error "include <asm/hardware.h> instead" -#endif - -#include <linux/config.h> - -#ifndef CONFIG_SA1100_PANGOLIN_PCMCIA_IDE - -/* GPIOs for which the generic definition doesn't say much */ -#define GPIO_CF_BUS_ON GPIO_GPIO (3) -#define GPIO_CF_RESET GPIO_GPIO (2) -#define GPIO_CF_CD GPIO_GPIO (22) -#define GPIO_CF_IRQ GPIO_GPIO (21) - -#define IRQ_GPIO_CF_IRQ IRQ_GPIO21 -#define IRQ_GPIO_CF_CD IRQ_GPIO22 - -#else -/* - * These definitions are for PCMCIA/IDE card - * - * PSKTSEL = 0 ---> PCMCIA - * PCMCIA_RESET = GPIO_7 ( output )( 0: normal 1: reset ) - * PCMCIA_IRQ = GPIO_24 ( input ) - * PCMCIA_CD = GPIO_25 ( input ) - * - * PSKTSEL = 1 ---> IDE port - * IDE_IRQ = GPIO_23 ( input ) - * - * !!WARNING!! - * When the PCMCIA/IDE card is inserted, the CF slot - * should not have any card inserted!! - * - */ - -#define GPIO_PCMCIA_RESET GPIO_GPIO (7) -#define GPIO_PCMCIA_IRQ GPIO_GPIO (24) -#define GPIO_PCMCIA_CD GPIO_GPIO (25) -#define GPIO_IDE_IRQ GPIO_GPIO (8) - -#define IRQ_PCMCIA_IRQ IRQ_GPIO24 -#define IRQ_PCMCIA_CD IRQ_GPIO25 -#define IRQ_IDE_IRQ IRQ_GPIO8 - -#endif - -/* - * On board LAN chip - */ -#define PANGOLIN_LAN_ADDR 0x32000000 -#define PANGOLIN_LAN_RESET GPIO_GPIO (8) -#define PANGOLIN_LAN_IRQ GPIO_GPIO (26) -#define PANGOLIN_IRQ_LAN_IRQ IRQ_GPIO26 - diff --git a/include/asm-arm/arch-sa1100/pfs168.h b/include/asm-arm/arch-sa1100/pfs168.h deleted file mode 100644 index 9e635f3540b3..000000000000 --- a/include/asm-arm/arch-sa1100/pfs168.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * linux/include/asm-arm/arch-sa1100/pfs168.h - * - * Created 2000/06/05 by Nicolas Pitre <nico@cam.org> - * - * This file contains the hardware specific definitions for PFS-168 - * - */ - -#ifndef __ASM_ARCH_HARDWARE_H -#error "include <asm/hardware.h> instead" -#endif - - -/* GPIOs for which the generic definition doesn't say much */ -#define GPIO_RADIO_IRQ GPIO_GPIO (14) /* Radio interrupt request */ -#define GPIO_L3_I2C_SDA GPIO_GPIO (15) /* L3 and SMB control ports */ -#define GPIO_PS_MODE_SYNC GPIO_GPIO (16) /* Power supply mode/sync */ -#define GPIO_L3_MODE GPIO_GPIO (17) /* L3 mode signal with LED */ -#define GPIO_L3_I2C_SCL GPIO_GPIO (18) /* L3 and I2C control ports */ -#define GPIO_STEREO_64FS_CLK GPIO_GPIO (19) /* SSP UDA1341 clock input */ -#define GPIO_CF_IRQ GPIO_GPIO (21) /* CF IRQ */ -#define GPIO_MBGNT GPIO_GPIO (21) /* 1111 MBGNT */ -#define GPIO_CF_CD GPIO_GPIO (22) /* CF CD */ -#define GPIO_MBREQ GPIO_GPIO (22) /* 1111 MBREQ */ -#define GPIO_UCB1300_IRQ GPIO_GPIO (23) /* UCB GPIO and touchscreen */ -#define GPIO_CF_BVD2 GPIO_GPIO (24) /* CF BVD */ -#define GPIO_GFX_IRQ GPIO_GPIO (24) /* Graphics IRQ */ -#define GPIO_CF_BVD1 GPIO_GPIO (25) /* CF BVD */ -#define GPIO_NEP_IRQ GPIO_GPIO (25) /* Neponset IRQ */ -#define GPIO_BATT_LOW GPIO_GPIO (26) /* Low battery */ -#define GPIO_RCLK GPIO_GPIO (26) /* CCLK/2 */ - -#define IRQ_GPIO_CF_IRQ IRQ_GPIO21 -#define IRQ_GPIO_CF_CD IRQ_GPIO22 -#define IRQ_GPIO_MBREQ IRQ_GPIO22 -#define IRQ_GPIO_UCB1300_IRQ IRQ_GPIO23 -#define IRQ_GPIO_CF_BVD2 IRQ_GPIO24 -#define IRQ_GPIO_CF_BVD1 IRQ_GPIO25 -#define IRQ_GPIO_NEP_IRQ IRQ_GPIO25 - - -/* - * PFS-168 definitions: - */ - -#define SA1111_BASE (0x40000000) - -#ifndef __ASSEMBLY__ -#define PFS168_COM5_VBASE (*((volatile unsigned char *)(0xf0000000UL))) -#define PFS168_COM6_VBASE (*((volatile unsigned char *)(0xf0001000UL))) -#define PFS168_SYSC1RTS (*((volatile unsigned char *)(0xf0002000UL))) -#define PFS168_SYSLED (*((volatile unsigned char *)(0xf0003000UL))) -#define PFS168_SYSDTMF (*((volatile unsigned char *)(0xf0004000UL))) -#define PFS168_SYSLCDDE (*((volatile unsigned char *)(0xf0005000UL))) -#define PFS168_SYSC1DSR (*((volatile unsigned char *)(0xf0006000UL))) -#define PFS168_SYSC3TEN (*((volatile unsigned char *)(0xf0007000UL))) -#define PFS168_SYSCTLA (*((volatile unsigned char *)(0xf0008000UL))) -#define PFS168_SYSCTLB (*((volatile unsigned char *)(0xf0009000UL))) -#define PFS168_ETH_VBASE (*((volatile unsigned char *)(0xf000a000UL))) -#endif - -#define PFS168_SYSLCDDE_STNDE (1<<0) /* CSTN display enable/disable (1/0) */ -#define PFS168_SYSLCDDE_DESEL (1<<0) /* Active/Passive (1/0) display enable mode */ - -#define PFS168_SYSCTLA_BKLT (1<<0) /* LCD backlight invert on/off (1/0) */ -#define PFS168_SYSCTLA_RLY (1<<1) /* Relay on/off (1/0) */ -#define PFS168_SYSCTLA_PXON (1<<2) /* Opto relay connect/disconnect 1/0) */ -#define PFS168_SYSCTLA_IRDA_FSEL (1<<3) /* IRDA Frequency select (0 = SIR, 1 = MIR/ FIR) */ - -#define PFS168_SYSCTLB_MG1 (1<<0) /* Motion detector gain select */ -#define PFS168_SYSCTLB_MG0 (1<<1) /* Motion detector gain select */ -#define PFS168_SYSCTLB_IRDA_MD1 (1<<2) /* Range/Power select */ -#define PFS168_SYSCTLB_IRDA_MD0 (1<<3) /* Range/Power select */ -#define PFS168_SYSCTLB_IRDA_MD_MASK (PFS168_SYSCTLB_IRDA_MD1|PFS168_SYSCTLB_IRDA_MD0) diff --git a/include/asm-arm/arch-sa1100/pleb.h b/include/asm-arm/arch-sa1100/pleb.h deleted file mode 100644 index 8c1fc10595ca..000000000000 --- a/include/asm-arm/arch-sa1100/pleb.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * linux/include/asm-arm/arch-sa1100/pleb.h - * - * Created 2000/12/08 by Daniel Potts <danielp@cse.unsw.edu.au> - * - * This file contains the hardware specific definitions for the - * PLEB board. http://www.cse.unsw.edu.au/~pleb - */ - -#ifndef _INCLUDE_PLEB_H_ -#define _INCLUDE_PLEB_H_ - -#define PLEB_ETH0_P (0x20000300) /* Ethernet 0 in PCMCIA0 IO */ -#define PLEB_ETH0_V (0xf6000300) - -#define GPIO_ETH0_IRQ GPIO_GPIO (21) -#define GPIO_ETH0_EN GPIO_GPIO (26) - -#define IRQ_GPIO_ETH0_IRQ IRQ_GPIO21 - -#endif diff --git a/include/asm-arm/arch-sa1100/stork.h b/include/asm-arm/arch-sa1100/stork.h deleted file mode 100644 index 91b3dbc5a30e..000000000000 --- a/include/asm-arm/arch-sa1100/stork.h +++ /dev/null @@ -1,164 +0,0 @@ -/* - stork.h - -*/ - -#ifndef STORK_SA1100_H -#define STORK_SA1100_H - -/* ugly - this will make sure we build sa1100fb for the Nec display not the Kyocera */ -#define STORK_TFT 1 - - -#define GPIO_STORK_SWITCH_1 (1 << 0) /* Switch 1 - input */ -#define GPIO_STORK_SWITCH_2 (1 << 1) /* Switch 2 - input */ -#define GPIO_STORK_TOUCH_SCREEN_BUSY (1 << 10) /* TOUCH_SCREEN_BUSY - input */ -#define GPIO_STORK_TOUCH_SCREEN_DATA (1 << 11) /* TOUCH_SCREEN_DATA - input */ -#define GPIO_STORK_CODEC_AGCSTAT (1 << 12) /* CODEC_AGCSTAT -input */ -#define GPIO_STORK_RS232_ON (1 << 13) /* enable RS232 (UART1) */ -#define GPIO_STORK_TEST_POINT (1 << 14) /* to test point */ -#define GPIO_STORK_L3_I2C_SDA (1 << 15) /* L3_I2C_SDA - bidirectional */ -#define GPIO_STORK_PSU_SYNC_MODE (1 << 16) /* PSU_SYNC_MODE - output */ -#define GPIO_STORK_L3_MODE (1 << 17) /* L3 mode - output (??) */ -#define GPIO_STORK_L3_I2C_SCL (1 << 18) /* L3_I2C_SCL - bidirectional */ -#define GPIO_STORK_AUDIO_CLK (1 << 19) /* SSP external clock (Audio clock) - input */ -#define GPIO_STORK_PCMCIA_A_CARD_DETECT (1 << 20) /* PCMCIA_A_CARD_DETECT - input */ -#define GPIO_STORK_PCMCIA_B_CARD_DETECT (1 << 21) /* PCMCIA_B_CARD_DETECT - input */ -#define GPIO_STORK_PCMCIA_A_RDY (1 << 22) /* PCMCIA_A_RDY - input */ -#define GPIO_STORK_PCMCIA_B_RDY (1 << 23) /* PCMCIA_B_RDY - input */ -#define GPIO_STORK_SWITCH_EXTRA_IRQ (1 << 24) /* Extra IRQ from switch detect logic - input */ -#define GPIO_STORK_SWITCH_IRQ (1 << 25) /* Sitch irq - input */ -#define GPIO_STORK_BATTERY_LOW_IRQ (1 << 26) /* BATTERY_LOW_IRQ - input */ -#define GPIO_STORK_TOUCH_SCREEN_PEN_IRQ (1 << 27) /* TOUCH_SCREEN_PEN_IRQ -input */ - -#define IRQ_GPIO_STORK_PCMCIA_A_CARD_DETECT IRQ_GPIO20 /* PCMCIA_A_CARD_DETECT - input */ -#define IRQ_GPIO_STORK_PCMCIA_B_CARD_DETECT IRQ_GPIO21 /* PCMCIA_B_CARD_DETECT - input */ - -#define IRQ_GPIO_STORK_SWITCH_1 IRQ_GPIO0 /* Switch 1 - input - active low */ -#define IRQ_GPIO_STORK_SWITCH_2 IRQ_GPIO1 /* Switch 2 - input - active low */ -#define IRQ_GPIO_STORK_SWITCH_EXTRA_IRQ IRQ_GPIO24 /* Extra IRQ from switch detect logic - input - active low */ -#define IRQ_GPIO_STORK_SWITCH_IRQ IRQ_GPIO25 /* Switch irq - input- active low */ -#define IRQ_GPIO_STORK_BATTERY_LOW_IRQ IRQ_GPIO26 /* BATTERY_LOW_IRQ - input - active low */ -#define IRQ_GPIO_STORK_TOUCH_SCREEN_PEN_IRQ IRQ_GPIO27 /* TOUCH_SCREEN_PEN_IRQ -input - goes low when it happens */ - -/* this may be bogus - no it's not the RDY line becomes the IRQ line when we're up as an IO device */ -#define IRQ_GPIO_STORK_PCMCIA_A_RDY IRQ_GPIO22 /* PCMCIA_A_RDY - input */ -#define IRQ_GPIO_STORK_PCMCIA_B_RDY IRQ_GPIO23 /* PCMCIA_B_RDY - input */ - -/* the default outputs, others are optional - I'll set these in the bootldr for now */ -#define GPIO_STORK_OUTPUT_BITS (GPIO_STORK_RS232_ON | GPIO_STORK_PSU_SYNC_MODE | GPIO_STORK_L3_MODE) - -#define STORK_LATCH_A_ADDR 0x08000000 /* cs1 A5 = 0 */ -#define STORK_LATCH_B_ADDR 0x08000020 /* cs1 A5 = 1 */ - -#define STORK_LCDCPLD_BASE_ADDR 0x10000000 /* cs2 A5 = 0 */ - -/* bit defs for latch A - these are write only and will need to be mirrored! */ - -#define STORK_TEMP_IC_POWER_ON (1 << 0) -#define STORK_SED1386_POWER_ON (1 << 1) -#define STORK_LCD_3V3_POWER_ON (1 << 2) -#define STORK_LCD_5V_POWER_ON (1 << 3) -#define STORK_LCD_BACKLIGHT_INVERTER_ON (1 << 4) -#define STORK_PCMCIA_PULL_UPS_POWER_ON (1 << 5) -#define STORK_PCMCIA_A_POWER_ON (1 << 6) -#define STORK_PCMCIA_B_POWER_ON (1 << 7) -#define STORK_AUDIO_POWER_ON (1 << 8) -#define STORK_AUDIO_AMP_ON (1 << 9) -#define STORK_BAR_CODE_POWER_ON (1 << 10) -#define STORK_BATTERY_CHARGER_ON (1 << 11) -#define STORK_SED1386_RESET (1 << 12) -#define STORK_IRDA_FREQUENCY_SELECT (1 << 13) -#define STORK_IRDA_MODE_0 (1 << 14) -#define STORK_IRDA_MODE_1 (1 << 15) - -/* and for B */ - -#define STORK_AUX_AD_SEL_0 (1 << 0) -#define STORK_AUX_AD_SEL_1 (1 << 1) -#define STORK_TOUCH_SCREEN_DCLK (1 << 2) -#define STORK_TOUCH_SCREEN_DIN (1 << 3) -#define STORK_TOUCH_SCREEN_CS (1 << 4) -#define STORK_DA_CS (1 << 5) -#define STORK_DA_LD (1 << 6) -#define STORK_RED_LED (1 << 7) /* active LOW */ -#define STORK_GREEN_LED (1 << 8) /* active LOW */ -#define STORK_YELLOW_LED (1 << 9) /* active LOW */ -#define STORK_PCMCIA_B_RESET (1 << 10) -#define STORK_PCMCIA_A_RESET (1 << 11) -#define STORK_AUDIO_CODEC_RESET (1 << 12) -#define STORK_CODEC_QMUTE (1 << 13) -#define STORK_AUDIO_CLOCK_SEL0 (1 << 14) -#define STORK_AUDIO_CLOCK_SEL1 (1 << 15) - - -/* - - There are 8 control bits in the touch screen controller (AD7873) - - S A2 A1 A0 MODE SER/DFR# PD1 PD0 - - S Start bit, always one. - A2 - A0 Channel select bits - MODE 0 => 12 bit resolution, 1 => 8 bit - SER/DFR# Single ender/Differential Reference Select bit - PD1, PD0 Power management bits (usually 10) - - -From Table 1. - - A2-A0 - - 0 Temp0 (SER must be 1) - 1 X+ (is this a typo? - is this X- really?) - 2 VBAT, - 3 read X+ (Z1), - 4 read Y- (Z2), 5 => read Y+, - -*/ - -#define AD7873_START 0x80 /* all commands need this to be set */ -#define AD7873_ADDR_BITS 4 /* ie shift by this */ -#define AD7873_8BITMODE 0x08 /* 0 => 12 bit convertions */ -#define AD7873_SER_DFR 0x04 -#define AD7873_PD1 0x02 -#define AD7873_PD0 0x01 - -#define AD7873_TEMP0 AD7873_SER_DFR -#define AD7873_X (1 << AD7873_ADDR_BITS) -#define AD7873_VBAT ((2 << AD7873_ADDR_BITS) | AD7873_SER_DFR) -#define AD7873_X_Z1 (3 << AD7873_ADDR_BITS) -#define AD7873_Y_Z2 (4 << AD7873_ADDR_BITS) -#define AD7873_Y (5 << AD7873_ADDR_BITS) -#define AD7873_AUX ((6 << AD7873_ADDR_BITS) | AD7873_SER_DFR) -#define AD7873_TEMP1 ((7 << AD7873_ADDR_BITS) | AD7873_SER_DFR) - -#ifndef __ASSEMBLY__ - -extern int storkSetLatchA(int bits); -extern int storkClearLatchA(int bits); - -extern int storkSetLatchB(int bits); -extern int storkClearLatchB(int bits); - -extern int storkSetLCDCPLD(int which, int bits); -extern int storkClearLCDCPLD(int which, int bits); - -extern void storkSetGPIO(int bits); -extern void storkClearGPIO(int bits); - -extern int storkGetGPIO(void); - -extern void storkClockShortToDtoA(int word); -extern int storkClockByteToTS(int byte); - - -/* this will return the current state of the hardware ANDED with the given bits - so NE => at least one bit was set, but maybe not all of them! */ - -extern int storkTestGPIO(int bits); - - -#endif - -#endif diff --git a/include/asm-arm/arch-sa1100/system.h b/include/asm-arm/arch-sa1100/system.h index c0bbe24bf014..6f52118ba1a4 100644 --- a/include/asm-arm/arch-sa1100/system.h +++ b/include/asm-arm/arch-sa1100/system.h @@ -10,13 +10,6 @@ static inline void arch_idle(void) cpu_do_idle(); } -#ifdef CONFIG_SA1100_VICTOR - -/* power off unconditionally */ -#define arch_reset(x) machine_power_off() - -#else - static inline void arch_reset(char mode) { if (mode == 's') { @@ -27,5 +20,3 @@ static inline void arch_reset(char mode) RSRR = RSRR_SWR; } } - -#endif diff --git a/include/asm-arm/arch-sa1100/system3.h b/include/asm-arm/arch-sa1100/system3.h deleted file mode 100644 index b83a41e0c88f..000000000000 --- a/include/asm-arm/arch-sa1100/system3.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - * linux/include/asm-arm/arch-sa1100/system3.h - * - * Copyright (C) 2001 Stefan Eletzhofer <stefan.eletzhofer@eletztrick.de> - * - * $Id: system3.h,v 1.2.4.2 2001/12/04 14:58:50 seletz Exp $ - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * $Log: system3.h,v $ - * Revision 1.2.4.2 2001/12/04 14:58:50 seletz - * - removed neponset hack - * - removed irq definitions (now in irqs.h) - * - * Revision 1.2.4.1 2001/12/04 12:51:18 seletz - * - re-added from linux_2_4_8_ac12_rmk1_np1_pt1 - * - * Revision 1.2.2.2 2001/11/16 13:58:43 seletz - * - simplified cpld register access - * - * Revision 1.2.2.1 2001/10/15 16:17:20 seletz - * - first revision - * - * - */ - -#ifndef __ASM_ARCH_HARDWARE_H -#error "include <asm/hardware.h> instead" -#endif - -/* System 3 LCD */ -#define SYS3LCD SKPEN0 -#define SYS3LCDBACKL SKPEN1 -#define SYS3LCDBRIGHT SKPWM0 -#define SYS3LCDCONTR SKPWM1 - -#define PT_CPLD_BASE (0x10000000) -#define PT_SMC_BASE (0x18000000) -#define PT_SA1111_BASE (0x40000000) - -#define SA1111_BASE PT_SA1111_BASE - -#define Ptcpld_p2v( x ) ((x) - PT_CPLD_BASE + 0xf3000000) -#define Ptcpld_v2p( x ) ((x) - 0xf3000000 + PT_CPLD_BASE) - -#define _PT_SYSID ( PT_CPLD_BASE + 0x00 ) -#define _PT_IRQSR ( PT_CPLD_BASE + 0x24 ) -#define _PT_CTRL0 ( PT_CPLD_BASE + 0x90 ) -#define _PT_CTRL1 ( PT_CPLD_BASE + 0xA0 ) -#define _PT_CTRL2 ( PT_CPLD_BASE + 0xB0 ) - -#define PT_SYSID (*((volatile u_char *)Ptcpld_p2v( _PT_SYSID ))) -#define PT_IRQSR (*((volatile u_char *)Ptcpld_p2v( _PT_IRQSR ))) -#define PT_CTRL0 (*((volatile u_char *)Ptcpld_p2v( _PT_CTRL0 ))) -#define PT_CTRL1 (*((volatile u_char *)Ptcpld_p2v( _PT_CTRL1 ))) -#define PT_CTRL2 (*((volatile u_char *)Ptcpld_p2v( _PT_CTRL2 ))) - -#define PTCTRL0_set( x ) PT_CTRL0 |= (x) -#define PTCTRL1_set( x ) PT_CTRL1 |= (x) -#define PTCTRL2_set( x ) PT_CTRL2 |= (x) -#define PTCTRL0_clear( x ) PT_CTRL0 &= ~(x) -#define PTCTRL1_clear( x ) PT_CTRL1 &= ~(x) -#define PTCTRL2_clear( x ) PT_CTRL2 &= ~(x) - -/* System ID register */ - -/* IRQ Source Register */ -#define PT_IRR_LAN ( 1<<0 ) -#define PT_IRR_X ( 1<<1 ) -#define PT_IRR_SA1111 ( 1<<2 ) -#define PT_IRR_RS1 ( 1<<3 ) -#define PT_IRR_RS1_RING ( 1<<4 ) -#define PT_IRR_RS1_DCD ( 1<<5 ) -#define PT_IRR_RS1_DSR ( 1<<6 ) -#define PT_IRR_RS2 ( 1<<7 ) - -/* FIXME */ -#define PT_IRR_USAR ( 1<<1 ) - -/* CTRL 0 */ -#define PT_CTRL0_USBSLAVE ( 1<<0 ) -#define PT_CTRL0_USBHOST ( 1<<1 ) -#define PT_CTRL0_LCD_BL ( 1<<2 ) -#define PT_CTRL0_LAN_EN ( 1<<3 ) /* active low */ -#define PT_CTRL0_IRDA_M(x) ( (((u_char)x)&0x03)<<4 ) -#define PT_CTRL0_IRDA_M0 ( 1<<4 ) -#define PT_CTRL0_IRDA_M1 ( 1<<5 ) -#define PT_CTRL0_IRDA_FSEL ( 1<<6 ) -#define PT_CTRL0_LCD_EN ( 1<<7 ) - -#define PT_CTRL0_INIT ( PT_CTRL0_USBSLAVE | PT_CTRL0_USBHOST | \ - PT_CTRL0_LCD_BL | PT_CTRL0_LAN_EN | PT_CTRL0_LCD_EN ) - -/* CTRL 1 */ -#define PT_CTRL1_RS3_MUX(x) ( (((u_char)x)&0x03)<<0 ) -#define PT_CTRL1_RS3_MUX0 ( 1<<0 ) -#define PT_CTRL1_RS3_MUX1 ( 1<<1 ) -#define PT_CTRL1_RS3_RST ( 1<<2 ) -#define PT_CTRL1_RS3_RS485_TERM ( 1<<4 ) -#define PT_CTRL1_X ( 1<<4 ) -#define PT_CTRL1_PCMCIA_A0VPP ( 1<<6 ) -#define PT_CTRL1_PCMCIA_A1VPP ( 1<<7 ) - -#define PT_RS3_MUX_ALIRS ( 0 ) -#define PT_RS3_MUX_IDATA ( 1 ) -#define PT_RS3_MUX_RADIO ( 2 ) -#define PT_RS3_MUX_RS485 ( 3 ) - -/* CTRL 2 */ -#define PT_CTRL2_RS1_RTS ( 1<<0 ) -#define PT_CTRL2_RS1_DTR ( 1<<1 ) diff --git a/include/asm-arm/arch-sa1100/trizeps.h b/include/asm-arm/arch-sa1100/trizeps.h deleted file mode 100644 index 1802947011be..000000000000 --- a/include/asm-arm/arch-sa1100/trizeps.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * linux/include/asm-arm/arch-sa1100/trizeps.h - * - * This file contains the hardware specific definitions for Trizeps - * - * Authors: - * Andreas Hofer <ho@dsa-ac.de>, - * Peter Lueg <pl@dsa-ac.de>, - * Guennadi Liakhovetski <gl@dsa-ac.de> - * - */ - -#ifndef _ASM_ARCH_TRIZEPS_H_ -#define _ASM_ARCH_TRIZEPS_H_ - -#include <linux/config.h> - -#ifdef CONFIG_TRIZEPS_MFTB2 -#include "mftb2.h" -#endif - -#endif // _INCLUDE_TRIZEPS_ diff --git a/include/asm-arm/arch-sa1100/yopy.h b/include/asm-arm/arch-sa1100/yopy.h deleted file mode 100644 index 7b4e0148d831..000000000000 --- a/include/asm-arm/arch-sa1100/yopy.h +++ /dev/null @@ -1,127 +0,0 @@ -#ifndef __ASM_ARCH_YOPY_H__ -#define __ASM_ARCH_YOPY_H__ - -/****************************************************************************** - * Memory mappings - ******************************************************************************/ - -/* Flash memories */ -#define YOPY_FLASH0_BASE_P (0x00000000) /* CS0 */ -#define YOPY_FLASH0_BASE_V (0xe8000000) -#define YOPY_FLASH0_BASE YOPY_FLASH0_BASE_V -#define YOPY_FLASH0_SIZE (0x04000000) /* map 64MB */ - -#define YOPY_FLASH1_BASE_P (0x08000000) /* CS1 */ -#define YOPY_FLASH1_BASE_V (YOPY_FLASH0_BASE_V + YOPY_FLASH0_SIZE) -#define YOPY_FLASH1_BASE YOPY_FLASH1_BASE_V -#define YOPY_FLASH1_SIZE (0x04000000) /* map 64MB */ - -/* LCD Controller */ -#define YOPY_LCD_IO_BASE_P (0x48000000) /* CS5 */ -#define YOPY_LCD_IO_BASE_V (0xf0000000) - -#define YOPY_LCD_IO_BASE YOPY_LCD_IO_BASE_V -#define YOPY_LCD_IO_RANGE (0x00208000) - -/* Extended GPIO */ -#define YOPY_EGPIO_BASE_P (0x10000000) /* CS2 */ -#define YOPY_EGPIO_BASE_V (0xf1000000) - -#define YOPY_EGPIO_BASE YOPY_EGPIO_BASE_V -#define YOPY_EGPIO_RANGE 4 - -#define YOPY_EGPIO (*((volatile Word *)YOPY_EGPIO_BASE)) - - -/****************************************************************************** - * GPIO assignements - ******************************************************************************/ - -#define GPIO_UCB1200_IRQ GPIO_GPIO0 -#define GPIO_UCB1200_RESET GPIO_GPIO22 - -#define GPIO_CF_IREQ GPIO_GPIO2 -#define GPIO_CF_CD GPIO_GPIO3 -#define GPIO_CF_BVD1 GPIO_GPIO4 -#define GPIO_CF_BVD2 GPIO_GPIO5 -#define GPIO_CF_CSEL GPIO_GPIO6 -#define GPIO_CF_READY GPIO_CF_IREQ -#define GPIO_CF_STSCHG GPIO_CF_BVD1 -#define GPIO_CF_SPKR GPIO_CF_BVD2 - -#define GPIO_MASK(io) (1 << (io)) - -#define GPIO_YOPY_PLL_ML PPC_LDD7 -#define GPIO_YOPY_PLL_MC PPC_L_LCLK -#define GPIO_YOPY_PLL_MD PPC_L_FCLK - -#define GPIO_YOPY_L3_MODE PPC_LDD4 -#define GPIO_YOPY_L3_CLOCK PPC_LDD5 -#define GPIO_YOPY_L3_DATA PPC_LDD6 - -#define GPIO_CF_RESET 0 -#define GPIO_CLKDIV_CLR1 1 -#define GPIO_CLKDIV_CLR2 2 -#define GPIO_SPEAKER_MUTE 5 -#define GPIO_CF_POWER 8 -#define GPIO_AUDIO_OPAMP_POWER 11 -#define GPIO_AUDIO_CODEC_POWER 12 -#define GPIO_AUDIO_POWER 13 - -#define GPIO_IRDA_POWER PPC_L_PCLK -#define GPIO_IRDA_FIR PPC_LDD0 - -#ifndef __ASSEMBLY__ -extern int yopy_gpio_test(unsigned int gpio); -extern void yopy_gpio_set(unsigned int gpio, int level); -#endif - - -/****************************************************************************** - * IRQ assignements - ******************************************************************************/ - -/* for our old drivers */ -#define IRQ_SP0_UDC 13 -#define IRQ_SP1_SDLC 14 -#define IRQ_SP1_UART 15 -#define IRQ_SP2_ICP 16 -#define IRQ_SP2_UART 16 -#define IRQ_SP3_UART 17 -#define IRQ_SP4_MCP 18 -#define IRQ_SP4_SSP 19 -#define IRQ_RTC_HZ 30 -#define IRQ_RTC_ALARM 31 - -/* GPIO interrupts */ -#define IRQ_GPIO_UCB1200_IRQ IRQ_GPIO0 - -#define IRQ_CF_IREQ IRQ_GPIO2 -#define IRQ_CF_CD IRQ_GPIO3 -#define IRQ_CF_BVD1 IRQ_GPIO4 -#define IRQ_CF_BVD2 IRQ_GPIO5 - -#define IRQ_UART_CTS IRQ_GPIO7 -#define IRQ_UART_DCD IRQ_GPIO8 -#define IRQ_UART_DSR IRQ_GPIO9 - -#define IRQ_FLASH_STATUS IRQ_GPIO23 - -#define IRQ_BUTTON_POWER IRQ_GPIO1 -#define IRQ_BUTTON_UP IRQ_GPIO14 -#define IRQ_BUTTON_DOWN IRQ_GPIO15 -#define IRQ_BUTTON_LEFT IRQ_GPIO16 -#define IRQ_BUTTON_RIGHT IRQ_GPIO17 -#define IRQ_BUTTON_SHOT0 IRQ_GPIO18 -#define IRQ_BUTTON_SHOT1 IRQ_GPIO20 -#define IRQ_BUTTON_PIMS IRQ_UCB1200_IO1 -#define IRQ_BUTTON_MP3 IRQ_UCB1200_IO2 -#define IRQ_BUTTON_RECORD IRQ_UCB1200_IO3 -#define IRQ_BUTTON_PREV IRQ_UCB1200_IO4 -#define IRQ_BUTTON_SELECT IRQ_UCB1200_IO5 -#define IRQ_BUTTON_NEXT IRQ_UCB1200_IO6 -#define IRQ_BUTTON_CANCEL IRQ_UCB1200_IO7 -#define IRQ_BUTTON_REMOTE IRQ_UCB1200_IO8 - - -#endif diff --git a/include/asm-arm/bitops.h b/include/asm-arm/bitops.h index 994e0aeffd5b..ce923ee18276 100644 --- a/include/asm-arm/bitops.h +++ b/include/asm-arm/bitops.h @@ -342,7 +342,7 @@ static inline unsigned long __ffs(unsigned long word) * the clz instruction for much better code efficiency. */ -extern __inline__ int generic_fls(int x); +static __inline__ int generic_fls(int x); #define fls(x) \ ( __builtin_constant_p(x) ? generic_fls(x) : \ ({ int __r; asm("clz\t%0, %1" : "=r"(__r) : "r"(x) : "cc"); 32-__r; }) ) diff --git a/include/asm-arm/ecard.h b/include/asm-arm/ecard.h index 0aa513f2ccae..358799f28df0 100644 --- a/include/asm-arm/ecard.h +++ b/include/asm-arm/ecard.h @@ -143,6 +143,7 @@ typedef struct { /* Card handler routines */ #define ecard_resource_end(ec,nr) ((ec)->resource[nr].end) #define ecard_resource_len(ec,nr) ((ec)->resource[nr].end - \ (ec)->resource[nr].start + 1) +#define ecard_resource_flags(ec,nr) ((ec)->resource[nr].flags) /* * This contains all the info needed on an expansion card diff --git a/include/asm-arm/io.h b/include/asm-arm/io.h index 114a6d6d0587..60513375e728 100644 --- a/include/asm-arm/io.h +++ b/include/asm-arm/io.h @@ -176,7 +176,7 @@ extern void _memset_io(void __iomem *, int, size_t); eth_copy_and_sum((s),__mem_pci(c),(l),(b)) static inline int -check_signature(unsigned long io_addr, const unsigned char *signature, +check_signature(void __iomem *io_addr, const unsigned char *signature, int length) { int retval = 0; @@ -226,23 +226,6 @@ out: #define isa_eth_io_copy_and_sum(a,b,c,d) \ eth_copy_and_sum((a),__mem_isa(b),(c),(d)) -static inline int -isa_check_signature(unsigned long io_addr, const unsigned char *signature, - int length) -{ - int retval = 0; - do { - if (isa_readb(io_addr) != *signature) - goto out; - io_addr++; - signature++; - length--; - } while (length); - retval = 1; -out: - return retval; -} - #else /* __mem_isa */ #define isa_readb(addr) (__readwrite_bug("isa_readb"),0) @@ -258,8 +241,6 @@ out: #define isa_eth_io_copy_and_sum(a,b,c,d) \ __readwrite_bug("isa_eth_io_copy_and_sum") -#define isa_check_signature(io,sig,len) (0) - #endif /* __mem_isa */ /* diff --git a/include/asm-arm/mach/flash.h b/include/asm-arm/mach/flash.h index f7b86a1be96d..a92887d4b2cb 100644 --- a/include/asm-arm/mach/flash.h +++ b/include/asm-arm/mach/flash.h @@ -2,18 +2,33 @@ * linux/include/asm-arm/mach/flash.h * * Copyright (C) 2003 Russell King, All Rights Reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. */ #ifndef ASMARM_MACH_FLASH_H -#define ASMAMR_MACH_FLASH_H +#define ASMARM_MACH_FLASH_H struct mtd_partition; +/* + * map_name: the map probe function name + * width: width of mapped device + * init: method called at driver/device initialisation + * exit: method called at driver/device removal + * set_vpp: method called to enable or disable VPP + * parts: optional array of mtd_partitions for static partitioning + * nr_parts: number of mtd_partitions for static partitoning + */ struct flash_platform_data { const char *map_name; - int width; + unsigned int width; int (*init)(void); void (*exit)(void); void (*set_vpp)(int on); + struct mtd_partition *parts; + unsigned int nr_parts; }; #endif diff --git a/include/asm-arm/mach/irq.h b/include/asm-arm/mach/irq.h index bea9af3922cb..c6ae545e4237 100644 --- a/include/asm-arm/mach/irq.h +++ b/include/asm-arm/mach/irq.h @@ -97,23 +97,6 @@ void __set_irq_handler(unsigned int irq, irq_handler_t, int); void set_irq_chip(unsigned int irq, struct irqchip *); void set_irq_flags(unsigned int irq, unsigned int flags); -#ifdef not_yet -/* - * This is to be used by the top-level machine IRQ decoder only. - */ -static inline void call_irq(struct pt_regs *regs, unsigned int irq) -{ - struct irqdesc *desc = irq_desc + irq; - - spin_lock(&irq_controller_lock); - desc->handle(irq, desc, regs); - spin_unlock(&irq_controller_lock); - - if (softirq_pending(smp_processor_id())) - do_softirq(); -} -#endif - #define IRQF_VALID (1 << 0) #define IRQF_PROBE (1 << 1) #define IRQF_NOAUTOEN (1 << 2) diff --git a/include/asm-arm/mach/map.h b/include/asm-arm/mach/map.h index 284df8bb76d1..2a75545a2d04 100644 --- a/include/asm-arm/mach/map.h +++ b/include/asm-arm/mach/map.h @@ -23,6 +23,7 @@ struct meminfo; #define MT_MINICLEAN 2 #define MT_VECTORS 3 #define MT_MEMORY 4 +#define MT_ROM 5 extern void create_memmap_holes(struct meminfo *); extern void memtable_init(struct meminfo *); diff --git a/include/asm-arm/mach/mmc.h b/include/asm-arm/mach/mmc.h index 41a946e42db0..1b3555d4b41e 100644 --- a/include/asm-arm/mach/mmc.h +++ b/include/asm-arm/mach/mmc.h @@ -7,7 +7,6 @@ #include <linux/mmc/protocol.h> struct mmc_platform_data { - unsigned int mclk; /* mmc base clock rate */ unsigned int ocr_mask; /* available voltages */ u32 (*translate_vdd)(struct device *, unsigned int); unsigned int (*status)(struct device *); diff --git a/include/asm-arm/page.h b/include/asm-arm/page.h index a270052fe67a..4ca3a8e9348f 100644 --- a/include/asm-arm/page.h +++ b/include/asm-arm/page.h @@ -85,14 +85,10 @@ #endif #ifdef CONFIG_CPU_COPY_V6 -# ifdef _USER -# define MULTI_USER 1 -# else -# define _USER v6 -# endif +# define MULTI_USER 1 #endif -#ifndef _USER +#if !defined(_USER) && !defined(MULTI_USER) #error Unknown user operations model #endif diff --git a/include/asm-arm/procinfo.h b/include/asm-arm/procinfo.h index a3116e9f3758..a9c75b2c314f 100644 --- a/include/asm-arm/procinfo.h +++ b/include/asm-arm/procinfo.h @@ -24,13 +24,13 @@ struct processor; * * NOTE! The following structure is defined by assembly * language, NOT C code. For more information, check: - * arch/arm/mm/proc-*.S and arch/arm/kernel/head-armv.S + * arch/arm/mm/proc-*.S and arch/arm/kernel/head.S */ struct proc_info_list { unsigned int cpu_val; unsigned int cpu_mask; - unsigned long __cpu_mmu_flags; /* used by head-armv.S */ - unsigned long __cpu_flush; /* used by head-armv.S */ + unsigned long __cpu_mmu_flags; /* used by head.S */ + unsigned long __cpu_flush; /* used by head.S */ const char *arch_name; const char *elf_name; unsigned int elf_hwcap; diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index da1b3ba89b3e..99cef06a364a 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -18,6 +18,9 @@ \ /* PCI quirks */ \ .pci_fixup : AT(ADDR(.pci_fixup) - LOAD_OFFSET) { \ + VMLINUX_SYMBOL(__start_pci_fixups_early) = .; \ + *(.pci_fixup_early) \ + VMLINUX_SYMBOL(__end_pci_fixups_early) = .; \ VMLINUX_SYMBOL(__start_pci_fixups_header) = .; \ *(.pci_fixup_header) \ VMLINUX_SYMBOL(__end_pci_fixups_header) = .; \ diff --git a/include/asm-h8300/io.h b/include/asm-h8300/io.h index 7047ee209f50..57574c8aefa4 100644 --- a/include/asm-h8300/io.h +++ b/include/asm-h8300/io.h @@ -70,15 +70,24 @@ static inline unsigned long _swapl(volatile unsigned long v) } #define readb(addr) \ - ({ unsigned char __v = (*(volatile unsigned char *) ((addr) & 0x00ffffff)); __v; }) + ({ unsigned char __v = \ + *(volatile unsigned char *)((unsigned long)(addr) & 0x00ffffff); \ + __v; }) #define readw(addr) \ - ({ unsigned short __v = (*(volatile unsigned short *) ((addr) & 0x00ffffff)); __v; }) + ({ unsigned short __v = \ + *(volatile unsigned short *)((unsigned long)(addr) & 0x00ffffff); \ + __v; }) #define readl(addr) \ - ({ unsigned int __v = (*(volatile unsigned int *) ((addr) & 0x00ffffff)); __v; }) - -#define writeb(b,addr) (void)((*(volatile unsigned char *) ((addr) & 0x00ffffff)) = (b)) -#define writew(b,addr) (void)((*(volatile unsigned short *) ((addr) & 0x00ffffff)) = (b)) -#define writel(b,addr) (void)((*(volatile unsigned int *) ((addr) & 0x00ffffff)) = (b)) + ({ unsigned long __v = \ + *(volatile unsigned long *)((unsigned long)(addr) & 0x00ffffff); \ + __v; }) + +#define writeb(b,addr) (void)((*(volatile unsigned char *) \ + ((unsigned long)(addr) & 0x00ffffff)) = (b)) +#define writew(b,addr) (void)((*(volatile unsigned short *) \ + ((unsigned long)(addr) & 0x00ffffff)) = (b)) +#define writel(b,addr) (void)((*(volatile unsigned long *) \ + ((unsigned long)(addr) & 0x00ffffff)) = (b)) #define readb_relaxed(addr) readb(addr) #define readw_relaxed(addr) readw(addr) #define readl_relaxed(addr) readl(addr) diff --git a/include/asm-h8300/sigcontext.h b/include/asm-h8300/sigcontext.h index c2a8df4f557f..e4b81505f8f8 100644 --- a/include/asm-h8300/sigcontext.h +++ b/include/asm-h8300/sigcontext.h @@ -8,7 +8,9 @@ struct sigcontext { unsigned long sc_er1; unsigned long sc_er2; unsigned long sc_er3; + unsigned long sc_er4; unsigned long sc_er5; + unsigned long sc_er6; unsigned short sc_ccr; unsigned long sc_pc; }; diff --git a/include/asm-h8300/signal.h b/include/asm-h8300/signal.h index 6612725c2297..3a08544a473e 100644 --- a/include/asm-h8300/signal.h +++ b/include/asm-h8300/signal.h @@ -96,6 +96,8 @@ typedef unsigned long sigset_t; #define SA_ONESHOT SA_RESETHAND #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */ +#define SA_RESTORER 0x04000000 + /* * sigaltstack controls */ diff --git a/include/asm-h8300/ucontext.h b/include/asm-h8300/ucontext.h index 7987d6c06245..0bcf8f85fab9 100644 --- a/include/asm-h8300/ucontext.h +++ b/include/asm-h8300/ucontext.h @@ -1,22 +1,11 @@ #ifndef _H8300_UCONTEXT_H #define _H8300_UCONTEXT_H -typedef int greg_t; -#define NGREG 10 -typedef greg_t gregset_t[NGREG]; - -struct mcontext { - int version; - gregset_t gregs; -}; - -#define MCONTEXT_VERSION 1 - struct ucontext { unsigned long uc_flags; struct ucontext *uc_link; stack_t uc_stack; - struct mcontext uc_mcontext; + struct sigcontext uc_mcontext; sigset_t uc_sigmask; /* mask last for extensibility */ }; diff --git a/include/asm-h8300/unistd.h b/include/asm-h8300/unistd.h index a6d15d494e76..239f351d7c96 100644 --- a/include/asm-h8300/unistd.h +++ b/include/asm-h8300/unistd.h @@ -5,6 +5,7 @@ * This file contains the system call numbers. */ +#define __NR_restart_syscall 0 #define __NR_exit 1 #define __NR_fork 2 #define __NR_read 3 diff --git a/include/asm-i386/acpi.h b/include/asm-i386/acpi.h index ee3667db2862..60f2942f4588 100644 --- a/include/asm-i386/acpi.h +++ b/include/asm-i386/acpi.h @@ -138,6 +138,8 @@ extern int acpi_gsi_to_irq(u32 gsi, unsigned int *irq); extern int skip_ioapic_setup; extern int acpi_skip_timer_override; +extern void check_acpi_pci(void); + static inline void disable_ioapic_setup(void) { skip_ioapic_setup = 1; @@ -149,8 +151,8 @@ static inline int ioapic_setup_disabled(void) } #else -static inline void disable_ioapic_setup(void) -{ } +static inline void disable_ioapic_setup(void) { } +static inline void check_acpi_pci(void) { } #endif diff --git a/include/asm-i386/apic.h b/include/asm-i386/apic.h index 8135c7c290f2..ed794d04c118 100644 --- a/include/asm-i386/apic.h +++ b/include/asm-i386/apic.h @@ -53,7 +53,8 @@ static __inline unsigned long apic_read(unsigned long reg) static __inline__ void apic_wait_icr_idle(void) { - do { } while ( apic_read( APIC_ICR ) & APIC_ICR_BUSY ); + while ( apic_read( APIC_ICR ) & APIC_ICR_BUSY ) + cpu_relax(); } int get_physical_broadcast(void); diff --git a/include/asm-i386/io.h b/include/asm-i386/io.h index f3ee4f411f6f..7b27cf130b1a 100644 --- a/include/asm-i386/io.h +++ b/include/asm-i386/io.h @@ -248,36 +248,6 @@ out: return retval; } -/** - * isa_check_signature - find BIOS signatures - * @io_addr: mmio address to check - * @signature: signature block - * @length: length of signature - * - * Perform a signature comparison with the ISA mmio address io_addr. - * Returns 1 on a match. - * - * This function is deprecated. New drivers should use ioremap and - * check_signature. - */ - - -static inline int isa_check_signature(unsigned long io_addr, - const unsigned char *signature, int length) -{ - int retval = 0; - do { - if (isa_readb(io_addr) != *signature) - goto out; - io_addr++; - signature++; - length--; - } while (length); - retval = 1; -out: - return retval; -} - /* * Cache management * diff --git a/include/asm-i386/pci-direct.h b/include/asm-i386/pci-direct.h new file mode 100644 index 000000000000..4f6738b08206 --- /dev/null +++ b/include/asm-i386/pci-direct.h @@ -0,0 +1 @@ +#include "asm-x86_64/pci-direct.h" diff --git a/include/asm-i386/thread_info.h b/include/asm-i386/thread_info.h index 9eba8cbd0d4a..819e84b5707a 100644 --- a/include/asm-i386/thread_info.h +++ b/include/asm-i386/thread_info.h @@ -10,6 +10,7 @@ #ifdef __KERNEL__ #include <linux/config.h> +#include <linux/compiler.h> #include <asm/page.h> #ifndef __ASSEMBLY__ @@ -92,12 +93,7 @@ static inline struct thread_info *current_thread_info(void) } /* how to get the current stack pointer from C */ -static inline unsigned long current_stack_pointer(void) -{ - unsigned long ti; - __asm__("movl %%esp,%0; ":"=r" (ti) : ); - return ti; -} +register unsigned long current_stack_pointer asm("esp") __attribute_used__; /* thread information allocation */ #ifdef CONFIG_DEBUG_STACK_USAGE diff --git a/include/asm-i386/timer.h b/include/asm-i386/timer.h index 24381b8b5376..40c54f69780e 100644 --- a/include/asm-i386/timer.h +++ b/include/asm-i386/timer.h @@ -1,5 +1,6 @@ #ifndef _ASMi386_TIMER_H #define _ASMi386_TIMER_H +#include <linux/init.h> /** * struct timer_ops - used to define a timer source @@ -15,18 +16,22 @@ * timer. * @delay: delays this many clock cycles. */ -struct timer_opts{ +struct timer_opts { char* name; - int (*init)(char *override); void (*mark_offset)(void); unsigned long (*get_offset)(void); unsigned long long (*monotonic_clock)(void); void (*delay)(unsigned long); }; +struct init_timer_opts { + int (*init)(char *override); + struct timer_opts *opts; +}; + #define TICK_SIZE (tick_nsec / 1000) -extern struct timer_opts* select_timer(void); +extern struct timer_opts* __init select_timer(void); extern void clock_fallback(void); void setup_pit_timer(void); @@ -40,19 +45,20 @@ extern int timer_ack; /* list of externed timers */ extern struct timer_opts timer_none; extern struct timer_opts timer_pit; -extern struct timer_opts timer_tsc; +extern struct init_timer_opts timer_pit_init; +extern struct init_timer_opts timer_tsc_init; #ifdef CONFIG_X86_CYCLONE_TIMER -extern struct timer_opts timer_cyclone; +extern struct init_timer_opts timer_cyclone_init; #endif extern unsigned long calibrate_tsc(void); extern void init_cpu_khz(void); #ifdef CONFIG_HPET_TIMER -extern struct timer_opts timer_hpet; +extern struct init_timer_opts timer_hpet_init; extern unsigned long calibrate_tsc_hpet(unsigned long *tsc_hpet_quotient_ptr); #endif #ifdef CONFIG_X86_PM_TIMER -extern struct timer_opts timer_pmtmr; +extern struct init_timer_opts timer_pmtmr_init; #endif #endif diff --git a/include/asm-ia64/hardirq.h b/include/asm-ia64/hardirq.h index 602471e51aab..b097596f6c61 100644 --- a/include/asm-ia64/hardirq.h +++ b/include/asm-ia64/hardirq.h @@ -20,14 +20,7 @@ #define __ARCH_IRQ_STAT 1 #define softirq_pending(cpu) (cpu_data(cpu)->softirq_pending) -#define syscall_count(cpu) /* unused on IA-64 */ -#define ksoftirqd_task(cpu) (cpu_data(cpu)->ksoftirqd) -#define nmi_count(cpu) 0 - #define local_softirq_pending() (local_cpu_data->softirq_pending) -#define local_syscall_count() /* unused on IA-64 */ -#define local_ksoftirqd_task() (local_cpu_data->ksoftirqd) -#define local_nmi_count() 0 #define HARDIRQ_BITS 14 diff --git a/include/asm-ia64/pal.h b/include/asm-ia64/pal.h index 7d47da05b823..01a39527aaf8 100644 --- a/include/asm-ia64/pal.h +++ b/include/asm-ia64/pal.h @@ -1531,7 +1531,7 @@ static inline s64 ia64_pal_tr_read (u64 reg_num, u64 tr_type, u64 *tr_buffer, pal_tr_valid_u_t *tr_valid) { struct ia64_pal_retval iprv; - PAL_CALL_PHYS_STK(iprv, PAL_VM_TR_READ, reg_num, tr_type,(u64)__pa(tr_buffer)); + PAL_CALL_PHYS_STK(iprv, PAL_VM_TR_READ, reg_num, tr_type,(u64)ia64_tpa(tr_buffer)); if (tr_valid) tr_valid->piv_val = iprv.v0; return iprv.status; diff --git a/include/asm-ia64/ptrace.h b/include/asm-ia64/ptrace.h index 2af819be15ea..0bef19538406 100644 --- a/include/asm-ia64/ptrace.h +++ b/include/asm-ia64/ptrace.h @@ -2,7 +2,7 @@ #define _ASM_IA64_PTRACE_H /* - * Copyright (C) 1998-2003 Hewlett-Packard Co + * Copyright (C) 1998-2004 Hewlett-Packard Co * David Mosberger-Tang <davidm@hpl.hp.com> * Stephane Eranian <eranian@hpl.hp.com> * Copyright (C) 2003 Intel Co @@ -110,7 +110,11 @@ struct pt_regs { unsigned long cr_ipsr; /* interrupted task's psr */ unsigned long cr_iip; /* interrupted task's instruction pointer */ - unsigned long cr_ifs; /* interrupted task's function state */ + /* + * interrupted task's function state; if bit 63 is cleared, it + * contains syscall's ar.pfs.pfm: + */ + unsigned long cr_ifs; unsigned long ar_unat; /* interrupted task's NaT register (preserved) */ unsigned long ar_pfs; /* prev function state */ diff --git a/include/asm-ia64/sn/intr.h b/include/asm-ia64/sn/intr.h index 3e23a7457ef5..e51471fb0867 100644 --- a/include/asm-ia64/sn/intr.h +++ b/include/asm-ia64/sn/intr.h @@ -12,16 +12,21 @@ #define SGI_UART_VECTOR (0xe9) #define SGI_PCIBR_ERROR (0x33) -// These two IRQ's are used by partitioning. +/* Reserved IRQs : Note, not to exceed IA64_SN2_FIRST_DEVICE_VECTOR */ #define SGI_XPC_ACTIVATE (0x30) #define SGI_II_ERROR (0x31) #define SGI_XBOW_ERROR (0x32) #define SGI_PCIBR_ERROR (0x33) #define SGI_ACPI_SCI_INT (0x34) -#define SGI_MMTIMER_VECTOR (0x35) -#define SGI_TIO_ERROR (0x36) +#define SGI_TIOCA_ERROR (0x35) +#define SGI_TIO_ERROR (0x36) +#define SGI_TIOCX_ERROR (0x37) +#define SGI_MMTIMER_VECTOR (0x38) #define SGI_XPC_NOTIFY (0xe7) +#define IA64_SN2_FIRST_DEVICE_VECTOR (0x3c) +#define IA64_SN2_LAST_DEVICE_VECTOR (0xe6) + #define SN2_IRQ_RESERVED (0x1) #define SN2_IRQ_CONNECTED (0x2) #define SN2_IRQ_SHARED (0x4) diff --git a/include/asm-ia64/unistd.h b/include/asm-ia64/unistd.h index 84e6989d6ea0..99cc90c11850 100644 --- a/include/asm-ia64/unistd.h +++ b/include/asm-ia64/unistd.h @@ -259,6 +259,10 @@ #define __NR_mq_getsetattr 1267 #define __NR_kexec_load 1268 #define __NR_vserver 1269 +#define __NR_waitid 1270 +#define __NR_add_key 1271 +#define __NR_request_key 1272 +#define __NR_keyctl 1273 #ifdef __KERNEL__ @@ -385,7 +389,7 @@ asmlinkage long sys_rt_sigaction(int sig, * "Conditional" syscalls * * Note, this macro can only be used in the file which defines sys_ni_syscall, i.e., in - * kernel/sys.c. This version causes warnings because the declaration isn't a + * kernel/sys_ni.c. This version causes warnings because the declaration isn't a * proper prototype, but we can't use __typeof__ either, because not all cond_syscall() * declarations have prototypes at the moment. */ diff --git a/include/asm-m32r/ide.h b/include/asm-m32r/ide.h index 8389f249db9a..be64f24e37ee 100644 --- a/include/asm-m32r/ide.h +++ b/include/asm-m32r/ide.h @@ -35,7 +35,7 @@ static __inline__ int ide_default_irq(unsigned long base) { switch (base) { -#if defined(CONFIG_PLAT_M32700UT) +#if defined(CONFIG_PLAT_M32700UT) || defined(CONFIG_PLAT_MAPPI2) case 0x1f0: return PLD_IRQ_CFIREQ; default: return 0; diff --git a/include/asm-m32r/io.h b/include/asm-m32r/io.h index cab43ebac8fc..a5d3abee0ef4 100644 --- a/include/asm-m32r/io.h +++ b/include/asm-m32r/io.h @@ -167,7 +167,7 @@ static inline void _writel(unsigned long l, unsigned long addr) #define flush_write_buffers() do { } while (0) /* M32R_FIXME */ /** - * isa_check_signature - find BIOS signatures + * check_signature - find BIOS signatures * @io_addr: mmio address to check * @signature: signature block * @length: length of signature @@ -179,14 +179,14 @@ static inline void _writel(unsigned long l, unsigned long addr) * check_signature. */ -static inline int isa_check_signature(unsigned long io_addr, +static inline int check_signature(void __iomem *io_addr, const unsigned char *signature, int length) { int retval = 0; #if 0 -printk("isa_check_signature\n"); +printk("check_signature\n"); do { - if (isa_readb(io_addr) != *signature) + if (readb(io_addr) != *signature) goto out; io_addr++; signature++; diff --git a/include/asm-m68k/io.h b/include/asm-m68k/io.h index 0f23907fa291..c963b138a142 100644 --- a/include/asm-m68k/io.h +++ b/include/asm-m68k/io.h @@ -306,6 +306,24 @@ static inline void isa_delay(void) #endif #endif /* CONFIG_PCI */ +#if !defined(CONFIG_ISA) && !defined(CONFIG_PCI) && defined(CONFIG_HP300) +/* + * We need to define dummy functions otherwise drivers/serial/8250.c doesn't link + */ +#define inb(port) 0xff +#define inb_p(port) 0xff +#define outb(val,port) do { } while (0) +#define outb_p(val,port) do { } while (0) + +/* + * These should be valid on any ioremap()ed region + */ +#define readb(addr) in_8(addr) +#define writeb(val,addr) out_8((addr),(val)) +#define readl(addr) in_le32(addr) +#define writel(val,addr) out_le32((addr),(val)) +#endif + #define mmiowb() static inline void *ioremap(unsigned long physaddr, unsigned long size) @@ -327,23 +345,6 @@ static inline void *ioremap_fullcache(unsigned long physaddr, return __ioremap(physaddr, size, IOMAP_FULL_CACHING); } -#if !defined(CONFIG_ISA) && !defined(CONFIG_PCI) && defined(CONFIG_HP300) -/* - * We need to define dummy functions otherwise drivers/serial/8250.c doesn't link - */ -#define inb(port) 0xff -#define inb_p(port) 0xff -#define outb(val,port) do { } while (0) -#define outb_p(val,port) do { } while (0) - -/* - * These should be valid on any ioremap()ed region - */ -#define readb(addr) in_8(addr) -#define writeb(val,addr) out_8((addr),(val)) -#define readl(addr) in_le32(addr) -#define writel(val,addr) out_le32((addr),(val)) -#endif /* m68k caches aren't DMA coherent */ extern void dma_cache_wback_inv(unsigned long start, unsigned long size); diff --git a/include/asm-m68k/setup.h b/include/asm-m68k/setup.h index ce2762822a2b..9e23492685eb 100644 --- a/include/asm-m68k/setup.h +++ b/include/asm-m68k/setup.h @@ -264,7 +264,7 @@ extern int m68k_is040or060; # define MMU_IS_SUN3 (0) #elif defined(CONFIG_M68030) || defined(CONFIG_M68040) || defined(CONFIG_M68060) # define CPU_IS_020 (m68k_cputype & CPU_68020) -# define MMU_IS_851 (m68k_cputype & MMU_68851) +# define MMU_IS_851 (m68k_mmutype & MMU_68851) # define MMU_IS_SUN3 (0) /* Sun3 not supported with other CPU enabled */ #else # define CPU_M68020_ONLY diff --git a/include/asm-m68k/unistd.h b/include/asm-m68k/unistd.h index 28fe5964b7cf..4795f611f03b 100644 --- a/include/asm-m68k/unistd.h +++ b/include/asm-m68k/unistd.h @@ -281,8 +281,11 @@ #define __NR_mq_getsetattr 276 #define __NR_waitid 277 #define __NR_vserver 278 +#define __NR_add_key 279 +#define __NR_request_key 280 +#define __NR_keyctl 281 -#define NR_syscalls 279 +#define NR_syscalls 282 /* user-visible error numbers are in the range -1 - -124: see <asm-m68k/errno.h> */ diff --git a/include/asm-m68knommu/mcfdma.h b/include/asm-m68knommu/mcfdma.h index 98fadce0a6e9..350c6090b5c1 100644 --- a/include/asm-m68knommu/mcfdma.h +++ b/include/asm-m68knommu/mcfdma.h @@ -21,7 +21,7 @@ #define MCFDMA_BASE1 0x240 /* Base address of DMA 1 */ #elif defined(CONFIG_M5272) #define MCFDMA_BASE0 0x0e0 /* Base address of DMA 0 */ -#elif defined(CONFIG_M5282) +#elif defined(CONFIG_M527x) || defined(CONFIG_M528x) /* These are relative to the IPSBAR, not MBAR */ #define MCFDMA_BASE0 0x100 /* Base address of DMA 0 */ #define MCFDMA_BASE1 0x140 /* Base address of DMA 1 */ diff --git a/include/asm-m68knommu/mcfpit.h b/include/asm-m68knommu/mcfpit.h index 76ccfc2f0fa1..4cc2e9fd6ad0 100644 --- a/include/asm-m68knommu/mcfpit.h +++ b/include/asm-m68knommu/mcfpit.h @@ -14,7 +14,7 @@ #include <linux/config.h> /* - * Get address specific defines for the 5282. + * Get address specific defines for the 5270/5271 and 5280/5282. */ #define MCFPIT_BASE1 0x00150000 /* Base address of TIMER1 */ #define MCFPIT_BASE2 0x00160000 /* Base address of TIMER2 */ diff --git a/include/asm-m68knommu/mcfsim.h b/include/asm-m68knommu/mcfsim.h index 27d6cb696815..522e513c2bc6 100644 --- a/include/asm-m68knommu/mcfsim.h +++ b/include/asm-m68knommu/mcfsim.h @@ -15,7 +15,8 @@ #include <linux/config.h> /* - * Include 5204, 5206, 5249, 5272, 5282, 5307 or 5407 specific addresses. + * Include 5204, 5206/e, 5249, 5270/5271, 5272, 5280/5282, 5307 or + * 5407 specific addresses. */ #if defined(CONFIG_M5204) #include <asm/m5204sim.h> @@ -23,10 +24,12 @@ #include <asm/m5206sim.h> #elif defined(CONFIG_M5249) #include <asm/m5249sim.h> +#elif defined(CONFIG_M527x) +#include <asm/m527xsim.h> #elif defined(CONFIG_M5272) #include <asm/m5272sim.h> -#elif defined(CONFIG_M5282) -#include <asm/m5282sim.h> +#elif defined(CONFIG_M528x) +#include <asm/m528xsim.h> #elif defined(CONFIG_M5307) #include <asm/m5307sim.h> #elif defined(CONFIG_M5407) diff --git a/include/asm-m68knommu/mcfuart.h b/include/asm-m68knommu/mcfuart.h index 91073227553d..54d4a85f4fdf 100644 --- a/include/asm-m68knommu/mcfuart.h +++ b/include/asm-m68knommu/mcfuart.h @@ -29,7 +29,7 @@ #define MCFUART_BASE1 0x140 /* Base address of UART1 */ #define MCFUART_BASE2 0x180 /* Base address of UART2 */ #endif -#elif defined(CONFIG_M5282) +#elif defined(CONFIG_M527x) || defined(CONFIG_M528x) #define MCFUART_BASE1 0x200 /* Base address of UART1 */ #define MCFUART_BASE2 0x240 /* Base address of UART2 */ #define MCFUART_BASE3 0x280 /* Base address of UART3 */ diff --git a/include/asm-m68knommu/system.h b/include/asm-m68knommu/system.h index e12f9eb46e84..ce3f0b0226df 100644 --- a/include/asm-m68knommu/system.h +++ b/include/asm-m68knommu/system.h @@ -257,6 +257,19 @@ cmpxchg(volatile int *p, int old, int new) jmp (%a0); \ "); \ }) +#elif defined(CONFIG_M528x) +/* + * The MCF528x has a bit (SOFTRST) in memory (Reset Control Register RCR), + * that when set, resets the MCF528x. + */ +#define HARD_RESET_NOW() \ +({ \ + unsigned char volatile *reset; \ + asm("move.w #0x2700, %sr"); \ + reset = ((volatile unsigned short *)(MCF_IPSBAR + 0x110000)); \ + while(1) \ + *reset |= (0x01 << 7);\ +}) #else #define HARD_RESET_NOW() ({ \ asm(" \ diff --git a/include/asm-m68knommu/thread_info.h b/include/asm-m68knommu/thread_info.h index f45b12a2cd17..dcdc2b33dcf7 100644 --- a/include/asm-m68knommu/thread_info.h +++ b/include/asm-m68knommu/thread_info.h @@ -12,6 +12,12 @@ #ifdef __KERNEL__ +/* + * Size of kernel stack for each process. This must be a power of 2... + */ +#define THREAD_SIZE 8192 /* 2 pages */ + + #ifndef __ASSEMBLY__ /* @@ -45,12 +51,6 @@ struct thread_info { #define init_stack (init_thread_union.stack) -/* - * Size of kernel stack for each process. This must be a power of 2... - */ -#define THREAD_SIZE 8192 /* 2 pages */ - - /* how to get the thread information struct from C */ static inline struct thread_info *current_thread_info(void) { diff --git a/include/asm-mips/io.h b/include/asm-mips/io.h index 7575bf5d98e8..c6bd278c5ea0 100644 --- a/include/asm-mips/io.h +++ b/include/asm-mips/io.h @@ -388,20 +388,6 @@ out: return retval; } -/* - * isa_check_signature - find BIOS signatures - * @io_addr: mmio address to check - * @signature: signature block - * @length: length of signature - * - * Perform a signature comparison with the ISA mmio address io_addr. - * Returns 1 on a match. - * - * This function is deprecated. New drivers should use ioremap and - * check_signature. - */ -#define isa_check_signature(io, s, l) check_signature(i,s,l) - static inline void __outb(unsigned char val, unsigned long port) { port = __swizzle_addr_b(port); diff --git a/include/asm-ppc/cputable.h b/include/asm-ppc/cputable.h index fcdb87db389b..34f37ab61324 100644 --- a/include/asm-ppc/cputable.h +++ b/include/asm-ppc/cputable.h @@ -21,6 +21,9 @@ #define PPC_FEATURE_HAS_MMU 0x04000000 #define PPC_FEATURE_HAS_4xxMAC 0x02000000 #define PPC_FEATURE_UNIFIED_CACHE 0x01000000 +#define PPC_FEATURE_HAS_SPE 0x00800000 +#define PPC_FEATURE_HAS_EFP_SINGLE 0x00400000 +#define PPC_FEATURE_HAS_EFP_DOUBLE 0x00200000 #ifdef __KERNEL__ @@ -46,6 +49,9 @@ struct cpu_spec { unsigned int icache_bsize; unsigned int dcache_bsize; + /* number of performance monitor counters */ + unsigned int num_pmcs; + /* this is called to initialize various CPU bits like L1 cache, * BHT, SPD, etc... from head.S before branching to identify_machine */ diff --git a/include/asm-ppc/io.h b/include/asm-ppc/io.h index f8b1cbd05595..5946df50a8c7 100644 --- a/include/asm-ppc/io.h +++ b/include/asm-ppc/io.h @@ -452,13 +452,6 @@ out: return retval; } -/* Make some pcmcia drivers happy */ -static inline int isa_check_signature(unsigned long io_addr, - const unsigned char *signature, int length) -{ - return 0; -} - /* * Here comes the ppc implementation of the IOMAP * interfaces. diff --git a/include/asm-ppc/mpc85xx.h b/include/asm-ppc/mpc85xx.h index d3be2353890e..a046ce298fdf 100644 --- a/include/asm-ppc/mpc85xx.h +++ b/include/asm-ppc/mpc85xx.h @@ -81,6 +81,7 @@ extern unsigned char __res[]; #define MPC85xx_IRQ_DUART (26 + MPC85xx_OPENPIC_IRQ_OFFSET) #define MPC85xx_IRQ_IIC1 (27 + MPC85xx_OPENPIC_IRQ_OFFSET) #define MPC85xx_IRQ_PERFMON (28 + MPC85xx_OPENPIC_IRQ_OFFSET) +#define MPC85xx_IRQ_SEC2 (29 + MPC85xx_OPENPIC_IRQ_OFFSET) #define MPC85xx_IRQ_CPM (30 + MPC85xx_OPENPIC_IRQ_OFFSET) /* The 12 external interrupt lines */ @@ -120,6 +121,8 @@ extern unsigned char __res[]; #define MPC85xx_PCI2_SIZE (0x01000) #define MPC85xx_PERFMON_OFFSET (0xe1000) #define MPC85xx_PERFMON_SIZE (0x01000) +#define MPC85xx_SEC2_OFFSET (0x30000) +#define MPC85xx_SEC2_SIZE (0x10000) #define MPC85xx_UART0_OFFSET (0x04500) #define MPC85xx_UART0_SIZE (0x00100) #define MPC85xx_UART1_OFFSET (0x04600) diff --git a/include/asm-ppc/ocp_ids.h b/include/asm-ppc/ocp_ids.h index 91be19d2df7e..8ae4b311a37c 100644 --- a/include/asm-ppc/ocp_ids.h +++ b/include/asm-ppc/ocp_ids.h @@ -61,6 +61,7 @@ #define OCP_FUNC_PERFMON 0x00D2 /* Performance Monitor */ #define OCP_FUNC_RGMII 0x00D3 #define OCP_FUNC_TAH 0x00D4 +#define OCP_FUNC_SEC2 0x00D5 /* Crypto/Security 2.0 */ /* Network 0x0200 - 0x02FF */ #define OCP_FUNC_EMAC 0x0200 diff --git a/include/asm-ppc/open_pic.h b/include/asm-ppc/open_pic.h index 6d5130bbdbd5..cc238f5b9e1e 100644 --- a/include/asm-ppc/open_pic.h +++ b/include/asm-ppc/open_pic.h @@ -55,6 +55,7 @@ extern void openpic_cause_IPI(u_int ipi, cpumask_t cpumask); extern void smp_openpic_message_pass(int target, int msg, unsigned long data, int wait); extern void openpic_set_k2_cascade(int irq); +extern void openpic_set_priority(u_int pri); extern inline int openpic_to_irq(int irq) { diff --git a/include/asm-ppc/pci-bridge.h b/include/asm-ppc/pci-bridge.h index acd9cb4d0aa0..dc61c91cb134 100644 --- a/include/asm-ppc/pci-bridge.h +++ b/include/asm-ppc/pci-bridge.h @@ -94,6 +94,8 @@ int early_write_config_word(struct pci_controller *hose, int bus, int dev_fn, int early_write_config_dword(struct pci_controller *hose, int bus, int dev_fn, int where, u32 val); +extern void setup_indirect_pci_nomap(struct pci_controller* hose, + u32 cfg_addr, u32 cfg_data); extern void setup_indirect_pci(struct pci_controller* hose, u32 cfg_addr, u32 cfg_data); extern void setup_grackle(struct pci_controller *hose); diff --git a/include/asm-ppc/pmac_feature.h b/include/asm-ppc/pmac_feature.h index 33b852186d90..6540eb82c339 100644 --- a/include/asm-ppc/pmac_feature.h +++ b/include/asm-ppc/pmac_feature.h @@ -315,7 +315,7 @@ struct macio_chip int type; const char *name; int rev; - volatile u32 *base; + volatile u32 __iomem *base; unsigned long flags; /* For use by macio_asic PCI driver */ @@ -333,7 +333,7 @@ extern struct macio_chip macio_chips[MAX_MACIO_CHIPS]; extern struct macio_chip* macio_find(struct device_node* child, int type); #define MACIO_FCR32(macio, r) ((macio)->base + ((r) >> 2)) -#define MACIO_FCR8(macio, r) (((volatile u8*)((macio)->base)) + (r)) +#define MACIO_FCR8(macio, r) (((volatile u8 __iomem *)((macio)->base)) + (r)) #define MACIO_IN32(r) (in_le32(MACIO_FCR32(macio,r))) #define MACIO_OUT32(r,v) (out_le32(MACIO_FCR32(macio,r), (v))) diff --git a/include/asm-ppc64/iSeries/mf.h b/include/asm-ppc64/iSeries/mf.h index ef497025dc02..2e59a8e15a0b 100644 --- a/include/asm-ppc64/iSeries/mf.h +++ b/include/asm-ppc64/iSeries/mf.h @@ -1,6 +1,7 @@ /* * mf.h * Copyright (C) 2001 Troy D. Armstrong IBM Corporation + * Copyright (C) 2004 Stephen Rothwell IBM Corporation * * This modules exists as an interface between a Linux secondary partition * running on an iSeries and the primary partition's Virtual Service @@ -23,48 +24,34 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#ifndef MF_H_INCLUDED -#define MF_H_INCLUDED +#ifndef _ASM_PPC64_ISERIES_MF_H +#define _ASM_PPC64_ISERIES_MF_H -#include <linux/proc_fs.h> +#include <linux/types.h> #include <asm/iSeries/HvTypes.h> -#include <asm/iSeries/HvLpEvent.h> +#include <asm/iSeries/HvCallEvent.h> struct rtc_time; typedef void (*MFCompleteHandler)(void *clientToken, int returnCode); -extern void mf_allocateLpEvents(HvLpIndex targetLp, HvLpEvent_Type type, +extern void mf_allocate_lp_events(HvLpIndex targetLp, HvLpEvent_Type type, unsigned size, unsigned amount, MFCompleteHandler hdlr, void *userToken); -extern void mf_deallocateLpEvents(HvLpIndex targetLp, HvLpEvent_Type type, +extern void mf_deallocate_lp_events(HvLpIndex targetLp, HvLpEvent_Type type, unsigned count, MFCompleteHandler hdlr, void *userToken); -extern void mf_powerOff(void); +extern void mf_power_off(void); extern void mf_reboot(void); -extern void mf_displaySrc(u32 word); -extern void mf_displayProgress(u16 value); -extern void mf_clearSrc(void); +extern void mf_display_src(u32 word); +extern void mf_display_progress(u16 value); +extern void mf_clear_src(void); extern void mf_init(void); -extern void mf_setSide(char side); -extern char mf_getSide(void); +extern int mf_get_rtc(struct rtc_time *tm); +extern int mf_set_rtc(struct rtc_time *tm); -extern void mf_setCmdLine(const char *cmdline, int size, u64 side); -extern int mf_getCmdLine(char *cmdline, int *size, u64 side); - -extern void mf_getSrcHistory(char *buffer, int size); - -extern int mf_setVmlinuxChunk(const char *buffer, int size, int offset, - u64 side); -extern int mf_getVmlinuxChunk(char *buffer, int *size, int offset, u64 side); - -extern int mf_setRtcTime(unsigned long time); -extern int mf_getRtcTime(unsigned long *time); -extern int mf_getRtc( struct rtc_time * tm ); -extern int mf_setRtc( struct rtc_time * tm ); - -#endif /* MF_H_INCLUDED */ +#endif /* _ASM_PPC64_ISERIES_MF_H */ diff --git a/include/asm-ppc64/ide.h b/include/asm-ppc64/ide.h index 00df66e0e5fc..0aae1c590c0e 100644 --- a/include/asm-ppc64/ide.h +++ b/include/asm-ppc64/ide.h @@ -19,7 +19,7 @@ #ifdef __KERNEL__ #ifndef MAX_HWIFS -# define MAX_HWIFS 4 +# define MAX_HWIFS 10 #endif #define IDE_ARCH_OBSOLETE_INIT diff --git a/include/asm-ppc64/pci-bridge.h b/include/asm-ppc64/pci-bridge.h index 8d4ed18fdc11..428cc1947d95 100644 --- a/include/asm-ppc64/pci-bridge.h +++ b/include/asm-ppc64/pci-bridge.h @@ -18,21 +18,11 @@ struct pci_controller; extern struct pci_controller* pci_find_hose_for_OF_device(struct device_node* node); -enum phb_types { - phb_type_unknown = 0x0, - phb_type_hypervisor = 0x1, - phb_type_python = 0x10, - phb_type_speedwagon = 0x11, - phb_type_winnipeg = 0x12, - phb_type_apple = 0xff -}; - /* * Structure of a PCI controller (host bridge) */ struct pci_controller { char what[8]; /* Eye catcher */ - enum phb_types type; /* Type of hardware */ struct pci_bus *bus; char is_dynamic; void *arch_data; @@ -94,26 +84,13 @@ extern void pci_process_bridge_OF_ranges(struct pci_controller *hose, extern int pcibios_remove_root_bus(struct pci_controller *phb); -/* Use this macro after the PCI bus walk for max performance when it - * is known that sysdata is correct. - */ -#define PCI_GET_DN(dev) ((struct device_node *)((dev)->sysdata)) - extern void phbs_remap_io(void); static inline struct pci_controller *pci_bus_to_host(struct pci_bus *bus) { - struct device_node *busdn; - - busdn = bus->sysdata; - if (busdn == 0) { - struct pci_bus *b; - for (b = bus->parent; b && bus->sysdata == 0; b = b->parent) - ; - busdn = b->sysdata; - } - if (busdn == NULL) - return NULL; + struct device_node *busdn = bus->sysdata; + + BUG_ON(busdn == NULL); return busdn->phb; } diff --git a/include/asm-ppc64/pgtable.h b/include/asm-ppc64/pgtable.h index 7ef18db10570..42a71cfae1ab 100644 --- a/include/asm-ppc64/pgtable.h +++ b/include/asm-ppc64/pgtable.h @@ -67,12 +67,6 @@ #define IMALLOC_END (IMALLOC_BASE + PGTABLE_EA_MASK) /* - * Define the address range mapped virt <-> physical - */ -#define KRANGE_START KERNELBASE -#define KRANGE_END (KRANGE_START + PGTABLE_EA_MASK) - -/* * Define the user address range */ #define USER_START (0UL) diff --git a/include/asm-ppc64/prom.h b/include/asm-ppc64/prom.h index 0c03b06b95e4..be5f67d071d1 100644 --- a/include/asm-ppc64/prom.h +++ b/include/asm-ppc64/prom.h @@ -56,6 +56,8 @@ struct boot_param_header u32 off_mem_rsvmap; /* offset to memory reserve map */ u32 version; /* format version */ u32 last_comp_version; /* last compatible version */ + /* version 2 fields below */ + u32 boot_cpuid_phys; /* Which physical CPU id we're booting on */ }; diff --git a/include/asm-ppc64/rtas.h b/include/asm-ppc64/rtas.h index 414b7552514f..a405a871919e 100644 --- a/include/asm-ppc64/rtas.h +++ b/include/asm-ppc64/rtas.h @@ -149,7 +149,7 @@ struct rtas_error_log { unsigned long target:4; /* Target of failed operation */ unsigned long type:8; /* General event or error*/ unsigned long extended_log_length:32; /* length in bytes */ - unsigned char buffer[1]; /* allocated by klimit bump */ + unsigned char buffer[1]; }; struct flash_block { diff --git a/include/asm-ppc64/smp.h b/include/asm-ppc64/smp.h index 11f5dd9f4d40..6121d21355bc 100644 --- a/include/asm-ppc64/smp.h +++ b/include/asm-ppc64/smp.h @@ -27,6 +27,7 @@ #include <asm/paca.h> extern int boot_cpuid; +extern int boot_cpuid_phys; extern void cpu_die(void) __attribute__((noreturn)); diff --git a/include/asm-ppc64/sstep.h b/include/asm-ppc64/sstep.h new file mode 100644 index 000000000000..448190d09e6d --- /dev/null +++ b/include/asm-ppc64/sstep.h @@ -0,0 +1,13 @@ +/* + * Copyright (C) 2004 Paul Mackerras <paulus@au.ibm.com>, IBM + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +struct pt_regs; + +/* Emulate instructions that cause a transfer of control. */ +extern int emulate_step(struct pt_regs *regs, unsigned int instr); diff --git a/include/asm-ppc64/unistd.h b/include/asm-ppc64/unistd.h index 7851d0c5868c..1882dfee1d59 100644 --- a/include/asm-ppc64/unistd.h +++ b/include/asm-ppc64/unistd.h @@ -202,19 +202,19 @@ #define __NR_vfork 189 #define __NR_ugetrlimit 190 /* SuS compliant getrlimit */ #define __NR_readahead 191 -#define __NR_mmap2 192 -#define __NR_truncate64 193 -#define __NR_ftruncate64 194 -#define __NR_stat64 195 -#define __NR_lstat64 196 -#define __NR_fstat64 197 +/* #define __NR_mmap2 192 32bit only */ +/* #define __NR_truncate64 193 32bit only */ +/* #define __NR_ftruncate64 194 32bit only */ +/* #define __NR_stat64 195 32bit only */ +/* #define __NR_lstat64 196 32bit only */ +/* #define __NR_fstat64 197 32bit only */ #define __NR_pciconfig_read 198 #define __NR_pciconfig_write 199 #define __NR_pciconfig_iobase 200 #define __NR_multiplexer 201 #define __NR_getdents64 202 #define __NR_pivot_root 203 -#define __NR_fcntl64 204 +/* #define __NR_fcntl64 204 32bit only */ #define __NR_madvise 205 #define __NR_mincore 206 #define __NR_gettid 207 @@ -236,7 +236,7 @@ #define __NR_sched_getaffinity 223 /* 224 currently unused */ #define __NR_tuxcall 225 -#define __NR_sendfile64 226 +/* #define __NR_sendfile64 226 32bit only */ #define __NR_io_setup 227 #define __NR_io_destroy 228 #define __NR_io_getevents 229 @@ -264,7 +264,7 @@ #define __NR_utimes 251 #define __NR_statfs64 252 #define __NR_fstatfs64 253 -#define __NR_fadvise64_64 254 +/* #define __NR_fadvise64_64 254 32bit only */ #define __NR_rtas 255 /* Number 256 is reserved for sys_debug_setcontext */ /* Number 257 is reserved for vserver */ diff --git a/include/asm-s390/elf.h b/include/asm-s390/elf.h index 4368a55e9b50..3b8bd46832a1 100644 --- a/include/asm-s390/elf.h +++ b/include/asm-s390/elf.h @@ -98,6 +98,7 @@ #include <asm/ptrace.h> #include <asm/user.h> +#include <asm/system.h> /* for save_access_regs */ typedef s390_fp_regs elf_fpregset_t; @@ -152,6 +153,7 @@ typedef s390_regs elf_gregset_t; static inline int dump_regs(struct pt_regs *ptregs, elf_gregset_t *regs) { memcpy(®s->psw, &ptregs->psw, sizeof(regs->psw)+sizeof(regs->gprs)); + save_access_regs(regs->acrs); regs->orig_gpr2 = ptregs->orig_gpr2; return 1; } @@ -160,8 +162,10 @@ static inline int dump_regs(struct pt_regs *ptregs, elf_gregset_t *regs) static inline int dump_task_regs(struct task_struct *tsk, elf_gregset_t *regs) { - dump_regs(__KSTK_PTREGS(tsk), regs); + struct pt_regs *ptregs = __KSTK_PTREGS(tsk); + memcpy(®s->psw, &ptregs->psw, sizeof(regs->psw)+sizeof(regs->gprs)); memcpy(regs->acrs, tsk->thread.acrs, sizeof(regs->acrs)); + regs->orig_gpr2 = ptregs->orig_gpr2; return 1; } @@ -169,7 +173,10 @@ static inline int dump_task_regs(struct task_struct *tsk, elf_gregset_t *regs) static inline int dump_task_fpu(struct task_struct *tsk, elf_fpregset_t *fpregs) { - memcpy(fpregs, &tsk->thread.fp_regs, sizeof(elf_fpregset_t)); + if (tsk == current) + save_fp_regs(fpregs); + else + memcpy(fpregs, &tsk->thread.fp_regs, sizeof(elf_fpregset_t)); return 1; } diff --git a/include/asm-sparc/dma.h b/include/asm-sparc/dma.h index 59a07c7920ea..07e6368a2521 100644 --- a/include/asm-sparc/dma.h +++ b/include/asm-sparc/dma.h @@ -69,7 +69,7 @@ enum dvma_rev { struct sbus_dma { struct sbus_dma *next; struct sbus_dev *sdev; - unsigned long regs; + void __iomem *regs; /* Status, misc info */ int node; /* Prom node for this DMA device */ diff --git a/include/asm-sparc/fbio.h b/include/asm-sparc/fbio.h index 68834d38c444..c2b27e7a7cad 100644 --- a/include/asm-sparc/fbio.h +++ b/include/asm-sparc/fbio.h @@ -53,9 +53,9 @@ struct fbtype { struct fbcmap { int index; /* first element (0 origin) */ int count; - unsigned char *red; - unsigned char *green; - unsigned char *blue; + unsigned char __user *red; + unsigned char __user *green; + unsigned char __user *blue; }; #ifdef __KERNEL__ diff --git a/include/asm-sparc/io.h b/include/asm-sparc/io.h index 61fbdf45c023..529dc9373631 100644 --- a/include/asm-sparc/io.h +++ b/include/asm-sparc/io.h @@ -27,87 +27,78 @@ static inline u16 flip_word (u16 w) /* * Memory mapped I/O to PCI - * - * Observe that ioremap returns void* cookie, but accessors, such - * as readb, take unsigned long as address, by API. This mismatch - * happened historically. The ioremap is much older than accessors, - * so at one time ioremap's cookie was used as address (*a = val). - * When accessors came about, they were designed to be compatible across - * buses, so that drivers can select proper ones like sunhme.c did. - * To make that easier, they use same aruments (ulong) for sbus, pci, isa. - * The offshot is, we must cast readb et. al. arguments with a #define. */ -static inline u8 __raw_readb(unsigned long addr) +static inline u8 __raw_readb(const volatile void __iomem *addr) { - return *(volatile u8 *)addr; + return *(__force volatile u8 *)addr; } -static inline u16 __raw_readw(unsigned long addr) +static inline u16 __raw_readw(const volatile void __iomem *addr) { - return *(volatile u16 *)addr; + return *(__force volatile u16 *)addr; } -static inline u32 __raw_readl(unsigned long addr) +static inline u32 __raw_readl(const volatile void __iomem *addr) { - return *(volatile u32 *)addr; + return *(__force volatile u32 *)addr; } -static inline void __raw_writeb(u8 b, unsigned long addr) +static inline void __raw_writeb(u8 b, volatile void __iomem *addr) { - *(volatile u8 *)addr = b; + *(__force volatile u8 *)addr = b; } -static inline void __raw_writew(u16 w, unsigned long addr) +static inline void __raw_writew(u16 w, volatile void __iomem *addr) { - *(volatile u16 *)addr = w; + *(__force volatile u16 *)addr = w; } -static inline void __raw_writel(u32 l, unsigned long addr) +static inline void __raw_writel(u32 l, volatile void __iomem *addr) { - *(volatile u32 *)addr = l; + *(__force volatile u32 *)addr = l; } -static inline u8 __readb(unsigned long addr) +static inline u8 __readb(const volatile void __iomem *addr) { - return *(volatile u8 *)addr; + return *(__force volatile u8 *)addr; } -static inline u16 __readw(unsigned long addr) +static inline u16 __readw(const volatile void __iomem *addr) { - return flip_word(*(volatile u16 *)addr); + return flip_word(*(__force volatile u16 *)addr); } -static inline u32 __readl(unsigned long addr) +static inline u32 __readl(const volatile void __iomem *addr) { - return flip_dword(*(volatile u32 *)addr); + return flip_dword(*(__force volatile u32 *)addr); } -static inline void __writeb(u8 b, unsigned long addr) +static inline void __writeb(u8 b, volatile void __iomem *addr) { - *(volatile u8 *)addr = b; + *(__force volatile u8 *)addr = b; } -static inline void __writew(u16 w, unsigned long addr) +static inline void __writew(u16 w, volatile void __iomem *addr) { - *(volatile u16 *)addr = flip_word(w); + *(__force volatile u16 *)addr = flip_word(w); } -static inline void __writel(u32 l, unsigned long addr) +static inline void __writel(u32 l, volatile void __iomem *addr) { - *(volatile u32 *)addr = flip_dword(l); + *(__force volatile u32 *)addr = flip_dword(l); } -#define readb(__addr) __readb((unsigned long)(__addr)) -#define readw(__addr) __readw((unsigned long)(__addr)) -#define readl(__addr) __readl((unsigned long)(__addr)) +#define readb(__addr) __readb(__addr) +#define readw(__addr) __readw(__addr) +#define readl(__addr) __readl(__addr) #define readb_relaxed(__addr) readb(__addr) #define readw_relaxed(__addr) readw(__addr) #define readl_relaxed(__addr) readl(__addr) -#define writeb(__b, __addr) __writeb((__b),(unsigned long)(__addr)) -#define writew(__w, __addr) __writew((__w),(unsigned long)(__addr)) -#define writel(__l, __addr) __writel((__l),(unsigned long)(__addr)) +#define writeb(__b, __addr) __writeb((__b),(__addr)) +#define writew(__w, __addr) __writew((__w),(__addr)) +#define writel(__l, __addr) __writel((__l),(__addr)) /* * I/O space operations @@ -126,15 +117,15 @@ static inline void __writel(u32 l, unsigned long addr) * mapped somewhere into virtual kernel space and we * can use inb/outb again. */ -#define inb_local(__addr) __readb((unsigned long)(__addr)) -#define inb(__addr) __readb((unsigned long)(__addr)) -#define inw(__addr) __readw((unsigned long)(__addr)) -#define inl(__addr) __readl((unsigned long)(__addr)) +#define inb_local(__addr) __readb((void __iomem *)(unsigned long)(__addr)) +#define inb(__addr) __readb((void __iomem *)(unsigned long)(__addr)) +#define inw(__addr) __readw((void __iomem *)(unsigned long)(__addr)) +#define inl(__addr) __readl((void __iomem *)(unsigned long)(__addr)) -#define outb_local(__b, __addr) __writeb(__b, (unsigned long)(__addr)) -#define outb(__b, __addr) __writeb(__b, (unsigned long)(__addr)) -#define outw(__w, __addr) __writew(__w, (unsigned long)(__addr)) -#define outl(__l, __addr) __writel(__l, (unsigned long)(__addr)) +#define outb_local(__b, __addr) __writeb(__b, (void __iomem *)(unsigned long)(__addr)) +#define outb(__b, __addr) __writeb(__b, (void __iomem *)(unsigned long)(__addr)) +#define outw(__w, __addr) __writew(__w, (void __iomem *)(unsigned long)(__addr)) +#define outl(__l, __addr) __writel(__l, (void __iomem *)(unsigned long)(__addr)) #define inb_p(__addr) inb(__addr) #define outb_p(__b, __addr) outb(__b, __addr) @@ -158,73 +149,112 @@ extern void insl(unsigned long addr, void *dst, unsigned long count); * SBus has only one, memory mapped, I/O space. * We do not need to flip bytes for SBus of course. */ -static inline u8 _sbus_readb(unsigned long addr) +static inline u8 _sbus_readb(const volatile void __iomem *addr) { - return *(volatile u8 *)addr; + return *(__force volatile u8 *)addr; } -static inline u16 _sbus_readw(unsigned long addr) +static inline u16 _sbus_readw(const volatile void __iomem *addr) { - return *(volatile u16 *)addr; + return *(__force volatile u16 *)addr; } -static inline u32 _sbus_readl(unsigned long addr) +static inline u32 _sbus_readl(const volatile void __iomem *addr) { - return *(volatile u32 *)addr; + return *(__force volatile u32 *)addr; } -static inline void _sbus_writeb(u8 b, unsigned long addr) +static inline void _sbus_writeb(u8 b, volatile void __iomem *addr) { - *(volatile u8 *)addr = b; + *(__force volatile u8 *)addr = b; } -static inline void _sbus_writew(u16 w, unsigned long addr) +static inline void _sbus_writew(u16 w, volatile void __iomem *addr) { - *(volatile u16 *)addr = w; + *(__force volatile u16 *)addr = w; } -static inline void _sbus_writel(u32 l, unsigned long addr) +static inline void _sbus_writel(u32 l, volatile void __iomem *addr) { - *(volatile u32 *)addr = l; + *(__force volatile u32 *)addr = l; } /* * The only reason for #define's is to hide casts to unsigned long. */ -#define sbus_readb(__addr) _sbus_readb((unsigned long)(__addr)) -#define sbus_readw(__addr) _sbus_readw((unsigned long)(__addr)) -#define sbus_readl(__addr) _sbus_readl((unsigned long)(__addr)) -#define sbus_writeb(__b, __addr) _sbus_writeb(__b, (unsigned long)(__addr)) -#define sbus_writew(__w, __addr) _sbus_writew(__w, (unsigned long)(__addr)) -#define sbus_writel(__l, __addr) _sbus_writel(__l, (unsigned long)(__addr)) +#define sbus_readb(__addr) _sbus_readb(__addr) +#define sbus_readw(__addr) _sbus_readw(__addr) +#define sbus_readl(__addr) _sbus_readl(__addr) +#define sbus_writeb(__b, __addr) _sbus_writeb(__b, __addr) +#define sbus_writew(__w, __addr) _sbus_writew(__w, __addr) +#define sbus_writel(__l, __addr) _sbus_writel(__l, __addr) + +static inline void sbus_memset_io(volatile void __iomem *__dst, int c, __kernel_size_t n) +{ + while(n--) { + sbus_writeb(c, __dst); + __dst++; + } +} -static inline void *sbus_memset_io(void *__dst, int c, __kernel_size_t n) +static inline void +_memset_io(volatile void __iomem *dst, int c, __kernel_size_t n) { - unsigned long dst = (unsigned long)__dst; + volatile void __iomem *d = dst; - while(n--) { - sbus_writeb(c, dst); - dst++; + while (n--) { + writeb(c, d); + d++; } - return (void *) dst; } +#define memset_io(d,c,sz) _memset_io(d,c,sz) + +static inline void +_memcpy_fromio(void *dst, const volatile void __iomem *src, __kernel_size_t n) +{ + char *d = dst; + + while (n--) { + char tmp = readb(src); + *d++ = tmp; + src++; + } +} + +#define memcpy_fromio(d,s,sz) _memcpy_fromio(d,s,sz) + +static inline void +_memcpy_toio(volatile void __iomem *dst, const void *src, __kernel_size_t n) +{ + const char *s = src; + volatile void __iomem *d = dst; + + while (n--) { + char tmp = *s++; + writeb(tmp, d); + d++; + } +} + +#define memcpy_toio(d,s,sz) _memcpy_toio(d,s,sz) + #ifdef __KERNEL__ /* * Bus number may be embedded in the higher bits of the physical address. * This is why we have no bus number argument to ioremap(). */ -extern void *ioremap(unsigned long offset, unsigned long size); +extern void __iomem *ioremap(unsigned long offset, unsigned long size); #define ioremap_nocache(X,Y) ioremap((X),(Y)) -extern void iounmap(void *addr); +extern void iounmap(volatile void __iomem *addr); /* * Bus number may be in res->flags... somewhere. */ -extern unsigned long sbus_ioremap(struct resource *res, unsigned long offset, +extern void __iomem *sbus_ioremap(struct resource *res, unsigned long offset, unsigned long size, char *name); -extern void sbus_iounmap(unsigned long vaddr, unsigned long size); +extern void sbus_iounmap(volatile void __iomem *vaddr, unsigned long size); /* diff --git a/include/asm-sparc/mostek.h b/include/asm-sparc/mostek.h index be60a9afa41f..f88760d9e1df 100644 --- a/include/asm-sparc/mostek.h +++ b/include/asm-sparc/mostek.h @@ -38,8 +38,8 @@ * other than the control register are in binary coded decimal. Some * control bits also live outside the control register. */ -#define mostek_read(_addr) (*((volatile u8 *)(_addr))) -#define mostek_write(_addr,_val) ((*((volatile u8 *)(_addr))) = (_val)) +#define mostek_read(_addr) readb(_addr) +#define mostek_write(_addr,_val) writeb(_val, _addr) #define MOSTEK_EEPROM 0x0000UL #define MOSTEK_IDPROM 0x07d8UL #define MOSTEK_CREG 0x07f8UL @@ -65,7 +65,7 @@ struct mostek48t02 { }; extern spinlock_t mostek_lock; -extern unsigned long mstk48t02_regs; +extern void __iomem *mstk48t02_regs; /* Control register values. */ #define MSTK_CREG_WRITE 0x80 /* Must set this before placing values. */ diff --git a/include/asm-sparc64/io.h b/include/asm-sparc64/io.h index 43d00406bf54..30276548912f 100644 --- a/include/asm-sparc64/io.h +++ b/include/asm-sparc64/io.h @@ -114,7 +114,7 @@ extern void insl(void __iomem *addr, void *dst, unsigned long count); #define iowrite32_rep(a,s,c) outsl(a,s,c) /* Memory functions, same as I/O accesses on Ultra. */ -static inline u8 _readb(volatile void __iomem *addr) +static inline u8 _readb(const volatile void __iomem *addr) { u8 ret; __asm__ __volatile__("lduba\t[%1] %2, %0\t/* pci_readb */" @@ -123,7 +123,7 @@ static inline u8 _readb(volatile void __iomem *addr) return ret; } -static inline u16 _readw(volatile void __iomem *addr) +static inline u16 _readw(const volatile void __iomem *addr) { u16 ret; __asm__ __volatile__("lduha\t[%1] %2, %0\t/* pci_readw */" @@ -133,7 +133,7 @@ static inline u16 _readw(volatile void __iomem *addr) return ret; } -static inline u32 _readl(volatile void __iomem *addr) +static inline u32 _readl(const volatile void __iomem *addr) { u32 ret; __asm__ __volatile__("lduwa\t[%1] %2, %0\t/* pci_readl */" @@ -143,7 +143,7 @@ static inline u32 _readl(volatile void __iomem *addr) return ret; } -static inline u64 _readq(volatile void __iomem *addr) +static inline u64 _readq(const volatile void __iomem *addr) { u64 ret; __asm__ __volatile__("ldxa\t[%1] %2, %0\t/* pci_readq */" @@ -284,7 +284,7 @@ static __inline__ void _raw_writeq(u64 q, unsigned long addr) /* Now, SBUS variants, only difference from PCI is that we do * not use little-endian ASIs. */ -static inline u8 _sbus_readb(void __iomem *addr) +static inline u8 _sbus_readb(const volatile void __iomem *addr) { u8 ret; @@ -295,7 +295,7 @@ static inline u8 _sbus_readb(void __iomem *addr) return ret; } -static inline u16 _sbus_readw(void __iomem *addr) +static inline u16 _sbus_readw(const volatile void __iomem *addr) { u16 ret; @@ -306,7 +306,7 @@ static inline u16 _sbus_readw(void __iomem *addr) return ret; } -static inline u32 _sbus_readl(void __iomem *addr) +static inline u32 _sbus_readl(const volatile void __iomem *addr) { u32 ret; @@ -317,7 +317,7 @@ static inline u32 _sbus_readl(void __iomem *addr) return ret; } -static inline u64 _sbus_readq(void __iomem *addr) +static inline u64 _sbus_readq(const volatile void __iomem *addr) { u64 ret; @@ -328,28 +328,28 @@ static inline u64 _sbus_readq(void __iomem *addr) return ret; } -static inline void _sbus_writeb(u8 b, void __iomem *addr) +static inline void _sbus_writeb(u8 b, volatile void __iomem *addr) { __asm__ __volatile__("stba\t%r0, [%1] %2\t/* sbus_writeb */" : /* no outputs */ : "Jr" (b), "r" (addr), "i" (ASI_PHYS_BYPASS_EC_E)); } -static inline void _sbus_writew(u16 w, void __iomem *addr) +static inline void _sbus_writew(u16 w, volatile void __iomem *addr) { __asm__ __volatile__("stha\t%r0, [%1] %2\t/* sbus_writew */" : /* no outputs */ : "Jr" (w), "r" (addr), "i" (ASI_PHYS_BYPASS_EC_E)); } -static inline void _sbus_writel(u32 l, void __iomem *addr) +static inline void _sbus_writel(u32 l, volatile void __iomem *addr) { __asm__ __volatile__("stwa\t%r0, [%1] %2\t/* sbus_writel */" : /* no outputs */ : "Jr" (l), "r" (addr), "i" (ASI_PHYS_BYPASS_EC_E)); } -static inline void _sbus_writeq(u64 l, void __iomem *addr) +static inline void _sbus_writeq(u64 l, volatile void __iomem *addr) { __asm__ __volatile__("stxa\t%r0, [%1] %2\t/* sbus_writeq */" : /* no outputs */ @@ -365,35 +365,31 @@ static inline void _sbus_writeq(u64 l, void __iomem *addr) #define sbus_writel(__l, __addr) _sbus_writel(__l, __addr) #define sbus_writeq(__l, __addr) _sbus_writeq(__l, __addr) -static inline void __iomem*_sbus_memset_io(void __iomem *dst, int c, - __kernel_size_t n) +static inline void _sbus_memset_io(volatile void __iomem *dst, int c, __kernel_size_t n) { while(n--) { sbus_writeb(c, dst); dst++; } - return (void *) dst; } #define sbus_memset_io(d,c,sz) _sbus_memset_io(d,c,sz) -static inline void __iomem * -_memset_io(void __iomem *dst, int c, __kernel_size_t n) +static inline void +_memset_io(volatile void __iomem *dst, int c, __kernel_size_t n) { - void __iomem *d = dst; + volatile void __iomem *d = dst; while (n--) { writeb(c, d); d++; } - - return dst; } #define memset_io(d,c,sz) _memset_io(d,c,sz) -static inline void __iomem * -_memcpy_fromio(void *dst, void __iomem *src, __kernel_size_t n) +static inline void +_memcpy_fromio(void *dst, const volatile void __iomem *src, __kernel_size_t n) { char *d = dst; @@ -402,24 +398,21 @@ _memcpy_fromio(void *dst, void __iomem *src, __kernel_size_t n) *d++ = tmp; src++; } - - return dst; } #define memcpy_fromio(d,s,sz) _memcpy_fromio(d,s,sz) -static inline void __iomem * -_memcpy_toio(void __iomem *dst, const void *src, __kernel_size_t n) +static inline void +_memcpy_toio(volatile void __iomem *dst, const void *src, __kernel_size_t n) { const char *s = src; - void __iomem *d = dst; + volatile void __iomem *d = dst; while (n--) { char tmp = *s++; writeb(tmp, d); d++; } - return dst; } #define memcpy_toio(d,s,sz) _memcpy_toio(d,s,sz) @@ -453,7 +446,7 @@ static inline void __iomem *ioremap(unsigned long offset, unsigned long size) #define ioremap_nocache(X,Y) ioremap((X),(Y)) -static inline void iounmap(void __iomem *addr) +static inline void iounmap(volatile void __iomem *addr) { } diff --git a/include/asm-um/pgtable.h b/include/asm-um/pgtable.h index d013cc3763cb..0078dcb3e227 100644 --- a/include/asm-um/pgtable.h +++ b/include/asm-um/pgtable.h @@ -405,11 +405,10 @@ static inline pmd_t * pmd_offset(pgd_t * dir, unsigned long address) #define pte_offset_kernel(dir, address) \ ((pte_t *) pmd_page_kernel(*(dir)) + pte_index(address)) #define pte_offset_map(dir, address) \ - ((pte_t *)kmap_atomic(pmd_page(*(dir)),KM_PTE0) + pte_index(address)) -#define pte_offset_map_nested(dir, address) \ - ((pte_t *)kmap_atomic(pmd_page(*(dir)),KM_PTE1) + pte_index(address)) -#define pte_unmap(pte) kunmap_atomic((pte), KM_PTE0) -#define pte_unmap_nested(pte) kunmap_atomic((pte), KM_PTE1) + ((pte_t *)page_address(pmd_page(*(dir))) + pte_index(address)) +#define pte_offset_map_nested(dir, address) pte_offset_map(dir, address) +#define pte_unmap(pte) do { } while (0) +#define pte_unmap_nested(pte) do { } while (0) #define update_mmu_cache(vma,address,pte) do ; while (0) diff --git a/include/asm-um/unistd.h b/include/asm-um/unistd.h index 512f2257cff5..fe6020e9a9d4 100644 --- a/include/asm-um/unistd.h +++ b/include/asm-um/unistd.h @@ -13,10 +13,9 @@ extern int um_execve(const char *file, char *const argv[], char *const env[]); #ifdef __KERNEL__ +/* We get __ARCH_WANT_OLD_STAT and __ARCH_WANT_STAT64 from the base arch */ #define __ARCH_WANT_IPC_PARSE_VERSION #define __ARCH_WANT_OLD_READDIR -#define __ARCH_WANT_OLD_STAT -#define __ARCH_WANT_STAT64 #define __ARCH_WANT_SYS_ALARM #define __ARCH_WANT_SYS_GETHOSTNAME #define __ARCH_WANT_SYS_PAUSE @@ -84,7 +83,7 @@ static inline pid_t setsid(void) KERNEL_CALL(pid_t, sys_setsid) } -static inline long lseek(unsigned int fd, off_t offset, unsigned int whence) +static inline off_t lseek(unsigned int fd, off_t offset, unsigned int whence) { KERNEL_CALL(long, sys_lseek, fd, offset, whence) } @@ -102,13 +101,12 @@ static inline int write(unsigned int fd, char * buf, int len) long sys_mmap2(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long pgoff); -int sys_execve(char *file, char **argv, char **env); +long sys_execve(char *file, char **argv, char **env); long sys_clone(unsigned long clone_flags, unsigned long newsp, int *parent_tid, int *child_tid); long sys_fork(void); long sys_vfork(void); -int sys_pipe(unsigned long *fildes); -int sys_ptrace(long request, long pid, long addr, long data); +long sys_pipe(unsigned long *fildes); struct sigaction; asmlinkage long sys_rt_sigaction(int sig, const struct sigaction __user *act, diff --git a/include/asm-x86_64/hpet.h b/include/asm-x86_64/hpet.h index 4a6a605abba5..a3877f570998 100644 --- a/include/asm-x86_64/hpet.h +++ b/include/asm-x86_64/hpet.h @@ -46,6 +46,7 @@ extern int is_hpet_enabled(void); extern int hpet_rtc_timer_init(void); +extern int oem_force_hpet_timer(void); #ifdef CONFIG_HPET_EMULATE_RTC extern int hpet_mask_rtc_irq_bit(unsigned long bit_mask); @@ -54,7 +55,6 @@ extern int hpet_set_alarm_time(unsigned char hrs, unsigned char min, unsigned ch extern int hpet_set_periodic_freq(unsigned long freq); extern int hpet_rtc_dropped_irq(void); extern int hpet_rtc_timer_init(void); -extern int oem_force_hpet_timer(void); #endif /* CONFIG_HPET_EMULATE_RTC */ #endif diff --git a/include/asm-x86_64/hw_irq.h b/include/asm-x86_64/hw_irq.h index 4a42816524a8..767e11abd5c5 100644 --- a/include/asm-x86_64/hw_irq.h +++ b/include/asm-x86_64/hw_irq.h @@ -130,7 +130,7 @@ __asm__( \ "push $" #nr "-256 ; " \ "jmp common_interrupt"); -#if defined(CONFIG_X86_IO_APIC) && defined(CONFIG_SMP) +#if defined(CONFIG_X86_IO_APIC) static inline void hw_resend_irq(struct hw_interrupt_type *h, unsigned int i) { if (IO_APIC_IRQ(i)) send_IPI_self(IO_APIC_VECTOR(i)); diff --git a/include/asm-x86_64/io.h b/include/asm-x86_64/io.h index 8965a34174bb..c4734243f814 100644 --- a/include/asm-x86_64/io.h +++ b/include/asm-x86_64/io.h @@ -320,38 +320,6 @@ out: return retval; } -#ifndef __i386__ -/** - * isa_check_signature - find BIOS signatures - * @io_addr: mmio address to check - * @signature: signature block - * @length: length of signature - * - * Perform a signature comparison with the ISA mmio address io_addr. - * Returns 1 on a match. - * - * This function is deprecated. New drivers should use ioremap and - * check_signature. - */ - - -static inline int isa_check_signature(unsigned long io_addr, - const unsigned char *signature, int length) -{ - int retval = 0; - do { - if (isa_readb(io_addr) != *signature) - goto out; - io_addr++; - signature++; - length--; - } while (length); - retval = 1; -out: - return retval; -} -#endif - /* Nothing to do */ #define dma_cache_inv(_start,_size) do { } while (0) diff --git a/include/asm-x86_64/io_apic.h b/include/asm-x86_64/io_apic.h index 288296121af1..7efc932e8f0b 100644 --- a/include/asm-x86_64/io_apic.h +++ b/include/asm-x86_64/io_apic.h @@ -199,7 +199,7 @@ extern int skip_ioapic_setup; * If we use the IO-APIC for IRQ routing, disable automatic * assignment of PCI IRQ's. */ -#define io_apic_assign_pci_irqs (mp_irq_entries && !skip_ioapic_setup) +#define io_apic_assign_pci_irqs (mp_irq_entries && !skip_ioapic_setup && io_apic_irqs) #ifdef CONFIG_ACPI_BOOT extern int io_apic_get_unique_id (int ioapic, int apic_id); diff --git a/include/asm-x86_64/vsyscall.h b/include/asm-x86_64/vsyscall.h index a8461434454c..b0c8d4339906 100644 --- a/include/asm-x86_64/vsyscall.h +++ b/include/asm-x86_64/vsyscall.h @@ -21,7 +21,7 @@ enum vsyscall_num { #define __section_sys_tz __attribute__ ((unused, __section__ (".sys_tz"), aligned(16))) #define __section_sysctl_vsyscall __attribute__ ((unused, __section__ (".sysctl_vsyscall"), aligned(16))) #define __section_xtime __attribute__ ((unused, __section__ (".xtime"), aligned(16))) -#define __section_xtime_lock __attribute__ ((unused, __section__ (".xtime_lock"), aligned(L1_CACHE_BYTES))) +#define __section_xtime_lock __attribute__ ((unused, __section__ (".xtime_lock"), aligned(16))) #define VXTIME_TSC 1 #define VXTIME_HPET 2 diff --git a/include/linux/bio.h b/include/linux/bio.h index 2585402c2b8b..cd8d47bf34b4 100644 --- a/include/linux/bio.h +++ b/include/linux/bio.h @@ -188,8 +188,15 @@ struct bio { #define __BVEC_END(bio) bio_iovec_idx((bio), (bio)->bi_vcnt - 1) #define __BVEC_START(bio) bio_iovec_idx((bio), (bio)->bi_idx) + +/* + * allow arch override, for eg virtualized architectures (put in asm/io.h) + */ +#ifndef BIOVEC_PHYS_MERGEABLE #define BIOVEC_PHYS_MERGEABLE(vec1, vec2) \ ((bvec_to_phys((vec1)) + (vec1)->bv_len) == bvec_to_phys((vec2))) +#endif + #define BIOVEC_VIRT_MERGEABLE(vec1, vec2) \ ((((bvec_to_phys((vec1)) + (vec1)->bv_len) | bvec_to_phys((vec2))) & (BIO_VMERGE_BOUNDARY - 1)) == 0) #define __BIO_SEG_BOUNDARY(addr1, addr2, mask) \ diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index f04b0e223d82..1b7dc44bf3c1 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -522,6 +522,7 @@ extern int blk_hw_contig_segment(request_queue_t *q, struct bio *, struct bio *) extern int scsi_cmd_ioctl(struct file *, struct gendisk *, unsigned int, void __user *); extern void blk_start_queue(request_queue_t *q); extern void blk_stop_queue(request_queue_t *q); +extern void blk_sync_queue(struct request_queue *q); extern void __blk_stop_queue(request_queue_t *q); extern void blk_run_queue(request_queue_t *); extern void blk_queue_activity_fn(request_queue_t *, activity_fn *, void *); diff --git a/include/linux/cdev.h b/include/linux/cdev.h index f1996ec09e96..8da37e29cb87 100644 --- a/include/linux/cdev.h +++ b/include/linux/cdev.h @@ -17,8 +17,6 @@ struct cdev *cdev_alloc(void); void cdev_put(struct cdev *p); -struct kobject *cdev_get(struct cdev *); - int cdev_add(struct cdev *, dev_t, unsigned); void cdev_del(struct cdev *); diff --git a/include/linux/compat_ioctl.h b/include/linux/compat_ioctl.h index c8c2cea10623..ab091956f248 100644 --- a/include/linux/compat_ioctl.h +++ b/include/linux/compat_ioctl.h @@ -140,6 +140,7 @@ COMPATIBLE_IOCTL(DM_TABLE_CLEAR_32) COMPATIBLE_IOCTL(DM_TABLE_DEPS_32) COMPATIBLE_IOCTL(DM_TABLE_STATUS_32) COMPATIBLE_IOCTL(DM_LIST_VERSIONS_32) +COMPATIBLE_IOCTL(DM_TARGET_MSG_32) COMPATIBLE_IOCTL(DM_VERSION) COMPATIBLE_IOCTL(DM_REMOVE_ALL) COMPATIBLE_IOCTL(DM_LIST_DEVICES) @@ -154,6 +155,7 @@ COMPATIBLE_IOCTL(DM_TABLE_CLEAR) COMPATIBLE_IOCTL(DM_TABLE_DEPS) COMPATIBLE_IOCTL(DM_TABLE_STATUS) COMPATIBLE_IOCTL(DM_LIST_VERSIONS) +COMPATIBLE_IOCTL(DM_TARGET_MSG) /* Big K */ COMPATIBLE_IOCTL(PIO_FONT) COMPATIBLE_IOCTL(GIO_FONT) diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h index f8543228663f..060cf3bba586 100644 --- a/include/linux/cpufreq.h +++ b/include/linux/cpufreq.h @@ -261,8 +261,8 @@ int cpufreq_parse_governor (char *str_governor, unsigned int *policy, struct cpu *********************************************************************/ #ifdef CONFIG_CPU_FREQ_24_API -int cpufreq_setmax(unsigned int cpu); -int cpufreq_set(unsigned int kHz, unsigned int cpu); +int __deprecated cpufreq_setmax(unsigned int cpu); +int __deprecated cpufreq_set(unsigned int kHz, unsigned int cpu); /* /proc/sys/cpu */ @@ -360,4 +360,23 @@ void cpufreq_frequency_table_get_attr(struct cpufreq_frequency_table *table, void cpufreq_frequency_table_put_attr(unsigned int cpu); +/********************************************************************* + * UNIFIED DEBUG HELPERS * + *********************************************************************/ + +#define CPUFREQ_DEBUG_CORE 1 +#define CPUFREQ_DEBUG_DRIVER 2 +#define CPUFREQ_DEBUG_GOVERNOR 4 + +#ifdef CONFIG_CPU_FREQ_DEBUG + +extern void cpufreq_debug_printk(unsigned int type, const char *prefix, + const char *fmt, ...); + +#else + +#define cpufreq_debug_printk(msg...) do { } while(0) + +#endif /* CONFIG_CPU_FREQ_DEBUG */ + #endif /* _LINUX_CPUFREQ_H */ diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h index 7abe54e3ee70..a6282ab22b8c 100644 --- a/include/linux/device-mapper.h +++ b/include/linux/device-mapper.h @@ -1,5 +1,6 @@ /* * Copyright (C) 2001 Sistina Software (UK) Limited. + * Copyright (C) 2004 Red Hat, Inc. All rights reserved. * * This file is released under the LGPL. */ @@ -57,6 +58,8 @@ typedef void (*dm_resume_fn) (struct dm_target *ti); typedef int (*dm_status_fn) (struct dm_target *ti, status_type_t status_type, char *result, unsigned int maxlen); +typedef int (*dm_message_fn) (struct dm_target *ti, unsigned argc, char **argv); + void dm_error(const char *message); /* @@ -82,6 +85,7 @@ struct target_type { dm_suspend_fn suspend; dm_resume_fn resume; dm_status_fn status; + dm_message_fn message; }; struct io_restrictions { diff --git a/include/linux/device.h b/include/linux/device.h index 49a01033a304..c64cec37dd69 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -268,12 +268,7 @@ struct device { void *platform_data; /* Platform specific data (e.g. ACPI, BIOS data relevant to device) */ struct dev_pm_info power; - u32 power_state; /* Current operating state. In - ACPI-speak, this is D0-D3, D0 - being fully functional, and D3 - being off. */ - unsigned char *saved_state; /* saved device state */ u32 detach_state; /* State to enter when device is detached from its driver. */ diff --git a/include/linux/dio.h b/include/linux/dio.h index d42c86b9608d..fae9395fcf4f 100644 --- a/include/linux/dio.h +++ b/include/linux/dio.h @@ -254,7 +254,7 @@ static inline struct dio_driver *dio_dev_driver(const struct dio_dev *d) #define dio_resource_start(d) ((d)->resource.start) #define dio_resource_end(d) ((d)->resource.end) -#define dio_resource_len(d) ((d)->resource.end-(z)->resource.start+1) +#define dio_resource_len(d) ((d)->resource.end-(d)->resource.start+1) #define dio_resource_flags(d) ((d)->resource.flags) #define dio_request_device(d, name) \ diff --git a/include/linux/dm-ioctl.h b/include/linux/dm-ioctl.h index 03f99db7ad7b..183e777d7786 100644 --- a/include/linux/dm-ioctl.h +++ b/include/linux/dm-ioctl.h @@ -1,5 +1,6 @@ /* * Copyright (C) 2001 - 2003 Sistina Software (UK) Limited. + * Copyright (C) 2004 Red Hat, Inc. All rights reserved. * * This file is released under the LGPL. */ @@ -76,6 +77,9 @@ * * DM_TABLE_STATUS: * Return the targets status for the 'active' table. + * + * DM_TARGET_MSG: + * Pass a message string to the target at a specific offset of a device. */ /* @@ -179,6 +183,15 @@ struct dm_target_versions { }; /* + * Used to pass message to a target + */ +struct dm_target_msg { + uint64_t sector; /* Device sector */ + + char message[0]; +}; + +/* * If you change this make sure you make the corresponding change * to dm-ioctl.c:lookup_ioctl() */ @@ -204,6 +217,7 @@ enum { /* Added later */ DM_LIST_VERSIONS_CMD, + DM_TARGET_MSG_CMD, }; /* @@ -232,6 +246,7 @@ typedef char ioctl_struct[308]; #define DM_TABLE_DEPS_32 _IOWR(DM_IOCTL, DM_TABLE_DEPS_CMD, ioctl_struct) #define DM_TABLE_STATUS_32 _IOWR(DM_IOCTL, DM_TABLE_STATUS_CMD, ioctl_struct) #define DM_LIST_VERSIONS_32 _IOWR(DM_IOCTL, DM_LIST_VERSIONS_CMD, ioctl_struct) +#define DM_TARGET_MSG_32 _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, ioctl_struct) #endif #define DM_IOCTL 0xfd @@ -254,10 +269,12 @@ typedef char ioctl_struct[308]; #define DM_LIST_VERSIONS _IOWR(DM_IOCTL, DM_LIST_VERSIONS_CMD, struct dm_ioctl) +#define DM_TARGET_MSG _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl) + #define DM_VERSION_MAJOR 4 -#define DM_VERSION_MINOR 1 +#define DM_VERSION_MINOR 3 #define DM_VERSION_PATCHLEVEL 0 -#define DM_VERSION_EXTRA "-ioctl (2003-12-10)" +#define DM_VERSION_EXTRA "-ioctl (2004-09-30)" /* Status bits */ #define DM_READONLY_FLAG (1 << 0) /* In/Out */ diff --git a/include/linux/edd.h b/include/linux/edd.h index 242600817a8d..5f93881106fa 100644 --- a/include/linux/edd.h +++ b/include/linux/edd.h @@ -37,18 +37,14 @@ #define EDDEXTSIZE 8 /* change these if you muck with the structures */ #define EDDPARMSIZE 74 #define CHECKEXTENSIONSPRESENT 0x41 -#define EXTENDEDREAD 0x42 #define GETDEVICEPARAMETERS 0x48 #define LEGACYGETDEVICEPARAMETERS 0x08 #define EDDMAGIC1 0x55AA #define EDDMAGIC2 0xAA55 -#define FIXEDDISKSUBSET 0x0001 -#define GET_DEVICE_PARAMETERS_SUPPORTED 0x0007 #define READ_SECTORS 0x02 /* int13 AH=0x02 is READ_SECTORS command */ #define EDD_MBR_SIG_OFFSET 0x1B8 /* offset of signature in the MBR */ -#define EDD_DEV_ADDR_PACKET_LEN 0x10 /* for int13 fn42 */ #define EDD_MBR_SIG_BUF 0x290 /* addr in boot params */ #define EDD_MBR_SIG_MAX 16 /* max number of signatures to store */ #define EDD_MBR_SIG_NR_BUF 0x1ea /* addr of number of MBR signtaures at EDD_MBR_SIG_BUF diff --git a/include/linux/efi.h b/include/linux/efi.h index 0c5c94ab1112..40c0cd72e925 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h @@ -306,7 +306,7 @@ extern int __init efi_set_rtc_mmss(unsigned long nowtime); extern struct efi_memory_map memmap; #ifdef CONFIG_EFI_PCDP -extern void __init efi_setup_pcdp_console(char *); +extern int __init efi_setup_pcdp_console(char *); #endif /* diff --git a/include/linux/efs_fs.h b/include/linux/efs_fs.h index f7c8446239ac..28f368c526fb 100644 --- a/include/linux/efs_fs.h +++ b/include/linux/efs_fs.h @@ -45,6 +45,7 @@ extern efs_block_t efs_map_block(struct inode *, efs_block_t); extern int efs_get_block(struct inode *, sector_t, struct buffer_head *, int); extern struct dentry *efs_lookup(struct inode *, struct dentry *, struct nameidata *); +extern struct dentry *efs_get_parent(struct dentry *); extern int efs_bmap(struct inode *, int); #endif /* __EFS_FS_H__ */ diff --git a/include/linux/ext3_fs.h b/include/linux/ext3_fs.h index d44abc7bd33a..5e0e52b0fc7e 100644 --- a/include/linux/ext3_fs.h +++ b/include/linux/ext3_fs.h @@ -722,7 +722,7 @@ extern struct ext3_group_desc * ext3_get_group_desc(struct super_block * sb, unsigned int block_group, struct buffer_head ** bh); extern int ext3_should_retry_alloc(struct super_block *sb, int *retries); -extern void rsv_window_add(struct super_block *sb, struct reserve_window_node *rsv); +extern void ext3_rsv_window_add(struct super_block *sb, struct ext3_reserve_window_node *rsv); /* dir.c */ extern int ext3_check_dir_entry(const char *, struct inode *, diff --git a/include/linux/ext3_fs_i.h b/include/linux/ext3_fs_i.h index c549633532de..328cd40c5ea4 100644 --- a/include/linux/ext3_fs_i.h +++ b/include/linux/ext3_fs_i.h @@ -20,17 +20,17 @@ #include <linux/rbtree.h> #include <linux/seqlock.h> -struct reserve_window { +struct ext3_reserve_window { __u32 _rsv_start; /* First byte reserved */ __u32 _rsv_end; /* Last byte reserved or 0 */ }; -struct reserve_window_node { +struct ext3_reserve_window_node { struct rb_node rsv_node; atomic_t rsv_goal_size; atomic_t rsv_alloc_hit; seqlock_t rsv_seqlock; - struct reserve_window rsv_window; + struct ext3_reserve_window rsv_window; }; #define rsv_start rsv_window._rsv_start @@ -76,7 +76,7 @@ struct ext3_inode_info { */ __u32 i_next_alloc_goal; /* block reservation window */ - struct reserve_window_node i_rsv_window; + struct ext3_reserve_window_node i_rsv_window; __u32 i_dir_start_lookup; #ifdef CONFIG_EXT3_FS_XATTR diff --git a/include/linux/ext3_fs_sb.h b/include/linux/ext3_fs_sb.h index ac5fb22c5b7c..f61309c81cc4 100644 --- a/include/linux/ext3_fs_sb.h +++ b/include/linux/ext3_fs_sb.h @@ -62,7 +62,7 @@ struct ext3_sb_info { /* root of the per fs reservation window tree */ spinlock_t s_rsv_window_lock; struct rb_root s_rsv_window_root; - struct reserve_window_node s_rsv_window_head; + struct ext3_reserve_window_node s_rsv_window_head; /* Journaling */ struct inode * s_journal_inode; diff --git a/include/linux/fb.h b/include/linux/fb.h index d8f4789dce45..c1bb3123bab3 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h @@ -258,6 +258,24 @@ struct fb_con2fbmap { #define VESA_HSYNC_SUSPEND 2 #define VESA_POWERDOWN 3 + +enum { + /* screen: unblanked, hsync: on, vsync: on */ + FB_BLANK_UNBLANK = VESA_NO_BLANKING, + + /* screen: blanked, hsync: on, vsync: on */ + FB_BLANK_NORMAL = VESA_NO_BLANKING + 1, + + /* screen: blanked, hsync: on, vsync: off */ + FB_BLANK_VSYNC_SUSPEND = VESA_VSYNC_SUSPEND + 1, + + /* screen: blanked, hsync: off, vsync: on */ + FB_BLANK_HSYNC_SUSPEND = VESA_HSYNC_SUSPEND + 1, + + /* screen: blanked, hsync: off, vsync: off */ + FB_BLANK_POWERDOWN = VESA_POWERDOWN + 1 +}; + #define FB_VBLANK_VBLANKING 0x001 /* currently in a vertical blank */ #define FB_VBLANK_HBLANKING 0x002 /* currently in a horizontal blank */ #define FB_VBLANK_HAVE_VBLANK 0x004 /* vertical blanks can be detected */ diff --git a/include/linux/i2c.h b/include/linux/i2c.h index bd2735bdca6b..3000c102171e 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -88,20 +88,12 @@ extern s32 i2c_smbus_write_byte_data(struct i2c_client * client, extern s32 i2c_smbus_read_word_data(struct i2c_client * client, u8 command); extern s32 i2c_smbus_write_word_data(struct i2c_client * client, u8 command, u16 value); -extern s32 i2c_smbus_process_call(struct i2c_client * client, - u8 command, u16 value); -/* Returns the number of read bytes */ -extern s32 i2c_smbus_read_block_data(struct i2c_client * client, - u8 command, u8 *values); +/* Returns the number of bytes transferred */ extern s32 i2c_smbus_write_block_data(struct i2c_client * client, - u8 command, u8 length, - u8 *values); + u8 command, u8 length, + u8 *values); extern s32 i2c_smbus_read_i2c_block_data(struct i2c_client * client, - u8 command, u8 *values); -extern s32 i2c_smbus_write_i2c_block_data(struct i2c_client * client, - u8 command, u8 length, - u8 *values); - + u8 command, u8 *values); /* * A driver is capable of handling one or more physical devices present on diff --git a/include/linux/i2o.h b/include/linux/i2o.h index f571709b0443..777a80f9f4a3 100644 --- a/include/linux/i2o.h +++ b/include/linux/i2o.h @@ -162,9 +162,9 @@ struct i2o_controller { struct notifier_block *event_notifer; /* Events */ atomic_t users; struct list_head list; /* Controller list */ - void *post_port; /* Inbout port address */ - void *reply_port; /* Outbound port address */ - void *irq_mask; /* Interrupt register address */ + void __iomem *post_port; /* Inbout port address */ + void __iomem *reply_port; /* Outbound port address */ + void __iomem *irq_mask; /* Interrupt register address */ /* Dynamic LCT related data */ @@ -241,8 +241,8 @@ struct i2o_sys_tbl { extern struct list_head i2o_controllers; /* Message functions */ -static inline u32 i2o_msg_get(struct i2o_controller *, struct i2o_message **); -extern u32 i2o_msg_get_wait(struct i2o_controller *, struct i2o_message **, +static inline u32 i2o_msg_get(struct i2o_controller *, struct i2o_message __iomem **); +extern u32 i2o_msg_get_wait(struct i2o_controller *, struct i2o_message __iomem **, int); static inline void i2o_msg_post(struct i2o_controller *, u32); static inline int i2o_msg_post_wait(struct i2o_controller *, u32, @@ -263,7 +263,6 @@ static inline void i2o_dma_unmap(struct device *, struct i2o_dma *); /* IOP functions */ extern int i2o_status_get(struct i2o_controller *); -extern int i2o_hrt_get(struct i2o_controller *); extern int i2o_event_register(struct i2o_device *, struct i2o_driver *, int, u32); @@ -385,7 +384,6 @@ extern int i2o_device_claim_release(struct i2o_device *); /* Exec OSM functions */ extern int i2o_exec_lct_get(struct i2o_controller *); -extern int i2o_exec_lct_notify(struct i2o_controller *, u32); /* device to i2o_device and driver to i2o_driver convertion functions */ #define to_i2o_driver(drv) container_of(drv,struct i2o_driver, driver) @@ -445,7 +443,7 @@ static inline void I2O_IRQ_WRITE32(struct i2o_controller *c, u32 val) * available returns I2O_QUEUE_EMPTY and msg is leaved untouched. */ static inline u32 i2o_msg_get(struct i2o_controller *c, - struct i2o_message **msg) + struct i2o_message __iomem **msg) { u32 m; @@ -515,10 +513,8 @@ static inline void i2o_flush_reply(struct i2o_controller *c, u32 m) static inline struct i2o_message *i2o_msg_out_to_virt(struct i2o_controller *c, u32 m) { - if (unlikely - (m < c->out_queue.phys - || m >= c->out_queue.phys + c->out_queue.len)) - BUG(); + BUG_ON(m < c->out_queue.phys + || m >= c->out_queue.phys + c->out_queue.len); return c->out_queue.virt + (m - c->out_queue.phys); }; @@ -534,7 +530,7 @@ static inline struct i2o_message *i2o_msg_out_to_virt(struct i2o_controller *c, * work for receive side messages as they are kmalloc objects * in a different pool. */ -static inline struct i2o_message *i2o_msg_in_to_virt(struct i2o_controller *c, +static inline struct i2o_message __iomem *i2o_msg_in_to_virt(struct i2o_controller *c, u32 m) { return c->in_queue.virt + m; @@ -633,7 +629,6 @@ static inline void i2o_dma_unmap(struct device *dev, struct i2o_dma *addr) #define i2o_raw_writel(val, mem) __raw_writel(cpu_to_le32(val), mem) extern int i2o_parm_field_get(struct i2o_device *, int, int, void *, int); -extern int i2o_parm_field_set(struct i2o_device *, int, int, void *, int); extern int i2o_parm_table_get(struct i2o_device *, int, int, int, void *, int, void *, int); /* FIXME: remove diff --git a/include/linux/ioport.h b/include/linux/ioport.h index 363aef7268c6..62d042099e89 100644 --- a/include/linux/ioport.h +++ b/include/linux/ioport.h @@ -82,6 +82,11 @@ struct resource_list { #define IORESOURCE_MEM_SHADOWABLE (1<<5) /* dup: IORESOURCE_SHADOWABLE */ #define IORESOURCE_MEM_EXPANSIONROM (1<<6) +/* PCI ROM control bits (IORESOURCE_BITS) */ +#define IORESOURCE_ROM_ENABLE (1<<0) /* ROM is enabled, same as PCI_ROM_ADDRESS_ENABLE */ +#define IORESOURCE_ROM_SHADOW (1<<1) /* ROM is copy at C000:0 */ +#define IORESOURCE_ROM_COPY (1<<2) /* ROM is alloc'd copy, resource field overlaid */ + /* PC/ISA/whatever - the normal PC address spaces: IO and memory */ extern struct resource ioport_resource; extern struct resource iomem_resource; diff --git a/include/linux/jffs2_fs_i.h b/include/linux/jffs2_fs_i.h index 14743de6cf59..6dbb1cce6646 100644 --- a/include/linux/jffs2_fs_i.h +++ b/include/linux/jffs2_fs_i.h @@ -1,10 +1,11 @@ -/* $Id: jffs2_fs_i.h,v 1.16 2003/01/09 14:03:21 dwmw2 Exp $ */ +/* $Id: jffs2_fs_i.h,v 1.17 2004/11/11 23:51:27 dwmw2 Exp $ */ #ifndef _JFFS2_FS_I #define _JFFS2_FS_I #include <linux/version.h> #include <linux/rbtree.h> +#include <asm/semaphore.h> struct jffs2_inode_info { /* We need an internal semaphore similar to inode->i_sem. diff --git a/include/linux/kobject_uevent.h b/include/linux/kobject_uevent.h index 91405f7300a1..aa664fe7e561 100644 --- a/include/linux/kobject_uevent.h +++ b/include/linux/kobject_uevent.h @@ -28,6 +28,7 @@ enum kobject_action { KOBJ_MOUNT = (__force kobject_action_t) 0x04, /* mount event for block devices */ KOBJ_UMOUNT = (__force kobject_action_t) 0x05, /* umount event for block devices */ KOBJ_OFFLINE = (__force kobject_action_t) 0x06, /* offline event for hotplug devices */ + KOBJ_ONLINE = (__force kobject_action_t) 0x07, /* online event for hotplug devices */ }; diff --git a/include/linux/libata.h b/include/linux/libata.h index 79145d1a807a..605e0a728c0e 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h @@ -25,6 +25,7 @@ #include <linux/delay.h> #include <linux/interrupt.h> +#include <linux/pci.h> #include <asm/io.h> #include <linux/ata.h> #include <linux/workqueue.h> @@ -68,6 +69,12 @@ /* defines only for the constants which don't work well as enums */ #define ATA_TAG_POISON 0xfafbfcfdU +/* move to PCI layer? */ +static inline struct device *pci_dev_to_dev(struct pci_dev *pdev) +{ + return &pdev->dev; +} + enum { /* various global constants */ LIBATA_MAX_PRD = ATA_MAX_PRD / 2, @@ -184,7 +191,7 @@ struct ata_ioports { struct ata_probe_ent { struct list_head node; - struct pci_dev *pdev; + struct device *dev; struct ata_port_operations *port_ops; Scsi_Host_Template *sht; struct ata_ioports port[ATA_MAX_PORTS]; @@ -203,7 +210,7 @@ struct ata_probe_ent { struct ata_host_set { spinlock_t lock; - struct pci_dev *pdev; + struct device *dev; unsigned long irq; void __iomem *mmio_base; unsigned int n_ports; @@ -226,7 +233,7 @@ struct ata_queued_cmd { unsigned int tag; unsigned int n_elem; - int pci_dma_dir; + int dma_dir; unsigned int nsect; unsigned int cursect; @@ -361,12 +368,6 @@ struct ata_port_info { struct ata_port_operations *port_ops; }; -struct pci_bits { - unsigned int reg; /* PCI config register to read */ - unsigned int width; /* 1 (8 bit), 2 (16 bit), 4 (32 bit) */ - unsigned long mask; - unsigned long val; -}; extern void ata_port_probe(struct ata_port *); extern void __sata_phy_reset(struct ata_port *ap); @@ -374,9 +375,11 @@ extern void sata_phy_reset(struct ata_port *ap); extern void ata_bus_reset(struct ata_port *ap); extern void ata_port_disable(struct ata_port *); extern void ata_std_ports(struct ata_ioports *ioaddr); +#ifdef CONFIG_PCI extern int ata_pci_init_one (struct pci_dev *pdev, struct ata_port_info **port_info, unsigned int n_ports); extern void ata_pci_remove_one (struct pci_dev *pdev); +#endif /* CONFIG_PCI */ extern int ata_device_add(struct ata_probe_ent *ent); extern int ata_scsi_detect(Scsi_Host_Template *sht); extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg); @@ -398,10 +401,6 @@ extern void ata_exec_command(struct ata_port *ap, struct ata_taskfile *tf); extern int ata_port_start (struct ata_port *ap); extern void ata_port_stop (struct ata_port *ap); extern irqreturn_t ata_interrupt (int irq, void *dev_instance, struct pt_regs *regs); -extern struct ata_probe_ent * -ata_pci_init_native_mode(struct pci_dev *pdev, struct ata_port_info **port); -extern struct ata_probe_ent * -ata_pci_init_legacy_mode(struct pci_dev *pdev, struct ata_port_info **port); extern void ata_qc_prep(struct ata_queued_cmd *qc); extern int ata_qc_issue_prot(struct ata_queued_cmd *qc); extern void ata_sg_init_one(struct ata_queued_cmd *qc, void *buf, @@ -414,7 +413,6 @@ extern void ata_dev_id_string(u16 *id, unsigned char *s, extern void ata_bmdma_setup (struct ata_queued_cmd *qc); extern void ata_bmdma_start (struct ata_queued_cmd *qc); extern void ata_bmdma_irq_clear(struct ata_port *ap); -extern int pci_test_config_bits(struct pci_dev *pdev, struct pci_bits *bits); extern void ata_qc_complete(struct ata_queued_cmd *qc, u8 drv_stat); extern void ata_eng_timeout(struct ata_port *ap); extern void ata_scsi_simulate(u16 *id, struct scsi_cmnd *cmd, @@ -424,6 +422,24 @@ extern int ata_std_bios_param(struct scsi_device *sdev, sector_t capacity, int geom[]); extern int ata_scsi_slave_config(struct scsi_device *sdev); + +#ifdef CONFIG_PCI +struct pci_bits { + unsigned int reg; /* PCI config register to read */ + unsigned int width; /* 1 (8 bit), 2 (16 bit), 4 (32 bit) */ + unsigned long mask; + unsigned long val; +}; + +extern struct ata_probe_ent * +ata_pci_init_native_mode(struct pci_dev *pdev, struct ata_port_info **port); +extern struct ata_probe_ent * +ata_pci_init_legacy_mode(struct pci_dev *pdev, struct ata_port_info **port); +extern int pci_test_config_bits(struct pci_dev *pdev, struct pci_bits *bits); + +#endif /* CONFIG_PCI */ + + static inline unsigned int ata_tag_valid(unsigned int tag) { return (tag < ATA_MAX_QUEUE) ? 1 : 0; diff --git a/include/linux/mc146818rtc.h b/include/linux/mc146818rtc.h index cde7dbae375e..bbc93ae217e1 100644 --- a/include/linux/mc146818rtc.h +++ b/include/linux/mc146818rtc.h @@ -13,10 +13,12 @@ #include <asm/io.h> #include <linux/rtc.h> /* get the user-level API */ -#include <linux/spinlock.h> /* spinlock_t */ #include <asm/mc146818rtc.h> /* register access macros */ +#ifdef __KERNEL__ +#include <linux/spinlock.h> /* spinlock_t */ extern spinlock_t rtc_lock; /* serialize CMOS RAM access */ +#endif /********************************************************************** * register summary diff --git a/include/linux/mm.h b/include/linux/mm.h index 49a1aee2119e..ad76b8d51800 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -41,7 +41,7 @@ extern int sysctl_legacy_va_layout; #define MM_VM_SIZE(mm) TASK_SIZE #endif -#define nth_page(page,n) pfn_to_page(page_to_pfn((page)) + n) +#define nth_page(page,n) pfn_to_page(page_to_pfn((page)) + (n)) /* * Linux kernel virtual memory manager primitives. @@ -675,7 +675,7 @@ extern struct vm_area_struct *vma_merge(struct mm_struct *, extern struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *); extern int split_vma(struct mm_struct *, struct vm_area_struct *, unsigned long addr, int new_below); -extern void insert_vm_struct(struct mm_struct *, struct vm_area_struct *); +extern int insert_vm_struct(struct mm_struct *, struct vm_area_struct *); extern void __vma_link_rb(struct mm_struct *, struct vm_area_struct *, struct rb_node **, struct rb_node *); extern struct vm_area_struct *copy_vma(struct vm_area_struct **, diff --git a/include/linux/module.h b/include/linux/module.h index 59aebb15be2a..c8dd7b8495c6 100644 --- a/include/linux/module.h +++ b/include/linux/module.h @@ -559,7 +559,7 @@ struct obsolete_modparm { void *addr; }; -static inline void __deprecated MODULE_PARM_(void) { } +static inline void MODULE_PARM_(void) { } #ifdef MODULE /* DEPRECATED: Do not use. */ #define MODULE_PARM(var,type) \ diff --git a/include/linux/mount.h b/include/linux/mount.h index 42e2c9460088..8b8d3b9beefd 100644 --- a/include/linux/mount.h +++ b/include/linux/mount.h @@ -13,6 +13,8 @@ #ifdef __KERNEL__ #include <linux/list.h> +#include <linux/spinlock.h> +#include <asm/atomic.h> #define MNT_NOSUID 1 #define MNT_NODEV 2 diff --git a/include/linux/mtd/cfi.h b/include/linux/mtd/cfi.h index 284f24851f1d..ba4b0d649661 100644 --- a/include/linux/mtd/cfi.h +++ b/include/linux/mtd/cfi.h @@ -1,7 +1,7 @@ /* Common Flash Interface structures * See http://support.intel.com/design/flash/technote/index.htm - * $Id: cfi.h,v 1.48 2004/10/20 23:08:05 dwmw2 Exp $ + * $Id: cfi.h,v 1.49 2004/11/15 20:56:32 nico Exp $ */ #ifndef __MTD_CFI_H__ @@ -145,6 +145,24 @@ struct cfi_pri_intelext { uint16_t ProtRegAddr; uint8_t FactProtRegSize; uint8_t UserProtRegSize; + uint8_t extra[0]; +} __attribute__((packed)); + +struct cfi_intelext_blockinfo { + uint16_t NumIdentBlocks; + uint16_t BlockSize; + uint16_t MinBlockEraseCycles; + uint8_t BitsPerCell; + uint8_t BlockCap; +} __attribute__((packed)); + +struct cfi_intelext_regioninfo { + uint16_t NumIdentPartitions; + uint8_t NumOpAllowed; + uint8_t NumOpAllowedSimProgMode; + uint8_t NumOpAllowedSimEraMode; + uint8_t NumBlockTypes; + struct cfi_intelext_blockinfo BlockTypes[1]; } __attribute__((packed)); /* Vendor-Specific PRI for AMD/Fujitsu Extended Command Set (0x0002) */ diff --git a/include/linux/mtd/partitions.h b/include/linux/mtd/partitions.h index 100ea79de16d..50b2edfc8f11 100644 --- a/include/linux/mtd/partitions.h +++ b/include/linux/mtd/partitions.h @@ -5,7 +5,7 @@ * * This code is GPL * - * $Id: partitions.h,v 1.15 2003/07/09 11:15:43 dwmw2 Exp $ + * $Id: partitions.h,v 1.16 2004/11/16 18:34:40 dwmw2 Exp $ */ #ifndef MTD_PARTITIONS_H @@ -64,7 +64,6 @@ struct mtd_part_parser { int (*parse_fn)(struct mtd_info *, struct mtd_partition **, unsigned long); }; -extern struct mtd_part_parser *get_partition_parser(const char *name); extern int register_mtd_parser(struct mtd_part_parser *parser); extern int deregister_mtd_parser(struct mtd_part_parser *parser); extern int parse_mtd_partitions(struct mtd_info *master, const char **types, diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index d2b2c8025dcd..871bcbdf2abd 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -526,20 +526,13 @@ extern int netdev_boot_setup_add(char *name, struct ifmap *map); extern int netdev_boot_setup_check(struct net_device *dev); extern unsigned long netdev_boot_base(const char *prefix, int unit); extern struct net_device *dev_getbyhwaddr(unsigned short type, char *hwaddr); -extern struct net_device *__dev_getfirstbyhwtype(unsigned short type); extern struct net_device *dev_getfirstbyhwtype(unsigned short type); extern void dev_add_pack(struct packet_type *pt); extern void dev_remove_pack(struct packet_type *pt); extern void __dev_remove_pack(struct packet_type *pt); -extern int __dev_get(const char *name); -static inline int __deprecated dev_get(const char *name) -{ - return __dev_get(name); -} + extern struct net_device *dev_get_by_flags(unsigned short flags, unsigned short mask); -extern struct net_device *__dev_get_by_flags(unsigned short flags, - unsigned short mask); extern struct net_device *dev_get_by_name(const char *name); extern struct net_device *__dev_get_by_name(const char *name); extern int dev_alloc_name(struct net_device *dev, const char *name); @@ -553,7 +546,6 @@ extern void synchronize_net(void); extern int register_netdevice_notifier(struct notifier_block *nb); extern int unregister_netdevice_notifier(struct notifier_block *nb); extern int call_netdevice_notifiers(unsigned long val, void *v); -extern int dev_new_index(void); extern struct net_device *dev_get_by_index(int ifindex); extern struct net_device *__dev_get_by_index(int ifindex); extern int dev_restart(struct net_device *dev); @@ -910,10 +902,7 @@ static inline void netif_tx_disable(struct net_device *dev) /* These functions live elsewhere (drivers/net/net_init.c, but related) */ extern void ether_setup(struct net_device *dev); -extern void fddi_setup(struct net_device *dev); -extern void tr_setup(struct net_device *dev); -extern void fc_setup(struct net_device *dev); -extern void fc_freedev(struct net_device *dev); + /* Support for loadable net-drivers */ extern struct net_device *alloc_netdev(int sizeof_priv, const char *name, void (*setup)(struct net_device *)); @@ -936,6 +925,9 @@ extern unsigned long netdev_fc_xoff; extern atomic_t netdev_dropping; extern int netdev_set_master(struct net_device *dev, struct net_device *master); extern int skb_checksum_help(struct sk_buff *skb, int inward); +/* rx skb timestamps */ +extern void net_enable_timestamp(void); +extern void net_disable_timestamp(void); #ifdef CONFIG_SYSCTL extern char *net_sysctl_strdup(const char *s); diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h index ced66929126c..b0ee19e302de 100644 --- a/include/linux/netfilter.h +++ b/include/linux/netfilter.h @@ -173,6 +173,7 @@ extern void nf_reinject(struct sk_buff *skb, unsigned int verdict); extern void (*ip_ct_attach)(struct sk_buff *, struct sk_buff *); +extern void nf_ct_attach(struct sk_buff *, struct sk_buff *); #ifdef CONFIG_NETFILTER_DEBUG extern void nf_dump_skb(int pf, struct sk_buff *skb); @@ -183,6 +184,7 @@ extern void nf_invalidate_cache(int pf); #else /* !CONFIG_NETFILTER */ #define NF_HOOK(pf, hook, skb, indev, outdev, okfn) (okfn)(skb) +static inline void nf_ct_attach(struct sk_buff *new, struct sk_buff *skb) {} #endif /*CONFIG_NETFILTER*/ #endif /*__KERNEL__*/ diff --git a/include/linux/netfilter_ipv4/ip_nat_protocol.h b/include/linux/netfilter_ipv4/ip_nat_protocol.h index e81795806ee3..f343239cd4ea 100644 --- a/include/linux/netfilter_ipv4/ip_nat_protocol.h +++ b/include/linux/netfilter_ipv4/ip_nat_protocol.h @@ -18,7 +18,7 @@ struct ip_nat_protocol /* Do a packet translation according to the ip_nat_proto_manip * and manip type. Return true if succeeded. */ int (*manip_pkt)(struct sk_buff **pskb, - unsigned int hdroff, + unsigned int iphdroff, const struct ip_conntrack_manip *manip, enum ip_nat_manip_type maniptype); diff --git a/include/linux/pci-acpi.h b/include/linux/pci-acpi.h new file mode 100644 index 000000000000..857126a36ecc --- /dev/null +++ b/include/linux/pci-acpi.h @@ -0,0 +1,61 @@ +/* + * File pci-acpi.h + * + * Copyright (C) 2004 Intel + * Copyright (C) Tom Long Nguyen (tom.l.nguyen@intel.com) + */ + +#ifndef _PCI_ACPI_H_ +#define _PCI_ACPI_H_ + +#define OSC_QUERY_TYPE 0 +#define OSC_SUPPORT_TYPE 1 +#define OSC_CONTROL_TYPE 2 +#define OSC_SUPPORT_MASKS 0x1f + +/* + * _OSC DW0 Definition + */ +#define OSC_QUERY_ENABLE 1 +#define OSC_REQUEST_ERROR 2 +#define OSC_INVALID_UUID_ERROR 4 +#define OSC_INVALID_REVISION_ERROR 8 +#define OSC_CAPABILITIES_MASK_ERROR 16 + +/* + * _OSC DW1 Definition (OS Support Fields) + */ +#define OSC_EXT_PCI_CONFIG_SUPPORT 1 +#define OSC_ACTIVE_STATE_PWR_SUPPORT 2 +#define OSC_CLOCK_PWR_CAPABILITY_SUPPORT 4 +#define OSC_PCI_SEGMENT_GROUPS_SUPPORT 8 +#define OSC_MSI_SUPPORT 16 + +/* + * _OSC DW1 Definition (OS Control Fields) + */ +#define OSC_PCI_EXPRESS_NATIVE_HP_CONTROL 1 +#define OSC_SHPC_NATIVE_HP_CONTROL 2 +#define OSC_PCI_EXPRESS_PME_CONTROL 4 +#define OSC_PCI_EXPRESS_AER_CONTROL 8 +#define OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL 16 + +#define OSC_CONTROL_MASKS (OSC_PCI_EXPRESS_NATIVE_HP_CONTROL | \ + OSC_SHPC_NATIVE_HP_CONTROL | \ + OSC_PCI_EXPRESS_PME_CONTROL | \ + OSC_PCI_EXPRESS_AER_CONTROL | \ + OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL) + +#ifdef CONFIG_ACPI +extern acpi_status pci_osc_control_set(u32 flags); +extern acpi_status pci_osc_support_set(u32 flags); +#else +#if !defined(acpi_status) +typedef u32 acpi_status; +#define AE_ERROR (acpi_status) (0x0001) +#endif +static inline acpi_status pci_osc_control_set(u32 flags) {return AE_ERROR;} +static inline acpi_status pci_osc_support_set(u32 flags) {return AE_ERROR;} +#endif + +#endif /* _PCI_ACPI_H_ */ diff --git a/include/linux/pci.h b/include/linux/pci.h index e7fa282ddede..6e0973f334b1 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -537,6 +537,8 @@ struct pci_dev { unsigned int is_busmaster:1; /* device is busmaster */ u32 saved_config_space[16]; /* config space saved at suspend time */ + struct bin_attribute *rom_attr; /* attribute descriptor for sysfs ROM entry */ + int rom_attr_enabled; /* has display of the rom attribute been enabled? */ #ifdef CONFIG_PCI_NAMES #define PCI_NAME_SIZE 96 #define PCI_NAME_HALF __stringify(43) /* less than half to handle slop */ @@ -713,6 +715,7 @@ static inline struct pci_bus *pci_scan_bus(int bus, struct pci_ops *ops, void *s int pci_scan_slot(struct pci_bus *bus, int devfn); struct pci_dev * pci_scan_single_device(struct pci_bus *bus, int devfn); unsigned int pci_scan_child_bus(struct pci_bus *bus); +void pci_bus_add_device(struct pci_dev *dev); void pci_bus_add_devices(struct pci_bus *bus); void pci_name_device(struct pci_dev *dev); char *pci_class_name(u32 class); @@ -785,6 +788,12 @@ int pci_dac_set_dma_mask(struct pci_dev *dev, u64 mask); int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask); int pci_assign_resource(struct pci_dev *dev, int i); +/* ROM control related routines */ +void __iomem *pci_map_rom(struct pci_dev *pdev, size_t *size); +void __iomem *pci_map_rom_copy(struct pci_dev *pdev, size_t *size); +void pci_unmap_rom(struct pci_dev *pdev, void __iomem *rom); +void pci_remove_rom(struct pci_dev *pdev); + /* Power management related routines */ int pci_save_state(struct pci_dev *dev); int pci_restore_state(struct pci_dev *dev); @@ -989,31 +998,33 @@ static inline char *pci_name(struct pci_dev *pdev) */ struct pci_fixup { - u16 vendor, device; /* You can use PCI_ANY_ID here of course */ + u16 vendor, device; /* You can use PCI_ANY_ID here of course */ void (*hook)(struct pci_dev *dev); }; enum pci_fixup_pass { - pci_fixup_header, /* Called immediately after reading configuration header */ + pci_fixup_early, /* Before probing BARs */ + pci_fixup_header, /* After reading configuration header */ pci_fixup_final, /* Final phase of device fixups */ pci_fixup_enable, /* pci_enable_device() time */ }; /* Anonymous variables would be nice... */ -#define DECLARE_PCI_FIXUP_HEADER(vendor, device, hook) \ - static struct pci_fixup __pci_fixup_##vendor##device##hook __attribute_used__ \ - __attribute__((__section__(".pci_fixup_header"))) = { \ - vendor, device, hook }; - -#define DECLARE_PCI_FIXUP_FINAL(vendor, device, hook) \ - static struct pci_fixup __pci_fixup_##vendor##device##hook __attribute_used__ \ - __attribute__((__section__(".pci_fixup_final"))) = { \ - vendor, device, hook }; - -#define DECLARE_PCI_FIXUP_ENABLE(vendor, device, hook) \ - static struct pci_fixup __pci_fixup_##vendor##device##hook __attribute_used__ \ - __attribute__((__section__(".pci_fixup_enable"))) = { \ - vendor, device, hook }; +#define DECLARE_PCI_FIXUP_SECTION(section, name, vendor, device, hook) \ + static struct pci_fixup __pci_fixup_##name __attribute_used__ \ + __attribute__((__section__(#section))) = { vendor, device, hook }; +#define DECLARE_PCI_FIXUP_EARLY(vendor, device, hook) \ + DECLARE_PCI_FIXUP_SECTION(.pci_fixup_early, \ + vendor##device##hook, vendor, device, hook) +#define DECLARE_PCI_FIXUP_HEADER(vendor, device, hook) \ + DECLARE_PCI_FIXUP_SECTION(.pci_fixup_header, \ + vendor##device##hook, vendor, device, hook) +#define DECLARE_PCI_FIXUP_FINAL(vendor, device, hook) \ + DECLARE_PCI_FIXUP_SECTION(.pci_fixup_final, \ + vendor##device##hook, vendor, device, hook) +#define DECLARE_PCI_FIXUP_ENABLE(vendor, device, hook) \ + DECLARE_PCI_FIXUP_SECTION(.pci_fixup_enable, \ + vendor##device##hook, vendor, device, hook) void pci_fixup_device(enum pci_fixup_pass pass, struct pci_dev *dev); diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 35bb32b752bb..5cfcf8941445 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h @@ -523,6 +523,7 @@ #define PCI_VENDOR_ID_DELL 0x1028 #define PCI_DEVICE_ID_DELL_RACIII 0x0008 +#define PCI_DEVICE_ID_DELL_RAC4 0x0012 #define PCI_VENDOR_ID_MATROX 0x102B #define PCI_DEVICE_ID_MATROX_MGA_2 0x0518 @@ -1082,6 +1083,7 @@ #define PCI_DEVICE_ID_NVIDIA_NVENET_8 0x0056 #define PCI_DEVICE_ID_NVIDIA_NVENET_9 0x0057 #define PCI_DEVICE_ID_NVIDIA_CK804_AUDIO 0x0059 +#define PCI_DEVICE_ID_NVIDIA_NFORCE2_SMBUS 0x0064 #define PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE 0x0065 #define PCI_DEVICE_ID_NVIDIA_NVENET_2 0x0066 #define PCI_DEVICE_ID_NVIDIA_MCP2_AUDIO 0x006a @@ -1093,6 +1095,7 @@ #define PCI_DEVICE_ID_NVIDIA_NFORCE3 0x00d1 #define PCI_DEVICE_ID_NVIDIA_MCP3_AUDIO 0x00da #define PCI_DEVICE_ID_NVIDIA_NFORCE3S 0x00e1 +#define PCI_DEVICE_ID_NVIDIA_NFORCE3_SMBUS 0x00d4 #define PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE 0x00d5 #define PCI_DEVICE_ID_NVIDIA_NVENET_3 0x00d6 #define PCI_DEVICE_ID_NVIDIA_MCP3_AUDIO 0x00da @@ -1140,6 +1143,7 @@ #define PCI_DEVICE_ID_NVIDIA_QUADRO4_900XGL 0x0258 #define PCI_DEVICE_ID_NVIDIA_QUADRO4_750XGL 0x0259 #define PCI_DEVICE_ID_NVIDIA_QUADRO4_700XGL 0x025B +#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_GO_5200 0x0329 #define PCI_VENDOR_ID_IMS 0x10e0 #define PCI_DEVICE_ID_IMS_8849 0x8849 @@ -1918,11 +1922,15 @@ #define PCI_DEVICE_ID_TIGON3_5704S 0x16a8 #define PCI_DEVICE_ID_TIGON3_5702A3 0x16c6 #define PCI_DEVICE_ID_TIGON3_5703A3 0x16c7 +#define PCI_DEVICE_ID_TIGON3_5781 0x16dd +#define PCI_DEVICE_ID_TIGON3_5753 0x16f7 +#define PCI_DEVICE_ID_TIGON3_5753M 0x16fd +#define PCI_DEVICE_ID_TIGON3_5753F 0x16fe #define PCI_DEVICE_ID_TIGON3_5901 0x170d +#define PCI_DEVICE_ID_BCM4401B1 0x170c #define PCI_DEVICE_ID_TIGON3_5901_2 0x170e #define PCI_DEVICE_ID_BCM4401 0x4401 #define PCI_DEVICE_ID_BCM4401B0 0x4402 -#define PCI_DEVICE_ID_BCM4401B1 0x170c #define PCI_VENDOR_ID_ENE 0x1524 #define PCI_DEVICE_ID_ENE_1211 0x1211 @@ -2206,8 +2214,14 @@ #define PCI_DEVICE_ID_INTEL_82830_CGC 0x3577 #define PCI_DEVICE_ID_INTEL_82855GM_HB 0x3580 #define PCI_DEVICE_ID_INTEL_82855GM_IG 0x3582 -#define PCI_DEVICE_ID_INTEL_SMCH 0x3590 +#define PCI_DEVICE_ID_INTEL_E7520_MCH 0x3590 #define PCI_DEVICE_ID_INTEL_E7320_MCH 0x3592 +#define PCI_DEVICE_ID_INTEL_MCH_PA 0x3595 +#define PCI_DEVICE_ID_INTEL_MCH_PA1 0x3596 +#define PCI_DEVICE_ID_INTEL_MCH_PB 0x3597 +#define PCI_DEVICE_ID_INTEL_MCH_PB1 0x3598 +#define PCI_DEVICE_ID_INTEL_MCH_PC 0x3599 +#define PCI_DEVICE_ID_INTEL_MCH_PC1 0x359a #define PCI_DEVICE_ID_INTEL_E7525_MCH 0x359e #define PCI_DEVICE_ID_INTEL_80310 0x530d #define PCI_DEVICE_ID_INTEL_82371SB_0 0x7000 diff --git a/include/linux/pkt_cls.h b/include/linux/pkt_cls.h index de9e1311ecbf..45ac289f1bbf 100644 --- a/include/linux/pkt_cls.h +++ b/include/linux/pkt_cls.h @@ -138,9 +138,9 @@ struct tc_police struct tcf_t { - __u32 install; - __u32 lastuse; - __u32 expires; + __u64 install; + __u64 lastuse; + __u64 expires; }; struct tc_cnt diff --git a/include/linux/profile.h b/include/linux/profile.h index a22f4a15c981..026969a5595c 100644 --- a/include/linux/profile.h +++ b/include/linux/profile.h @@ -53,13 +53,13 @@ int task_handoff_unregister(struct notifier_block * n); int profile_event_register(enum profile_type, struct notifier_block * n); int profile_event_unregister(enum profile_type, struct notifier_block * n); -int register_profile_notifier(struct notifier_block * nb); -int unregister_profile_notifier(struct notifier_block * nb); +int register_timer_hook(int (*hook)(struct pt_regs *)); +void unregister_timer_hook(int (*hook)(struct pt_regs *)); -struct pt_regs; +/* Timer based profiling hook */ +extern int (*timer_hook)(struct pt_regs *); -/* profiling hook activated on each timer interrupt */ -void profile_hook(struct pt_regs * regs); +struct pt_regs; #else @@ -87,18 +87,16 @@ static inline int profile_event_unregister(enum profile_type t, struct notifier_ #define profile_handoff_task(a) (0) #define profile_munmap(a) do { } while (0) -static inline int register_profile_notifier(struct notifier_block * nb) +static inline int register_timer_hook(int (*hook)(struct pt_regs *)) { return -ENOSYS; } -static inline int unregister_profile_notifier(struct notifier_block * nb) +static inline void unregister_timer_hook(int (*hook)(struct pt_regs *)) { - return -ENOSYS; + return; } -#define profile_hook(regs) do { } while (0) - #endif /* CONFIG_PROFILING */ #endif /* __KERNEL__ */ diff --git a/include/linux/raid/linear.h b/include/linux/raid/linear.h index 70afc1dc8b43..e951b2bb9cdf 100644 --- a/include/linux/raid/linear.h +++ b/include/linux/raid/linear.h @@ -5,8 +5,8 @@ struct dev_info { mdk_rdev_t *rdev; - unsigned long size; - unsigned long offset; + sector_t size; + sector_t offset; }; typedef struct dev_info dev_info_t; diff --git a/include/linux/raid/md_k.h b/include/linux/raid/md_k.h index 945346ec2c10..c9a0d4013be7 100644 --- a/include/linux/raid/md_k.h +++ b/include/linux/raid/md_k.h @@ -25,10 +25,12 @@ #define MULTIPATH 7UL #define RAID6 8UL #define RAID10 9UL -#define MAX_PERSONALITY 10UL +#define FAULTY 10UL +#define MAX_PERSONALITY 11UL #define LEVEL_MULTIPATH (-4) #define LEVEL_LINEAR (-1) +#define LEVEL_FAULTY (-5) #define MaxSector (~(sector_t)0) #define MD_THREAD_NAME_MAX 14 @@ -36,6 +38,7 @@ static inline int pers_to_level (int pers) { switch (pers) { + case FAULTY: return LEVEL_FAULTY; case MULTIPATH: return LEVEL_MULTIPATH; case HSM: return -3; case TRANSLUCENT: return -2; @@ -53,6 +56,7 @@ static inline int pers_to_level (int pers) static inline int level_to_pers (int level) { switch (level) { + case LEVEL_FAULTY: return FAULTY; case LEVEL_MULTIPATH: return MULTIPATH; case -3: return HSM; case -2: return TRANSLUCENT; @@ -290,6 +294,7 @@ struct mdk_personality_s int (*sync_request)(mddev_t *mddev, sector_t sector_nr, int go_faster); int (*resize) (mddev_t *mddev, sector_t sectors); int (*reshape) (mddev_t *mddev, int raid_disks); + int (*reconfig) (mddev_t *mddev, int layout, int chunk_size); }; diff --git a/include/linux/rmap.h b/include/linux/rmap.h index 9e6a26527047..11b484e37ac9 100644 --- a/include/linux/rmap.h +++ b/include/linux/rmap.h @@ -89,7 +89,7 @@ static inline void page_dup_rmap(struct page *page) /* * Called from mm/vmscan.c to handle paging out */ -int page_referenced(struct page *, int is_locked); +int page_referenced(struct page *, int is_locked, int ignore_token); int try_to_unmap(struct page *); /* @@ -103,7 +103,7 @@ unsigned long page_address_in_vma(struct page *, struct vm_area_struct *); #define anon_vma_prepare(vma) (0) #define anon_vma_link(vma) do {} while (0) -#define page_referenced(page,l) TestClearPageReferenced(page) +#define page_referenced(page,l,i) TestClearPageReferenced(page) #define try_to_unmap(page) SWAP_FAIL #endif /* CONFIG_MMU */ diff --git a/include/linux/serial.h b/include/linux/serial.h index 9a07d00106f9..00145822fb74 100644 --- a/include/linux/serial.h +++ b/include/linux/serial.h @@ -181,6 +181,8 @@ extern void unregister_serial(int line); /* Allow architectures to override entries in serial8250_ports[] at run time: */ struct uart_port; /* forward declaration */ extern int early_serial_setup(struct uart_port *port); +extern int early_serial_console_init(char *options); +extern int serial8250_start_console(struct uart_port *port, char *options); #endif /* __KERNEL__ */ #endif /* _LINUX_SERIAL_H */ diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index bba805dd7a39..3fad76b0873c 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h @@ -94,6 +94,9 @@ /*IBM icom*/ #define PORT_ICOM 60 +/* Samsung S3C2440 SoC */ +#define PORT_S3C2440 61 + #ifdef __KERNEL__ #include <linux/config.h> @@ -171,7 +174,7 @@ struct uart_icount { struct uart_port { spinlock_t lock; /* port lock */ unsigned int iobase; /* in/out[bwl] */ - char *membase; /* read/write[bwl] */ + unsigned char __iomem *membase; /* read/write[bwl] */ unsigned int irq; /* irq number */ unsigned int uartclk; /* base uart clock */ unsigned char fifosize; /* tx fifo size */ diff --git a/include/linux/slab.h b/include/linux/slab.h index 7c81a7863b99..93c8264fe67b 100644 --- a/include/linux/slab.h +++ b/include/linux/slab.h @@ -13,6 +13,7 @@ typedef struct kmem_cache_s kmem_cache_t; #include <linux/config.h> /* kmalloc_sizes.h needs CONFIG_ options */ #include <linux/gfp.h> +#include <linux/init.h> #include <linux/types.h> #include <asm/page.h> /* kmalloc_sizes.h needs PAGE_SIZE */ #include <asm/cache.h> /* kmalloc_sizes.h needs L1_CACHE_BYTES */ @@ -53,7 +54,7 @@ typedef struct kmem_cache_s kmem_cache_t; #define SLAB_CTOR_VERIFY 0x004UL /* tell constructor it's a verify call */ /* prototypes */ -extern void kmem_cache_init(void); +extern void __init kmem_cache_init(void); extern kmem_cache_t *kmem_cache_create(const char *, size_t, size_t, unsigned long, void (*)(void *, kmem_cache_t *, unsigned long), diff --git a/include/linux/sonypi.h b/include/linux/sonypi.h index fd8d3a931827..388d573e12a6 100644 --- a/include/linux/sonypi.h +++ b/include/linux/sonypi.h @@ -122,27 +122,27 @@ /* used only for communication between v4l and sonypi */ -#define SONYPI_COMMAND_GETCAMERA 1 +#define SONYPI_COMMAND_GETCAMERA 1 /* obsolete */ #define SONYPI_COMMAND_SETCAMERA 2 -#define SONYPI_COMMAND_GETCAMERABRIGHTNESS 3 +#define SONYPI_COMMAND_GETCAMERABRIGHTNESS 3 /* obsolete */ #define SONYPI_COMMAND_SETCAMERABRIGHTNESS 4 -#define SONYPI_COMMAND_GETCAMERACONTRAST 5 +#define SONYPI_COMMAND_GETCAMERACONTRAST 5 /* obsolete */ #define SONYPI_COMMAND_SETCAMERACONTRAST 6 -#define SONYPI_COMMAND_GETCAMERAHUE 7 +#define SONYPI_COMMAND_GETCAMERAHUE 7 /* obsolete */ #define SONYPI_COMMAND_SETCAMERAHUE 8 -#define SONYPI_COMMAND_GETCAMERACOLOR 9 +#define SONYPI_COMMAND_GETCAMERACOLOR 9 /* obsolete */ #define SONYPI_COMMAND_SETCAMERACOLOR 10 -#define SONYPI_COMMAND_GETCAMERASHARPNESS 11 +#define SONYPI_COMMAND_GETCAMERASHARPNESS 11 /* obsolete */ #define SONYPI_COMMAND_SETCAMERASHARPNESS 12 -#define SONYPI_COMMAND_GETCAMERAPICTURE 13 +#define SONYPI_COMMAND_GETCAMERAPICTURE 13 /* obsolete */ #define SONYPI_COMMAND_SETCAMERAPICTURE 14 -#define SONYPI_COMMAND_GETCAMERAAGC 15 +#define SONYPI_COMMAND_GETCAMERAAGC 15 /* obsolete */ #define SONYPI_COMMAND_SETCAMERAAGC 16 -#define SONYPI_COMMAND_GETCAMERADIRECTION 17 -#define SONYPI_COMMAND_GETCAMERAROMVERSION 18 -#define SONYPI_COMMAND_GETCAMERAREVISION 19 +#define SONYPI_COMMAND_GETCAMERADIRECTION 17 /* obsolete */ +#define SONYPI_COMMAND_GETCAMERAROMVERSION 18 /* obsolete */ +#define SONYPI_COMMAND_GETCAMERAREVISION 19 /* obsolete */ -u8 sonypi_camera_command(int command, u8 value); +int sonypi_camera_command(int command, u8 value); #endif /* __KERNEL__ */ diff --git a/include/linux/sysrq.h b/include/linux/sysrq.h index 94cbe97bd8e6..b8415f065ef8 100644 --- a/include/linux/sysrq.h +++ b/include/linux/sysrq.h @@ -33,6 +33,7 @@ void handle_sysrq(int, struct pt_regs *, struct tty_struct *); void __handle_sysrq(int, struct pt_regs *, struct tty_struct *); int register_sysrq_key(int, struct sysrq_key_op *); int unregister_sysrq_key(int, struct sysrq_key_op *); +struct sysrq_key_op *__sysrq_get_key_op(int key); #else diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index 819e211f60be..a86882b84127 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h @@ -219,6 +219,7 @@ struct v4l2_pix_format /* Vendor-specific formats */ #define V4L2_PIX_FMT_WNVA v4l2_fourcc('W','N','V','A') /* Winnov hw compress */ +#define V4L2_PIX_FMT_SN9C10X v4l2_fourcc('S','9','1','0') /* SN9C10x compression */ /* * F O R M A T E N U M E R A T I O N diff --git a/include/linux/writeback.h b/include/linux/writeback.h index 1c9994fe2acc..4ab519ad9f55 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h @@ -106,6 +106,8 @@ int pdflush_operation(void (*fn)(unsigned long), unsigned long arg0); int do_writepages(struct address_space *mapping, struct writeback_control *wbc); int sync_page_range(struct inode *inode, struct address_space *mapping, loff_t pos, size_t count); +int sync_page_range_nolock(struct inode *inode, struct address_space + *mapping, loff_t pos, size_t count); /* pdflush.c */ extern int nr_pdflush_threads; /* Global so it can be exported to sysctl diff --git a/include/media/saa6752hs.h b/include/media/saa6752hs.h index 8485d2e49a81..135f9a682429 100644 --- a/include/media/saa6752hs.h +++ b/include/media/saa6752hs.h @@ -1,4 +1,4 @@ -/* +/* saa6752hs.h - definition for saa6752hs MPEG encoder Copyright (C) 2003 Andrew de Quincey <adq@lidskialf.net> @@ -31,14 +31,14 @@ enum mpeg_bitrate_mode { enum mpeg_audio_bitrate { MPEG_AUDIO_BITRATE_256 = 0, /* 256 kBit/sec */ MPEG_AUDIO_BITRATE_384 = 1, /* 384 kBit/sec */ - + MPEG_AUDIO_BITRATE_MAX }; #define MPEG_VIDEO_TARGET_BITRATE_MAX 27000 #define MPEG_VIDEO_MAX_BITRATE_MAX 27000 #define MPEG_TOTAL_BITRATE_MAX 27000 - + struct mpeg_params { enum mpeg_bitrate_mode bitrate_mode; unsigned int video_target_bitrate; diff --git a/include/media/saa7146.h b/include/media/saa7146.h index 5e9f64e67bc8..815964d52dd2 100644 --- a/include/media/saa7146.h +++ b/include/media/saa7146.h @@ -123,7 +123,7 @@ struct saa7146_dev spinlock_t slock; struct semaphore lock; - unsigned char *mem; /* pointer to mapped IO memory */ + unsigned char __iomem *mem; /* pointer to mapped IO memory */ int revision; /* chip revision; needed for bug-workarounds*/ /* pci-device & irq stuff*/ diff --git a/include/media/tuner.h b/include/media/tuner.h index 5534d484b664..3b91bb6bdf0f 100644 --- a/include/media/tuner.h +++ b/include/media/tuner.h @@ -76,6 +76,7 @@ #define TUNER_TNF_8831BGFF 48 #define TUNER_MICROTUNE_4042FI5 49 /* FusionHDTV 3 Gold - 4042 FI5 (3X 8147) */ #define TUNER_TCL_2002N 50 +#define TUNER_PHILIPS_FM1256_IH3 51 #define NOTUNER 0 #define PAL 1 /* PAL_BG */ diff --git a/include/media/video-buf-dvb.h b/include/media/video-buf-dvb.h new file mode 100644 index 000000000000..53eac765a8bd --- /dev/null +++ b/include/media/video-buf-dvb.h @@ -0,0 +1,34 @@ +#include <dvbdev.h> +#include <dmxdev.h> +#include <dvb_demux.h> +#include <dvb_net.h> +#include <dvb_frontend.h> + +struct videobuf_dvb { + /* filling that the job of the driver */ + char *name; + struct dvb_frontend *frontend; + struct videobuf_queue dvbq; + + /* video-buf-dvb state info */ + struct semaphore lock; + struct task_struct *thread; + int nfeeds; + + /* videobuf_dvb_(un)register manges this */ + struct dvb_adapter *adapter; + struct dvb_demux demux; + struct dmxdev dmxdev; + struct dmx_frontend fe_hw; + struct dmx_frontend fe_mem; + struct dvb_net net; +}; + +int videobuf_dvb_register(struct videobuf_dvb *dvb); +void videobuf_dvb_unregister(struct videobuf_dvb *dvb); + +/* + * Local variables: + * c-basic-offset: 8 + * End: + */ diff --git a/include/media/video-buf.h b/include/media/video-buf.h index fdf5c71e222e..ae6da6de98de 100644 --- a/include/media/video-buf.h +++ b/include/media/video-buf.h @@ -1,5 +1,5 @@ /* - * $Id: video-buf.h,v 1.8 2004/10/13 10:39:00 kraxel Exp $ + * $Id: video-buf.h,v 1.9 2004/11/07 13:17:15 kraxel Exp $ * * generic helper functions for video4linux capture buffers, to handle * memory management and PCI DMA. Right now bttv + saa7134 use it. @@ -121,7 +121,6 @@ struct videobuf_queue; struct videobuf_mapping { unsigned int count; - int highmem_ok; unsigned long start; unsigned long end; struct videobuf_queue *q; @@ -167,12 +166,15 @@ struct videobuf_buffer { }; struct videobuf_queue_ops { - int (*buf_setup)(void *priv, + int (*buf_setup)(struct videobuf_queue *q, unsigned int *count, unsigned int *size); - int (*buf_prepare)(void *priv,struct videobuf_buffer *vb, + int (*buf_prepare)(struct videobuf_queue *q, + struct videobuf_buffer *vb, enum v4l2_field field); - void (*buf_queue)(void *priv,struct videobuf_buffer *vb); - void (*buf_release)(void *priv,struct videobuf_buffer *vb); + void (*buf_queue)(struct videobuf_queue *q, + struct videobuf_buffer *vb); + void (*buf_release)(struct videobuf_queue *q, + struct videobuf_buffer *vb); }; struct videobuf_queue { @@ -196,6 +198,9 @@ struct videobuf_queue { unsigned int reading; unsigned int read_off; struct videobuf_buffer *read_buf; + + /* driver private data */ + void *priv_data; }; void* videobuf_alloc(unsigned int size); @@ -205,44 +210,46 @@ int videobuf_iolock(struct pci_dev *pci, struct videobuf_buffer *vb, void videobuf_queue_init(struct videobuf_queue *q, struct videobuf_queue_ops *ops, - struct pci_dev *pci, spinlock_t *irqlock, + struct pci_dev *pci, + spinlock_t *irqlock, enum v4l2_buf_type type, enum v4l2_field field, - unsigned int msize); + unsigned int msize, + void *priv); int videobuf_queue_is_busy(struct videobuf_queue *q); -void videobuf_queue_cancel(void *priv, struct videobuf_queue *q); +void videobuf_queue_cancel(struct videobuf_queue *q); enum v4l2_field videobuf_next_field(struct videobuf_queue *q); void videobuf_status(struct v4l2_buffer *b, struct videobuf_buffer *vb, enum v4l2_buf_type type); -int videobuf_reqbufs(void *priv, struct videobuf_queue *q, +int videobuf_reqbufs(struct videobuf_queue *q, struct v4l2_requestbuffers *req); int videobuf_querybuf(struct videobuf_queue *q, struct v4l2_buffer *b); -int videobuf_qbuf(void *priv, struct videobuf_queue *q, +int videobuf_qbuf(struct videobuf_queue *q, struct v4l2_buffer *b); -int videobuf_dqbuf(void *priv, struct videobuf_queue *q, +int videobuf_dqbuf(struct videobuf_queue *q, struct v4l2_buffer *b, int nonblocking); -int videobuf_streamon(void *priv, struct videobuf_queue *q); -int videobuf_streamoff(void *priv, struct videobuf_queue *q); +int videobuf_streamon(struct videobuf_queue *q); +int videobuf_streamoff(struct videobuf_queue *q); -int videobuf_read_start(void *priv, struct videobuf_queue *q); -void videobuf_read_stop(void *priv, struct videobuf_queue *q); -ssize_t videobuf_read_stream(void *priv, struct videobuf_queue *q, +int videobuf_read_start(struct videobuf_queue *q); +void videobuf_read_stop(struct videobuf_queue *q); +ssize_t videobuf_read_stream(struct videobuf_queue *q, char __user *data, size_t count, loff_t *ppos, int vbihack, int nonblocking); -ssize_t videobuf_read_one(void *priv, struct videobuf_queue *q, +ssize_t videobuf_read_one(struct videobuf_queue *q, char __user *data, size_t count, loff_t *ppos, int nonblocking); -unsigned int videobuf_poll_stream(struct file *file, void *priv, +unsigned int videobuf_poll_stream(struct file *file, struct videobuf_queue *q, poll_table *wait); -int videobuf_mmap_setup(void *priv, struct videobuf_queue *q, +int videobuf_mmap_setup(struct videobuf_queue *q, unsigned int bcount, unsigned int bsize, enum v4l2_memory memory); -int videobuf_mmap_free(void *priv, struct videobuf_queue *q); -int videobuf_mmap_mapper(struct vm_area_struct *vma, - struct videobuf_queue *q); +int videobuf_mmap_free(struct videobuf_queue *q); +int videobuf_mmap_mapper(struct videobuf_queue *q, + struct vm_area_struct *vma); /* --------------------------------------------------------------------- */ diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h index c3e965505e99..6a2fde5bf873 100644 --- a/include/net/bluetooth/hci.h +++ b/include/net/bluetooth/hci.h @@ -170,6 +170,8 @@ enum { #define HCI_LM_AUTH 0x0002 #define HCI_LM_ENCRYPT 0x0004 #define HCI_LM_TRUSTED 0x0008 +#define HCI_LM_RELIABLE 0x0010 +#define HCI_LM_SECURE 0x0020 /* ----- HCI Commands ---- */ /* OGF & OCF values */ @@ -366,6 +368,11 @@ struct hci_cp_set_conn_encrypt { __u8 encrypt; } __attribute__ ((packed)); +#define OCF_CHANGE_CONN_LINK_KEY 0x0015 +struct hci_cp_change_conn_link_key { + __u16 handle; +} __attribute__ ((packed)); + #define OCF_READ_REMOTE_FEATURES 0x001B struct hci_cp_read_rmt_features { __u16 handle; @@ -482,6 +489,12 @@ struct hci_ev_encrypt_change { __u8 encrypt; } __attribute__ ((packed)); +#define HCI_EV_CHANGE_CONN_LINK_KEY_COMPLETE 0x09 +struct hci_ev_change_conn_link_key_complete { + __u8 status; + __u16 handle; +} __attribute__ ((packed)); + #define HCI_EV_QOS_SETUP_COMPLETE 0x0D struct hci_qos { __u8 service_type; @@ -522,6 +535,14 @@ struct hci_ev_role_change { __u8 role; } __attribute__ ((packed)); +#define HCI_EV_MODE_CHANGE 0x14 +struct hci_ev_mode_change { + __u8 status; + __u16 handle; + __u8 mode; + __u16 interval; +} __attribute__ ((packed)); + #define HCI_EV_PIN_CODE_REQ 0x16 struct hci_ev_pin_code_req { bdaddr_t bdaddr; diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h index ef0ecb6c75fd..16dec2fe1762 100644 --- a/include/net/bluetooth/hci_core.h +++ b/include/net/bluetooth/hci_core.h @@ -277,6 +277,7 @@ void hci_conn_hash_flush(struct hci_dev *hdev); struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *src); int hci_conn_auth(struct hci_conn *conn); int hci_conn_encrypt(struct hci_conn *conn); +int hci_conn_change_link_key(struct hci_conn *conn); static inline void hci_conn_set_timer(struct hci_conn *conn, unsigned long timeout) { diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h index bcbf4411bf69..39ca54fbd041 100644 --- a/include/net/bluetooth/l2cap.h +++ b/include/net/bluetooth/l2cap.h @@ -56,6 +56,8 @@ struct l2cap_conninfo { #define L2CAP_LM_AUTH 0x0002 #define L2CAP_LM_ENCRYPT 0x0004 #define L2CAP_LM_TRUSTED 0x0008 +#define L2CAP_LM_RELIABLE 0x0010 +#define L2CAP_LM_SECURE 0x0020 #define L2CAP_QOS 0x04 struct l2cap_qos { diff --git a/include/net/ipv6.h b/include/net/ipv6.h index e0e3800a9560..445fbfd71589 100644 --- a/include/net/ipv6.h +++ b/include/net/ipv6.h @@ -296,6 +296,15 @@ static inline void ipv6_addr_set(struct in6_addr *addr, } #endif +static inline int ipv6_addr_equal(const struct in6_addr *a1, + const struct in6_addr *a2) +{ + return (a1->s6_addr32[0] == a2->s6_addr32[0] && + a1->s6_addr32[1] == a2->s6_addr32[1] && + a1->s6_addr32[2] == a2->s6_addr32[2] && + a1->s6_addr32[3] == a2->s6_addr32[3]); +} + static inline int ipv6_addr_any(const struct in6_addr *a) { return ((a->s6_addr32[0] | a->s6_addr32[1] | diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h index ac856c13d354..208c6aea06a1 100644 --- a/include/net/sctp/sctp.h +++ b/include/net/sctp/sctp.h @@ -607,14 +607,14 @@ struct sctp6_sock { /* Is a socket of this style? */ #define sctp_style(sk, style) __sctp_style((sk), (SCTP_SOCKET_##style)) -int static inline __sctp_style(const struct sock *sk, sctp_socket_type_t style) +static inline int __sctp_style(const struct sock *sk, sctp_socket_type_t style) { return sctp_sk(sk)->type == style; } /* Is the association in this state? */ #define sctp_state(asoc, state) __sctp_state((asoc), (SCTP_STATE_##state)) -int static inline __sctp_state(const struct sctp_association *asoc, +static inline int __sctp_state(const struct sctp_association *asoc, sctp_state_t state) { return asoc->state == state; @@ -622,7 +622,7 @@ int static inline __sctp_state(const struct sctp_association *asoc, /* Is the socket in this state? */ #define sctp_sstate(sk, state) __sctp_sstate((sk), (SCTP_SS_##state)) -int static inline __sctp_sstate(const struct sock *sk, sctp_sock_state_t state) +static inline int __sctp_sstate(const struct sock *sk, sctp_sock_state_t state) { return sk->sk_state == state; } diff --git a/include/net/sock.h b/include/net/sock.h index bfad716ce409..5c49711c56cf 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -556,6 +556,8 @@ struct proto { kmem_cache_t *slab; int slab_obj_size; + struct module *owner; + char name[32]; struct { @@ -698,8 +700,6 @@ static inline int sk_stream_rmem_schedule(struct sock *sk, struct sk_buff *skb) * Since ~2.3.5 it is also exclusive sleep lock serializing * accesses from user process context. */ -extern void __lock_sock(struct sock *sk); -extern void __release_sock(struct sock *sk); #define sock_owned_by_user(sk) ((sk)->sk_lock.owner) extern void FASTCALL(lock_sock(struct sock *sk)); @@ -1272,19 +1272,7 @@ static inline void sk_eat_skb(struct sock *sk, struct sk_buff *skb) __kfree_skb(skb); } -extern atomic_t netstamp_needed; extern void sock_enable_timestamp(struct sock *sk); - -static inline void net_timestamp(struct timeval *stamp) -{ - if (atomic_read(&netstamp_needed)) - do_gettimeofday(stamp); - else { - stamp->tv_sec = 0; - stamp->tv_usec = 0; - } -} - extern int sock_get_timestamp(struct sock *, struct timeval __user *); /* diff --git a/include/net/tcp.h b/include/net/tcp.h index 4a7dc4157df4..f5bac4c9b704 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -361,8 +361,8 @@ extern void tcp_tw_deschedule(struct tcp_tw_bucket *tw); #define TCP_IPV6_MATCH(__sk, __saddr, __daddr, __ports, __dif) \ (((*((__u32 *)&(inet_sk(__sk)->dport)))== (__ports)) && \ ((__sk)->sk_family == AF_INET6) && \ - !ipv6_addr_cmp(&inet6_sk(__sk)->daddr, (__saddr)) && \ - !ipv6_addr_cmp(&inet6_sk(__sk)->rcv_saddr, (__daddr)) && \ + ipv6_addr_equal(&inet6_sk(__sk)->daddr, (__saddr)) && \ + ipv6_addr_equal(&inet6_sk(__sk)->rcv_saddr, (__daddr)) && \ (!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif)))) /* These can have wildcards, don't try too hard. */ @@ -965,7 +965,9 @@ extern void tcp_reset_keepalive_timer(struct sock *, unsigned long); extern unsigned int tcp_sync_mss(struct sock *sk, u32 pmtu); extern unsigned int tcp_current_mss(struct sock *sk, int large); -extern const char timer_bug_msg[]; +#ifdef TCP_DEBUG +extern const char tcp_timer_bug_msg[]; +#endif /* tcp_diag.c */ extern void tcp_get_info(struct sock *, struct tcp_info *); @@ -998,7 +1000,9 @@ static inline void tcp_clear_xmit_timer(struct sock *sk, int what) #endif break; default: - printk(timer_bug_msg); +#ifdef TCP_DEBUG + printk(tcp_timer_bug_msg); +#endif return; }; @@ -1033,7 +1037,9 @@ static inline void tcp_reset_xmit_timer(struct sock *sk, int what, unsigned long break; default: - printk(timer_bug_msg); +#ifdef TCP_DEBUG + printk(tcp_timer_bug_msg); +#endif }; } diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h index 59d64fb1cc72..6afc72fba7dc 100644 --- a/include/scsi/scsi_device.h +++ b/include/scsi/scsi_device.h @@ -111,6 +111,7 @@ struct scsi_device { unsigned allow_restart:1; /* issue START_UNIT in error handler */ unsigned no_uld_attach:1; /* disable connecting to upper level drivers */ unsigned select_no_atn:1; + unsigned fix_capacity:1; /* READ_CAPACITY is too high by 1 */ unsigned int device_blocked; /* Device returned QUEUE_FULL. */ diff --git a/include/video/tgafb.h b/include/video/tgafb.h index 23a1808045b2..be2b3e94e251 100644 --- a/include/video/tgafb.h +++ b/include/video/tgafb.h @@ -176,9 +176,9 @@ struct tga_par { struct pci_dev *pdev; /* Device dependent information. */ - void *tga_mem_base; - void *tga_fb_base; - void *tga_regs_base; + void __iomem *tga_mem_base; + void __iomem *tga_fb_base; + void __iomem *tga_regs_base; u8 tga_type; /* TGA_TYPE_XXX */ u8 tga_chip_rev; /* dc21030 revision */ |
