Commit 77ade2a9 authored by Linus Torvalds's avatar Linus Torvalds

Merge master.kernel.org:/home/davem/BK/sparc-2.5

into home.transmeta.com:/home/torvalds/v2.5/linux
parents 9ae94219 0f18f55b
......@@ -346,7 +346,7 @@ paging_init(void)
*/
free_area_init_node(0, &contig_page_data, 0, zones_size, PAGE_OFFSET >> PAGE_SHIFT, 0);
mem_map = contig_page_data.node_mem_map;
}
extern unsigned long loops_per_jiffy; /* init/main.c */
......
......@@ -1342,6 +1342,7 @@ void __init srmmu_paging_init(void)
free_area_init_node(0, &contig_page_data, NULL, zones_size,
phys_base >> PAGE_SHIFT, zholes_size);
mem_map = contig_page_data.node_mem_map;
}
/* P3: easy to fix, todo. Current code is utterly broken, though. */
......
......@@ -2068,6 +2068,7 @@ void __init sun4c_paging_init(void)
free_area_init_node(0, &contig_page_data, NULL, zones_size,
phys_base >> PAGE_SHIFT, zholes_size);
mem_map = contig_page_data.node_mem_map;
}
cnt = 0;
......
......@@ -4216,6 +4216,39 @@ static int mtd_rw_oob(unsigned int fd, unsigned int cmd, unsigned long arg)
return ((0 == ret) ? 0 : -EFAULT);
}
/* Fix sizeof(sizeof()) breakage */
#define BLKELVGET_32 _IOR(0x12,106,int)
#define BLKELVSET_32 _IOW(0x12,107,int)
#define BLKBSZGET_32 _IOR(0x12,112,int)
#define BLKBSZSET_32 _IOW(0x12,113,int)
#define BLKGETSIZE64_32 _IOR(0x12,114,int)
static int do_blkelvget(unsigned int fd, unsigned int cmd, unsigned long arg)
{
return sys_ioctl(fd, BLKELVGET, arg);
}
static int do_blkelvset(unsigned int fd, unsigned int cmd, unsigned long arg)
{
return sys_ioctl(fd, BLKELVSET, arg);
}
static int do_blkbszget(unsigned int fd, unsigned int cmd, unsigned long arg)
{
return sys_ioctl(fd, BLKBSZGET, arg);
}
static int do_blkbszset(unsigned int fd, unsigned int cmd, unsigned long arg)
{
return sys_ioctl(fd, BLKBSZSET, arg);
}
static int do_blkgetsize64(unsigned int fd, unsigned int cmd,
unsigned long arg)
{
return sys_ioctl(fd, BLKGETSIZE64, arg);
}
struct ioctl_trans {
unsigned int cmd;
unsigned int handler;
......@@ -4338,10 +4371,6 @@ COMPATIBLE_IOCTL(BLKRRPART)
COMPATIBLE_IOCTL(BLKFLSBUF)
COMPATIBLE_IOCTL(BLKSECTSET)
COMPATIBLE_IOCTL(BLKSSZGET)
COMPATIBLE_IOCTL(BLKBSZGET)
COMPATIBLE_IOCTL(BLKBSZSET)
COMPATIBLE_IOCTL(BLKGETSIZE64)
/* RAID */
COMPATIBLE_IOCTL(RAID_VERSION)
COMPATIBLE_IOCTL(GET_ARRAY_INFO)
......@@ -4881,9 +4910,6 @@ COMPATIBLE_IOCTL(DRM_IOCTL_LOCK)
COMPATIBLE_IOCTL(DRM_IOCTL_UNLOCK)
COMPATIBLE_IOCTL(DRM_IOCTL_FINISH)
#endif /* DRM */
/* elevator */
COMPATIBLE_IOCTL(BLKELVGET)
COMPATIBLE_IOCTL(BLKELVSET)
/* Big W */
/* WIOC_GETSUPPORT not yet implemented -E */
COMPATIBLE_IOCTL(WDIOC_GETSTATUS)
......@@ -5140,6 +5166,14 @@ HANDLE_IOCTL(USBDEVFS_BULK32, do_usbdevfs_bulk)
HANDLE_IOCTL(USBDEVFS_REAPURB32, do_usbdevfs_reapurb)
HANDLE_IOCTL(USBDEVFS_REAPURBNDELAY32, do_usbdevfs_reapurb)
HANDLE_IOCTL(USBDEVFS_DISCSIGNAL32, do_usbdevfs_discsignal)
/* take care of sizeof(sizeof()) breakage */
/* elevator */
HANDLE_IOCTL(BLKELVGET_32, do_blkelvget)
HANDLE_IOCTL(BLKELVSET_32, do_blkelvset)
/* block stuff */
HANDLE_IOCTL(BLKBSZGET_32, do_blkbszget)
HANDLE_IOCTL(BLKBSZSET_32, do_blkbszset)
HANDLE_IOCTL(BLKGETSIZE64_32, do_blkgetsize64)
IOCTL_TABLE_END
unsigned int ioctl32_hash_table[1024];
......
......@@ -1554,6 +1554,7 @@ void __init paging_init(void)
free_area_init_node(0, &contig_page_data, NULL, zones_size,
phys_base >> PAGE_SHIFT, zholes_size);
mem_map = contig_page_data.node_mem_map;
}
device_scan();
......
......@@ -724,6 +724,7 @@ extern int init_socksys(void);
MODULE_AUTHOR("Jakub Jelinek (jj@ultra.linux.cz), Patrik Rak (prak3264@ss1000.ms.mff.cuni.cz)");
MODULE_DESCRIPTION("Solaris binary emulation module");
MODULE_LICENSE("GPL");
#ifdef __sparc_v9__
extern u32 tl0_solaris[8];
......
......@@ -8,6 +8,8 @@
#ifndef _SPARC_ESP_H
#define _SPARC_ESP_H
#include <linux/config.h>
/* For dvma controller register definitions. */
#include <asm/dma.h>
......@@ -399,6 +401,7 @@ extern int esp_proc_info(char *buffer, char **start, off_t offset, int length,
int hostno, int inout);
extern int esp_revoke(Scsi_Device* SDptr);
#ifdef CONFIG_SPARC64
#define SCSI_SPARC_ESP { \
proc_name: "esp", \
proc_info: &esp_proc_info, \
......@@ -417,6 +420,26 @@ extern int esp_revoke(Scsi_Device* SDptr);
use_clustering: ENABLE_CLUSTERING, \
highmem_io: 1, \
}
#else
/* Sparc32's iommu code cannot handle highmem pages yet. */
#define SCSI_SPARC_ESP { \
proc_name: "esp", \
proc_info: &esp_proc_info, \
name: "Sun ESP 100/100a/200", \
detect: esp_detect, \
revoke: esp_revoke, \
info: esp_info, \
command: esp_command, \
queuecommand: esp_queue, \
abort: esp_abort, \
reset: esp_reset, \
can_queue: 7, \
this_id: 7, \
sg_tablesize: SG_ALL, \
cmd_per_lun: 1, \
use_clustering: ENABLE_CLUSTERING, \
}
#endif
/* For our interrupt engine. */
#define for_each_esp(esp) \
......
......@@ -6,6 +6,8 @@
#ifndef _QLOGICPTI_H
#define _QLOGICPTI_H
#include <linux/config.h>
/* Qlogic/SBUS controller registers. */
#define SBUS_CFG1 0x006UL
#define SBUS_CTRL 0x008UL
......@@ -512,6 +514,7 @@ struct qlogicpti {
#define HCCTRL_B1ENAB 0x0008 /* Breakpoint 1 enable */
#define HCCTRL_B0ENAB 0x0004 /* Breakpoint 0 enable */
#ifdef CONFIG_SPARC64
#define QLOGICPTI { \
detect: qlogicpti_detect, \
release: qlogicpti_release, \
......@@ -526,6 +529,22 @@ struct qlogicpti {
use_clustering: ENABLE_CLUSTERING, \
highmem_io: 1, \
}
#else
/* Sparc32's iommu code cannot handle highmem pages yet. */
#define QLOGICPTI { \
detect: qlogicpti_detect, \
release: qlogicpti_release, \
info: qlogicpti_info, \
queuecommand: qlogicpti_queuecommand_slow, \
abort: qlogicpti_abort, \
reset: qlogicpti_reset, \
can_queue: QLOGICPTI_REQ_QUEUE_LEN, \
this_id: 7, \
sg_tablesize: QLOGICPTI_MAX_SG(QLOGICPTI_REQ_QUEUE_LEN), \
cmd_per_lun: 1, \
use_clustering: ENABLE_CLUSTERING, \
}
#endif
/* For our interrupt engine. */
#define for_each_qlogicpti(qp) \
......
......@@ -619,6 +619,8 @@ struct scsi_device {
unsigned remap:1; /* support remapping */
unsigned starved:1; /* unable to process commands because
host busy */
unsigned sync:1; /* Sync transfer state, managed by host */
unsigned wide:1; /* WIDE transfer state, managed by host */
unsigned int device_blocked; /* Device returned QUEUE_FULL. */
......
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