+ # skip subsystem directory
+ subsys="${full_sysfs_path##*/}"
+ if [ "$subsys" = "$TYPE" ]; then
+ : skip subsystem directory
+ full_sysfs_path="${full_sysfs_path%/*}"
+ fi
+ cd $full_sysfs_path
+ ;;
+ *)
+ # old sysfs layout
+ if [ ! -L $full_sysfs_path/device ]; then
+ full_sysfs_path="${full_sysfs_path%/*}"
+ : full_sysfs_path "$full_sysfs_path"
+ if [ ! -L $full_sysfs_path/device -o ! -f $full_sysfs_path/dev ]; then
+ return
+ fi
+ fi
+ if [ -L $full_sysfs_path/device/device ]; then
+ cd $full_sysfs_path/device/device
+ else
+ cd $full_sysfs_path/device
+ fi
+ ;;
+ esac