Merge ../from-linus
This commit is contained in:
commit
fb80cbee4c
6 changed files with 40 additions and 29 deletions
|
@ -628,7 +628,7 @@ fb_pan_display(struct fb_info *info, struct fb_var_screeninfo *var)
|
||||||
int
|
int
|
||||||
fb_set_var(struct fb_info *info, struct fb_var_screeninfo *var)
|
fb_set_var(struct fb_info *info, struct fb_var_screeninfo *var)
|
||||||
{
|
{
|
||||||
int err;
|
int err, flags = info->flags;
|
||||||
|
|
||||||
if (var->activate & FB_ACTIVATE_INV_MODE) {
|
if (var->activate & FB_ACTIVATE_INV_MODE) {
|
||||||
struct fb_videomode mode1, mode2;
|
struct fb_videomode mode1, mode2;
|
||||||
|
@ -682,7 +682,7 @@ fb_set_var(struct fb_info *info, struct fb_var_screeninfo *var)
|
||||||
!list_empty(&info->modelist))
|
!list_empty(&info->modelist))
|
||||||
err = fb_add_videomode(&mode, &info->modelist);
|
err = fb_add_videomode(&mode, &info->modelist);
|
||||||
|
|
||||||
if (!err && info->flags & FBINFO_MISC_USEREVENT) {
|
if (!err && (flags & FBINFO_MISC_USEREVENT)) {
|
||||||
struct fb_event event;
|
struct fb_event event;
|
||||||
|
|
||||||
info->flags &= ~FBINFO_MISC_USEREVENT;
|
info->flags &= ~FBINFO_MISC_USEREVENT;
|
||||||
|
|
|
@ -583,23 +583,6 @@ intelfb_pci_register(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Map the fb and MMIO regions */
|
|
||||||
dinfo->aperture.virtual = (u8 __iomem *)ioremap_nocache
|
|
||||||
(dinfo->aperture.physical, dinfo->aperture.size);
|
|
||||||
if (!dinfo->aperture.virtual) {
|
|
||||||
ERR_MSG("Cannot remap FB region.\n");
|
|
||||||
cleanup(dinfo);
|
|
||||||
return -ENODEV;
|
|
||||||
}
|
|
||||||
dinfo->mmio_base =
|
|
||||||
(u8 __iomem *)ioremap_nocache(dinfo->mmio_base_phys,
|
|
||||||
INTEL_REG_SIZE);
|
|
||||||
if (!dinfo->mmio_base) {
|
|
||||||
ERR_MSG("Cannot remap MMIO region.\n");
|
|
||||||
cleanup(dinfo);
|
|
||||||
return -ENODEV;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Get the chipset info. */
|
/* Get the chipset info. */
|
||||||
dinfo->pci_chipset = pdev->device;
|
dinfo->pci_chipset = pdev->device;
|
||||||
|
|
||||||
|
@ -630,9 +613,15 @@ intelfb_pci_register(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||||
dinfo->accel = 0;
|
dinfo->accel = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (MB(voffset) < stolen_size)
|
||||||
|
offset = (stolen_size >> 12);
|
||||||
|
else
|
||||||
|
offset = ROUND_UP_TO_PAGE(MB(voffset))/GTT_PAGE_SIZE;
|
||||||
|
|
||||||
/* Framebuffer parameters - Use all the stolen memory if >= vram */
|
/* Framebuffer parameters - Use all the stolen memory if >= vram */
|
||||||
if (ROUND_UP_TO_PAGE(stolen_size) >= MB(vram)) {
|
if (ROUND_UP_TO_PAGE(stolen_size) >= ((offset << 12) + MB(vram))) {
|
||||||
dinfo->fb.size = ROUND_UP_TO_PAGE(stolen_size);
|
dinfo->fb.size = ROUND_UP_TO_PAGE(stolen_size);
|
||||||
|
dinfo->fb.offset = 0;
|
||||||
dinfo->fbmem_gart = 0;
|
dinfo->fbmem_gart = 0;
|
||||||
} else {
|
} else {
|
||||||
dinfo->fb.size = MB(vram);
|
dinfo->fb.size = MB(vram);
|
||||||
|
@ -663,11 +652,6 @@ intelfb_pci_register(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (MB(voffset) < stolen_size)
|
|
||||||
offset = (stolen_size >> 12);
|
|
||||||
else
|
|
||||||
offset = ROUND_UP_TO_PAGE(MB(voffset))/GTT_PAGE_SIZE;
|
|
||||||
|
|
||||||
/* set the mem offsets - set them after the already used pages */
|
/* set the mem offsets - set them after the already used pages */
|
||||||
if (dinfo->accel) {
|
if (dinfo->accel) {
|
||||||
dinfo->ring.offset = offset + gtt_info.current_memory;
|
dinfo->ring.offset = offset + gtt_info.current_memory;
|
||||||
|
@ -682,6 +666,26 @@ intelfb_pci_register(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||||
+ (dinfo->cursor.size >> 12);
|
+ (dinfo->cursor.size >> 12);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Map the fb and MMIO regions */
|
||||||
|
/* ioremap only up to the end of used aperture */
|
||||||
|
dinfo->aperture.virtual = (u8 __iomem *)ioremap_nocache
|
||||||
|
(dinfo->aperture.physical, (dinfo->fb.offset << 12)
|
||||||
|
+ dinfo->fb.size);
|
||||||
|
if (!dinfo->aperture.virtual) {
|
||||||
|
ERR_MSG("Cannot remap FB region.\n");
|
||||||
|
cleanup(dinfo);
|
||||||
|
return -ENODEV;
|
||||||
|
}
|
||||||
|
|
||||||
|
dinfo->mmio_base =
|
||||||
|
(u8 __iomem *)ioremap_nocache(dinfo->mmio_base_phys,
|
||||||
|
INTEL_REG_SIZE);
|
||||||
|
if (!dinfo->mmio_base) {
|
||||||
|
ERR_MSG("Cannot remap MMIO region.\n");
|
||||||
|
cleanup(dinfo);
|
||||||
|
return -ENODEV;
|
||||||
|
}
|
||||||
|
|
||||||
/* Allocate memories (which aren't stolen) */
|
/* Allocate memories (which aren't stolen) */
|
||||||
if (dinfo->accel) {
|
if (dinfo->accel) {
|
||||||
if (!(dinfo->gtt_ring_mem =
|
if (!(dinfo->gtt_ring_mem =
|
||||||
|
|
|
@ -402,7 +402,7 @@ static struct inotify_watch *create_watch(struct inotify_device *dev,
|
||||||
return ERR_PTR(ret);
|
return ERR_PTR(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
dev->last_wd = ret;
|
dev->last_wd = watch->wd;
|
||||||
watch->mask = mask;
|
watch->mask = mask;
|
||||||
atomic_set(&watch->count, 0);
|
atomic_set(&watch->count, 0);
|
||||||
INIT_LIST_HEAD(&watch->d_list);
|
INIT_LIST_HEAD(&watch->d_list);
|
||||||
|
|
|
@ -2216,7 +2216,8 @@ int vfs_rename(struct inode *old_dir, struct dentry *old_dentry,
|
||||||
error = vfs_rename_other(old_dir,old_dentry,new_dir,new_dentry);
|
error = vfs_rename_other(old_dir,old_dentry,new_dir,new_dentry);
|
||||||
if (!error) {
|
if (!error) {
|
||||||
const char *new_name = old_dentry->d_name.name;
|
const char *new_name = old_dentry->d_name.name;
|
||||||
fsnotify_move(old_dir, new_dir, old_name, new_name, is_dir, new_dentry->d_inode);
|
fsnotify_move(old_dir, new_dir, old_name, new_name, is_dir,
|
||||||
|
new_dentry->d_inode, old_dentry->d_inode);
|
||||||
}
|
}
|
||||||
fsnotify_oldname_free(old_name);
|
fsnotify_oldname_free(old_name);
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
*/
|
*/
|
||||||
static inline void fsnotify_move(struct inode *old_dir, struct inode *new_dir,
|
static inline void fsnotify_move(struct inode *old_dir, struct inode *new_dir,
|
||||||
const char *old_name, const char *new_name,
|
const char *old_name, const char *new_name,
|
||||||
int isdir, struct inode *target)
|
int isdir, struct inode *target, struct inode *source)
|
||||||
{
|
{
|
||||||
u32 cookie = inotify_get_cookie();
|
u32 cookie = inotify_get_cookie();
|
||||||
|
|
||||||
|
@ -41,6 +41,10 @@ static inline void fsnotify_move(struct inode *old_dir, struct inode *new_dir,
|
||||||
inotify_inode_queue_event(target, IN_DELETE_SELF, 0, NULL);
|
inotify_inode_queue_event(target, IN_DELETE_SELF, 0, NULL);
|
||||||
inotify_inode_is_dead(target);
|
inotify_inode_is_dead(target);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (source) {
|
||||||
|
inotify_inode_queue_event(source, IN_MOVE_SELF, 0, NULL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -35,6 +35,7 @@ struct inotify_event {
|
||||||
#define IN_CREATE 0x00000100 /* Subfile was created */
|
#define IN_CREATE 0x00000100 /* Subfile was created */
|
||||||
#define IN_DELETE 0x00000200 /* Subfile was deleted */
|
#define IN_DELETE 0x00000200 /* Subfile was deleted */
|
||||||
#define IN_DELETE_SELF 0x00000400 /* Self was deleted */
|
#define IN_DELETE_SELF 0x00000400 /* Self was deleted */
|
||||||
|
#define IN_MOVE_SELF 0x00000800 /* Self was moved */
|
||||||
|
|
||||||
/* the following are legal events. they are sent as needed to any watch */
|
/* the following are legal events. they are sent as needed to any watch */
|
||||||
#define IN_UNMOUNT 0x00002000 /* Backing fs was unmounted */
|
#define IN_UNMOUNT 0x00002000 /* Backing fs was unmounted */
|
||||||
|
@ -56,7 +57,8 @@ struct inotify_event {
|
||||||
*/
|
*/
|
||||||
#define IN_ALL_EVENTS (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE | \
|
#define IN_ALL_EVENTS (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE | \
|
||||||
IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM | \
|
IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM | \
|
||||||
IN_MOVED_TO | IN_DELETE | IN_CREATE | IN_DELETE_SELF)
|
IN_MOVED_TO | IN_DELETE | IN_CREATE | IN_DELETE_SELF | \
|
||||||
|
IN_MOVE_SELF)
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue