autoport: Improve keyboard detection.
Previously I tried to see if Linux think that port 0x60 is in use by keyboard. Unfortunately it always thinks that it is. Instead just base off real input busses used. Change-Id: I4bb744938f623d29f38396165a1694fee78c3d32 Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com> Reviewed-on: http://review.coreboot.org/10376 Tested-by: build bot (Jenkins) Reviewed-by: Edward O'Callaghan <edward.ocallaghan@koparo.com>
This commit is contained in:
parent
239d53e9dc
commit
91195c6437
|
@ -6,7 +6,7 @@ func FIXMEEC(ctx Context) {
|
||||||
ap := Create(ctx, "acpi/platform.asl")
|
ap := Create(ctx, "acpi/platform.asl")
|
||||||
defer ap.Close()
|
defer ap.Close()
|
||||||
|
|
||||||
hasKeyboard := IsIOPortUsedBy(ctx, 0x60, "keyboard")
|
hasKeyboard := ctx.InfoSource.HasPS2()
|
||||||
|
|
||||||
sbGPE := GuessECGPE(ctx)
|
sbGPE := GuessECGPE(ctx)
|
||||||
var GPEUnsure bool
|
var GPEUnsure bool
|
||||||
|
|
|
@ -103,4 +103,23 @@ func MakeLogs(outDir string) {
|
||||||
defer out.Close()
|
defer out.Close()
|
||||||
io.Copy(out, in)
|
io.Copy(out, in)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
out, err := os.Create(outDir + "/input_bustypes.log")
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
defer out.Close()
|
||||||
|
|
||||||
|
ClassInputDir := "/sys/class/input/"
|
||||||
|
files, _ = ioutil.ReadDir(ClassInputDir)
|
||||||
|
for _, f := range files {
|
||||||
|
if strings.HasPrefix(f.Name(), "input") && !f.Mode().IsRegular() { /* Allow both dirs and symlinks. */
|
||||||
|
in, err := os.Open(ClassInputDir + f.Name() + "/id/bustype")
|
||||||
|
defer in.Close()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
io.Copy(out, in)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -359,6 +359,22 @@ func (l *LogDevReader) GetCPUModel() (ret []uint32) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (l *LogDevReader) HasPS2() bool {
|
||||||
|
file, err := os.Open(l.InputDirectory + "/input_bustypes.log")
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
defer file.Close()
|
||||||
|
scanner := bufio.NewScanner(file)
|
||||||
|
for scanner.Scan() {
|
||||||
|
line := scanner.Text()
|
||||||
|
if strings.Index(line, "0011") >= 0 {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
var FlagLogInput = flag.String("input_log", ".", "Input log directory")
|
var FlagLogInput = flag.String("input_log", ".", "Input log directory")
|
||||||
var FlagLogMkLogs = flag.Bool("make_logs", false, "Dump logs")
|
var FlagLogMkLogs = flag.Bool("make_logs", false, "Dump logs")
|
||||||
|
|
||||||
|
|
|
@ -59,6 +59,7 @@ type DevReader interface {
|
||||||
GetCPUModel() []uint32
|
GetCPUModel() []uint32
|
||||||
GetEC() []byte
|
GetEC() []byte
|
||||||
GetIOPorts() []IOPorts
|
GetIOPorts() []IOPorts
|
||||||
|
HasPS2() bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type IOPorts struct {
|
type IOPorts struct {
|
||||||
|
|
Loading…
Reference in New Issue