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);
EXPORT_SYMBOL_NOVERS(memmove);
EXPORT_SYMBOL_NOVERS(memcmp);
EXPORT_SYMBOL_NOVERS(memscan);
EXPORT_SYMBOL_NOVERS(memchr);
EXPORT_SYMBOL_NOVERS(__memzero);
/* user mem (segment) */
......
......@@ -218,10 +218,10 @@ setup_745x_specifics:
/* 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
ori r11,r11,HID0_BTIC
END_FTR_SECTION_IFCLR(CPU_FTR_NO_BTIC)
xori r11,r11,HID0_BTIC
END_FTR_SECTION_IFSET(CPU_FTR_NO_BTIC)
BEGIN_FTR_SECTION
oris r11,r11,HID0_DPM@h /* enable dynamic power mgmt */
END_FTR_SECTION_IFCLR(CPU_FTR_NO_DPM)
......
......@@ -144,8 +144,7 @@ pcibios_fixup_resources(struct pci_dev *dev)
}
DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pcibios_fixup_resources);
void
pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
void pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
struct resource *res)
{
unsigned long offset = 0;
......@@ -158,6 +157,7 @@ pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
region->start = res->start - offset;
region->end = res->end - offset;
}
EXPORT_SYMBOL(pcibios_resource_to_bus);
/*
* 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,
* but we want to try to avoid allocating at 0x2900-0x2bff
* which might have be mirrored at 0x0100-0x03ff..
*/
void
pcibios_align_resource(void *data, struct resource *res, unsigned long size,
void pcibios_align_resource(void *data, struct resource *res, unsigned long size,
unsigned long align)
{
struct pci_dev *dev = data;
......@@ -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
......
......@@ -424,7 +424,7 @@ static void ipmi_po_new_smi(int if_num)
if (ready)
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) {
printk(KERN_ERR PFX "could not create IPMI user, error %d\n",
rv);
......
......@@ -618,8 +618,6 @@ create_iface(struct device_node *np, struct device *dev)
chan->iface = iface;
chan->chan_no = i;
chan->adapter.id = I2C_ALGO_SMBUS;
if (i==1)
chan->adapter.class = I2C_CLASS_HWMON;
chan->adapter.algo = &keywest_algorithm;
chan->adapter.algo_data = NULL;
chan->adapter.client_register = NULL;
......
......@@ -47,10 +47,10 @@
/* Drive specific timing taken from DOS driver v3.7 */
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 */
short active; /* active time */
short recovery; /* recovery time */
s16 active; /* active time */
s16 recovery; /* recovery time */
} qd65xx_timing [] = {
{ 30, "2040", 110, 225 }, /* Conner CP30204 */
{ 30, "2045", 135, 225 }, /* Conner CP30254 */
......
......@@ -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_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_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
int status;
char fragbuf[HOST_LINK_BUF_SIZE];
int fragpos = 0;
int fraglen;
size_t fraglen;
unsigned long timeout;
int written;
......@@ -1257,7 +1257,7 @@ static int dvb_ca_en50221_io_read_condition(struct dvb_ca_private* ca, int* resu
int slot;
int slot_count = 0;
int idx;
int fraglen;
size_t fraglen;
int connection_id = -1;
int found = 0;
u8 hdr[2];
......
......@@ -563,7 +563,7 @@ static int dvb_net_ts_callback(const u8 *buffer1, size_t buffer1_len,
if (buffer2 != 0)
printk(KERN_WARNING "buffer2 not 0: %p.\n", buffer2);
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",
buffer1_len, buffer1_len / TS_SZ, buffer1); */
dvb_net_ule(dev, buffer1, buffer1_len);
......
......@@ -1181,7 +1181,7 @@ static int ttusb_dec_boot_dsp(struct ttusb_dec *dec)
firmware_size = fw_entry->size;
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);
return -1;
}
......
......@@ -2416,7 +2416,7 @@ GetIocFacts(MPT_ADAPTER *ioc, int sleepFlag, int reason)
}
} else {
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,
RequestFrameSize)/sizeof(u32)));
return -66;
......
......@@ -71,14 +71,14 @@ static const char *probes[] = { "RedBoot", "cmdlinepart", NULL };
#endif
static int mtd_parts_nb = 0;
static struct mtd_partition *mtd_parts = 0;
static int mtd_parts_nb;
static struct mtd_partition *mtd_parts;
int __init init_edb7312nor(void)
{
static const char *rom_probe_types[] = PROBETYPES;
const char **type;
const char *part_type = 0;
const char *part_type = NULL;
printk(KERN_NOTICE MSG_PREFIX "0x%08x at 0x%08x\n",
WINDOW_SIZE, WINDOW_ADDR);
......@@ -92,7 +92,7 @@ int __init init_edb7312nor(void)
simple_map_init(&edb7312nor_map);
mymtd = 0;
mymtd = NULL;
type = rom_probe_types;
for(; !mymtd && *type; type++) {
mymtd = do_map_probe(*type, &edb7312nor_map);
......
......@@ -77,7 +77,7 @@ int __init init_impa7(void)
{
static const char *rom_probe_types[] = PROBETYPES;
const char **type;
const char *part_type = 0;
const char *part_type = NULL;
int i;
static struct { u_long addr; u_long size; } pt[NUM_FLASHBANKS] = {
{ WINDOW_ADDR0, WINDOW_SIZE0 },
......@@ -99,7 +99,7 @@ int __init init_impa7(void)
}
simple_map_init(&impa7_map[i]);
impa7_mtd[i] = 0;
impa7_mtd[i] = NULL;
type = rom_probe_types;
for(; !impa7_mtd[i] && *type; type++) {
impa7_mtd[i] = do_map_probe(*type, &impa7_map[i]);
......
......@@ -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,
int check_oob)
{
int i, retlen;
int i;
size_t retlen;
u8 buf[SECTORSIZE + nftl->mbd.mtd->oobsize];
for (i = 0; i < len; i += SECTORSIZE) {
......@@ -366,7 +367,8 @@ static void check_sectors_in_chain(struct NFTLrecord *nftl, unsigned int first_b
{
unsigned int block, i, status;
struct nftl_bci bci;
int sectors_per_block, retlen;
int sectors_per_block;
size_t retlen;
sectors_per_block = nftl->EraseSize / SECTORSIZE;
block = first_block;
......
......@@ -91,10 +91,12 @@ struct chain {
};
/* These belong in scsi.h also */
#define any2scsi(up, p) \
(up)[0] = (((unsigned long)(p)) >> 16) ; \
(up)[1] = (((unsigned long)(p)) >> 8); \
(up)[2] = ((unsigned long)(p));
static inline void any2scsi(u8 *p, u32 v)
{
p[0] = v >> 16;
p[1] = v >> 8;
p[2] = v;
}
#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 )
printk( " %x,", base );
#endif
for (flag = 0, i = 0; !flag && i < PORT_COUNT; i++) {
if (base == ports[i])
++flag;
for (i = 0; i < PORT_COUNT; i++) {
if (base == ports[i]) {
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
BIOS signature list (the signatures variable) to contain a BIOS
signature for a board *OTHER THAN* the TMC-1660/TMC-1680. */
......@@ -764,7 +767,7 @@ static int fdomain_isa_detect( int *irq, int *iobase )
for (i = 0; i < PORT_COUNT; i++) {
base = ports[i];
if (check_region( base, 0x10 )) {
if (!request_region(base, 0x10, "fdomain")) {
#if DEBUG_DETECT
printk( " (%x inuse),", base );
#endif
......@@ -773,7 +776,10 @@ static int fdomain_isa_detect( int *irq, int *iobase )
#if DEBUG_DETECT
printk( " %x,", base );
#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
......@@ -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_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
configuration registers. */
......@@ -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 );
#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" );
release_region(pci_base, 0x10);
return 0;
}
......@@ -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",
port_base, interrupt_level );
#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 )) {
printk( "scsi: <fdomain> Cannot locate chip at port base 0x%x\n",
port_base );
printk( "scsi: <fdomain> Bad LILO/INSMOD parameters?\n" );
release_region(port_base, 0x10);
return NULL;
}
} else {
......@@ -915,6 +931,7 @@ struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt )
if (setup_called) {
printk(KERN_ERR "scsi: <fdomain> Bad LILO/INSMOD parameters?\n");
}
release_region(port_base, 0x10);
return NULL;
}
......@@ -935,8 +952,10 @@ struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt )
get resources. */
shpnt = scsi_register( tpnt, 0 );
if(shpnt == NULL)
if(shpnt == NULL) {
release_region(port_base, 0x10);
return NULL;
}
shpnt->irq = interrupt_level;
shpnt->io_port = port_base;
scsi_set_device(shpnt, &pdev->dev);
......@@ -946,6 +965,7 @@ struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt )
/* Log IRQ with kernel */
if (!interrupt_level) {
printk(KERN_ERR "scsi: <fdomain> Card Detected, but driver not loaded (no IRQ)\n" );
release_region(port_base, 0x10);
return NULL;
} else {
/* Register the IRQ with the kernel */
......@@ -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 "scsi: <fdomain> Detected, but driver not loaded (IRQ)\n" );
release_region(port_base, 0x10);
return NULL;
}
}
/* Log I/O ports with kernel */
request_region( port_base, 0x10, "fdomain" );
return shpnt;
}
......
......@@ -190,7 +190,6 @@
#include <scsi/scsicam.h>
#define ANY2SCSI_INLINE /* undef this to use old macros */
#undef WD7000_DEBUG /* general debug */
#ifdef WD7000_DEBUG
#define dprintk printk
......@@ -726,55 +725,17 @@ static int __init wd7000_setup(char *str)
__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)
{
*scsi++ = ((i_u) any).u[2];
*scsi++ = ((i_u) any).u[1];
*scsi++ = ((i_u) any).u[0];
*scsi++ = (unsigned)any >> 16;
*scsi++ = (unsigned)any >> 8;
*scsi++ = any;
}
static inline int scsi2int(unchar * scsi)
{
i_u result;
result.i = 0; /* clears unused bytes */
result.u[2] = *scsi++;
result.u[1] = *scsi++;
result.u[0] = *scsi++;
return (result.i);
return (scsi[0] << 16) | (scsi[1] << 8) | scsi[2];
}
#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)
{
......
......@@ -1742,14 +1742,10 @@ static void __init probe_sccs(void)
* We're called early and memory managment isn't up, yet.
* Thus check_region would fail.
*/
if (check_region((unsigned long)
if (!request_region((unsigned long)
zs_channels[n_channels].control,
ZS_CHAN_IO_SIZE) < 0) {
ZS_CHAN_IO_SIZE, "SCC"))
panic("SCC I/O region is not free");
}
request_region((unsigned long)
zs_channels[n_channels].control,
ZS_CHAN_IO_SIZE, "SCC");
#endif
zs_soft[n_channels].zs_channel = &zs_channels[n_channels];
zs_soft[n_channels].irq = zs_parms->irq;
......
......@@ -146,8 +146,8 @@ static int ehci_hub_resume (struct usb_hcd *hcd)
#else
#define ehci_hub_suspend 0
#define ehci_hub_resume 0
#define ehci_hub_suspend NULL
#define ehci_hub_resume NULL
#endif /* CONFIG_PM */
......
#ifndef _ALPHA_PAGE_H
#define _ALPHA_PAGE_H
#include <linux/config.h>
#include <asm/pal.h>
/* PAGE_SHIFT determines the page size */
......
......@@ -22,40 +22,40 @@
*/
#define __arch_base_getb(b,o) \
({ \
unsigned int v, r = (b); \
unsigned int __v, __r = (b); \
__asm__ __volatile__( \
"ldrb %0, [%1, %2]" \
: "=r" (v) \
: "r" (r), "Ir" (o)); \
v; \
: "=r" (__v) \
: "r" (__r), "Ir" (o)); \
__v; \
})
#define __arch_base_getl(b,o) \
({ \
unsigned int v, r = (b); \
unsigned int __v, __r = (b); \
__asm__ __volatile__( \
"ldr %0, [%1, %2]" \
: "=r" (v) \
: "r" (r), "Ir" (o)); \
v; \
: "=r" (__v) \
: "r" (__r), "Ir" (o)); \
__v; \
})
#define __arch_base_putb(v,b,o) \
({ \
unsigned int r = (b); \
unsigned int __r = (b); \
__asm__ __volatile__( \
"strb %0, [%1, %2]" \
: \
: "r" (v), "r" (r), "Ir" (o)); \
: "r" (v), "r" (__r), "Ir" (o));\
})
#define __arch_base_putl(v,b,o) \
({ \
unsigned int r = (b); \
unsigned int __r = (b); \
__asm__ __volatile__( \
"str %0, [%1, %2]" \
: \
: "r" (v), "r" (r), "Ir" (o)); \
: "r" (v), "r" (__r), "Ir" (o));\
})
/*
......@@ -176,15 +176,15 @@ DECLARE_IO(int,l,"")
#define __outwc(value,port) \
({ \
unsigned long v = value; \
unsigned long __v = value; \
if (__PORT_PCIO((port))) \
__asm__ __volatile__( \
"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 \
__asm__ __volatile__( \
"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) \
......@@ -203,15 +203,15 @@ DECLARE_IO(int,l,"")
#define __outlc(value,port) \
({ \
unsigned long v = value; \
unsigned long __v = value; \
if (__PORT_PCIO((port))) \
__asm__ __volatile__( \
"str %0, [%1, %2] @ outlc" \
: : "r" (v), "r" (PCIO_BASE), "Jr" ((port) << 2)); \
: : "r" (__v), "r" (PCIO_BASE), "Jr" ((port) << 2)); \
else \
__asm__ __volatile__( \
"str %0, [%1, %2] @ outlc" \
: : "r" (v), "r" (IO_BASE), "r" ((port) << 2)); \
: : "r" (__v), "r" (IO_BASE), "r" ((port) << 2)); \
})
#define __inlc(port) \
......@@ -250,6 +250,6 @@ DECLARE_IO(int,l,"")
/*
* 1:1 mapping for ioremapped regions.
*/
#define __mem_pci(x) (x)
#define __mem_pci(x) ((unsigned long)(x))
#endif
......@@ -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.
*/
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;
unsigned char *temp;
......
......@@ -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;
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_cookie_wait, /* SCTP_CONNTRACK_COOKIE_WAIT */
&ip_ct_sctp_timeout_cookie_echoed, /* SCTP_CONNTRACK_COOKIE_ECHOED */
......
......@@ -126,7 +126,7 @@ spkm3_make_token(struct spkm3_ctx *ctx, int qop_req,
out_err:
if (md5cksum.data)
kfree(md5cksum.data);
token->data = 0;
token->data = NULL;
token->len = 0;
return GSS_S_FAILURE;
}
......@@ -2096,7 +2096,7 @@ static ssize_t cs_read(struct file *file, char __user *buffer, size_t count, lof
unsigned copied=0;
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];
if(!state)
return -ENODEV;
......@@ -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
"_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
" .dmasize=%d .count=%d buffer=%p ret=%d\n",
" .dmasize=%d .count=%d buffer=%p ret=%zd\n",
dmabuf->dmasize,dmabuf->count,buffer,ret) );
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
up(&state->sem);
set_current_state(TASK_RUNNING);
CS_DBGOUT(CS_WAVE_READ | CS_FUNCTION, 4,
printk("cs46xx: cs_read()- %d\n",ret) );
printk("cs46xx: cs_read()- %zd\n",ret) );
return ret;
}
......@@ -2202,7 +2202,7 @@ static ssize_t cs_write(struct file *file, const char __user *buffer, size_t cou
int cnt;
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];
if(!state)
return -ENODEV;
......@@ -2309,7 +2309,7 @@ static ssize_t cs_write(struct file *file, const char __user *buffer, size_t cou
set_current_state(TASK_RUNNING);
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;
}
......
......@@ -207,7 +207,7 @@ int msnd_wait_TXDE(multisound_dev_t *dev)
register int timeout = 1000;
while(timeout-- > 0)
if (inb(io + HP_ISR) & HPISR_TXDE)
if (msnd_inb(io + HP_ISR) & HPISR_TXDE)
return 0;
return -EIO;
......@@ -219,7 +219,7 @@ int msnd_wait_HC0(multisound_dev_t *dev)
register int timeout = 1000;
while(timeout-- > 0)
if (!(inb(io + HP_CVR) & HPCVR_HC))
if (!(msnd_inb(io + HP_CVR) & HPCVR_HC))
return 0;
return -EIO;
......@@ -231,7 +231,7 @@ int msnd_send_dsp_cmd(multisound_dev_t *dev, BYTE cmd)
spin_lock_irqsave(&dev->lock, flags);
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);
return 0;
}
......@@ -248,9 +248,9 @@ int msnd_send_word(multisound_dev_t *dev, unsigned char high,
register unsigned int io = dev->io;
if (msnd_wait_TXDE(dev) == 0) {
outb(high, io + HP_TXH);
outb(mid, io + HP_TXM);
outb(low, io + HP_TXL);
msnd_outb(high, io + HP_TXH);
msnd_outb(mid, io + HP_TXM);
msnd_outb(low, io + HP_TXL);
return 0;
}
......@@ -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)
return -EIO;
inb(dev->io + HP_RXL);
inb(dev->io + HP_CVR);
msnd_inb(dev->io + HP_RXL);
msnd_inb(dev->io + HP_CVR);
return 0;
}
......@@ -289,11 +289,11 @@ int msnd_enable_irq(multisound_dev_t *dev)
spin_lock_irqsave(&dev->lock, flags);
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)
outb(dev->irqid, dev->io + HP_IRQM);
outb(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(dev->irqid, dev->io + HP_IRQM);
msnd_outb(msnd_inb(dev->io + HP_ICR) & ~HPICR_TREQ, dev->io + HP_ICR);
msnd_outb(msnd_inb(dev->io + HP_ICR) | HPICR_RREQ, dev->io + HP_ICR);
enable_irq(dev->irq);
msnd_init_queue(dev->DSPQ, dev->dspq_data_buff, dev->dspq_buff_size);
spin_unlock_irqrestore(&dev->lock, flags);
......@@ -320,9 +320,9 @@ int msnd_disable_irq(multisound_dev_t *dev)
spin_lock_irqsave(&dev->lock, flags);
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)
outb(HPIRQ_NONE, dev->io + HP_IRQM);
msnd_outb(HPIRQ_NONE, dev->io + HP_IRQM);
disable_irq(dev->irq);
spin_unlock_irqrestore(&dev->lock, flags);
return 0;
......
......@@ -154,10 +154,11 @@
#define DSPTOPC_BASED(w) (((w) - DSP_BASE_ADDR) * 2)
#ifdef SLOWIO
# undef outb
# undef inb
# define outb outb_p
# define inb inb_p
#define msnd_outb outb_p
#define msnd_inb inb_p
#else
#define msnd_outb outb
#define msnd_inb inb
#endif
/* JobQueueStruct */
......
......@@ -136,9 +136,9 @@ static void reset_record_queue(void)
/* Critical section: bank 1 access */
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);
outb(HPBLKSEL_0, dev.io + HP_BLKS);
msnd_outb(HPBLKSEL_0, dev.io + HP_BLKS);
spin_unlock_irqrestore(&dev.lock, flags);
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)
/* Read data from the head (unprotected bank 1 access okay
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(
&dev.DARF,
(char *)(dev.base + bank * DAR_BUFF_SIZE),
size);
outb(HPBLKSEL_0, dev.io + HP_BLKS);
msnd_outb(HPBLKSEL_0, dev.io + HP_BLKS);
return 1;
}
......@@ -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)
{
/* Send ack to DSP */
inb(dev.io + HP_RXL);
msnd_inb(dev.io + HP_RXL);
/* Evaluate queued DSP messages */
while (isa_readw(dev.DSPQ + JQS_wTail) != isa_readw(dev.DSPQ + JQS_wHead)) {
......@@ -1120,15 +1120,15 @@ static int reset_dsp(void)
{
int timeout = 100;
outb(HPDSPRESET_ON, dev.io + HP_DSPR);
msnd_outb(HPDSPRESET_ON, dev.io + HP_DSPR);
mdelay(1);
#ifndef MSND_CLASSIC
dev.info = inb(dev.io + HP_INFO);
dev.info = msnd_inb(dev.io + HP_INFO);
#endif
outb(HPDSPRESET_OFF, dev.io + HP_DSPR);
msnd_outb(HPDSPRESET_OFF, dev.io + HP_DSPR);
mdelay(1);
while (timeout-- > 0) {
if (inb(dev.io + HP_CVR) == HP_CVR_DEF)
if (msnd_inb(dev.io + HP_CVR) == HP_CVR_DEF)
return 0;
mdelay(1);
}
......@@ -1202,9 +1202,9 @@ static int init_sma(void)
unsigned long flags;
#ifdef MSND_CLASSIC
outb(dev.memid, dev.io + HP_MEMM);
msnd_outb(dev.memid, dev.io + HP_MEMM);
#endif
outb(HPBLKSEL_0, dev.io + HP_BLKS);
msnd_outb(HPBLKSEL_0, dev.io + HP_BLKS);
if (initted) {
mastVolLeft = isa_readw(dev.SMA + SMA_wCurrMastVolLeft);
mastVolRight = isa_readw(dev.SMA + SMA_wCurrMastVolRight);
......@@ -1214,9 +1214,9 @@ static int init_sma(void)
/* Critical section: bank 1 access */
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);
outb(HPBLKSEL_0, dev.io + HP_BLKS);
msnd_outb(HPBLKSEL_0, dev.io + HP_BLKS);
spin_unlock_irqrestore(&dev.lock, flags);
dev.pwDSPQData = (dev.base + DSPQ_DATA_BUFF);
......@@ -1289,7 +1289,7 @@ static int __init calibrate_adc(WORD srate)
static int upload_dsp_code(void)
{
outb(HPBLKSEL_0, dev.io + HP_BLKS);
msnd_outb(HPBLKSEL_0, dev.io + HP_BLKS);
#ifndef HAVE_DSPCODEH
INITCODESIZE = mod_firmware_load(INITCODEFILE, &INITCODE);
if (!INITCODE) {
......@@ -1326,9 +1326,9 @@ static int upload_dsp_code(void)
#ifdef MSND_CLASSIC
static void reset_proteus(void)
{
outb(HPPRORESET_ON, dev.io + HP_PROR);
msnd_outb(HPPRORESET_ON, dev.io + HP_PROR);
mdelay(TIME_PRO_RESET);
outb(HPPRORESET_OFF, dev.io + HP_PROR);
msnd_outb(HPPRORESET_OFF, dev.io + HP_PROR);
mdelay(TIME_PRO_RESET_DONE);
}
#endif
......@@ -1338,8 +1338,8 @@ static int initialize(void)
int err, timeout;
#ifdef MSND_CLASSIC
outb(HPWAITSTATE_0, dev.io + HP_WAIT);
outb(HPBITMODE_16, dev.io + HP_BITM);
msnd_outb(HPWAITSTATE_0, dev.io + HP_WAIT);
msnd_outb(HPBITMODE_16, dev.io + HP_BITM);
reset_proteus();
#endif
......@@ -1455,9 +1455,9 @@ static void __exit unload_multisound(void)
static int __init msnd_write_cfg(int cfg, int reg, int value)
{
outb(reg, cfg);
outb(value, cfg + 1);
if (value != inb(cfg + 1)) {
msnd_outb(reg, cfg);
msnd_outb(value, cfg + 1);
if (value != msnd_inb(cfg + 1)) {
printk(KERN_ERR LOGNAME ": msnd_write_cfg: I/O error\n");
return -EIO;
}
......
......@@ -1346,18 +1346,20 @@ static int __init probe_waveartist(struct address_info *hw_config)
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");
return 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",
hw_config->irq);
return 0;
}
if (hw_config->dma != 3) {
release_region(hw_config->io_base, 15);
printk(KERN_WARNING "WaveArtist: Bad DMA %d\n",
hw_config->dma);
return 0;
......@@ -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)
devc->audio_flags |= DMA_DUPLEX;
request_region(hw->io_base, 15, devc->hw.name);
devc->mix = mix;
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