node_device: detect CCW devices

Make CCW devices available to the node_device driver. The devices are
already seen by udev so let's implement necessary code for detecting
them properly.

Topologically, CCW devices are similar to PCI devices, e.g.:

    +- ccw_0_0_1a2b
        |
        +- scsi_host0
            |
            +- scsi_target0_0_0
                |
                +- scsi_0_0_0_0

Reviewed-by: Boris Fiuczynski <fiuczy@linux.vnet.ibm.com>
Signed-off-by: Bjoern Walk <bwalk@linux.vnet.ibm.com>
This commit is contained in:
Bjoern Walk
2017-05-26 10:44:05 -04:00
committed by John Ferlan
parent a9b98ecf4e
commit b0ffd938d4
11 changed files with 191 additions and 33 deletions
+31
View File
@@ -318,6 +318,37 @@
</data>
</define>
<define name="ccwCssidRange">
<choice>
<data type="string">
<param name="pattern">0x[0-9a-eA-E][0-9a-fA-F]?</param>
</data>
<data type="string">
<param name="pattern">0x[fF][0-9a-eA-E]?</param>
</data>
<data type="int">
<param name="minInclusive">0</param>
<param name="maxInclusive">254</param>
</data>
</choice>
</define>
<define name="ccwSsidRange">
<data type="string">
<param name="pattern">(0x)?[0-3]</param>
</data>
</define>
<define name="ccwDevnoRange">
<choice>
<data type="string">
<param name="pattern">0x[0-9a-fA-F]{1,4}</param>
</data>
<data type="int">
<param name="minInclusive">0</param>
<param name="maxInclusive">65535</param>
</data>
</choice>
</define>
<define name="cpuset">
<data type="string">
<param name="pattern">([0-9]+(-[0-9]+)?|\^[0-9]+)(,([0-9]+(-[0-9]+)?|\^[0-9]+))*</param>
-30
View File
@@ -5775,36 +5775,6 @@
</element>
<empty/>
</define>
<define name="ccwCssidRange">
<choice>
<data type="string">
<param name="pattern">0x[0-9a-eA-E][0-9a-fA-F]?</param>
</data>
<data type="string">
<param name="pattern">0x[fF][0-9a-eA-E]?</param>
</data>
<data type="int">
<param name="minInclusive">0</param>
<param name="maxInclusive">254</param>
</data>
</choice>
</define>
<define name="ccwSsidRange">
<data type="string">
<param name="pattern">(0x)?[0-3]</param>
</data>
</define>
<define name="ccwDevnoRange">
<choice>
<data type="string">
<param name="pattern">0x[0-9a-fA-F]{1,4}</param>
</data>
<data type="int">
<param name="minInclusive">0</param>
<param name="maxInclusive">65535</param>
</data>
</choice>
</define>
<define name="panic">
<element name="panic">
<optional>
+16
View File
@@ -84,6 +84,7 @@
<ref name="capstorage"/>
<ref name="capdrm"/>
<ref name="capmdev"/>
<ref name="capccwdev"/>
</choice>
</element>
</define>
@@ -597,6 +598,21 @@
</element>
</define>
<define name='capccwdev'>
<attribute name='type'>
<value>ccw</value>
</attribute>
<element name='cssid'>
<ref name='ccwCssidRange'/>
</element>
<element name='ssid'>
<ref name='ccwSsidRange'/>
</element>
<element name='devno'>
<ref name='ccwDevnoRange'/>
</element>
</define>
<define name='address'>
<element name='address'>
<attribute name='domain'><ref name='hexuint'/></attribute>