Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
dae1a193
Commit
dae1a193
authored
May 04, 2004
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://kernel.bkbits.net/davem/sparc-2.6
into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents
ae959b6d
e19e2303
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
328 additions
and
22 deletions
+328
-22
arch/arm/common/sa1111.c
arch/arm/common/sa1111.c
+2
-4
arch/arm/tools/mach-types
arch/arm/tools/mach-types
+13
-3
arch/ia64/kernel/efi.c
arch/ia64/kernel/efi.c
+44
-0
drivers/pcmcia/ti113x.h
drivers/pcmcia/ti113x.h
+21
-0
drivers/serial/8250_hcdp.c
drivers/serial/8250_hcdp.c
+25
-6
drivers/serial/8250_hcdp.h
drivers/serial/8250_hcdp.h
+3
-0
drivers/serial/8250_pci.c
drivers/serial/8250_pci.c
+167
-7
include/linux/efi.h
include/linux/efi.h
+47
-0
ipc/mqueue.c
ipc/mqueue.c
+2
-2
kernel/printk.c
kernel/printk.c
+4
-0
No files found.
arch/arm/common/sa1111.c
View file @
dae1a193
...
...
@@ -589,8 +589,7 @@ sa1111_init_one_child(struct sa1111 *sachip, struct resource *parent,
ret
=
dmabounce_register_dev
(
&
dev
->
dev
,
1024
,
4096
);
if
(
ret
)
{
printk
(
"SA1111: Failed to register %s with dmabounce"
,
dev
->
dev
.
bus_id
);
kfree
(
dev
);
device_unregister
(
dev
);
device_unregister
(
&
dev
->
dev
);
}
}
}
...
...
@@ -779,8 +778,7 @@ int dma_needs_bounce(struct device *dev, dma_addr_t addr, size_t size)
/*
* Check to see if either the start or end are illegal.
*/
return
((
addr
&
~
(
*
dev
->
dma_mask
)))
||
((
addr
+
size
-
1
)
&
~
(
*
dev
->
dma_mask
));
return
((
addr
&
~
dma_mask
))
||
((
addr
+
size
-
1
)
&
~
dma_mask
);
}
struct
sa1111_save_data
{
...
...
arch/arm/tools/mach-types
View file @
dae1a193
...
...
@@ -6,7 +6,7 @@
# To add an entry into this database, please see Documentation/arm/README,
# or contact rmk@arm.linux.org.uk
#
# Last update: Thu Apr
15 10:14:37
2004
# Last update: Thu Apr
29 19:06:33
2004
#
# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number
#
...
...
@@ -242,7 +242,7 @@ killbear SA1100_KILLBEAR KILLBEAR 230
yoho ARCH_YOHO YOHO 231
jasper ARCH_JASPER JASPER 232
dsc25 ARCH_DSC25 DSC25 233
innovator ARCH_INNOVATOR
INNOVATOR 234
omap_innovator MACH_OMAP_INNOVATOR OMAP_
INNOVATOR 234
ramses ARCH_RAMSES RAMSES 235
s28x ARCH_S28X S28X 236
mport3 ARCH_MPORT3 MPORT3 237
...
...
@@ -390,7 +390,7 @@ espd_4510b ARCH_ESPD_4510B ESPD_4510B 378
mp1x ARCH_MP1X MP1X 379
at91rm9200tb ARCH_AT91RM9200TB AT91RM9200TB 380
adsvgx ARCH_ADSVGX ADSVGX 381
omap_h2
AR
CH_OMAP_H2 OMAP_H2 382
omap_h2
MA
CH_OMAP_H2 OMAP_H2 382
pelee ARCH_PELEE PELEE 383
e740 MACH_E740 E740 384
iq80331 ARCH_IQ80331 IQ80331 385
...
...
@@ -523,3 +523,13 @@ montajade MACH_MONTAJADE MONTAJADE 512
sg560 MACH_SG560 SG560 513
dp1000 MACH_DP1000 DP1000 514
omap_osk MACH_OMAP_OSK OMAP_OSK 515
rg100v3 MACH_RG100V3 RG100V3 516
mx2ads MACH_MX2ADS MX2ADS 517
pxa_kilo MACH_PXA_KILO PXA_KILO 518
ixp4xx_eagle MACH_IXP4XX_EAGLE IXP4XX_EAGLE 519
tosa MACH_TOSA TOSA 520
mb2520f MACH_MB2520F MB2520F 521
emc1000 MACH_EMC1000 EMC1000 522
tidsc25 MACH_TIDSC25 TIDSC25 523
akcpmxl MACH_AKCPMXL AKCPMXL 524
av3xx MACH_AV3XX AV3XX 525
arch/ia64/kernel/efi.c
View file @
dae1a193
...
...
@@ -733,3 +733,47 @@ valid_phys_addr_range (unsigned long phys_addr, unsigned long *size)
return
0
;
}
int
__init
efi_uart_console_only
(
void
)
{
efi_status_t
status
;
char
*
s
,
name
[]
=
"ConOut"
;
efi_guid_t
guid
=
EFI_GLOBAL_VARIABLE_GUID
;
efi_char16_t
*
utf16
,
name_utf16
[
32
];
unsigned
char
data
[
1024
];
unsigned
long
size
=
sizeof
(
data
);
struct
efi_generic_dev_path
*
hdr
,
*
end_addr
;
int
uart
=
0
;
/* Convert to UTF-16 */
utf16
=
name_utf16
;
s
=
name
;
while
(
*
s
)
*
utf16
++
=
*
s
++
&
0x7f
;
*
utf16
=
0
;
status
=
efi
.
get_variable
(
name_utf16
,
&
guid
,
NULL
,
&
size
,
data
);
if
(
status
!=
EFI_SUCCESS
)
{
printk
(
KERN_ERR
"No EFI %s variable?
\n
"
,
name
);
return
0
;
}
hdr
=
(
struct
efi_generic_dev_path
*
)
data
;
end_addr
=
(
struct
efi_generic_dev_path
*
)
((
u8
*
)
data
+
size
);
while
(
hdr
<
end_addr
)
{
if
(
hdr
->
type
==
EFI_DEV_MSG
&&
hdr
->
sub_type
==
EFI_DEV_MSG_UART
)
uart
=
1
;
else
if
(
hdr
->
type
==
EFI_DEV_END_PATH
||
hdr
->
type
==
EFI_DEV_END_PATH2
)
{
if
(
!
uart
)
return
0
;
if
(
hdr
->
sub_type
==
EFI_DEV_END_ENTIRE
)
return
1
;
uart
=
0
;
}
hdr
=
(
struct
efi_generic_dev_path
*
)
((
u8
*
)
hdr
+
hdr
->
length
);
}
printk
(
KERN_ERR
"Malformed %s value
\n
"
,
name
);
return
0
;
}
drivers/pcmcia/ti113x.h
View file @
dae1a193
...
...
@@ -150,6 +150,10 @@
/* ExCA IO offset registers */
#define TI113X_IO_OFFSET(map) (0x36+((map)<<1))
/* EnE test register */
#define ENE_TEST_C9 0xc9
/* 8bit */
#define ENE_TEST_C9_TLTENABLE 0x02
#ifdef CONFIG_CARDBUS
/*
...
...
@@ -160,6 +164,7 @@
#define ti_devctl(socket) ((socket)->private[2])
#define ti_diag(socket) ((socket)->private[3])
#define ti_mfunc(socket) ((socket)->private[4])
#define ene_test_c9(socket) ((socket)->private[5])
/*
* These are the TI specific power management handlers.
...
...
@@ -171,6 +176,9 @@ static void ti_save_state(struct yenta_socket *socket)
ti_cardctl
(
socket
)
=
config_readb
(
socket
,
TI113X_CARD_CONTROL
);
ti_devctl
(
socket
)
=
config_readb
(
socket
,
TI113X_DEVICE_CONTROL
);
ti_diag
(
socket
)
=
config_readb
(
socket
,
TI1250_DIAGNOSTIC
);
if
(
socket
->
dev
->
vendor
==
PCI_VENDOR_ID_ENE
)
ene_test_c9
(
socket
)
=
config_readb
(
socket
,
ENE_TEST_C9
);
}
static
void
ti_restore_state
(
struct
yenta_socket
*
socket
)
...
...
@@ -180,6 +188,9 @@ static void ti_restore_state(struct yenta_socket *socket)
config_writeb
(
socket
,
TI113X_CARD_CONTROL
,
ti_cardctl
(
socket
));
config_writeb
(
socket
,
TI113X_DEVICE_CONTROL
,
ti_devctl
(
socket
));
config_writeb
(
socket
,
TI1250_DIAGNOSTIC
,
ti_diag
(
socket
));
if
(
socket
->
dev
->
vendor
==
PCI_VENDOR_ID_ENE
)
config_writeb
(
socket
,
ENE_TEST_C9
,
ene_test_c9
(
socket
));
}
/*
...
...
@@ -591,6 +602,16 @@ static int ti12xx_override(struct yenta_socket *socket)
config_writel
(
socket
,
TI113X_SYSTEM_CONTROL
,
val
);
}
/*
* for EnE bridges only: clear testbit TLTEnable. this makes the
* RME Hammerfall DSP sound card working.
*/
if
(
socket
->
dev
->
vendor
==
PCI_VENDOR_ID_ENE
)
{
u8
test_c9
=
config_readb
(
socket
,
ENE_TEST_C9
);
test_c9
&=
~
ENE_TEST_C9_TLTENABLE
;
config_writeb
(
socket
,
ENE_TEST_C9
,
test_c9
);
}
/*
* Yenta expects controllers to use CSCINT to route
* CSC interrupts to PCI rather than INTVAL.
...
...
drivers/serial/8250_hcdp.c
View file @
dae1a193
...
...
@@ -11,6 +11,7 @@
*/
#include <linux/config.h>
#include <linux/console.h>
#include <linux/kernel.h>
#include <linux/efi.h>
#include <linux/init.h>
...
...
@@ -44,6 +45,7 @@ setup_serial_hcdp(void *tablep)
unsigned
long
iobase
;
hcdp_t
hcdp
;
int
gsi
,
nr
;
static
char
options
[
16
];
#if 0
static int shift_once = 1;
#endif
...
...
@@ -147,7 +149,7 @@ setup_serial_hcdp(void *tablep)
printk
(
" gsi = %d, baud rate = %lu, bits = %d, clock = %d
\n
"
,
gsi
,
(
unsigned
long
)
hcdp_dev
->
baud
,
hcdp_dev
->
bits
,
hcdp_dev
->
clock_rate
);
if
(
hcdp_dev
->
base_addr
.
space_id
==
ACPI_PCICONF_SPACE
)
if
(
HCDP_PCI_UART
(
hcdp_dev
)
)
printk
(
" PCI id: %02x:%02x:%02x, vendor ID=0x%x, "
"dev ID=0x%x
\n
"
,
hcdp_dev
->
pci_seg
,
hcdp_dev
->
pci_bus
,
hcdp_dev
->
pci_dev
,
...
...
@@ -179,16 +181,26 @@ setup_serial_hcdp(void *tablep)
printk
(
KERN_WARNING
"warning: No support for PCI serial console
\n
"
);
return
;
}
if
(
HCDP_IRQ_SUPPORTED
(
hcdp_dev
))
{
#ifdef CONFIG_IA64
port
.
irq
=
acpi_register_irq
(
gsi
,
ACPI_ACTIVE_HIGH
,
ACPI_EDGE_SENSITIVE
);
if
(
HCDP_PCI_UART
(
hcdp_dev
))
port
.
irq
=
acpi_register_irq
(
gsi
,
ACPI_ACTIVE_LOW
,
ACPI_LEVEL_SENSITIVE
);
else
port
.
irq
=
acpi_register_irq
(
gsi
,
ACPI_ACTIVE_HIGH
,
ACPI_EDGE_SENSITIVE
);
#else
port
.
irq
=
gsi
;
port
.
irq
=
gsi
;
#endif
port
.
flags
=
UPF_SKIP_TEST
|
UPF_BOOT_AUTOCONF
|
UPF_RESOURCES
;
if
(
gsi
)
port
.
flags
|=
UPF_AUTO_IRQ
;
if
(
HCDP_PCI_UART
(
hcdp_dev
))
port
.
flags
|=
UPF_SHARE_IRQ
;
}
port
.
flags
|=
UPF_SKIP_TEST
|
UPF_BOOT_AUTOCONF
|
UPF_RESOURCES
;
/*
* Note: the above memset() initializes port.line to 0,
* so we register this port as ttyS0.
...
...
@@ -197,8 +209,15 @@ setup_serial_hcdp(void *tablep)
printk
(
"setup_serial_hcdp(): early_serial_setup() "
"for HCDP serial console port failed. "
"Will try any additional consoles in HCDP.
\n
"
);
memset
(
&
port
,
0
,
sizeof
(
port
));
continue
;
}
if
(
efi_uart_console_only
())
{
snprintf
(
options
,
sizeof
(
options
),
"%lun%d"
,
hcdp_dev
->
baud
,
hcdp_dev
->
bits
);
add_preferred_console
(
"ttyS"
,
port
.
line
,
options
);
}
break
;
}
...
...
drivers/serial/8250_hcdp.h
View file @
dae1a193
...
...
@@ -77,3 +77,6 @@ typedef struct {
u32
num_entries
;
hcdp_dev_t
hcdp_dev
[
MAX_HCDP_DEVICES
];
}
hcdp_t
;
#define HCDP_PCI_UART(x) (x->pci_func & 1UL<<7)
#define HCDP_IRQ_SUPPORTED(x) (x->pci_func & 1UL<<6)
drivers/serial/8250_pci.c
View file @
dae1a193
...
...
@@ -20,6 +20,7 @@
#include <linux/string.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/delay.h>
#include <linux/tty.h>
#include <linux/serial.h>
#include <linux/serial_core.h>
...
...
@@ -305,6 +306,72 @@ static void __devexit pci_plx9050_exit(struct pci_dev *dev)
}
}
/* SBS Technologies Inc. PMC-OCTPRO and P-OCTAL cards */
static
int
sbs_setup
(
struct
pci_dev
*
dev
,
struct
pci_board
*
board
,
struct
serial_struct
*
req
,
int
idx
)
{
unsigned
int
bar
,
offset
=
board
->
first_offset
;
bar
=
0
;
if
(
idx
<
4
)
{
/* first four channels map to 0, 0x100, 0x200, 0x300 */
offset
+=
idx
*
board
->
uart_offset
;
}
else
if
(
idx
<
8
)
{
/* last four channels map to 0x1000, 0x1100, 0x1200, 0x1300 */
offset
+=
idx
*
board
->
uart_offset
+
0xC00
;
}
else
/* we have only 8 ports on PMC-OCTALPRO */
return
1
;
return
setup_port
(
dev
,
req
,
bar
,
offset
,
board
->
reg_shift
);
}
/*
* This does initialization for PMC OCTALPRO cards:
* maps the device memory, resets the UARTs (needed, bc
* if the module is removed and inserted again, the card
* is in the sleep mode) and enables global interrupt.
*/
/* global control register offset for SBS PMC-OctalPro */
#define OCT_REG_CR_OFF 0x500
static
int
__devinit
sbs_init
(
struct
pci_dev
*
dev
)
{
u8
*
p
;
p
=
ioremap
(
pci_resource_start
(
dev
,
0
),
pci_resource_len
(
dev
,
0
));
if
(
p
==
NULL
)
return
-
ENOMEM
;
/* Set bit-4 Control Register (UART RESET) in to reset the uarts */
writeb
(
0x10
,
p
+
OCT_REG_CR_OFF
);
udelay
(
50
);
writeb
(
0x0
,
p
+
OCT_REG_CR_OFF
);
/* Set bit-2 (INTENABLE) of Control Register */
writeb
(
0x4
,
p
+
OCT_REG_CR_OFF
);
iounmap
(
p
);
return
0
;
}
/*
* Disables the global interrupt of PMC-OctalPro
*/
static
void
__devexit
sbs_exit
(
struct
pci_dev
*
dev
)
{
u8
*
p
;
p
=
ioremap
(
pci_resource_start
(
dev
,
0
),
pci_resource_len
(
dev
,
0
));
if
(
p
!=
NULL
)
{
writeb
(
0
,
p
+
OCT_REG_CR_OFF
);
}
iounmap
(
p
);
}
/*
* SIIG serial cards have an PCI interface chip which also controls
* the UART clocking frequency. Each UART can be clocked independently
...
...
@@ -534,6 +601,15 @@ pci_default_setup(struct pci_dev *dev, struct pci_board *board,
return
setup_port
(
dev
,
req
,
bar
,
offset
,
board
->
reg_shift
);
}
/* This should be in linux/pci_ids.h */
#define PCI_VENDOR_ID_SBSMODULARIO 0x124B
#define PCI_SUBVENDOR_ID_SBSMODULARIO 0x124B
#define PCI_DEVICE_ID_OCTPRO 0x0001
#define PCI_SUBDEVICE_ID_OCTPRO232 0x0108
#define PCI_SUBDEVICE_ID_OCTPRO422 0x0208
#define PCI_SUBDEVICE_ID_POCTAL232 0x0308
#define PCI_SUBDEVICE_ID_POCTAL422 0x0408
/*
* Master list of serial port init/setup/exit quirks.
* This does not describe the general nature of the port.
...
...
@@ -618,6 +694,55 @@ static struct pci_serial_quirk pci_serial_quirks[] = {
.
setup
=
pci_default_setup
,
.
exit
=
__devexit_p
(
pci_plx9050_exit
),
},
/*
* SBS Technologies, Inc., PMC-OCTALPRO 232
*/
{
.
vendor
=
PCI_VENDOR_ID_SBSMODULARIO
,
.
device
=
PCI_DEVICE_ID_OCTPRO
,
.
subvendor
=
PCI_SUBVENDOR_ID_SBSMODULARIO
,
.
subdevice
=
PCI_SUBDEVICE_ID_OCTPRO232
,
.
init
=
sbs_init
,
.
setup
=
sbs_setup
,
.
exit
=
sbs_exit
},
/*
* SBS Technologies, Inc., PMC-OCTALPRO 422
*/
{
.
vendor
=
PCI_VENDOR_ID_SBSMODULARIO
,
.
device
=
PCI_DEVICE_ID_OCTPRO
,
.
subvendor
=
PCI_SUBVENDOR_ID_SBSMODULARIO
,
.
subdevice
=
PCI_SUBDEVICE_ID_OCTPRO422
,
.
init
=
sbs_init
,
.
setup
=
sbs_setup
,
.
exit
=
sbs_exit
},
/*
* SBS Technologies, Inc., P-Octal 232
*/
{
.
vendor
=
PCI_VENDOR_ID_SBSMODULARIO
,
.
device
=
PCI_DEVICE_ID_OCTPRO
,
.
subvendor
=
PCI_SUBVENDOR_ID_SBSMODULARIO
,
.
subdevice
=
PCI_SUBDEVICE_ID_POCTAL232
,
.
init
=
sbs_init
,
.
setup
=
sbs_setup
,
.
exit
=
sbs_exit
},
/*
* SBS Technologies, Inc., P-Octal 422
*/
{
.
vendor
=
PCI_VENDOR_ID_SBSMODULARIO
,
.
device
=
PCI_DEVICE_ID_OCTPRO
,
.
subvendor
=
PCI_SUBVENDOR_ID_SBSMODULARIO
,
.
subdevice
=
PCI_SUBDEVICE_ID_POCTAL422
,
.
init
=
sbs_init
,
.
setup
=
sbs_setup
,
.
exit
=
sbs_exit
},
/*
* SIIG cards.
* It is not clear whether these could be collapsed.
...
...
@@ -944,8 +1069,19 @@ enum pci_board_num_t {
pbn_computone_4
,
pbn_computone_6
,
pbn_computone_8
,
pbn_sbsxrsio
,
};
/*
* uart_offset - the space between channels
* reg_shift - describes how the UART registers are mapped
* to PCI memory by the card.
* For example IER register on SBS, Inc. PMC-OctPro is located at
* offset 0x10 from the UART base, while UART_IER is defined as 1
* in include/linux/serial_reg.h,
* see first lines of serial_in() and serial_out() in 8250.c
*/
static
struct
pci_board
pci_boards
[]
__devinitdata
=
{
[
pbn_default
]
=
{
.
flags
=
FL_BASE0
,
...
...
@@ -1348,6 +1484,13 @@ static struct pci_board pci_boards[] __devinitdata = {
.
reg_shift
=
2
,
.
first_offset
=
0x200
,
},
[
pbn_sbsxrsio
]
=
{
.
flags
=
FL_BASE0
,
.
num_ports
=
8
,
.
base_baud
=
460800
,
.
uart_offset
=
256
,
.
reg_shift
=
4
,
}
};
/*
...
...
@@ -1755,27 +1898,44 @@ static struct pci_device_id serial_pci_tbl[] = {
0x10b5
,
0x106a
,
0
,
0
,
pbn_plx_romulus
},
{
PCI_VENDOR_ID_QUATECH
,
PCI_DEVICE_ID_QUATECH_QSC100
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
pbn_b1_4_115200
},
{
PCI_VENDOR_ID_QUATECH
,
PCI_DEVICE_ID_QUATECH_DSC100
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
pbn_b1_2_115200
},
{
PCI_VENDOR_ID_QUATECH
,
PCI_DEVICE_ID_QUATECH_ESC100D
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
pbn_b1_8_115200
},
{
PCI_VENDOR_ID_QUATECH
,
PCI_DEVICE_ID_QUATECH_ESC100M
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
pbn_b1_8_115200
},
{
PCI_VENDOR_ID_SPECIALIX
,
PCI_DEVICE_ID_OXSEMI_16PCI954
,
PCI_VENDOR_ID_SPECIALIX
,
PCI_SUBDEVICE_ID_SPECIALIX_SPEED4
,
0
,
0
,
PCI_VENDOR_ID_SPECIALIX
,
PCI_SUBDEVICE_ID_SPECIALIX_SPEED4
,
0
,
0
,
pbn_b0_4_921600
},
{
PCI_VENDOR_ID_OXSEMI
,
PCI_DEVICE_ID_OXSEMI_16PCI954
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
pbn_b0_4_115200
},
{
PCI_VENDOR_ID_OXSEMI
,
PCI_DEVICE_ID_OXSEMI_16PCI952
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
pbn_b0_bt_2_921600
},
/*
* SBS Technologies, Inc. P-Octal and PMC-OCTPRO cards,
* from skokodyn@yahoo.com
*/
{
PCI_VENDOR_ID_SBSMODULARIO
,
PCI_DEVICE_ID_OCTPRO
,
PCI_SUBVENDOR_ID_SBSMODULARIO
,
PCI_SUBDEVICE_ID_OCTPRO232
,
0
,
0
,
pbn_sbsxrsio
},
{
PCI_VENDOR_ID_SBSMODULARIO
,
PCI_DEVICE_ID_OCTPRO
,
PCI_SUBVENDOR_ID_SBSMODULARIO
,
PCI_SUBDEVICE_ID_OCTPRO422
,
0
,
0
,
pbn_sbsxrsio
},
{
PCI_VENDOR_ID_SBSMODULARIO
,
PCI_DEVICE_ID_OCTPRO
,
PCI_SUBVENDOR_ID_SBSMODULARIO
,
PCI_SUBDEVICE_ID_POCTAL232
,
0
,
0
,
pbn_sbsxrsio
},
{
PCI_VENDOR_ID_SBSMODULARIO
,
PCI_DEVICE_ID_OCTPRO
,
PCI_SUBVENDOR_ID_SBSMODULARIO
,
PCI_SUBDEVICE_ID_POCTAL422
,
0
,
0
,
pbn_sbsxrsio
},
/*
* Digitan DS560-558, from jimd@esoft.com
*/
...
...
include/linux/efi.h
View file @
dae1a193
...
...
@@ -212,6 +212,9 @@ typedef efi_status_t efi_set_virtual_address_map_t (unsigned long memory_map_siz
#define UGA_IO_PROTOCOL_GUID \
EFI_GUID( 0x61a4d49e, 0x6f68, 0x4f1b, 0xb9, 0x22, 0xa8, 0x6e, 0xed, 0xb, 0x7, 0xa2 )
#define EFI_GLOBAL_VARIABLE_GUID \
EFI_GUID( 0x8be4df61, 0x93ca, 0x11d2, 0xaa, 0x0d, 0x00, 0xe0, 0x98, 0x03, 0x2b, 0x8c )
typedef
struct
{
efi_guid_t
guid
;
unsigned
long
table
;
...
...
@@ -294,6 +297,7 @@ extern void efi_enter_virtual_mode (void); /* switch EFI to virtual mode, if pos
extern
u64
efi_get_iobase
(
void
);
extern
u32
efi_mem_type
(
unsigned
long
phys_addr
);
extern
u64
efi_mem_attributes
(
unsigned
long
phys_addr
);
extern
int
__init
efi_uart_console_only
(
void
);
extern
void
efi_initialize_iomem_resources
(
struct
resource
*
code_resource
,
struct
resource
*
data_resource
);
extern
efi_status_t
phys_efi_get_time
(
efi_time_t
*
tm
,
efi_time_cap_t
*
tc
);
...
...
@@ -322,6 +326,49 @@ extern struct efi_memory_map memmap;
#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002
#define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004
/*
* EFI Device Path information
*/
#define EFI_DEV_HW 0x01
#define EFI_DEV_PCI 1
#define EFI_DEV_PCCARD 2
#define EFI_DEV_MEM_MAPPED 3
#define EFI_DEV_VENDOR 4
#define EFI_DEV_CONTROLLER 5
#define EFI_DEV_ACPI 0x02
#define EFI_DEV_BASIC_ACPI 1
#define EFI_DEV_EXPANDED_ACPI 2
#define EFI_DEV_MSG 0x03
#define EFI_DEV_MSG_ATAPI 1
#define EFI_DEV_MSG_SCSI 2
#define EFI_DEV_MSG_FC 3
#define EFI_DEV_MSG_1394 4
#define EFI_DEV_MSG_USB 5
#define EFI_DEV_MSG_USB_CLASS 15
#define EFI_DEV_MSG_I20 6
#define EFI_DEV_MSG_MAC 11
#define EFI_DEV_MSG_IPV4 12
#define EFI_DEV_MSG_IPV6 13
#define EFI_DEV_MSG_INFINIBAND 9
#define EFI_DEV_MSG_UART 14
#define EFI_DEV_MSG_VENDOR 10
#define EFI_DEV_MEDIA 0x04
#define EFI_DEV_MEDIA_HARD_DRIVE 1
#define EFI_DEV_MEDIA_CDROM 2
#define EFI_DEV_MEDIA_VENDOR 3
#define EFI_DEV_MEDIA_FILE 4
#define EFI_DEV_MEDIA_PROTOCOL 5
#define EFI_DEV_BIOS_BOOT 0x05
#define EFI_DEV_END_PATH 0x7F
#define EFI_DEV_END_PATH2 0xFF
#define EFI_DEV_END_INSTANCE 0x01
#define EFI_DEV_END_ENTIRE 0xFF
struct
efi_generic_dev_path
{
u8
type
;
u8
sub_type
;
u16
length
;
}
__attribute
((
packed
));
/*
* efi_dir is allocated in arch/ia64/kernel/efi.c.
...
...
ipc/mqueue.c
View file @
dae1a193
...
...
@@ -811,9 +811,9 @@ asmlinkage long sys_mq_timedsend(mqd_t mqdes, const char __user *u_msg_ptr,
wait
.
msg
=
(
void
*
)
msg_ptr
;
wait
.
state
=
STATE_NONE
;
ret
=
wq_sleep
(
info
,
SEND
,
timeout
,
&
wait
);
if
(
ret
<
0
)
free_msg
(
msg_ptr
);
}
if
(
ret
<
0
)
free_msg
(
msg_ptr
);
}
else
{
receiver
=
wq_get_first_waiter
(
info
,
RECV
);
if
(
receiver
)
{
...
...
kernel/printk.c
View file @
dae1a193
...
...
@@ -240,6 +240,7 @@ __setup("log_buf_len=", log_buf_len_setup);
* 7 -- Enable printk's to console
* 8 -- Set level of messages printed to console
* 9 -- Return number of unread characters in the log buffer
* 10 -- Return size of the log buffer
*/
int
do_syslog
(
int
type
,
char
__user
*
buf
,
int
len
)
{
...
...
@@ -359,6 +360,9 @@ int do_syslog(int type, char __user * buf, int len)
case
9
:
/* Number of chars in the log buffer */
error
=
log_end
-
log_start
;
break
;
case
10
:
/* Size of the log buffer */
error
=
log_buf_len
;
break
;
default:
error
=
-
EINVAL
;
break
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment