~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to drivers/s390/cio/ioasm.h

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
 
4
4
#include <asm/chpid.h>
5
5
#include <asm/schid.h>
 
6
#include "orb.h"
 
7
#include "cio.h"
6
8
 
7
9
/*
8
10
 * TPI info structure
87
89
        return ccode;
88
90
}
89
91
 
 
92
static inline int ssch(struct subchannel_id schid, union orb *addr)
 
93
{
 
94
        register struct subchannel_id reg1 asm("1") = schid;
 
95
        int ccode = -EIO;
 
96
 
 
97
        asm volatile(
 
98
                "       ssch    0(%2)\n"
 
99
                "0:     ipm     %0\n"
 
100
                "       srl     %0,28\n"
 
101
                "1:\n"
 
102
                EX_TABLE(0b, 1b)
 
103
                : "+d" (ccode)
 
104
                : "d" (reg1), "a" (addr), "m" (*addr)
 
105
                : "cc", "memory");
 
106
        return ccode;
 
107
}
 
108
 
 
109
static inline int csch(struct subchannel_id schid)
 
110
{
 
111
        register struct subchannel_id reg1 asm("1") = schid;
 
112
        int ccode;
 
113
 
 
114
        asm volatile(
 
115
                "       csch\n"
 
116
                "       ipm     %0\n"
 
117
                "       srl     %0,28"
 
118
                : "=d" (ccode)
 
119
                : "d" (reg1)
 
120
                : "cc");
 
121
        return ccode;
 
122
}
 
123
 
90
124
static inline int tpi(struct tpi_info *addr)
91
125
{
92
126
        int ccode;