Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 233153
b: refs/heads/master
c: 3de0498
h: refs/heads/master
i:
  233151: a820dee
v: v3
  • Loading branch information
Thomas Abraham authored and Kukjin Kim committed Feb 11, 2011
1 parent 7b5c69a commit 5b039d2
Show file tree
Hide file tree
Showing 125 changed files with 462 additions and 891 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a288465fa86731108c0ee590da505abe65480473
refs/heads/master: 3de04984c62559b7d59ecb3ad010fd148f90f030
1 change: 1 addition & 0 deletions trunk/arch/arm/mach-s5pv310/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ config MACH_SMDKV310
select S3C_DEV_HSMMC2
select S3C_DEV_HSMMC3
select S5PV310_DEV_PD
select S5PV310_DEV_SYSMMU
select S5PV310_SETUP_I2C1
select S5PV310_SETUP_SDHCI
help
Expand Down
2 changes: 0 additions & 2 deletions trunk/arch/blackfin/include/asm/bfin_serial.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
#define __BFIN_ASM_SERIAL_H__

#include <linux/serial_core.h>
#include <linux/spinlock.h>
#include <mach/anomaly.h>
#include <mach/bfin_serial.h>

Expand Down Expand Up @@ -42,7 +41,6 @@ struct bfin_serial_port {
struct circ_buf rx_dma_buf;
struct timer_list rx_dma_timer;
int rx_dma_nrows;
spinlock_t rx_lock;
unsigned int tx_dma_channel;
unsigned int rx_dma_channel;
struct work_struct tx_dma_workqueue;
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/microblaze/include/asm/irqflags.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
#include <linux/types.h>
#include <asm/registers.h>

#if CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR
#ifdef CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR

static inline unsigned long arch_local_irq_save(void)
{
Expand Down
27 changes: 14 additions & 13 deletions trunk/arch/microblaze/include/asm/pgtable.h
Original file line number Diff line number Diff line change
Expand Up @@ -411,19 +411,20 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
static inline unsigned long pte_update(pte_t *p, unsigned long clr,
unsigned long set)
{
unsigned long flags, old, tmp;

raw_local_irq_save(flags);

__asm__ __volatile__( "lw %0, %2, r0 \n"
"andn %1, %0, %3 \n"
"or %1, %1, %4 \n"
"sw %1, %2, r0 \n"
: "=&r" (old), "=&r" (tmp)
: "r" ((unsigned long)(p + 1) - 4), "r" (clr), "r" (set)
: "cc");

raw_local_irq_restore(flags);
unsigned long old, tmp, msr;

__asm__ __volatile__("\
msrclr %2, 0x2\n\
nop\n\
lw %0, %4, r0\n\
andn %1, %0, %5\n\
or %1, %1, %6\n\
sw %1, %4, r0\n\
mts rmsr, %2\n\
nop"
: "=&r" (old), "=&r" (tmp), "=&r" (msr), "=m" (*p)
: "r" ((unsigned long)(p + 1) - 4), "r" (clr), "r" (set), "m" (*p)
: "cc");

return old;
}
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/microblaze/kernel/cpu/pvr.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
register unsigned tmp __asm__("r3"); \
tmp = 0x0; /* Prevent warning about unused */ \
__asm__ __volatile__ ( \
"mfs %0, rpvr" #pvrid ";" \
"mfs %0, rpvr" #pvrid ";" \
: "=r" (tmp) : : "memory"); \
val = tmp; \
}
Expand All @@ -54,7 +54,7 @@ int cpu_has_pvr(void)
if (!(flags & PVR_MSR_BIT))
return 0;

get_single_pvr(0, pvr0);
get_single_pvr(0x00, pvr0);
pr_debug("%s: pvr0 is 0x%08x\n", __func__, pvr0);

if (pvr0 & PVR0_PVR_FULL_MASK)
Expand Down
15 changes: 8 additions & 7 deletions trunk/arch/microblaze/kernel/head.S
Original file line number Diff line number Diff line change
Expand Up @@ -62,14 +62,15 @@ real_start:
andi r1, r1, ~2
mts rmsr, r1
/*
* According to Xilinx, msrclr instruction behaves like 'mfs rX,rpc'
* if the msrclr instruction is not enabled. We use this to detect
* if the opcode is available, by issuing msrclr and then testing the result.
* r8 == 0 - msr instructions are implemented
* r8 != 0 - msr instructions are not implemented
* Here is checking mechanism which check if Microblaze has msr instructions
* We load msr and compare it with previous r1 value - if is the same,
* msr instructions works if not - cpu don't have them.
*/
msrclr r8, 0 /* clear nothing - just read msr for test */
cmpu r8, r8, r1 /* r1 must contain msr reg content */
/* r8=0 - I have msr instr, 1 - I don't have them */
rsubi r0, r0, 1 /* set the carry bit */
msrclr r0, 0x4 /* try to clear it */
/* read the carry bit, r8 will be '0' if msrclr exists */
addik r8, r0, 0

/* r7 may point to an FDT, or there may be one linked in.
if it's in r7, we've got to save it away ASAP.
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/microblaze/kernel/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -161,11 +161,11 @@ void __init machine_early_init(const char *cmdline, unsigned int ram,
#if CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR
if (msr)
eprintk("!!!Your kernel has setup MSR instruction but "
"CPU don't have it %x\n", msr);
"CPU don't have it %d\n", msr);
#else
if (!msr)
eprintk("!!!Your kernel not setup MSR instruction but "
"CPU have it %x\n", msr);
"CPU have it %d\n", msr);
#endif

for (src = __ivt_start; src < __ivt_end; src++, dst++)
Expand Down
10 changes: 1 addition & 9 deletions trunk/block/blk-throttle.c
Original file line number Diff line number Diff line change
Expand Up @@ -168,15 +168,7 @@ static struct throtl_grp * throtl_find_alloc_tg(struct throtl_data *td,
* tree of blkg (instead of traversing through hash list all
* the time.
*/

/*
* This is the common case when there are no blkio cgroups.
* Avoid lookup in this case
*/
if (blkcg == &blkio_root_cgroup)
tg = &td->root_tg;
else
tg = tg_of_blkg(blkiocg_lookup_group(blkcg, key));
tg = tg_of_blkg(blkiocg_lookup_group(blkcg, key));

/* Fill in device details for root group */
if (tg && !tg->blkg.dev && bdi->dev && dev_name(bdi->dev)) {
Expand Down
10 changes: 3 additions & 7 deletions trunk/block/cfq-iosched.c
Original file line number Diff line number Diff line change
Expand Up @@ -599,7 +599,7 @@ cfq_group_slice(struct cfq_data *cfqd, struct cfq_group *cfqg)
}

static inline unsigned
cfq_scaled_cfqq_slice(struct cfq_data *cfqd, struct cfq_queue *cfqq)
cfq_scaled_group_slice(struct cfq_data *cfqd, struct cfq_queue *cfqq)
{
unsigned slice = cfq_prio_to_slice(cfqd, cfqq);
if (cfqd->cfq_latency) {
Expand Down Expand Up @@ -631,7 +631,7 @@ cfq_scaled_cfqq_slice(struct cfq_data *cfqd, struct cfq_queue *cfqq)
static inline void
cfq_set_prio_slice(struct cfq_data *cfqd, struct cfq_queue *cfqq)
{
unsigned slice = cfq_scaled_cfqq_slice(cfqd, cfqq);
unsigned slice = cfq_scaled_group_slice(cfqd, cfqq);

cfqq->slice_start = jiffies;
cfqq->slice_end = jiffies + slice;
Expand Down Expand Up @@ -1671,7 +1671,7 @@ __cfq_slice_expired(struct cfq_data *cfqd, struct cfq_queue *cfqq,
*/
if (timed_out) {
if (cfq_cfqq_slice_new(cfqq))
cfqq->slice_resid = cfq_scaled_cfqq_slice(cfqd, cfqq);
cfqq->slice_resid = cfq_scaled_group_slice(cfqd, cfqq);
else
cfqq->slice_resid = cfqq->slice_end - jiffies;
cfq_log_cfqq(cfqd, cfqq, "resid=%ld", cfqq->slice_resid);
Expand Down Expand Up @@ -3432,10 +3432,6 @@ static bool cfq_should_wait_busy(struct cfq_data *cfqd, struct cfq_queue *cfqq)
{
struct cfq_io_context *cic = cfqd->active_cic;

/* If the queue already has requests, don't wait */
if (!RB_EMPTY_ROOT(&cfqq->sort_list))
return false;

/* If there are other queues in the group, don't wait */
if (cfqq->cfqg->nr_cfqq > 1)
return false;
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/block/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,4 @@ obj-$(CONFIG_XEN_BLKDEV_FRONTEND) += xen-blkfront.o
obj-$(CONFIG_BLK_DEV_DRBD) += drbd/
obj-$(CONFIG_BLK_DEV_RBD) += rbd.o

swim_mod-y := swim.o swim_asm.o
swim_mod-objs := swim.o swim_asm.o
2 changes: 1 addition & 1 deletion trunk/drivers/block/aoe/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
#

obj-$(CONFIG_ATA_OVER_ETH) += aoe.o
aoe-y := aoeblk.o aoechr.o aoecmd.o aoedev.o aoemain.o aoenet.o
aoe-objs := aoeblk.o aoechr.o aoecmd.o aoedev.o aoemain.o aoenet.o
2 changes: 1 addition & 1 deletion trunk/drivers/block/cciss.c
Original file line number Diff line number Diff line change
Expand Up @@ -2833,7 +2833,7 @@ static int cciss_revalidate(struct gendisk *disk)
sector_t total_size;
InquiryData_struct *inq_buff = NULL;

for (logvol = 0; logvol <= h->highest_lun; logvol++) {
for (logvol = 0; logvol < CISS_MAX_LUN; logvol++) {
if (!h->drv[logvol])
continue;
if (memcmp(h->drv[logvol]->LunID, drv->LunID,
Expand Down
3 changes: 0 additions & 3 deletions trunk/drivers/block/loop.c
Original file line number Diff line number Diff line change
Expand Up @@ -1641,9 +1641,6 @@ static struct loop_device *loop_alloc(int i)

static void loop_free(struct loop_device *lo)
{
if (!lo->lo_queue->queue_lock)
lo->lo_queue->queue_lock = &lo->lo_queue->__queue_lock;

blk_cleanup_queue(lo->lo_queue);
put_disk(lo->lo_disk);
list_del(&lo->lo_list);
Expand Down
3 changes: 3 additions & 0 deletions trunk/drivers/block/nbd.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
#define DBG_BLKDEV 0x0100
#define DBG_RX 0x0200
#define DBG_TX 0x0400
static DEFINE_MUTEX(nbd_mutex);
static unsigned int debugflags;
#endif /* NDEBUG */

Expand Down Expand Up @@ -717,9 +718,11 @@ static int nbd_ioctl(struct block_device *bdev, fmode_t mode,
dprintk(DBG_IOCTL, "%s: nbd_ioctl cmd=%s(0x%x) arg=%lu\n",
lo->disk->disk_name, ioctl_cmd_to_ascii(cmd), cmd, arg);

mutex_lock(&nbd_mutex);
mutex_lock(&lo->tx_lock);
error = __nbd_ioctl(bdev, lo, cmd, arg);
mutex_unlock(&lo->tx_lock);
mutex_unlock(&nbd_mutex);

return error;
}
Expand Down
3 changes: 1 addition & 2 deletions trunk/drivers/cdrom/cdrom.c
Original file line number Diff line number Diff line change
Expand Up @@ -409,8 +409,7 @@ int register_cdrom(struct cdrom_device_info *cdi)
}

ENSURE(drive_status, CDC_DRIVE_STATUS );
if (cdo->check_events == NULL && cdo->media_changed == NULL)
*change_capability = ~(CDC_MEDIA_CHANGED | CDC_SELECT_DISC);
ENSURE(media_changed, CDC_MEDIA_CHANGED);
ENSURE(tray_move, CDC_CLOSE_TRAY | CDC_OPEN_TRAY);
ENSURE(lock_door, CDC_LOCK);
ENSURE(select_speed, CDC_SELECT_SPEED);
Expand Down
1 change: 0 additions & 1 deletion trunk/drivers/char/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ obj-$(CONFIG_SYNCLINK_GT) += synclink_gt.o
obj-$(CONFIG_AMIGA_BUILTIN_SERIAL) += amiserial.o
obj-$(CONFIG_SX) += sx.o generic_serial.o
obj-$(CONFIG_RIO) += rio/ generic_serial.o
obj-$(CONFIG_VIRTIO_CONSOLE) += virtio_console.o
obj-$(CONFIG_RAW_DRIVER) += raw.o
obj-$(CONFIG_SGI_SNSC) += snsc.o snsc_event.o
obj-$(CONFIG_MSPEC) += mspec.o
Expand Down
12 changes: 10 additions & 2 deletions trunk/drivers/char/ipmi/ipmi_si_intf.c
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,6 @@ static int unload_when_empty = 1;
static int add_smi(struct smi_info *smi);
static int try_smi_init(struct smi_info *smi);
static void cleanup_one_si(struct smi_info *to_clean);
static void cleanup_ipmi_si(void);

static ATOMIC_NOTIFIER_HEAD(xaction_notifier_list);
static int register_xaction_notifier(struct notifier_block *nb)
Expand Down Expand Up @@ -3451,7 +3450,16 @@ static int __devinit init_ipmi_si(void)
mutex_lock(&smi_infos_lock);
if (unload_when_empty && list_empty(&smi_infos)) {
mutex_unlock(&smi_infos_lock);
cleanup_ipmi_si();
#ifdef CONFIG_PCI
if (pci_registered)
pci_unregister_driver(&ipmi_pci_driver);
#endif

#ifdef CONFIG_PPC_OF
if (of_registered)
of_unregister_platform_driver(&ipmi_of_platform_driver);
#endif
driver_unregister(&ipmi_driver.driver);
printk(KERN_WARNING PFX
"Unable to find any System Interface(s)\n");
return -ENODEV;
Expand Down
28 changes: 6 additions & 22 deletions trunk/drivers/gpio/pca953x.c
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ struct pca953x_chip {
unsigned gpio_start;
uint16_t reg_output;
uint16_t reg_direction;
struct mutex i2c_lock;

#ifdef CONFIG_GPIO_PCA953X_IRQ
struct mutex irq_lock;
Expand Down Expand Up @@ -120,17 +119,13 @@ static int pca953x_gpio_direction_input(struct gpio_chip *gc, unsigned off)

chip = container_of(gc, struct pca953x_chip, gpio_chip);

mutex_lock(&chip->i2c_lock);
reg_val = chip->reg_direction | (1u << off);
ret = pca953x_write_reg(chip, PCA953X_DIRECTION, reg_val);
if (ret)
goto exit;
return ret;

chip->reg_direction = reg_val;
ret = 0;
exit:
mutex_unlock(&chip->i2c_lock);
return ret;
return 0;
}

static int pca953x_gpio_direction_output(struct gpio_chip *gc,
Expand All @@ -142,7 +137,6 @@ static int pca953x_gpio_direction_output(struct gpio_chip *gc,

chip = container_of(gc, struct pca953x_chip, gpio_chip);

mutex_lock(&chip->i2c_lock);
/* set output level */
if (val)
reg_val = chip->reg_output | (1u << off);
Expand All @@ -151,21 +145,18 @@ static int pca953x_gpio_direction_output(struct gpio_chip *gc,

ret = pca953x_write_reg(chip, PCA953X_OUTPUT, reg_val);
if (ret)
goto exit;
return ret;

chip->reg_output = reg_val;

/* then direction */
reg_val = chip->reg_direction & ~(1u << off);
ret = pca953x_write_reg(chip, PCA953X_DIRECTION, reg_val);
if (ret)
goto exit;
return ret;

chip->reg_direction = reg_val;
ret = 0;
exit:
mutex_unlock(&chip->i2c_lock);
return ret;
return 0;
}

static int pca953x_gpio_get_value(struct gpio_chip *gc, unsigned off)
Expand All @@ -176,9 +167,7 @@ static int pca953x_gpio_get_value(struct gpio_chip *gc, unsigned off)

chip = container_of(gc, struct pca953x_chip, gpio_chip);

mutex_lock(&chip->i2c_lock);
ret = pca953x_read_reg(chip, PCA953X_INPUT, &reg_val);
mutex_unlock(&chip->i2c_lock);
if (ret < 0) {
/* NOTE: diagnostic already emitted; that's all we should
* do unless gpio_*_value_cansleep() calls become different
Expand All @@ -198,19 +187,16 @@ static void pca953x_gpio_set_value(struct gpio_chip *gc, unsigned off, int val)

chip = container_of(gc, struct pca953x_chip, gpio_chip);

mutex_lock(&chip->i2c_lock);
if (val)
reg_val = chip->reg_output | (1u << off);
else
reg_val = chip->reg_output & ~(1u << off);

ret = pca953x_write_reg(chip, PCA953X_OUTPUT, reg_val);
if (ret)
goto exit;
return;

chip->reg_output = reg_val;
exit:
mutex_unlock(&chip->i2c_lock);
}

static void pca953x_setup_gpio(struct pca953x_chip *chip, int gpios)
Expand Down Expand Up @@ -531,8 +517,6 @@ static int __devinit pca953x_probe(struct i2c_client *client,

chip->names = pdata->names;

mutex_init(&chip->i2c_lock);

/* initialize cached registers from their original values.
* we can't share this chip with another i2c master.
*/
Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/isdn/hysdn/hysdn_defs.h
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,7 @@ extern hysdn_card *card_root; /* pointer to first card */
/*************************/
/* im/exported functions */
/*************************/
extern char *hysdn_getrev(const char *);

/* hysdn_procconf.c */
extern int hysdn_procconf_init(void); /* init proc config filesys */
Expand Down Expand Up @@ -258,6 +259,7 @@ extern int hysdn_tx_cfgline(hysdn_card *, unsigned char *,

/* hysdn_net.c */
extern unsigned int hynet_enable;
extern char *hysdn_net_revision;
extern int hysdn_net_create(hysdn_card *); /* create a new net device */
extern int hysdn_net_release(hysdn_card *); /* delete the device */
extern char *hysdn_net_getname(hysdn_card *); /* get name of net interface */
Expand Down
Loading

0 comments on commit 5b039d2

Please sign in to comment.