Commit 1914ba52 authored by David S. Miller's avatar David S. Miller

Merge nuts.davemloft.net:/disk1/BK/sparcwork-2.6

into nuts.davemloft.net:/disk1/BK/sparc-2.6
parents 5c31dfe3 0bfcccd1
...@@ -105,6 +105,7 @@ EXPORT_SYMBOL_NOVERS(memcpy); ...@@ -105,6 +105,7 @@ EXPORT_SYMBOL_NOVERS(memcpy);
EXPORT_SYMBOL_NOVERS(memmove); EXPORT_SYMBOL_NOVERS(memmove);
EXPORT_SYMBOL_NOVERS(memcmp); EXPORT_SYMBOL_NOVERS(memcmp);
EXPORT_SYMBOL_NOVERS(memscan); EXPORT_SYMBOL_NOVERS(memscan);
EXPORT_SYMBOL_NOVERS(memchr);
EXPORT_SYMBOL_NOVERS(__memzero); EXPORT_SYMBOL_NOVERS(__memzero);
/* user mem (segment) */ /* user mem (segment) */
......
...@@ -218,10 +218,10 @@ setup_745x_specifics: ...@@ -218,10 +218,10 @@ setup_745x_specifics:
/* All of the bits we have to set..... /* All of the bits we have to set.....
*/ */
ori r11,r11,HID0_SGE | HID0_FOLD | HID0_BHTE | HID0_LRSTK ori r11,r11,HID0_SGE | HID0_FOLD | HID0_BHTE | HID0_LRSTK | HID0_BTIC
BEGIN_FTR_SECTION BEGIN_FTR_SECTION
ori r11,r11,HID0_BTIC xori r11,r11,HID0_BTIC
END_FTR_SECTION_IFCLR(CPU_FTR_NO_BTIC) END_FTR_SECTION_IFSET(CPU_FTR_NO_BTIC)
BEGIN_FTR_SECTION BEGIN_FTR_SECTION
oris r11,r11,HID0_DPM@h /* enable dynamic power mgmt */ oris r11,r11,HID0_DPM@h /* enable dynamic power mgmt */
END_FTR_SECTION_IFCLR(CPU_FTR_NO_DPM) END_FTR_SECTION_IFCLR(CPU_FTR_NO_DPM)
......
...@@ -144,8 +144,7 @@ pcibios_fixup_resources(struct pci_dev *dev) ...@@ -144,8 +144,7 @@ pcibios_fixup_resources(struct pci_dev *dev)
} }
DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pcibios_fixup_resources); DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pcibios_fixup_resources);
void void pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
struct resource *res) struct resource *res)
{ {
unsigned long offset = 0; unsigned long offset = 0;
...@@ -158,6 +157,7 @@ pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region, ...@@ -158,6 +157,7 @@ pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
region->start = res->start - offset; region->start = res->start - offset;
region->end = res->end - offset; region->end = res->end - offset;
} }
EXPORT_SYMBOL(pcibios_resource_to_bus);
/* /*
* We need to avoid collisions with `mirrored' VGA ports * We need to avoid collisions with `mirrored' VGA ports
...@@ -172,8 +172,7 @@ pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region, ...@@ -172,8 +172,7 @@ pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
* but we want to try to avoid allocating at 0x2900-0x2bff * but we want to try to avoid allocating at 0x2900-0x2bff
* which might have be mirrored at 0x0100-0x03ff.. * which might have be mirrored at 0x0100-0x03ff..
*/ */
void void pcibios_align_resource(void *data, struct resource *res, unsigned long size,
pcibios_align_resource(void *data, struct resource *res, unsigned long size,
unsigned long align) unsigned long align)
{ {
struct pci_dev *dev = data; struct pci_dev *dev = data;
...@@ -193,7 +192,7 @@ pcibios_align_resource(void *data, struct resource *res, unsigned long size, ...@@ -193,7 +192,7 @@ pcibios_align_resource(void *data, struct resource *res, unsigned long size,
} }
} }
} }
EXPORT_SYMBOL(pcibios_align_resource);
/* /*
* Handle resources of PCI devices. If the world were perfect, we could * Handle resources of PCI devices. If the world were perfect, we could
......
...@@ -424,7 +424,7 @@ static void ipmi_po_new_smi(int if_num) ...@@ -424,7 +424,7 @@ static void ipmi_po_new_smi(int if_num)
if (ready) if (ready)
return; return;
rv = ipmi_create_user(if_num, &ipmi_poweroff_handler, 0, &ipmi_user); rv = ipmi_create_user(if_num, &ipmi_poweroff_handler, NULL, &ipmi_user);
if (rv) { if (rv) {
printk(KERN_ERR PFX "could not create IPMI user, error %d\n", printk(KERN_ERR PFX "could not create IPMI user, error %d\n",
rv); rv);
......
...@@ -618,8 +618,6 @@ create_iface(struct device_node *np, struct device *dev) ...@@ -618,8 +618,6 @@ create_iface(struct device_node *np, struct device *dev)
chan->iface = iface; chan->iface = iface;
chan->chan_no = i; chan->chan_no = i;
chan->adapter.id = I2C_ALGO_SMBUS; chan->adapter.id = I2C_ALGO_SMBUS;
if (i==1)
chan->adapter.class = I2C_CLASS_HWMON;
chan->adapter.algo = &keywest_algorithm; chan->adapter.algo = &keywest_algorithm;
chan->adapter.algo_data = NULL; chan->adapter.algo_data = NULL;
chan->adapter.client_register = NULL; chan->adapter.client_register = NULL;
......
...@@ -47,10 +47,10 @@ ...@@ -47,10 +47,10 @@
/* Drive specific timing taken from DOS driver v3.7 */ /* Drive specific timing taken from DOS driver v3.7 */
struct qd65xx_timing_s { struct qd65xx_timing_s {
char offset; /* ofset from the beginning of Model Number" */ s8 offset; /* ofset from the beginning of Model Number" */
char model[4]; /* 4 chars from Model number, no conversion */ char model[4]; /* 4 chars from Model number, no conversion */
short active; /* active time */ s16 active; /* active time */
short recovery; /* recovery time */ s16 recovery; /* recovery time */
} qd65xx_timing [] = { } qd65xx_timing [] = {
{ 30, "2040", 110, 225 }, /* Conner CP30204 */ { 30, "2040", 110, 225 }, /* Conner CP30204 */
{ 30, "2045", 135, 225 }, /* Conner CP30254 */ { 30, "2045", 135, 225 }, /* Conner CP30254 */
......
...@@ -326,7 +326,7 @@ adbhid_mouse_input(unsigned char *data, int nb, struct pt_regs *regs, int autopo ...@@ -326,7 +326,7 @@ adbhid_mouse_input(unsigned char *data, int nb, struct pt_regs *regs, int autopo
input_report_key(&adbhid[id]->input, BTN_LEFT, !((data[1] >> 7) & 1)); input_report_key(&adbhid[id]->input, BTN_LEFT, !((data[1] >> 7) & 1));
input_report_key(&adbhid[id]->input, BTN_MIDDLE, !((data[2] >> 7) & 1)); input_report_key(&adbhid[id]->input, BTN_MIDDLE, !((data[2] >> 7) & 1));
if (nb >= 4) if (nb >= 4 && adbhid[id]->mouse_kind != ADBMOUSE_TRACKPAD)
input_report_key(&adbhid[id]->input, BTN_RIGHT, !((data[3] >> 7) & 1)); input_report_key(&adbhid[id]->input, BTN_RIGHT, !((data[3] >> 7) & 1));
input_report_rel(&adbhid[id]->input, REL_X, input_report_rel(&adbhid[id]->input, REL_X,
......
...@@ -1196,7 +1196,7 @@ static ssize_t dvb_ca_en50221_io_write(struct file *file, const char __user *buf ...@@ -1196,7 +1196,7 @@ static ssize_t dvb_ca_en50221_io_write(struct file *file, const char __user *buf
int status; int status;
char fragbuf[HOST_LINK_BUF_SIZE]; char fragbuf[HOST_LINK_BUF_SIZE];
int fragpos = 0; int fragpos = 0;
int fraglen; size_t fraglen;
unsigned long timeout; unsigned long timeout;
int written; int written;
...@@ -1257,7 +1257,7 @@ static int dvb_ca_en50221_io_read_condition(struct dvb_ca_private* ca, int* resu ...@@ -1257,7 +1257,7 @@ static int dvb_ca_en50221_io_read_condition(struct dvb_ca_private* ca, int* resu
int slot; int slot;
int slot_count = 0; int slot_count = 0;
int idx; int idx;
int fraglen; size_t fraglen;
int connection_id = -1; int connection_id = -1;
int found = 0; int found = 0;
u8 hdr[2]; u8 hdr[2];
......
...@@ -563,7 +563,7 @@ static int dvb_net_ts_callback(const u8 *buffer1, size_t buffer1_len, ...@@ -563,7 +563,7 @@ static int dvb_net_ts_callback(const u8 *buffer1, size_t buffer1_len,
if (buffer2 != 0) if (buffer2 != 0)
printk(KERN_WARNING "buffer2 not 0: %p.\n", buffer2); printk(KERN_WARNING "buffer2 not 0: %p.\n", buffer2);
if (buffer1_len > 32768) if (buffer1_len > 32768)
printk(KERN_WARNING "length > 32k: %u.\n", buffer1_len); printk(KERN_WARNING "length > 32k: %zu.\n", buffer1_len);
/* printk("TS callback: %u bytes, %u TS cells @ %p.\n", /* printk("TS callback: %u bytes, %u TS cells @ %p.\n",
buffer1_len, buffer1_len / TS_SZ, buffer1); */ buffer1_len, buffer1_len / TS_SZ, buffer1); */
dvb_net_ule(dev, buffer1, buffer1_len); dvb_net_ule(dev, buffer1, buffer1_len);
......
...@@ -1181,7 +1181,7 @@ static int ttusb_dec_boot_dsp(struct ttusb_dec *dec) ...@@ -1181,7 +1181,7 @@ static int ttusb_dec_boot_dsp(struct ttusb_dec *dec)
firmware_size = fw_entry->size; firmware_size = fw_entry->size;
if (firmware_size < 60) { if (firmware_size < 60) {
printk("%s: firmware size too small for DSP code (%u < 60).\n", printk("%s: firmware size too small for DSP code (%zu < 60).\n",
__FUNCTION__, firmware_size); __FUNCTION__, firmware_size);
return -1; return -1;
} }
......
...@@ -2416,7 +2416,7 @@ GetIocFacts(MPT_ADAPTER *ioc, int sleepFlag, int reason) ...@@ -2416,7 +2416,7 @@ GetIocFacts(MPT_ADAPTER *ioc, int sleepFlag, int reason)
} }
} else { } else {
printk(MYIOC_s_ERR_FMT printk(MYIOC_s_ERR_FMT
"Invalid IOC facts reply, msgLength=%d offsetof=%d!\n", "Invalid IOC facts reply, msgLength=%d offsetof=%zd!\n",
ioc->name, facts->MsgLength, (offsetof(IOCFactsReply_t, ioc->name, facts->MsgLength, (offsetof(IOCFactsReply_t,
RequestFrameSize)/sizeof(u32))); RequestFrameSize)/sizeof(u32)));
return -66; return -66;
......
...@@ -71,14 +71,14 @@ static const char *probes[] = { "RedBoot", "cmdlinepart", NULL }; ...@@ -71,14 +71,14 @@ static const char *probes[] = { "RedBoot", "cmdlinepart", NULL };
#endif #endif
static int mtd_parts_nb = 0; static int mtd_parts_nb;
static struct mtd_partition *mtd_parts = 0; static struct mtd_partition *mtd_parts;
int __init init_edb7312nor(void) int __init init_edb7312nor(void)
{ {
static const char *rom_probe_types[] = PROBETYPES; static const char *rom_probe_types[] = PROBETYPES;
const char **type; const char **type;
const char *part_type = 0; const char *part_type = NULL;
printk(KERN_NOTICE MSG_PREFIX "0x%08x at 0x%08x\n", printk(KERN_NOTICE MSG_PREFIX "0x%08x at 0x%08x\n",
WINDOW_SIZE, WINDOW_ADDR); WINDOW_SIZE, WINDOW_ADDR);
...@@ -92,7 +92,7 @@ int __init init_edb7312nor(void) ...@@ -92,7 +92,7 @@ int __init init_edb7312nor(void)
simple_map_init(&edb7312nor_map); simple_map_init(&edb7312nor_map);
mymtd = 0; mymtd = NULL;
type = rom_probe_types; type = rom_probe_types;
for(; !mymtd && *type; type++) { for(; !mymtd && *type; type++) {
mymtd = do_map_probe(*type, &edb7312nor_map); mymtd = do_map_probe(*type, &edb7312nor_map);
......
...@@ -77,7 +77,7 @@ int __init init_impa7(void) ...@@ -77,7 +77,7 @@ int __init init_impa7(void)
{ {
static const char *rom_probe_types[] = PROBETYPES; static const char *rom_probe_types[] = PROBETYPES;
const char **type; const char **type;
const char *part_type = 0; const char *part_type = NULL;
int i; int i;
static struct { u_long addr; u_long size; } pt[NUM_FLASHBANKS] = { static struct { u_long addr; u_long size; } pt[NUM_FLASHBANKS] = {
{ WINDOW_ADDR0, WINDOW_SIZE0 }, { WINDOW_ADDR0, WINDOW_SIZE0 },
...@@ -99,7 +99,7 @@ int __init init_impa7(void) ...@@ -99,7 +99,7 @@ int __init init_impa7(void)
} }
simple_map_init(&impa7_map[i]); simple_map_init(&impa7_map[i]);
impa7_mtd[i] = 0; impa7_mtd[i] = NULL;
type = rom_probe_types; type = rom_probe_types;
for(; !impa7_mtd[i] && *type; type++) { for(; !impa7_mtd[i] && *type; type++) {
impa7_mtd[i] = do_map_probe(*type, &impa7_map[i]); impa7_mtd[i] = do_map_probe(*type, &impa7_map[i]);
......
...@@ -269,7 +269,8 @@ static int memcmpb(void *a, int c, int n) ...@@ -269,7 +269,8 @@ static int memcmpb(void *a, int c, int n)
static int check_free_sectors(struct NFTLrecord *nftl, unsigned int address, int len, static int check_free_sectors(struct NFTLrecord *nftl, unsigned int address, int len,
int check_oob) int check_oob)
{ {
int i, retlen; int i;
size_t retlen;
u8 buf[SECTORSIZE + nftl->mbd.mtd->oobsize]; u8 buf[SECTORSIZE + nftl->mbd.mtd->oobsize];
for (i = 0; i < len; i += SECTORSIZE) { for (i = 0; i < len; i += SECTORSIZE) {
...@@ -366,7 +367,8 @@ static void check_sectors_in_chain(struct NFTLrecord *nftl, unsigned int first_b ...@@ -366,7 +367,8 @@ static void check_sectors_in_chain(struct NFTLrecord *nftl, unsigned int first_b
{ {
unsigned int block, i, status; unsigned int block, i, status;
struct nftl_bci bci; struct nftl_bci bci;
int sectors_per_block, retlen; int sectors_per_block;
size_t retlen;
sectors_per_block = nftl->EraseSize / SECTORSIZE; sectors_per_block = nftl->EraseSize / SECTORSIZE;
block = first_block; block = first_block;
......
...@@ -91,10 +91,12 @@ struct chain { ...@@ -91,10 +91,12 @@ struct chain {
}; };
/* These belong in scsi.h also */ /* These belong in scsi.h also */
#define any2scsi(up, p) \ static inline void any2scsi(u8 *p, u32 v)
(up)[0] = (((unsigned long)(p)) >> 16) ; \ {
(up)[1] = (((unsigned long)(p)) >> 8); \ p[0] = v >> 16;
(up)[2] = ((unsigned long)(p)); p[1] = v >> 8;
p[2] = v;
}
#define scsi2int(up) ( (((long)*(up)) << 16) + (((long)(up)[1]) << 8) + ((long)(up)[2]) ) #define scsi2int(up) ( (((long)*(up)) << 16) + (((long)(up)[1]) << 8) + ((long)(up)[2]) )
......
...@@ -733,17 +733,20 @@ static int fdomain_isa_detect( int *irq, int *iobase ) ...@@ -733,17 +733,20 @@ static int fdomain_isa_detect( int *irq, int *iobase )
printk( " %x,", base ); printk( " %x,", base );
#endif #endif
for (flag = 0, i = 0; !flag && i < PORT_COUNT; i++) { for (i = 0; i < PORT_COUNT; i++) {
if (base == ports[i]) if (base == ports[i]) {
++flag; if (!request_region(base, 0x10, "fdomain"))
break;
if (!fdomain_is_valid_port(base)) {
release_region(base, 0x10);
break;
}
*irq = fdomain_get_irq( base );
*iobase = base;
return 1;
}
} }
if (flag && fdomain_is_valid_port( base )) {
*irq = fdomain_get_irq( base );
*iobase = base;
return 1;
}
/* This is a bad sign. It usually means that someone patched the /* This is a bad sign. It usually means that someone patched the
BIOS signature list (the signatures variable) to contain a BIOS BIOS signature list (the signatures variable) to contain a BIOS
signature for a board *OTHER THAN* the TMC-1660/TMC-1680. */ signature for a board *OTHER THAN* the TMC-1660/TMC-1680. */
...@@ -764,7 +767,7 @@ static int fdomain_isa_detect( int *irq, int *iobase ) ...@@ -764,7 +767,7 @@ static int fdomain_isa_detect( int *irq, int *iobase )
for (i = 0; i < PORT_COUNT; i++) { for (i = 0; i < PORT_COUNT; i++) {
base = ports[i]; base = ports[i];
if (check_region( base, 0x10 )) { if (!request_region(base, 0x10, "fdomain")) {
#if DEBUG_DETECT #if DEBUG_DETECT
printk( " (%x inuse),", base ); printk( " (%x inuse),", base );
#endif #endif
...@@ -773,7 +776,10 @@ static int fdomain_isa_detect( int *irq, int *iobase ) ...@@ -773,7 +776,10 @@ static int fdomain_isa_detect( int *irq, int *iobase )
#if DEBUG_DETECT #if DEBUG_DETECT
printk( " %x,", base ); printk( " %x,", base );
#endif #endif
if ((flag = fdomain_is_valid_port( base ))) break; flag = fdomain_is_valid_port(base);
if (flag)
break;
release_region(base, 0x10);
} }
#if DEBUG_DETECT #if DEBUG_DETECT
...@@ -832,6 +838,9 @@ static int fdomain_pci_bios_detect( int *irq, int *iobase, struct pci_dev **ret_ ...@@ -832,6 +838,9 @@ static int fdomain_pci_bios_detect( int *irq, int *iobase, struct pci_dev **ret_
pci_base = pci_resource_start(pdev, 0); pci_base = pci_resource_start(pdev, 0);
pci_irq = pdev->irq; pci_irq = pdev->irq;
if (!request_region( pci_base, 0x10, "fdomain" ))
return 0;
/* Now we have the I/O base address and interrupt from the PCI /* Now we have the I/O base address and interrupt from the PCI
configuration registers. */ configuration registers. */
...@@ -844,8 +853,9 @@ static int fdomain_pci_bios_detect( int *irq, int *iobase, struct pci_dev **ret_ ...@@ -844,8 +853,9 @@ static int fdomain_pci_bios_detect( int *irq, int *iobase, struct pci_dev **ret_
" IRQ = %d, I/O base = 0x%x [0x%lx]\n", *irq, *iobase, pci_base ); " IRQ = %d, I/O base = 0x%x [0x%lx]\n", *irq, *iobase, pci_base );
#endif #endif
if (!fdomain_is_valid_port( *iobase )) { if (!fdomain_is_valid_port(pci_base)) {
printk(KERN_ERR "scsi: <fdomain> PCI card detected, but driver not loaded (invalid port)\n" ); printk(KERN_ERR "scsi: <fdomain> PCI card detected, but driver not loaded (invalid port)\n" );
release_region(pci_base, 0x10);
return 0; return 0;
} }
...@@ -870,10 +880,16 @@ struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt ) ...@@ -870,10 +880,16 @@ struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt )
printk( "scsi: <fdomain> No BIOS, using port_base = 0x%x, irq = %d\n", printk( "scsi: <fdomain> No BIOS, using port_base = 0x%x, irq = %d\n",
port_base, interrupt_level ); port_base, interrupt_level );
#endif #endif
if (!request_region(port_base, 0x10, "fdomain")) {
printk( "scsi: <fdomain> port 0x%x is busy\n", port_base );
printk( "scsi: <fdomain> Bad LILO/INSMOD parameters?\n" );
return NULL;
}
if (!fdomain_is_valid_port( port_base )) { if (!fdomain_is_valid_port( port_base )) {
printk( "scsi: <fdomain> Cannot locate chip at port base 0x%x\n", printk( "scsi: <fdomain> Cannot locate chip at port base 0x%x\n",
port_base ); port_base );
printk( "scsi: <fdomain> Bad LILO/INSMOD parameters?\n" ); printk( "scsi: <fdomain> Bad LILO/INSMOD parameters?\n" );
release_region(port_base, 0x10);
return NULL; return NULL;
} }
} else { } else {
...@@ -915,6 +931,7 @@ struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt ) ...@@ -915,6 +931,7 @@ struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt )
if (setup_called) { if (setup_called) {
printk(KERN_ERR "scsi: <fdomain> Bad LILO/INSMOD parameters?\n"); printk(KERN_ERR "scsi: <fdomain> Bad LILO/INSMOD parameters?\n");
} }
release_region(port_base, 0x10);
return NULL; return NULL;
} }
...@@ -935,8 +952,10 @@ struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt ) ...@@ -935,8 +952,10 @@ struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt )
get resources. */ get resources. */
shpnt = scsi_register( tpnt, 0 ); shpnt = scsi_register( tpnt, 0 );
if(shpnt == NULL) if(shpnt == NULL) {
release_region(port_base, 0x10);
return NULL; return NULL;
}
shpnt->irq = interrupt_level; shpnt->irq = interrupt_level;
shpnt->io_port = port_base; shpnt->io_port = port_base;
scsi_set_device(shpnt, &pdev->dev); scsi_set_device(shpnt, &pdev->dev);
...@@ -946,6 +965,7 @@ struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt ) ...@@ -946,6 +965,7 @@ struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt )
/* Log IRQ with kernel */ /* Log IRQ with kernel */
if (!interrupt_level) { if (!interrupt_level) {
printk(KERN_ERR "scsi: <fdomain> Card Detected, but driver not loaded (no IRQ)\n" ); printk(KERN_ERR "scsi: <fdomain> Card Detected, but driver not loaded (no IRQ)\n" );
release_region(port_base, 0x10);
return NULL; return NULL;
} else { } else {
/* Register the IRQ with the kernel */ /* Register the IRQ with the kernel */
...@@ -967,13 +987,10 @@ struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt ) ...@@ -967,13 +987,10 @@ struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt )
printk(KERN_ERR " Send mail to faith@acm.org\n" ); printk(KERN_ERR " Send mail to faith@acm.org\n" );
} }
printk(KERN_ERR "scsi: <fdomain> Detected, but driver not loaded (IRQ)\n" ); printk(KERN_ERR "scsi: <fdomain> Detected, but driver not loaded (IRQ)\n" );
release_region(port_base, 0x10);
return NULL; return NULL;
} }
} }
/* Log I/O ports with kernel */
request_region( port_base, 0x10, "fdomain" );
return shpnt; return shpnt;
} }
......
...@@ -190,7 +190,6 @@ ...@@ -190,7 +190,6 @@
#include <scsi/scsicam.h> #include <scsi/scsicam.h>
#define ANY2SCSI_INLINE /* undef this to use old macros */
#undef WD7000_DEBUG /* general debug */ #undef WD7000_DEBUG /* general debug */
#ifdef WD7000_DEBUG #ifdef WD7000_DEBUG
#define dprintk printk #define dprintk printk
...@@ -726,55 +725,17 @@ static int __init wd7000_setup(char *str) ...@@ -726,55 +725,17 @@ static int __init wd7000_setup(char *str)
__setup("wd7000=", wd7000_setup); __setup("wd7000=", wd7000_setup);
#ifdef ANY2SCSI_INLINE
/*
* Since they're used a lot, I've redone the following from the macros
* formerly in wd7000.h, hopefully to speed them up by getting rid of
* all the shifting (it may not matter; GCC might have done as well anyway).
*
* xany2scsi and xscsi2int were not being used, and are no longer defined.
* (They were simply 4-byte versions of these routines).
*/
typedef union { /* let's cheat... */
int i;
unchar u[sizeof(int)]; /* the sizeof(int) makes it more portable */
} i_u;
static inline void any2scsi(unchar * scsi, int any) static inline void any2scsi(unchar * scsi, int any)
{ {
*scsi++ = ((i_u) any).u[2]; *scsi++ = (unsigned)any >> 16;
*scsi++ = ((i_u) any).u[1]; *scsi++ = (unsigned)any >> 8;
*scsi++ = ((i_u) any).u[0]; *scsi++ = any;
} }
static inline int scsi2int(unchar * scsi) static inline int scsi2int(unchar * scsi)
{ {
i_u result; return (scsi[0] << 16) | (scsi[1] << 8) | scsi[2];
result.i = 0; /* clears unused bytes */
result.u[2] = *scsi++;
result.u[1] = *scsi++;
result.u[0] = *scsi++;
return (result.i);
} }
#else
/*
* These are the old ones - I've just moved them here...
*/
#undef any2scsi
#define any2scsi(up, p) (up)[0] = (((unsigned long) (p)) >> 16); \
(up)[1] = ((unsigned long) (p)) >> 8; \
(up)[2] = ((unsigned long) (p));
#undef scsi2int
#define scsi2int(up) ( (((unsigned long) *(up)) << 16) + \
(((unsigned long) (up)[1]) << 8) + \
((unsigned long) (up)[2]) )
#endif
static inline void wd7000_enable_intr(Adapter * host) static inline void wd7000_enable_intr(Adapter * host)
{ {
......
...@@ -1742,14 +1742,10 @@ static void __init probe_sccs(void) ...@@ -1742,14 +1742,10 @@ static void __init probe_sccs(void)
* We're called early and memory managment isn't up, yet. * We're called early and memory managment isn't up, yet.
* Thus check_region would fail. * Thus check_region would fail.
*/ */
if (check_region((unsigned long) if (!request_region((unsigned long)
zs_channels[n_channels].control, zs_channels[n_channels].control,
ZS_CHAN_IO_SIZE) < 0) { ZS_CHAN_IO_SIZE, "SCC"))
panic("SCC I/O region is not free"); panic("SCC I/O region is not free");
}
request_region((unsigned long)
zs_channels[n_channels].control,
ZS_CHAN_IO_SIZE, "SCC");
#endif #endif
zs_soft[n_channels].zs_channel = &zs_channels[n_channels]; zs_soft[n_channels].zs_channel = &zs_channels[n_channels];
zs_soft[n_channels].irq = zs_parms->irq; zs_soft[n_channels].irq = zs_parms->irq;
......
...@@ -146,8 +146,8 @@ static int ehci_hub_resume (struct usb_hcd *hcd) ...@@ -146,8 +146,8 @@ static int ehci_hub_resume (struct usb_hcd *hcd)
#else #else
#define ehci_hub_suspend 0 #define ehci_hub_suspend NULL
#define ehci_hub_resume 0 #define ehci_hub_resume NULL
#endif /* CONFIG_PM */ #endif /* CONFIG_PM */
......
#ifndef _ALPHA_PAGE_H #ifndef _ALPHA_PAGE_H
#define _ALPHA_PAGE_H #define _ALPHA_PAGE_H
#include <linux/config.h>
#include <asm/pal.h> #include <asm/pal.h>
/* PAGE_SHIFT determines the page size */ /* PAGE_SHIFT determines the page size */
......
...@@ -22,40 +22,40 @@ ...@@ -22,40 +22,40 @@
*/ */
#define __arch_base_getb(b,o) \ #define __arch_base_getb(b,o) \
({ \ ({ \
unsigned int v, r = (b); \ unsigned int __v, __r = (b); \
__asm__ __volatile__( \ __asm__ __volatile__( \
"ldrb %0, [%1, %2]" \ "ldrb %0, [%1, %2]" \
: "=r" (v) \ : "=r" (__v) \
: "r" (r), "Ir" (o)); \ : "r" (__r), "Ir" (o)); \
v; \ __v; \
}) })
#define __arch_base_getl(b,o) \ #define __arch_base_getl(b,o) \
({ \ ({ \
unsigned int v, r = (b); \ unsigned int __v, __r = (b); \
__asm__ __volatile__( \ __asm__ __volatile__( \
"ldr %0, [%1, %2]" \ "ldr %0, [%1, %2]" \
: "=r" (v) \ : "=r" (__v) \
: "r" (r), "Ir" (o)); \ : "r" (__r), "Ir" (o)); \
v; \ __v; \
}) })
#define __arch_base_putb(v,b,o) \ #define __arch_base_putb(v,b,o) \
({ \ ({ \
unsigned int r = (b); \ unsigned int __r = (b); \
__asm__ __volatile__( \ __asm__ __volatile__( \
"strb %0, [%1, %2]" \ "strb %0, [%1, %2]" \
: \ : \
: "r" (v), "r" (r), "Ir" (o)); \ : "r" (v), "r" (__r), "Ir" (o));\
}) })
#define __arch_base_putl(v,b,o) \ #define __arch_base_putl(v,b,o) \
({ \ ({ \
unsigned int r = (b); \ unsigned int __r = (b); \
__asm__ __volatile__( \ __asm__ __volatile__( \
"str %0, [%1, %2]" \ "str %0, [%1, %2]" \
: \ : \
: "r" (v), "r" (r), "Ir" (o)); \ : "r" (v), "r" (__r), "Ir" (o));\
}) })
/* /*
...@@ -176,15 +176,15 @@ DECLARE_IO(int,l,"") ...@@ -176,15 +176,15 @@ DECLARE_IO(int,l,"")
#define __outwc(value,port) \ #define __outwc(value,port) \
({ \ ({ \
unsigned long v = value; \ unsigned long __v = value; \
if (__PORT_PCIO((port))) \ if (__PORT_PCIO((port))) \
__asm__ __volatile__( \ __asm__ __volatile__( \
"str %0, [%1, %2] @ outwc" \ "str %0, [%1, %2] @ outwc" \
: : "r" (v|v<<16), "r" (PCIO_BASE), "Jr" ((port) << 2)); \ : : "r" (__v|__v<<16), "r" (PCIO_BASE), "Jr" ((port) << 2)); \
else \ else \
__asm__ __volatile__( \ __asm__ __volatile__( \
"str %0, [%1, %2] @ outwc" \ "str %0, [%1, %2] @ outwc" \
: : "r" (v|v<<16), "r" (IO_BASE), "r" ((port) << 2)); \ : : "r" (__v|__v<<16), "r" (IO_BASE), "r" ((port) << 2)); \
}) })
#define __inwc(port) \ #define __inwc(port) \
...@@ -203,15 +203,15 @@ DECLARE_IO(int,l,"") ...@@ -203,15 +203,15 @@ DECLARE_IO(int,l,"")
#define __outlc(value,port) \ #define __outlc(value,port) \
({ \ ({ \
unsigned long v = value; \ unsigned long __v = value; \
if (__PORT_PCIO((port))) \ if (__PORT_PCIO((port))) \
__asm__ __volatile__( \ __asm__ __volatile__( \
"str %0, [%1, %2] @ outlc" \ "str %0, [%1, %2] @ outlc" \
: : "r" (v), "r" (PCIO_BASE), "Jr" ((port) << 2)); \ : : "r" (__v), "r" (PCIO_BASE), "Jr" ((port) << 2)); \
else \ else \
__asm__ __volatile__( \ __asm__ __volatile__( \
"str %0, [%1, %2] @ outlc" \ "str %0, [%1, %2] @ outlc" \
: : "r" (v), "r" (IO_BASE), "r" ((port) << 2)); \ : : "r" (__v), "r" (IO_BASE), "r" ((port) << 2)); \
}) })
#define __inlc(port) \ #define __inlc(port) \
...@@ -250,6 +250,6 @@ DECLARE_IO(int,l,"") ...@@ -250,6 +250,6 @@ DECLARE_IO(int,l,"")
/* /*
* 1:1 mapping for ioremapped regions. * 1:1 mapping for ioremapped regions.
*/ */
#define __mem_pci(x) (x) #define __mem_pci(x) ((unsigned long)(x))
#endif #endif
...@@ -121,7 +121,7 @@ static void mpc_stop(struct seq_file *m, void *v) ...@@ -121,7 +121,7 @@ static void mpc_stop(struct seq_file *m, void *v)
/* /*
* READING function - called when the /proc/atm/mpoa file is read from. * READING function - called when the /proc/atm/mpoa file is read from.
*/ */
static ssize_t mpc_show(struct seq_file *m, void *v) static int mpc_show(struct seq_file *m, void *v)
{ {
struct mpoa_client *mpc = v; struct mpoa_client *mpc = v;
unsigned char *temp; unsigned char *temp;
......
...@@ -66,7 +66,7 @@ unsigned long ip_ct_sctp_timeout_shutdown_recd = 300 SECS / 1000; ...@@ -66,7 +66,7 @@ unsigned long ip_ct_sctp_timeout_shutdown_recd = 300 SECS / 1000;
unsigned long ip_ct_sctp_timeout_shutdown_ack_sent = 3 SECS; unsigned long ip_ct_sctp_timeout_shutdown_ack_sent = 3 SECS;
static unsigned long * sctp_timeouts[] static unsigned long * sctp_timeouts[]
= { 0, /* SCTP_CONNTRACK_NONE */ = { NULL, /* SCTP_CONNTRACK_NONE */
&ip_ct_sctp_timeout_closed, /* SCTP_CONNTRACK_CLOSED */ &ip_ct_sctp_timeout_closed, /* SCTP_CONNTRACK_CLOSED */
&ip_ct_sctp_timeout_cookie_wait, /* SCTP_CONNTRACK_COOKIE_WAIT */ &ip_ct_sctp_timeout_cookie_wait, /* SCTP_CONNTRACK_COOKIE_WAIT */
&ip_ct_sctp_timeout_cookie_echoed, /* SCTP_CONNTRACK_COOKIE_ECHOED */ &ip_ct_sctp_timeout_cookie_echoed, /* SCTP_CONNTRACK_COOKIE_ECHOED */
......
...@@ -126,7 +126,7 @@ spkm3_make_token(struct spkm3_ctx *ctx, int qop_req, ...@@ -126,7 +126,7 @@ spkm3_make_token(struct spkm3_ctx *ctx, int qop_req,
out_err: out_err:
if (md5cksum.data) if (md5cksum.data)
kfree(md5cksum.data); kfree(md5cksum.data);
token->data = 0; token->data = NULL;
token->len = 0; token->len = 0;
return GSS_S_FAILURE; return GSS_S_FAILURE;
} }
...@@ -2096,7 +2096,7 @@ static ssize_t cs_read(struct file *file, char __user *buffer, size_t count, lof ...@@ -2096,7 +2096,7 @@ static ssize_t cs_read(struct file *file, char __user *buffer, size_t count, lof
unsigned copied=0; unsigned copied=0;
CS_DBGOUT(CS_WAVE_READ | CS_FUNCTION, 4, CS_DBGOUT(CS_WAVE_READ | CS_FUNCTION, 4,
printk("cs46xx: cs_read()+ %d\n",count) ); printk("cs46xx: cs_read()+ %zd\n",count) );
state = (struct cs_state *)card->states[0]; state = (struct cs_state *)card->states[0];
if(!state) if(!state)
return -ENODEV; return -ENODEV;
...@@ -2157,9 +2157,9 @@ static ssize_t cs_read(struct file *file, char __user *buffer, size_t count, lof ...@@ -2157,9 +2157,9 @@ static ssize_t cs_read(struct file *file, char __user *buffer, size_t count, lof
} }
CS_DBGOUT(CS_WAVE_READ, 2, printk(KERN_INFO CS_DBGOUT(CS_WAVE_READ, 2, printk(KERN_INFO
"_read() copy_to cnt=%d count=%d ", cnt,count) ); "_read() copy_to cnt=%d count=%zd ", cnt,count) );
CS_DBGOUT(CS_WAVE_READ, 8, printk(KERN_INFO CS_DBGOUT(CS_WAVE_READ, 8, printk(KERN_INFO
" .dmasize=%d .count=%d buffer=%p ret=%d\n", " .dmasize=%d .count=%d buffer=%p ret=%zd\n",
dmabuf->dmasize,dmabuf->count,buffer,ret) ); dmabuf->dmasize,dmabuf->count,buffer,ret) );
if (cs_copy_to_user(state, buffer, if (cs_copy_to_user(state, buffer,
...@@ -2184,7 +2184,7 @@ static ssize_t cs_read(struct file *file, char __user *buffer, size_t count, lof ...@@ -2184,7 +2184,7 @@ static ssize_t cs_read(struct file *file, char __user *buffer, size_t count, lof
up(&state->sem); up(&state->sem);
set_current_state(TASK_RUNNING); set_current_state(TASK_RUNNING);
CS_DBGOUT(CS_WAVE_READ | CS_FUNCTION, 4, CS_DBGOUT(CS_WAVE_READ | CS_FUNCTION, 4,
printk("cs46xx: cs_read()- %d\n",ret) ); printk("cs46xx: cs_read()- %zd\n",ret) );
return ret; return ret;
} }
...@@ -2202,7 +2202,7 @@ static ssize_t cs_write(struct file *file, const char __user *buffer, size_t cou ...@@ -2202,7 +2202,7 @@ static ssize_t cs_write(struct file *file, const char __user *buffer, size_t cou
int cnt; int cnt;
CS_DBGOUT(CS_WAVE_WRITE | CS_FUNCTION, 4, CS_DBGOUT(CS_WAVE_WRITE | CS_FUNCTION, 4,
printk("cs46xx: cs_write called, count = %d\n", count) ); printk("cs46xx: cs_write called, count = %zd\n", count) );
state = (struct cs_state *)card->states[1]; state = (struct cs_state *)card->states[1];
if(!state) if(!state)
return -ENODEV; return -ENODEV;
...@@ -2309,7 +2309,7 @@ static ssize_t cs_write(struct file *file, const char __user *buffer, size_t cou ...@@ -2309,7 +2309,7 @@ static ssize_t cs_write(struct file *file, const char __user *buffer, size_t cou
set_current_state(TASK_RUNNING); set_current_state(TASK_RUNNING);
CS_DBGOUT(CS_WAVE_WRITE | CS_FUNCTION, 2, CS_DBGOUT(CS_WAVE_WRITE | CS_FUNCTION, 2,
printk("cs46xx: cs_write()- ret=0x%x\n", ret) ); printk("cs46xx: cs_write()- ret=%zd\n", ret) );
return ret; return ret;
} }
......
...@@ -207,7 +207,7 @@ int msnd_wait_TXDE(multisound_dev_t *dev) ...@@ -207,7 +207,7 @@ int msnd_wait_TXDE(multisound_dev_t *dev)
register int timeout = 1000; register int timeout = 1000;
while(timeout-- > 0) while(timeout-- > 0)
if (inb(io + HP_ISR) & HPISR_TXDE) if (msnd_inb(io + HP_ISR) & HPISR_TXDE)
return 0; return 0;
return -EIO; return -EIO;
...@@ -219,7 +219,7 @@ int msnd_wait_HC0(multisound_dev_t *dev) ...@@ -219,7 +219,7 @@ int msnd_wait_HC0(multisound_dev_t *dev)
register int timeout = 1000; register int timeout = 1000;
while(timeout-- > 0) while(timeout-- > 0)
if (!(inb(io + HP_CVR) & HPCVR_HC)) if (!(msnd_inb(io + HP_CVR) & HPCVR_HC))
return 0; return 0;
return -EIO; return -EIO;
...@@ -231,7 +231,7 @@ int msnd_send_dsp_cmd(multisound_dev_t *dev, BYTE cmd) ...@@ -231,7 +231,7 @@ int msnd_send_dsp_cmd(multisound_dev_t *dev, BYTE cmd)
spin_lock_irqsave(&dev->lock, flags); spin_lock_irqsave(&dev->lock, flags);
if (msnd_wait_HC0(dev) == 0) { if (msnd_wait_HC0(dev) == 0) {
outb(cmd, dev->io + HP_CVR); msnd_outb(cmd, dev->io + HP_CVR);
spin_unlock_irqrestore(&dev->lock, flags); spin_unlock_irqrestore(&dev->lock, flags);
return 0; return 0;
} }
...@@ -248,9 +248,9 @@ int msnd_send_word(multisound_dev_t *dev, unsigned char high, ...@@ -248,9 +248,9 @@ int msnd_send_word(multisound_dev_t *dev, unsigned char high,
register unsigned int io = dev->io; register unsigned int io = dev->io;
if (msnd_wait_TXDE(dev) == 0) { if (msnd_wait_TXDE(dev) == 0) {
outb(high, io + HP_TXH); msnd_outb(high, io + HP_TXH);
outb(mid, io + HP_TXM); msnd_outb(mid, io + HP_TXM);
outb(low, io + HP_TXL); msnd_outb(low, io + HP_TXL);
return 0; return 0;
} }
...@@ -272,8 +272,8 @@ int msnd_upload_host(multisound_dev_t *dev, char *bin, int len) ...@@ -272,8 +272,8 @@ int msnd_upload_host(multisound_dev_t *dev, char *bin, int len)
if (msnd_send_word(dev, bin[i], bin[i + 1], bin[i + 2]) != 0) if (msnd_send_word(dev, bin[i], bin[i + 1], bin[i + 2]) != 0)
return -EIO; return -EIO;
inb(dev->io + HP_RXL); msnd_inb(dev->io + HP_RXL);
inb(dev->io + HP_CVR); msnd_inb(dev->io + HP_CVR);
return 0; return 0;
} }
...@@ -289,11 +289,11 @@ int msnd_enable_irq(multisound_dev_t *dev) ...@@ -289,11 +289,11 @@ int msnd_enable_irq(multisound_dev_t *dev)
spin_lock_irqsave(&dev->lock, flags); spin_lock_irqsave(&dev->lock, flags);
if (msnd_wait_TXDE(dev) == 0) { if (msnd_wait_TXDE(dev) == 0) {
outb(inb(dev->io + HP_ICR) | HPICR_TREQ, dev->io + HP_ICR); msnd_outb(msnd_inb(dev->io + HP_ICR) | HPICR_TREQ, dev->io + HP_ICR);
if (dev->type == msndClassic) if (dev->type == msndClassic)
outb(dev->irqid, dev->io + HP_IRQM); msnd_outb(dev->irqid, dev->io + HP_IRQM);
outb(inb(dev->io + HP_ICR) & ~HPICR_TREQ, dev->io + HP_ICR); msnd_outb(msnd_inb(dev->io + HP_ICR) & ~HPICR_TREQ, dev->io + HP_ICR);
outb(inb(dev->io + HP_ICR) | HPICR_RREQ, dev->io + HP_ICR); msnd_outb(msnd_inb(dev->io + HP_ICR) | HPICR_RREQ, dev->io + HP_ICR);
enable_irq(dev->irq); enable_irq(dev->irq);
msnd_init_queue(dev->DSPQ, dev->dspq_data_buff, dev->dspq_buff_size); msnd_init_queue(dev->DSPQ, dev->dspq_data_buff, dev->dspq_buff_size);
spin_unlock_irqrestore(&dev->lock, flags); spin_unlock_irqrestore(&dev->lock, flags);
...@@ -320,9 +320,9 @@ int msnd_disable_irq(multisound_dev_t *dev) ...@@ -320,9 +320,9 @@ int msnd_disable_irq(multisound_dev_t *dev)
spin_lock_irqsave(&dev->lock, flags); spin_lock_irqsave(&dev->lock, flags);
if (msnd_wait_TXDE(dev) == 0) { if (msnd_wait_TXDE(dev) == 0) {
outb(inb(dev->io + HP_ICR) & ~HPICR_RREQ, dev->io + HP_ICR); msnd_outb(msnd_inb(dev->io + HP_ICR) & ~HPICR_RREQ, dev->io + HP_ICR);
if (dev->type == msndClassic) if (dev->type == msndClassic)
outb(HPIRQ_NONE, dev->io + HP_IRQM); msnd_outb(HPIRQ_NONE, dev->io + HP_IRQM);
disable_irq(dev->irq); disable_irq(dev->irq);
spin_unlock_irqrestore(&dev->lock, flags); spin_unlock_irqrestore(&dev->lock, flags);
return 0; return 0;
......
...@@ -154,10 +154,11 @@ ...@@ -154,10 +154,11 @@
#define DSPTOPC_BASED(w) (((w) - DSP_BASE_ADDR) * 2) #define DSPTOPC_BASED(w) (((w) - DSP_BASE_ADDR) * 2)
#ifdef SLOWIO #ifdef SLOWIO
# undef outb #define msnd_outb outb_p
# undef inb #define msnd_inb inb_p
# define outb outb_p #else
# define inb inb_p #define msnd_outb outb
#define msnd_inb inb
#endif #endif
/* JobQueueStruct */ /* JobQueueStruct */
......
...@@ -136,9 +136,9 @@ static void reset_record_queue(void) ...@@ -136,9 +136,9 @@ static void reset_record_queue(void)
/* Critical section: bank 1 access */ /* Critical section: bank 1 access */
spin_lock_irqsave(&dev.lock, flags); spin_lock_irqsave(&dev.lock, flags);
outb(HPBLKSEL_1, dev.io + HP_BLKS); msnd_outb(HPBLKSEL_1, dev.io + HP_BLKS);
isa_memset_io(dev.base, 0, DAR_BUFF_SIZE * 3); isa_memset_io(dev.base, 0, DAR_BUFF_SIZE * 3);
outb(HPBLKSEL_0, dev.io + HP_BLKS); msnd_outb(HPBLKSEL_0, dev.io + HP_BLKS);
spin_unlock_irqrestore(&dev.lock, flags); spin_unlock_irqrestore(&dev.lock, flags);
for (n = 0, lpDAQ = dev.base + DARQ_DATA_BUFF; n < 3; ++n, lpDAQ += DAQDS__size) { for (n = 0, lpDAQ = dev.base + DARQ_DATA_BUFF; n < 3; ++n, lpDAQ += DAQDS__size) {
...@@ -830,12 +830,12 @@ static __inline__ int pack_DARQ_to_DARF(register int bank) ...@@ -830,12 +830,12 @@ static __inline__ int pack_DARQ_to_DARF(register int bank)
/* Read data from the head (unprotected bank 1 access okay /* Read data from the head (unprotected bank 1 access okay
since this is only called inside an interrupt) */ since this is only called inside an interrupt) */
outb(HPBLKSEL_1, dev.io + HP_BLKS); msnd_outb(HPBLKSEL_1, dev.io + HP_BLKS);
msnd_fifo_write( msnd_fifo_write(
&dev.DARF, &dev.DARF,
(char *)(dev.base + bank * DAR_BUFF_SIZE), (char *)(dev.base + bank * DAR_BUFF_SIZE),
size); size);
outb(HPBLKSEL_0, dev.io + HP_BLKS); msnd_outb(HPBLKSEL_0, dev.io + HP_BLKS);
return 1; return 1;
} }
...@@ -1091,7 +1091,7 @@ static __inline__ void eval_dsp_msg(register WORD wMessage) ...@@ -1091,7 +1091,7 @@ static __inline__ void eval_dsp_msg(register WORD wMessage)
static irqreturn_t intr(int irq, void *dev_id, struct pt_regs *regs) static irqreturn_t intr(int irq, void *dev_id, struct pt_regs *regs)
{ {
/* Send ack to DSP */ /* Send ack to DSP */
inb(dev.io + HP_RXL); msnd_inb(dev.io + HP_RXL);
/* Evaluate queued DSP messages */ /* Evaluate queued DSP messages */
while (isa_readw(dev.DSPQ + JQS_wTail) != isa_readw(dev.DSPQ + JQS_wHead)) { while (isa_readw(dev.DSPQ + JQS_wTail) != isa_readw(dev.DSPQ + JQS_wHead)) {
...@@ -1120,15 +1120,15 @@ static int reset_dsp(void) ...@@ -1120,15 +1120,15 @@ static int reset_dsp(void)
{ {
int timeout = 100; int timeout = 100;
outb(HPDSPRESET_ON, dev.io + HP_DSPR); msnd_outb(HPDSPRESET_ON, dev.io + HP_DSPR);
mdelay(1); mdelay(1);
#ifndef MSND_CLASSIC #ifndef MSND_CLASSIC
dev.info = inb(dev.io + HP_INFO); dev.info = msnd_inb(dev.io + HP_INFO);
#endif #endif
outb(HPDSPRESET_OFF, dev.io + HP_DSPR); msnd_outb(HPDSPRESET_OFF, dev.io + HP_DSPR);
mdelay(1); mdelay(1);
while (timeout-- > 0) { while (timeout-- > 0) {
if (inb(dev.io + HP_CVR) == HP_CVR_DEF) if (msnd_inb(dev.io + HP_CVR) == HP_CVR_DEF)
return 0; return 0;
mdelay(1); mdelay(1);
} }
...@@ -1202,9 +1202,9 @@ static int init_sma(void) ...@@ -1202,9 +1202,9 @@ static int init_sma(void)
unsigned long flags; unsigned long flags;
#ifdef MSND_CLASSIC #ifdef MSND_CLASSIC
outb(dev.memid, dev.io + HP_MEMM); msnd_outb(dev.memid, dev.io + HP_MEMM);
#endif #endif
outb(HPBLKSEL_0, dev.io + HP_BLKS); msnd_outb(HPBLKSEL_0, dev.io + HP_BLKS);
if (initted) { if (initted) {
mastVolLeft = isa_readw(dev.SMA + SMA_wCurrMastVolLeft); mastVolLeft = isa_readw(dev.SMA + SMA_wCurrMastVolLeft);
mastVolRight = isa_readw(dev.SMA + SMA_wCurrMastVolRight); mastVolRight = isa_readw(dev.SMA + SMA_wCurrMastVolRight);
...@@ -1214,9 +1214,9 @@ static int init_sma(void) ...@@ -1214,9 +1214,9 @@ static int init_sma(void)
/* Critical section: bank 1 access */ /* Critical section: bank 1 access */
spin_lock_irqsave(&dev.lock, flags); spin_lock_irqsave(&dev.lock, flags);
outb(HPBLKSEL_1, dev.io + HP_BLKS); msnd_outb(HPBLKSEL_1, dev.io + HP_BLKS);
isa_memset_io(dev.base, 0, 0x8000); isa_memset_io(dev.base, 0, 0x8000);
outb(HPBLKSEL_0, dev.io + HP_BLKS); msnd_outb(HPBLKSEL_0, dev.io + HP_BLKS);
spin_unlock_irqrestore(&dev.lock, flags); spin_unlock_irqrestore(&dev.lock, flags);
dev.pwDSPQData = (dev.base + DSPQ_DATA_BUFF); dev.pwDSPQData = (dev.base + DSPQ_DATA_BUFF);
...@@ -1289,7 +1289,7 @@ static int __init calibrate_adc(WORD srate) ...@@ -1289,7 +1289,7 @@ static int __init calibrate_adc(WORD srate)
static int upload_dsp_code(void) static int upload_dsp_code(void)
{ {
outb(HPBLKSEL_0, dev.io + HP_BLKS); msnd_outb(HPBLKSEL_0, dev.io + HP_BLKS);
#ifndef HAVE_DSPCODEH #ifndef HAVE_DSPCODEH
INITCODESIZE = mod_firmware_load(INITCODEFILE, &INITCODE); INITCODESIZE = mod_firmware_load(INITCODEFILE, &INITCODE);
if (!INITCODE) { if (!INITCODE) {
...@@ -1326,9 +1326,9 @@ static int upload_dsp_code(void) ...@@ -1326,9 +1326,9 @@ static int upload_dsp_code(void)
#ifdef MSND_CLASSIC #ifdef MSND_CLASSIC
static void reset_proteus(void) static void reset_proteus(void)
{ {
outb(HPPRORESET_ON, dev.io + HP_PROR); msnd_outb(HPPRORESET_ON, dev.io + HP_PROR);
mdelay(TIME_PRO_RESET); mdelay(TIME_PRO_RESET);
outb(HPPRORESET_OFF, dev.io + HP_PROR); msnd_outb(HPPRORESET_OFF, dev.io + HP_PROR);
mdelay(TIME_PRO_RESET_DONE); mdelay(TIME_PRO_RESET_DONE);
} }
#endif #endif
...@@ -1338,8 +1338,8 @@ static int initialize(void) ...@@ -1338,8 +1338,8 @@ static int initialize(void)
int err, timeout; int err, timeout;
#ifdef MSND_CLASSIC #ifdef MSND_CLASSIC
outb(HPWAITSTATE_0, dev.io + HP_WAIT); msnd_outb(HPWAITSTATE_0, dev.io + HP_WAIT);
outb(HPBITMODE_16, dev.io + HP_BITM); msnd_outb(HPBITMODE_16, dev.io + HP_BITM);
reset_proteus(); reset_proteus();
#endif #endif
...@@ -1455,9 +1455,9 @@ static void __exit unload_multisound(void) ...@@ -1455,9 +1455,9 @@ static void __exit unload_multisound(void)
static int __init msnd_write_cfg(int cfg, int reg, int value) static int __init msnd_write_cfg(int cfg, int reg, int value)
{ {
outb(reg, cfg); msnd_outb(reg, cfg);
outb(value, cfg + 1); msnd_outb(value, cfg + 1);
if (value != inb(cfg + 1)) { if (value != msnd_inb(cfg + 1)) {
printk(KERN_ERR LOGNAME ": msnd_write_cfg: I/O error\n"); printk(KERN_ERR LOGNAME ": msnd_write_cfg: I/O error\n");
return -EIO; return -EIO;
} }
......
...@@ -1346,18 +1346,20 @@ static int __init probe_waveartist(struct address_info *hw_config) ...@@ -1346,18 +1346,20 @@ static int __init probe_waveartist(struct address_info *hw_config)
return 0; return 0;
} }
if (check_region(hw_config->io_base, 15)) { if (!request_region(hw_config->io_base, 15, hw_config->name)) {
printk(KERN_WARNING "WaveArtist: I/O port conflict\n"); printk(KERN_WARNING "WaveArtist: I/O port conflict\n");
return 0; return 0;
} }
if (hw_config->irq > 15 || hw_config->irq < 0) { if (hw_config->irq > 15 || hw_config->irq < 0) {
release_region(hw_config->io_base, 15);
printk(KERN_WARNING "WaveArtist: Bad IRQ %d\n", printk(KERN_WARNING "WaveArtist: Bad IRQ %d\n",
hw_config->irq); hw_config->irq);
return 0; return 0;
} }
if (hw_config->dma != 3) { if (hw_config->dma != 3) {
release_region(hw_config->io_base, 15);
printk(KERN_WARNING "WaveArtist: Bad DMA %d\n", printk(KERN_WARNING "WaveArtist: Bad DMA %d\n",
hw_config->dma); hw_config->dma);
return 0; return 0;
...@@ -1392,8 +1394,6 @@ attach_waveartist(struct address_info *hw, const struct waveartist_mixer_info *m ...@@ -1392,8 +1394,6 @@ attach_waveartist(struct address_info *hw, const struct waveartist_mixer_info *m
if (hw->dma != hw->dma2 && hw->dma2 != NO_DMA) if (hw->dma != hw->dma2 && hw->dma2 != NO_DMA)
devc->audio_flags |= DMA_DUPLEX; devc->audio_flags |= DMA_DUPLEX;
request_region(hw->io_base, 15, devc->hw.name);
devc->mix = mix; devc->mix = mix;
devc->dev_no = waveartist_init(devc); devc->dev_no = waveartist_init(devc);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment