Re: Porting alsa-info to sysfs -- for ARM platforms

2012-04-11 Thread Takashi Iwai
At Mon, 9 Apr 2012 17:35:52 -0400,
Martin Langhoff wrote:
 
 Hi Jaroslav, Takashi,
 
 I am addressing you, because you seem to be the alsa-info maintainers. I am
 part of OLPC's dev team, and our latest XO laptop model is based on a very
 power-efficient ARM CPU.
 
 One of the oddities of the ARM platform is that it doesn't have a PCI bus,
 so alsa works fine, but the PCI bus isn't there. More practically, lspci
 isn't there so alsa-info doesn't want to play ball.
 
 The same info can be obtained from sysfs on modern linuxen. Are there any
 plans to port (or fall back) to reading sysfs? Or maybe a better way?

Better to fix alsa-info.sh to be runnable without lspci, yes.
Does the patch below suffice?


thanks,

Takashi

---
diff --git a/utils/alsa-info.sh b/utils/alsa-info.sh
index fd7df96..30c55ca 100755
--- a/utils/alsa-info.sh
+++ b/utils/alsa-info.sh
@@ -392,12 +392,6 @@ trap cleanup 0
 
 if [ $PROCEED = yes ]; then
 
-if [[ -z $LSPCI ]] 
-then
-   echo This script requires lspci. Please install it, and re-run this 
script.
-   exit 0
-fi
-
 #Fetch the info and store in temp files/variables
 DISTRO=`grep -ihs 
buntu\|SUSE\|Fedora\|PCLinuxOS\|MEPIS\|Mandriva\|Debian\|Damn\|Sabayon\|Slackware\|KNOPPIX\|Gentoo\|Zenwalk\|Mint\|Kubuntu\|FreeBSD\|Puppy\|Freespire\|Vector\|Dreamlinux\|CentOS\|Arch\|Xandros\|Elive\|SLAX\|Red\|BSD\|KANOTIX\|Nexenta\|Foresight\|GeeXboX\|Frugalware\|64\|SystemRescue\|Novell\|Solaris\|BackTrack\|KateOS\|Pardus
 /etc/{issue,*release,*version}`
 KERNEL_VERSION=`uname -r`
@@ -408,8 +402,6 @@ KERNEL_OS=`uname -o`
 ALSA_DRIVER_VERSION=`cat /proc/asound/version |head -n1|awk {'print $7'} |sed 
's/\.$//'`
 get_alsa_library_version
 ALSA_UTILS_VERSION=`amixer -v |awk {'print $3'}`
-VENDOR_ID=`lspci -vn |grep 040[1-3] | awk -F':' '{print $3}'|awk {'print 
substr($0, 2);}' $TEMPDIR/vendor_id.tmp`
-DEVICE_ID=`lspci -vn |grep 040[1-3] | awk -F':' '{print $4}'|awk {'print $1'} 
$TEMPDIR/device_id.tmp`
 LAST_CARD=$((`grep ]:  /proc/asound/cards | wc -l` - 1 ))
 
 ESDINST=$(which esd 2/dev/null| sed 's|^[^/]*||' 2/dev/null)
@@ -432,7 +424,9 @@ fi
 
 cat /proc/asound/modules 2/dev/null|awk {'print $2'}$TEMPDIR/alsamodules.tmp
 cat /proc/asound/cards $TEMPDIR/alsacards.tmp
-lspci |grep -i multi\|audio$TEMPDIR/lspci.tmp
+if [[ -n $LSPCI ]]; then
+lspci |grep -i multi\|audio$TEMPDIR/lspci.tmp
+fi
 
 #Check for HDA-Intel cards codec#*
 cat /proc/asound/card*/codec\#*  $TEMPDIR/alsa-hda-intel.tmp 2 /dev/null
@@ -537,6 +531,7 @@ echo   $FILE
 cat $TEMPDIR/alsacards.tmp  $FILE
 echo   $FILE
 echo   $FILE
+if [[ -n $LSPCI ]]; then
 echo !!PCI Soundcards installed in the system  $FILE
 echo !!--  $FILE
 echo   $FILE
@@ -549,6 +544,7 @@ echo   $FILE
 lspci -vvn |grep -A1 040[1-3]  $FILE
 echo   $FILE
 echo   $FILE
+endif
 
 if [ $SNDOPTIONS ]
 then
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Porting alsa-info to sysfs -- for ARM platforms

2012-04-09 Thread Martin Langhoff
Hi Jaroslav, Takashi,

I am addressing you, because you seem to be the alsa-info maintainers. I am
part of OLPC's dev team, and our latest XO laptop model is based on a very
power-efficient ARM CPU.

One of the oddities of the ARM platform is that it doesn't have a PCI bus,
so alsa works fine, but the PCI bus isn't there. More practically, lspci
isn't there so alsa-info doesn't want to play ball.

The same info can be obtained from sysfs on modern linuxen. Are there any
plans to port (or fall back) to reading sysfs? Or maybe a better way?


cheers,



m
-- 
 mar...@laptop.org -- Software Architect - OLPC
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel